最近のアクセス:
組み込みツールのセキュリティスキャナー

: このツールは、GeneXus Marketplace で利用可能であった GeneXus の Security Scanner 拡張機能に代わるものです。これを使用するには、OWASP のセキュリティについて知っておく必要があります。

セキュリティ スキャナー ツールは、OWASP のセキュリティリスク Top 10 にしたがって、ナレッジベース内のオブジェクトをスキャン/チェックし、潜在的なセキュリティ問題を探します。
GeneXus IDE のツールバーから次のオプションを選択すると、セキュリティスキャナーの設定ウィンドウを開くことができます: [ ツール ] -> [ セキュリティ ] -> [ セキュリティスキャナー ]
イメージ:46438.jpg
コンテキストメニューの「セキュリティスキャナー」を使用して、特定のオブジェクトやオブジェクトのサブセットに適用することもできます。
イメージ:46439.jpg
全体的にスキャンがトリガーされる場合にのみ、環境のルールが適用されます。コンテキストメニューを使用して部分的なスキャンを実行する場合は、環境のルールは適用されません。

スキャンの設定

このツールは次のタイプのオブジェクトをスキャンします:
次のタイプのオブジェクトはスキャンしません:
  • 参照モジュール
  • ユニットテスト

出力

IDE を使用してスキャンを実行する場合、結果は「SecurityScanner」と表示された [ 出力 ] ウィンドウに表示されます。
イメージ:47877.jpg

ルールの設定

設定ウィンドウで、すべてのルールに対して重大度レベルを設定したり、無効にしたりすることができます。
イメージ:46440.jpg

Parameter encryption property #100

セキュリティスキャナーはオブジェクトを分析し、パラメーターが暗号化されているかどうかをチェックします。すなわち、[ Encrypt URL parameters ] プロパティが「Session Key」または「Site Key」に設定されているかどうかをチェックします。
<Parameter encryption> に問題が見つかった場合、セキュリティスキャナーに次のメッセージが表示されます:
error: Code: 100 - パラメーター暗号化が設定されていません

Html usage #101

セキュリティスキャナーは項目属性、変数、およびテキストブロックを分析し、それらの Web 用の [ Format ] プロパティが「HTML」または「Raw HTML」に設定されているかどうかをチェックします。
<HTML format> に問題が見つかった場合、セキュリティスキャナーに次のメッセージが表示されます:
error 101: WebForm (Name 'htmltxtblock' Type 'HTML'. Name 'rawhtmltxtblock' Type 'Raw HTML'.) で HTML テキストブロックが検出されました)
または
error: Code: 101 - 項目属性の形式に HTML を使用できます

Access Control #102

セキュリティスキャナーは KB 内の Web パネルおよびトランザクションを分析し、Authorization プログラム (プロシージャー) を呼び出すかどうかをチェックします。このルールは、マスターページおよび Web コンポーネントには適用されません。
<Authorization> に問題が見つかった場合、セキュリティスキャナーに次のメッセージが表示されます:
error: Code: 102 - このオブジェクトにはアクセスコントロールが設定されていません
X Evolution 2 を使用している場合は、[ Integrated Security Level ] プロパティがチェックされます (GeneXus Access Manager 使用)。

SQL Command usage#103

セキュリティスキャナーは KB オブジェクトを分析し、SQL コマンドを検索します。
<SQL Command> に問題が見つかった場合、セキュリティスキャナーに次のメッセージが表示されます:
error: Code: 103 - SQL コマンドの使用が見つかりました
例: SQL UPDATE UserInfo SET UserWelcomeMessage=' [ !&UserWelcomeMessage! ] 'WHERE UserId= [ !&UserId! ]

Parameterless LINK command #104

セキュリティスキャナーは KB オブジェクトを分析し、パラメーターのない動的なコマンドリンクがあるかどうかをチェックします。
<Link command> に問題が見つかった場合、セキュリティスキャナーに次のメッセージが表示されます:
error: Code: 104 - パラメーターがない Link コマンドの使用が見つかりました
例: Link(&SomeWebPanel)

