2013年5月27日月曜日

セキュリティスキャナーその2 - Security Scanner part 2

前回に引き続きSecurity Scannerの説明です。出典はこちらSecurity Scanner extension users manualです。Security ScannerのダウンロードはGeneXusマーケットプレイスから。

3.ルール定義


Parameter encryption #100

Security Scannerはナレッジベースの環境とオブジェクトをスキャンし、パラメーターが暗号化されているかどうか調べます。具合的には「Encrypt URL Parameters」プロパティが「Session Key」または「Site key」が設定されているかチェックします。(Noの場合は暗号化されない)
もし、Parameter encryption問題を発見した場合は下記のメッセージを表示します。

error: #100 in WebPanel1 >> Object parameters not encrypted



HTML format #101

Security Scannerは項目属性、変数そしてテキストブロックをスキャンし「Format」プロパティが「HTML」または「RawHTML」が設定されていないかチェックします。
もし、HTML format問題を発見した場合は下記のメッセージを表示します。

error: #101 in WWCountry >> Variable CountryName allows HTML


Authorization #102

Security ScannerはWebパネルとトランザクションオブジェクトをスキャンし、認証用プログラム(プロシージャオブジェクト)がCallされている事をチェックします。このルールはマスターページとWebコンポーネントには適用しません。
もし、Authorization問題を発見した場合は下記のメッセージを表示します。

error: #102 in WebPanel1 >> No authorization call found


SQL Command #103

Security Scannerはナレッジベース内のオブジェクトをスキャンしSQLコマンドを使用していないかチェックします。
もし、SQL Command問題を発見した場合は下記のメッセージを表示します。

error: #103 in Command >> SQL Command found in source
i.e.: SQL UPDATE UserInfo SET UserWelcomeMessage='[!&UserWelcomeMessage!]' WHERE UserId=[!&UserId!]


Link Command #104

Security Scannerはナレッジベース内のオブジェクトをスキャンしパラメータ無し動的Linkコマンドを使用していないかチェックします。
もし、Link Command問題を発見した場合は下記のメッセージを表示します。

error: #104 in WWCountry >> Parameterless LINK commnad found
i.e.: Link(&SomeWebPanel)


Http Protocol #105

Security Scannerはナレッジベースの環境とWebパネルをスキャンしHTTPSプロトコルを使用しているか調べます。具体的には「Protocol specification」プロパティに「Secure (HTTPS)」が設定されているかチェックします。
もし、Http Protocol問題を発見した場合は下記のメッセージを表示します。

error: #105 in WebPanel1 >> Http protocol is not Secure


Ajax Request Security #106


Security Scannerはナレッジベース環境とオブジェクトをスキャンし、Ajax callセキュリティが高になっているか調べます。具体的には「Ajax requests security」プロパティに「High」が設定されているかチェックします。
もし、Ajax Request Security問題を発見した場合は下記のメッセージを表示します。

error: #106 in WebPanel1 >> Ajax request security is not High


Web Components URL Access #107

Security Scannerはナレッジベース内のWebコンポーネントをスキャンし、URLアクセスが可能になっていないか調べます。具体的には「URL Access」プロパティが「Yes」に設定されていないかチェックします。
もし、Web Components URL問題を発見した場合は下記のメッセージを表示します。

error: #107 in WebPanel1 >> Web Components with URL Access enabled


C# or Java native code usage #108

Security Scannerはナレッジベース内のオブジェクトのソースセクションをスキャンし、Javaコマンド又はCSharpコマンドが記述されていないか調べます。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #108 in NativeCodeObjectSample >> Native Code usage found in source


HttpResponse data type usage #109

Security Scannerはナレッジベース内のオブジェクトの変数セクションをスキャンし、HttpResponseデータ型を変数として使用しているかチェックします。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #109 in WebPanelSample >> HttpResponse Data Type usage in variables
#109: Name 'response' Type 'HttpResponse'


LDAPClient GetAttribute method usage #110

