Fichier de configuration IAST
Configurez un fichier JSON
pour remplacer les paramètres IAST par défaut et ne signaler que les vulnérabilités que vous souhaitez connaître.
Structure
Le fichier de configuration est user-config.json
et peut être déployé avant le démarrage de l'agent ou pendant l'exécution. Les modifications peuvent prendre quelques secondes pour prendre effet. Lorsqu'un fichier est ajouté, toute version précédente est désactivée. Si le fichier est supprimé, IAST revient à sa configuration par défaut.
{
"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
}
]
}
Deployment
Déployez l'agent IAST via l'API REST ASoC ou à partir d'un fichier local. Dans les deux cas, vous pouvez lancer la mise à jour pendant la surveillance active d'IAST et la mise à jour prendra effet dans un délai de quelques secondes.
Interface de programme d'application REST
- Envoyez une requête
FileUpload
. La réponse inclutFileId
. - Mettez à jour votre agent IAST avec le
FileId
que vous avez reçu.
Fichier local
Déployez le fichier de configuration en le copiant dans un répertoire sur le serveur. L'emplacement de déploiement correspond généralement au dossier temporaire du serveur. last
imprime l'emplacement sur stout
.
Options
Consignation
Zone | Valeurs | Description |
logLevel |
NONE, ERROR, WARNING, INFO, DEBUG, TRACE Par défaut : Débogage |
Le niveau de journalisation du fichier journal IAST. Remarque : La définition du niveau de journal sur TRACE peut affecter les performances de l'agent IAST. |
stdOutLogLevel |
ONE, ERROR, WARNING, INFO, DEBUG, TRACE Par défaut : INFORMATION |
Niveau de journalisation des événements IAST vers stdout .Remarque : Si vous affectez une valeur autre que INFO au niveau de journal, cela a un effet négatif sur les performances de l'agent IAST. |
maxSizeLogFileMB |
éntier Par défaut : 20 |
Pour éviter les fichiers de grande taille, lorsque le fichier journal IAST atteint un maximum prédéfini (en Mo), il est compressé et les nouveaux journaux sont enregistrés dans un nouveau fichier. Utilisez ce champ pour définir la taille de fichier maximale. |
Communication ASoC
Zone | Valeurs | Description |
reportToAsoc |
TRUE, FALSE Par défaut : TRUE |
Activez ou désactivez la génération de rapports sur ASoC. |
asocPollingIntervalInSec |
éntier Valeur par défaut : 10 |
Définissez la fréquence (en secondes) à laquelle IAST rapporte les problèmes détectés à ASoC. Remarque : La réduction de l'intervalle en dessous de 10s peut créer une surcharge importante sur les communications réseau avec ASoC. L'augmentation de l'intervalle nécessite une utilisation plus importante de la mémoire et peut entraîner une perte de données si l'agent IAST est arrêté avant l'envoi des données les plus récentes à ASoC. |
Générales
Zone | Valeurs | Description |
monitoredApp |
"monitoredApps": [ "app1", "app2"] limitera la surveillance à ces applications uniquement. |
Nomme les applications Web s'exécutant sur le serveur qui doivent être surveillées par IAST. Les autres seront ignorées. Si ce paramètre n'est pas défini, toutes les applications du serveur sont surveillées. Le nom de l'application est généralement dérivé du nom de fichier |
memoryThreshold |
Toute valeur entre 0,5 et 1,0 Par défaut : 0,95 |
Si l'utilisation de la mémoire JVM du client est supérieure à ce seuil, IAST se désactive automatiquement pour empêcher OutOfMemoryError . Si l'utilisation de la mémoire est inférieure à ce seuil, IAST se réactive automatiquement. |
hidePasswords |
Valeur booléenne. Par défaut : Faux | Lorsqu'ils sont définis sur True , les mots de passe ne s'affichent pas dans l'interface utilisateur ou le rapport, mais sont remplacés par la chaîne **CONFIDENTIAL** . |
Filtrage
Zone | Valeurs | Description |
ignoredMethods |
tableau de chaînes Par défaut : Aucun(e) |
Filtrez les problèmes d'exploitation (Cryptography.PoorEnpy, Cryptography.InsecureAlgorithm, etc.) en fonction de l'espace de noms. Remarque : Cela exclut tous les problèmes de l'espace de noms. |
com.hcl.appscan.systemtests.SystemTests
, ajoutez :"ignoredMethods": ["com.hcl.appscan.systemtests.SystemTests"]
Zone | Valeurs | Description |
ignoredNonSecureCookies, ignoredNonHttpOnlyCookies |
tableau de chaînes Par défaut : Aucun(e) |
IAST signale lorsque l'attribut secure n'est pas défini ou que l'attribut http-only d'un cookie est réglé. Pour filtrer un cookie spécifique, ajoutez le nom du cookie au fichier de configuration. |
"ignoredNonSecureCookies": ["myCookie"]
Désactiver les règles de sécurité
"securityRules": {
"CheckCsrf": false,
"CheckServerHeader": false,
"CheckXPoweredBy": false,
"CheckXAspNetVersion": false
}
}
Toutes les règles de sécurité sont activées par défaut. Grâce au fichier de configuration, vous pouvez désactiver certains types de rapport. Spécifiez uniquement les champs que vous souhaitez désactiver. Tous les autres champs resteront activés.
“CheckCsrf” : false
désactive la génération de rapports pour tous les problèmes de ce type.Zone | Valeurs | Description |
safeHeaders, safeCookies |
tableau de chaînes Par défaut : Aucun(e) |
Déclarez une valeur d'en-tête ou de cookie comme sûr via son nom. Ainsi, IAST cessera de suivre les entrées provenant de cet en-tête ou de ce cookie, de sorte que toute injection provenant de cette valeur ne sera pas signalée.
Conseil : Les noms d'en-tête HTTP sont sensibles à la casse. |
input2
. Pour filtrer tous les problèmes découlant de cette entrée, ajoutez :"safeHeaders": ["input2"]
Crochets
Exemple 1 : Sécurisation contre une vulnérabilité spécifique
myEscapeHtml
en classe com.myApp.common.MyEscapeUtils
à des fins de sécurisation contre l'attaque par script intersite, et la valeur de retour est nettoyée. Elle indique toujours si la valeur de retour se termine dans un collecteur SQL. par exemple,"hooks": [
{
"targets": [
"com.myApp.common.MyEscapeUtils"
],
"methods": [
"myEscapeHtml"
],
"parameters": [
["java.lang.String"]
],
"rules": [
{
"type": "sanitizer",
"from": "return",
"vulnerability": "CrossSiteScripting.Reflected"
}
],
"requiresSuperTypes": false
}
]
Exemple 2 : Sécurisation contre toutes les vulnérabilités
myEscapeAll
en classe com.myApp.common.MyEscapeUtils
à des fins de sécurisation pour tous les types de vulnérabilités, et la valeur de retour est nettoyée."hooks": [
{
"targets": [
"com.myApp.common.MyEscapeUtils"
],
"methods": [
"myEscapeAll"
],
"parameters": [
["java.lang.String"]
],
"rules": [
{
"type": " sanitizeAll",
"from": "return"
}
],
"requiresSuperTypes": false
}
]