IAST 構成ファイル
デフォルトの IAST 設定をオーバーライドして、把握したい脆弱性のみをレポートするように JSON
ファイルを構成します。
構造体
構成ファイルは user-config.json
であり、エージェントの開始前または実行時に配置できます。変更が有効になるまで数秒かかる場合があります。ファイルが追加されると、以前のバージョンは無効になります。ファイルが削除された場合、IAST はデフォルト構成に戻ります。
{
"logging": {
"logLevel": "ERROR",
"stdoutLogLevel": "DEBUG",
"maxSizeLogFileMB": 100
},
"monitoredApps": [
"app1", "app2"
],
"asoc": {
"reportToAsoc": true,
"asocPollingIntervalInSec": 10
},
"memoryThreshold": 0.85,
"ignoredMethods": [
"DriverManager.getConnection"
],
"ignoredNonSecureCookies": [
"myCookieName"
],
"ignoredNonHttpOnlyCookies": [
"anotherCookieName"
],
"securityRules": {
"CheckCsrf": false,
"CheckServerHeader": false,
"CheckXPoweredBy": false,
"CheckXAspNetVersion": false
},
"safeHeaders": ["MySafeHeader", "MyOtherSafeHeader"],
"safeCookies": ["MySafeCookie", "MyOtherSafeCookie"],
"hidePasswords": true
"hooks": [
{
"targets": [
"com.ibm.myApp.common.MyEscapeUtils"
],
"methods": [
"myEscapeHtml"
],
"parameters": [
["java.lang.String"]
],
"rules": [
{
"type": " sanitizer",
"from": "return",
"vulnerability": "CrossSiteScripting.Reflected"
}
],
"requiresSuperTypes": false
}
]
}
配備
IAST エージェントは、ASoC REST API またはローカル・ファイルから配置します。どちらの場合も、IAST がアクティブに監視している間に更新でき、数秒以内に更新が有効になります。
REST API
- 要求
FileUpload
を送信します。応答にはFileId
が含まれます。 - 受信した
FileId
を使用して IAST エージェントを更新します。
ローカル・ファイル
構成ファイルは、サーバー上のディレクトリーにコピーすることで配置します。配置場所は通常、サーバーの一時フォルダーです。last
でこの場所が stout
に出力されます。

オプション(O)
ロギング
フィールド | 値 | 説明 |
logLevel |
NONE、ERROR、WARNING、INFO、DEBUG、TRACE デフォルト: DEBUG |
IAST ログ・ファイルのロギング・レベル。 注: ログ・レベルを TRACE に設定すると、IAST エージェントのパフォーマンスが低下する可能性があります。 |
stdOutLogLevel |
ONE、ERROR、WARNING、INFO、DEBUG、TRACE デフォルト: 情報 |
stdout への IAST イベントのロギング・レベル。注: ログ・レベルを INFO 以外の値に設定すると、IAST エージェントのパフォーマンスが低下します。 |
maxSizeLogFileMB |
Integer デフォルト: 20 |
大きなファイルを避けるために、IAST ログ・ファイルが事前定義された最大値 (MB 単位) に達すると、そのファイルは圧縮されて、新しいログは新しいファイルに保存されます。このフィールドで最大ファイル・サイズを設定します。 |
次との通信: ASoC
フィールド | 値 | 説明 |
reportToAsoc |
TRUE、FALSE デフォルト: TRUE |
ASoC へのレポートを有効化または無効化します。 |
asocPollingIntervalInSec |
Integer デフォルトは 10 です |
検出された問題を IAST が ASoC にレポートする頻度 (秒単位) を定義します。 注: 間隔を10 秒未満に縮めると、ASoC とのネットワーク通信に大きなオーバーヘッドが発生する場合があります。この間隔を延ばすと、メモリー使用量が増加し、最新のデータが ASoC に送信される前に IAST エージェントが停止すると、データが失われるおそれがあります。 |
標準
フィールド | 値 | 説明 |
monitoredApp |
"monitoredApps": [ "app1", "app2"] は、監視をこれらのアプリケーションのみに制限します。 |
IAST によって監視されるサーバー上で実行される Web アプリケーションの名前。その他は無視されます。 定義されていない場合、サーバー上のすべてのアプリケーションが監視されます。 アプリケーション名は通常、 |
memoryThreshold |
0.5 から 1.0 までの値 デフォルト: 0.95 |
クライアントの JVM メモリー使用量がこのしきい値を超えると、OutOfMemoryError を回避するために、IAST が自動的に無効化されます。メモリー使用量がしきい値を下回った場合は、IAST が自動的に有効化されます。 |
hidePasswords |
ブール値。デフォルト: 偽 | True に設定すると、パスワードはユーザー・インターフェースやレポートには表示されませんが、ストリング **CONFIDENTIAL** に置き換えられます。 |
フィルタリング
フィールド | 値 | 説明 |
ignoredMethods |
ストリングの配列 デフォルト: None |
名前空間に基づいて、エクスプロイトの問題 (Cryptography.PoorEntrpy、Cryptography.InsecureAlgorithm など) をフィルターにより除外します。 注: これにより、その名前空間からのすべての問題が除外されます。 |