Security Scannerはナレッジベース内のオブジェクトのソースセクションをスキャンし、LDAPClientデータ型の「GetAttribute」メソッドが使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #110 in ProcedureSample >> LDAPClient GetAttribute method used in source


Directory data type usage #111

Security Scannerはナレッジベース内のオブジェクトの変数セクションをスキャンし、Directoryデータ型を使用しているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #111 in WebPanelSample >> Directory Data Type usage in variables
#111: Name 'd01' Type 'Directory'


File data type usage #112

Security Scannerはナレッジベース内のオブジェクトの変数セクションをスキャンし、Fileデータ型を使用しているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #112 in WebPanelSample >> File Data Type usage in variables
#112: Name 'f01' Type 'File'


XMLReader ValidationType property usage #113

Security Scannerはナレッジベース内のオブジェクトのソースセクションをスキャンし、XMLReaderデータ型の「ValidationType」プロパティが使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #113 in ProcedureSample >> XMLReader ValidationType property not used in source


Shell function #114

Security Scannerはナレッジベース内のオブジェクトのソースセクションをスキャンし、Shell関数が使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #114 in ProcedureSample >> Shell function found in source


Random function #115

Security Scannerはナレッジベース内のオブジェクトのソースセクションをスキャンし、Random関数が使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #115 in ProcedureSample >> Random function found in source


SetCookie function #116

Security Scannerはナレッジベース内のオブジェクトのソースセクションをスキャンし、SetCookie関数が使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #116 in ProcedureSample >> SetCookie function found in source


Form.HeaderRawHTML property #117

Security ScannerはWebパネルとトランザクションオブジェクトのソースセクションをスキャンし、「Form.HeaderRawHTML」プロパティが使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #117 in WebPanelSample >> Form.HeaderRawHTML property found in source


Form.JScriptSrc property #118

Security ScannerはWebパネルとトランザクションオブジェクトのソースセクションをスキャンし、「Form.JScriptSrc」プロパティが使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #118 in WebPanelSample >> Form.JScriptSrc property found in source


IsPassword property #119

Security ScannerはWebパネルとトランザクションオブジェクトのソースセクションをスキャンし、「IsPassword」プロパティが使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #119 in WebPanelSample >> IsPassword Property enabled in WebForm
error: #119 in WebPanelSample >> IsPassword property found in source
error: #119 in WebPanelSample >> IsPassword property found in rules


External Object usage #120

Security Scannerはナレッジベース内のオブジェクトのソースセクションをスキャンし、外部オブジェクトが使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #120 in ProcedureSample >> External Object usage in variables
#120: Name 'myMD5' Type 'md5'


User Control usage #121

Security ScannerはWebパネルとトランザクションオブジェクトのWebFormセクションをスキャンし、ユーザーコントロールが使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #121 in WebPanelSample >> UserControl detected in WebForm
#121: Name 'HistoryManager' Type 'HistoryManager'


SDT.ToXml() pattern usage #122

Security Scannerはナレッジベース内のオブジェクトのソースセクションをスキャンし、SDTのToXML()が使用されているか確認します。
もし記述が見つかった場合は下記のメッセージを表示します。

error: #122 in ProcedureSample >> SDT.ToXml() pattern detected in source





4.ルール定義とOWASP Top10のマッピング

ルールが22個と多いので、OWASP Top10とどう関連付けられているのか分かりづらいです。OWASP Top10と22個のルールのマトリックを作成しましたので、ここに掲載します。





現在、Security ScannerはGeneXus X Evolution1のみに対応しています。これはScan対象となるプロパティがEvolution2では若干変更が出ているためです。又、OWASP Top10 2013も現在RC版であり、まもなくリリース版となります。恐らくArtech側もOWASP Top10 2013 リリース後にEvolution2対応版のSecurity Scannerを出してくると思われますので、その時はまた日本語訳を掲載したいと思います。








0 件のコメント:

コメントを投稿