Il s'agit de la première étape pour diagnostiquer vous-même votre problème New Relic IAST, utilisez ce guide pour résoudre les problèmes rapidement.
Si vous ne trouvez pas votre problème répertorié ici, vous pouvez toujours contacter le support New Relic.
Allez à one.newrelic.com > All capabilities > IAST > Tests. Cliquez sur une application pour vérifier l'efficacité des tests d'application, les vulnérabilités, les API couvertes et les appels de méthodes, entre autres données.
IAST nécessite le redémarrage de l'application après son activation.
S'il s'agit d'une nouvelle application, les pare-feu peuvent l'empêcher de communiquer avec la plateforme NR. Vérifiez la section des statistiques de service dans le fichier avec le dernier horodatage dans nr-security-home/logs/snapshots
. Les 6 éléments de cette liste devraient tous indiquer OK. Si ce n'est pas le cas, consultez le log pour obtenir des informations supplémentaires ou contactez l'assistance New Relic. Vous pouvez également consulter la documentation standard du pare-feu.
Si vous pouvez voir votre application dans l'UI de New Relic et que l'agent de sécurité a démarré IAST avec succès, mais que vous ne voyez pas de vulnérabilités dans l'UI, vérifiez les éléments suivants :
Le niveau d'efficacité de votre application : Accédez à one.newrelic.com > All capabilities > IAST > Tests. Recherchez votre candidature et consultez la section résumé. Si la couverture IAST est faible pour votre application, ajoutez des cas de test supplémentaires à votre application pour obtenir un niveau d'efficacité de test plus élevé.
La couverture IAST : Accédez à one.newrelic.com > All capabilities > IAST > Tests. Recherchez votre application et cliquez dessus. Dans la section Résumé, vérifiez si la couverture de l'analyse IAST est élevée et qu'aucune vulnérabilité n'est détectée, cela signifie que votre application est sécurisée.
La catégorie framework ou de vulnérabilités de votre application n'est pas prise en charge.
Si après avoir vérifié ces éléments, vous ne voyez toujours pas de vulnérabilités dans IAST, veuillez contacter le support New Relic.
Si vous ne voyez pas votre application dans one.newrelic.com > All capabilities > IAST > Tests, vérifiez les points suivants :
- Votre candidature est opérationnelle : consultez le processus de candidature ou la page APM & Services.
- Le log de l'application pour savoir s'il y a un problème.
- La version de votre agent APM et mettez-la à jour si nécessaire.
- Le fichier de configuration
newrelic.yml
inclut la modification des paramètres comme indiqué sur la page d'installation. - Accédez au répertoire
nr-security-home/logs
et recherchez la ligne[SETP-8]
dans le fichierLANGUAGE-security-collector-init.log
. Vérifiez s’il y a une erreur inattendue et sachez ce qui a échoué. - L'application a du trafic. Générez du trafic pour permettre à IAST de tester votre application.
- Proxy ou pare-feu bloquant l'accès. Ajoutez à la liste blanche les IP suivantes
3.134.136.130, 18.219.177.104, 18.117.21.106
pour le domaine csec.nr-data.net, les IP suivantes3.130.22.102, 3.138.243.136, 3.139.218.150
pour le domaine csec-gov.nr-data.net et les IP suivantes18.185.235.118, 3.125.193.113, 3.75.166.122
pour le domaine csec.eu01.nr-data.net. Mais notre recommandation est d'ajouter le domaine dans la liste blanche plutôt que les IP car ces IP sont vouées à changer à tout moment. - Le certificat TLS est correct. Ajoutez le certificat CA Let's Encrypt (téléchargez à partir de Certificats Let's Encrypt) à votre magasin de confiance local. Incluez à la fois les certificats racine et les certificats intermédiaires (ISRG Root X1 et Let's Encrypt R3) pour établir la chaîne de confiance complète.
- La catégorie framework ou de vulnérabilités de votre application est prise en charge.
Important
Si vous utilisez le mode haute sécurité d'APM, l'agent ne fonctionnera pas.
Pour le désactiver, vous devez contacter le support New Relic.
Lorsque l'agent de sécurité fonctionne correctement :
Vous voyez votre application dans one.newrelic.com > All capabilities > IAST > Tests. L'application est démarrée et du trafic est généré.
Dans le répertoire
nr-security-home/logs
, recherchez le fichierLANGUAGE-security-collector-init.log
. RemplacezLANGUAGE
dans le nom de fichier par celui que vous utilisez. Recherchez ces étapes pour voir où se situe le problème :- [ÉTAPE 1] : L’agent de sécurité démarre.
- [ÉTAPE 2] : L’agent de sécurité génère un identifiant unique. Pour la connexion au socket Web, vous verrez les en-têtes d'authentification du nœud.
- [ÉTAPE 3] : L’agent de sécurité collecte des informations sur votre application.
- [ÉTAPE 4] : La connexion du socket Web au validateur SaaS est établie avec succès.
- [ÉTAPE-5] : Les threads de l’agent de sécurité ont démarré.
- [ÉTAPE-6] : L’instrumentation de l’application est réussie.
- [ÉTAPE 7] : L’application reçoit et applique vos politiques et votre configuration.
- [ÉTAPE-8] : Vous voyez un premier événement envoyé pour validation, ce qui signifie que l’agent de sécurité a démarré avec succès.
Voici un extrait d'un fichier de log d'agent de sécurité
LANGUAGE-security-collector-init.log
:Init Log File initiated.Init Logger configured successfully with level: INFO and rollover on max size 52428800.2023-05-26 10:45:02 : [8] [New Relic RPM Connection Service] INFO : com.newrelic.api.agent.security.Agent - [STEP-1] => Security agent is starting2023-05-26 10:45:02 : [8] [New Relic RPM Connection Service] INFO : com.newrelic.agent.security.AgentInfo - [STEP-2] => Generating unique identifier: 8a6d79c3-ad67-35d6-b811-17f7515b7f292023-05-26 10:45:02 : [8] [New Relic RPM Connection Service] INFO : com.newrelic.api.agent.security.Agent - [STEP-3] => Gathering information about the application
Vous pouvez vérifier si IAST fonctionne, même si vous voyez votre application dans l' et que IAST UI l'agent de sécurité a démarré avec succès. Suivez ces étapes pour le vérifier :
Allez à one.newrelic.com > All capabilities > IAST > Tests.
Recherchez votre application dans l’onglet Application tests et cliquez dessus.
Affichez les détails du test, notamment APIs covered, methods calls et application testing efficiency.
De plus, si vous définissez le niveau de log sur debug/finest, vous pouvez rechercher Fuzz request received dans le fichier
nr-security-home/logs/java-security-collector.log
. Cela montre que l'analyse IAST est en cours.
L'IAST démarre les tests lorsqu'il détecte qu'il y a du trafic, alors vérifiez si votre application fonctionne ou si du trafic lui est dirigé. Effectuez l'UI ou les points de terminaison d'API de l'application.
Voici les raisons pour lesquelles l'IAST ne détecte pas les vulnérabilités connues :
IAST ne prend pas en charge le framework d'application.
Il n'y a pas d'instrumentation pour le module.
Votre application peut afficher un trafic et une latence élevés pendant un certain temps dans le cadre de l'IAST. Cela devrait se résoudre dans quelques minutes une fois le test IAST terminé.
Vous pouvez également consulter le fichier instantané de log dans le dossier nr-security-home/logs/snapshots
. Le fichier log vous montre l'état de l'agent de sécurité, l'utilisation des ressources et les cinq dernières erreurs.
Si votre application dispose de la fonctionnalité permettant de créer des fichiers et des répertoires dans le cadre de la diffusion d'une requête HTTP, IAST tentera de tester le chemin du code et, par conséquent, de créer ces fichiers et répertoires. Le code de l'application, sous l'influence des requests HTTP entrantes, crée ces fichiers. L'agent ne peut pas les supprimer.
Si vous êtes sûr qu'aucune de vos API ne peut créer de fichiers et de répertoires, partagez configuration de votre application et connectez-vous avec le support New Relic.
Dans le cadre de IAST, l'agent de sécurité envoie de nouvelles requests à l'application qui augmentent la charge, entraînant une augmentation de l'utilisation des ressources. Cette analyse IAST peut également révéler des erreurs ou des exceptions non détectées dans votre application.
Si l'application est bloquée en raison d'un manque de ressources, augmentez les ressources, redémarrez l'application et effectuez à nouveau l'IAST.
Vous pouvez mettre à jour le appId
dans la requête ci-dessous et l'exécuter dans le générateur de requêtes pour trouver toutes les vulnérabilités signalées pour votre application.
SELECT * FROM Vulnerability WHERE issueType = 'Application Vulnerability' AND appId = YOU_APPLICATION_ID
Mettez à jour le statut de vos vulnérabilités si vous pensez que IAST a signalé un faux positif. Suivez ces étapes :
Recherchez votre application : Accédez à one.newrelic.com > All capabilities > IAST > Tests.
Cliquez sur l’onglet Toutes les applications et sélectionnez les vulnérabilités qui ne sont pas des vulnérabilités réelles.
Dans la section Détails des vulnérabilités, vous pouvez mettre à jour l'état des vulnérabilités signalées. Vous pouvez mettre à jour son statut pour :
- faux positif
- Résolu
- Non résolu
Si vous souhaitez répertorier les vulnérabilités pour lesquelles vous avez mis à jour le statut, vous pouvez appliquer le filtre dans la liste des vulnérabilités exploitables détectées.
Pour Golang, assurez-vous d'avoir importé le package instrumentation requis pour la bibliothèque et le framework utilisés par votre application.
Par instance, supposons que votre application utilise une bibliothèque pour Mongo DB. Pour cette bibliothèque spécifique, vous devez importer ce package d'instrumentation depuis newrelic :
import ("github.com/newrelic/go-agent/v3/integrations/nrsecurityagent""github.com/newrelic/go-agent/v3/newrelic""github.com/newrelic/csec-go-agent/instrumentation/csec_mongodb_mongo""go.mongodb.org/mongo-driver/mongo")En fonction des exigences de votre application, il existe d'autres packages que vous devrez peut-être importer. Consultez ici la liste des packages pris en charge.
Assurez-vous d'avoir importé le package correspondant pour chaque module.
Si vous ouvrez un point de terminaison de protocole HTTP, placez la fonction
newrelic.WrapListen
autour du nom du point de terminaison pour activer l'examen des vulnérabilités par rapport à ce point de terminaison :http.ListenAndServe(newrelic.WrapListen(":YOUR_PORT_NUMBER"), nil)Important
Vous pouvez ignorer cette étape si vous êtes dans un environnement Linux.
Pour un cas spécifique de Outbound HTTP Request ou d'appels à des services externes, vous devez mettre à jour votre méthode d'application.
IAST est pris en charge pour l'environnement Windows. Cependant, pour certaines applications Java, vous pouvez être confronté à classCirculatoryError
et avoir besoin de désactiver l'instrumentation de faible priorité dans la configuration de l'agent comme suit :
Désactiver l'instrumentation de faible priorité dans la configuration de sécurité :
low-priority-instrumentation:enabled: falseExclure la classe d’instrumentation à faible priorité de la classe transformateur. Pour ce faire, ajoutez les lignes données dans la section
class_transformer
du fichier de configuration :com.newrelic.instrumentation.security.low-priority-instrumentation:enabled: false
Non, nous n'avons pas d'API pour télécharger les résultats de l'IAST.
IAST envoie de nouvelles requests à l'application en fonction de ce qu'il observe lors des tests. L’objectif est de déterminer si des comportements malveillants sont possibles, ce qui implique l’invocation d’appels d’API et de méthodes supplémentaires à l’aide d’une charge utile d’exploitation. Cela peut entraîner une manipulation indésirable des données clients et le déclenchement des services de protection d'exécution.