HTTP Protocol #105

セキュリティスキャナーは Web パネルおよびプロシージャーを分析し、HTTPS プロトコルが指定されているかどうかをチェックします。すなわち、[ Protocol specification ] プロパティが「Secure (HTTPS)」に設定されているかどうかをチェックします。
SOAP のプロシージャーの場合、環境の [ Protocol specification ] を継承します。そのため、環境に安全でないプロトコルが指定されている場合、ルールがトリガーされます。これは、GeneXus 17 Upgrade 4 以降で適用されます。
<Http protocol> に問題が見つかった場合、セキュリティスキャナーに次のメッセージが表示されます:
error: Code: 105 - HTTP プロトコルは安全ではありません
または
error: Code: 105 - プロトコル指定が「Do not specify」に設定されている HTTP プロトコルは安全ではありません 

Javascript debug mode #106 

セキュリティスキャナーは、[ Javascript Debug Mode ] プロパティ (ジェネレーターレベル) を分析し、プロパティが有効になっている場合は次のメッセージが表示されます:
error: Code: 106 - JavaScript のデバッグモードが有効になっています 

Check if the WebComponent has url access enabled #107

セキュリティスキャナーは、Web コンポーネントとして設定されている KB オブジェクトを分析し、それらの URL アクセスが有効になっているかどうかをチェックします。すなわち、[ URL access ] プロパティに「Yes」が設定されているかどうかをチェックします。
<WC URL Access> に問題が見つかった場合、セキュリティスキャナーに次のメッセージが表示されます:
error: Code: 107 - Web コンポーネントの  [ URL access ]  が有効になっています 

Native code usage #108

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、Java または C# のコマンドをチェックします。
次のメッセージが表示されます:
error 108: ソースでネイティブコードの使用が見つかりました

HttpResponse Data Type usage #109

セキュリティスキャナーは、KB オブジェクトの [ Variables ] エレメントを分析し、HttpResponse データタイプの使用をチェックします。
次のメッセージが表示されます:
error: Code: 109 - 変数で HttpResponse データタイプが使用されています (名前 'HttpResponse' タイプ 'HttpResponse')

LDAPClient.GetAttribute function usage #110

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、LDAPClient データタイプの GetAttribute メソッドの使用をチェックします。
次のメッセージが表示されます:
error: Code: 110 - LDAPClient.GetAttribute 関数の使用

Directory Data Type usage #111

セキュリティスキャナーは、KB オブジェクトの [ Variables ] エレメントを分析し、Directory データタイプの使用をチェックします。
次のメッセージが表示されます:
error: Code: 111 - 変数で Directory データタイプが使用されています (名前 'Directory' タイプ 'Directory')

File Data Type usage #112

セキュリティスキャナーは、KB オブジェクトの [ Variables ] エレメントを分析し、File データタイプの使用をチェックします。
次のメッセージが表示されます:
error: Code: 112 - 変数で File データタイプが使用されています (名前 'File' タイプ 'File')

XMLReader.ValidationType function usage #113

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、XMLReader データタイプの [ ValidationType ] プロパティの使用をチェックします。
次のメッセージが表示されます:
error: Code: 113 - XmlReader データタイプの  [ ValidationType ]  プロパティの設定にミスがあります

Shell function usage #114

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、Shell 関数の使用をチェックします。
次のメッセージが表示されます:
error: Code: 114 - Shell 関数の使用が見つかりました 

Random function usage#115

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、Random 関数の使用をチェックします。
次のメッセージが表示されます:
error: Code: 115 - Random 関数の使用が見つかりました 

SetCookie function usage#116

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、SetCookie 関数の使用をチェックします。
次のメッセージが表示されます:
error: Code: 116 - SetCookie 関数の使用が見つかりました
可能なときに、Cookie データタイプを使用し、 [ HttpOnly ] プロパティを有効にします。

HeaderRawHTML property usage#117