com.hcl.appscan.systemtests.SystemTests
からのすべての問題をフィルターにより除外するには、以下を追加します。"ignoredMethods": ["com.hcl.appscan.systemtests.SystemTests"]
フィールド | 値 | 説明 |
ignoredNonSecureCookies, ignoredNonHttpOnlyCookies |
ストリングの配列 デフォルト: None |
セキュア属性が設定されていない場合、または Cookie の http のみ属性が設定されている場合は、IAST により報告されます。特定の Cookie をフィルターで除外するには、構成ファイルに Cookie 名を追加します。 |

"ignoredNonSecureCookies": ["myCookie"]
セキュリティー・ルールの無効化
"securityRules": {
"CheckCsrf": false,
"CheckServerHeader": false,
"CheckXPoweredBy": false,
"CheckXAspNetVersion": false
}
}
デフォルトでは、すべてのセキュリティー・ルールが有効になっています。構成ファイルを使用して、レポート・タイプの一部を無効にできます。無効化するフィールドのみを指定します。他のフィールドはすべて有効化されたままになります。
“CheckCsrf” : false
では、このタイプのすべての問題のレポートが無効化されます。
フィールド | 値 | 説明 |
safeHeaders, safeCookies |
ストリングの配列 デフォルト: None |
ヘッダーまたは Cookie の値を、その名前で安全と宣言します。これにより、IAST でこのヘッダーまたは Cookie からの入力の追跡が停止されるため、この値からの注入がレポートされなくなります。
ヒント: HTTP ヘッダー名では、大文字と小文字は区別されません。 |

input2
というヘッダーです。この入力によって発生したすべての問題をフィルタリングするには、次を追加します。"safeHeaders": ["input2"]
フック
例 1: 特定の脆弱性のサニタイズ
com.myApp.common.MyEscapeUtils
内のメソッド myEscapeHtml
をクロスサイト・スクリプティング用のサニタイザーとして定義し、戻り値が消去されます。戻り値が最終的に SQL シンクに格納されるかどうかは、引き続きレポートされます。例えば、"hooks": [
{
"targets": [
"com.myApp.common.MyEscapeUtils"
],
"methods": [
"myEscapeHtml"
],
"parameters": [
["java.lang.String"]
],
"rules": [
{
"type": "sanitizer",
"from": "return",
"vulnerability": "CrossSiteScripting.Reflected"
}
],
"requiresSuperTypes": false
}
]
Example 2: すべての脆弱性からのサニタイズ
com.myApp.common.MyEscapeUtils
内のメソッド myEscapeAll
をすべての脆弱性タイプのサニタイザーとして定義し、戻り値が消去されます。"hooks": [
{
"targets": [
"com.myApp.common.MyEscapeUtils"
],
"methods": [
"myEscapeAll"
],
"parameters": [
["java.lang.String"]
],
"rules": [
{
"type": " sanitizeAll",
"from": "return"
}
],
"requiresSuperTypes": false
}
]