セキュリティスキャナーは、Web Panel オブジェクトおよび Transaction オブジェクトのソースセクションを分析し、 [ Form.HeaderRawHTML ] プロパティの使用をチェックします。
次のメッセージが表示されます:
error: Code: 117 -  [ HeaderRawHTML ]  プロパティの使用が見つかりました

Check JScriptSrc property usage#118

セキュリティスキャナーは、Web Panel オブジェクトおよび Transaction オブジェクトのソースセクションを分析し、 [ Form.JScriptSrc ] プロパティの使用をチェックします。
次のメッセージが表示されます:
error: Code: 118 -  [ JScriptSrc ]  プロパティの使用が見つかりました

Checking IsPassword property usage#119

セキュリティスキャナーは、Web Panel オブジェクトおよび Transaction オブジェクトのソースセクションを分析し、 [ IsPassword ] プロパティの使用をチェックします。
次のメッセージが表示されます:
error: Code: 119 -  [ IsPassword ]  プロパティの使用が見つかりました 

External Object usage #120

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、外部オブジェクトの使用をチェックします。
次のメッセージが表示されます:
error: Code: 120 - 変数で外部オブジェクトが使用されています (名 'CustomType' タイプ 'CustomType')
X Evolution 2 のバージョンでは、GAM および GXflow の外部オブジェクトは除外されます。

External User Controls usage #121

セキュリティスキャナーは、Web Panel オブジェクトおよび Transaction オブジェクトの [ Web Layout ] エレメントを分析し、ユーザーコントロールの使用をチェックします。
次のメッセージが表示されます:
error: Code: 121 - WebForm で UserControl が検出されました (名前 'CustomControl' タイプ 'CustomControl') 

Cookie Data Type usage #124

セキュリティスキャナーは、KB オブジェクトの [ Variables ] エレメントを分析し、Cookie データタイプの使用をチェックします。
次のメッセージが表示されます:
error: Code: 124 - 変数で Cookie データタイプが使用されています (名前 'Cookie' タイプ 'cookie') 
可能な限り [ HttpOnly ] プロパティを有効にします。

XmlWriter.WriteRawText function usage #125

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、XMLWriterWriteRawText メソッドの使用をチェックします。
次のメッセージが表示されます:
error: Code: 125 - XmlWriter.WriteRawText 関数が使用されています

SDT.FromXml function usage #126

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、FromXml メソッド - SDT の使用をチェックします。
次のメッセージが表示されます:
error: Code: 126 - SDT.FromXml 関数が使用されています

SDT.FromJson function usage #127

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、ビジネスコンポーネントの FromJson メソッドの使用をチェックします。
次のメッセージが表示されます:
error: Code: 127 - SDT.FromJson 関数が使用されています

XMLReader.ReadRawXML function usage #128

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、XMLReader データタイプReadRawXML メソッドの使用をチェックします。
次のメッセージが表示されます:
error: Code: 128 - XmlReader.ReadRawXML 関数が使用されています

Blob Data Type usage #129

セキュリティスキャナーは、KB オブジェクトの [ Variables ] エレメントを分析し、Blob データタイプの使用をチェックします。
次のメッセージが表示されます:
error: Code: 129 - オブジェクトで Blob データタイプの使用が検出されました (変数: Blob)

JSEvent function usage #130

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、JSEvent メソッドの使用をチェックします。
次のメッセージが表示されます:
error: Code: 130 - JSEvent 関数の使用が見つかりました 

SoapHeaderRaw property usage #131

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、SoapHeaderRaw の非標準関数の使用をチェックします。
次のメッセージが表示されます:
error: Code: 131 -  [ SoapHeaderRaw ]  プロパティの使用が見つかりました

PathToURL function usage #132

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、PathToURL 関数の使用をチェックします。
次のメッセージが表示されます:
error: Code: 132 - PathtoUrl の使用が見つかりました 

XMLReader.ReadExternalEntities function usage #133

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、XMLReader データタイプ[ ReadExternalEntities ] プロパティの使用をチェックします。
次のメッセージが表示されます:
error: Code: 133 -  [ XmlReader.ReadExternalEntities ]  プロパティが使用されています

SDT.FromXmlFile function usage #134

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、FromXmlFile メソッドの使用をチェックします。
次のメッセージが表示されます:
error: Code: 134 - SDT.FromXmlFile 関数が使用されています

SDT.FromJsonFile() function usage #135

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、FromJsonFile メソッドの使用をチェックします。
次のメッセージが表示されます:
error: Code: 135 - SDT.FromJsonFile 関数が使用されています

Parameters Encryption (Environment) #136

セキュリティスキャナーは KB の環境を分析し、パラメーターが暗号化されているかどうかをチェックします。すなわち、[ Encrypt URL parameters ] プロパティが「Session Key」または「Site Key」に設定されているかどうかをチェックします。
<Parameter encryption> に問題が見つかった場合、セキュリティスキャナーに次のメッセージが表示されます:
error: Code: 136 - パラメーターの暗号化が設定されていません 

HTTP protocol property (Environment) #137

セキュリティスキャナーは KB の環境を分析し、HTTPS プロトコルが指定されているかどうかをチェックします。すなわち、[ Protocol specification ] プロパティが「Secure (HTTPS)」に設定されているかどうかをチェックします。
<Http protocol> に問題が見つかった場合、セキュリティスキャナーに次のメッセージが表示されます:
error: Code: 137 - HTTP プロトコルが安全ではありません

SameSite cookie attribute property #138 (このルールは GeneXus 17 Upgrade 5 以降で利用可能)

セキュリティスキャナーは KB 環境を分析し、[ SameSite cookie attribute ] プロパティの値が None に設定されているかどうかをチェックします。
設定されている場合、セキュリティスキャナーに次のメッセージが表示されます:
error: Code: 138 - SameSite cookie 項目属性が None に設定されています 

Multimedia.FromURL function usage #139 (このルールは GeneXus 18 Upgrade 1 以降で利用可能)

セキュリティスキャナーは、KB オブジェクトのソースセクションを分析し、マルチメディア データ タイプ (Image データタイプAudio データタイプVideo データタイプ) に対する FromURL 関数の使用をチェックします。
次のメッセージが表示されます:
error: Code: 139 - Multimedia.FromURL 関数が使用されています 

高度な設定

[ Security Objects White List ]

イメージ:46418.jpg
このフィールドを使用して、解析でホワイトリストに登録するオブジェクトおよびルールを選択できます。
イメージ:52580.png
イメージ:52581.png

[ Authorization Procedure ]

イメージ:46418.jpg
GAM を使用していない場合は、このフィールドを使用して、認可のロジックを含むプロシージャーまたはマスターページを挿入できます。スキャンの際、Authentication プロシージャーの呼び出しを含まないオブジェクト、または選択したマスターページを使用しないオブジェクトをエラーで通知します。
イメージ:46421.jpg
Master Page や Procedure とは異なるタイプのオブジェクトを指定した場合、スキャンはその設定を無視します。

MSBuild タスクを使用したセキュリティスキャナーの実行

Scan という、MSBuild スクリプトでスキャナーを実行できる新しいタスクを定義します。このタスクは、任意のサーバー側の CI/CD パイプラインに含めることができます。
このタスクは、セキュリティスキャナーの設定ウィンドウで設定済みの構成を実行します。
<Project DefaultTargets="SecurityScan" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <Import Project="$(GXInstall)\genexus.tasks.targets"/>
    <Import Project="$(GXInstall)\security.tasks.targets"/>

    <Target Name="SecurityScan">
        <OpenKnowledgeBase Directory="$(KBDir)"    />
        <SecurityScan XmlOutputFile="securityTest.xml"/>
    </Target>
</Project>
XmlOutputFile を指定することにより、Error や Warning を XML 形式で受け取ります。

コマンドラインからのスキャナーの実行

msbuild securityscantest.msbuild /verbosity:minimal /t:SecurityScan /p:KBDir=c:\mykbpath /p:GXInstall=c:\genexusinstalldir



Created: 21/08/23 23:28 by Admin Last update: 23/04/24 18:09 by Admin
カテゴリ
Powered by GXwiki 3.0