Spaces:
Running
Workshop 1 : Analyse de Journaux Système avec un Modèle NVIDIA LLM
Utilisation des Modèles LLM pour la Détection d'Anomalies en Cybersécurité
Introduction
Ce TP a pour objectif de vous initier à l’utilisation des modèles de langage (LLM) open-source dans le domaine de la cybersécurité. Nous allons utiliser le modèle LLaMA-3.1-Nemotron-70B-Instruct fourni par NVIDIA pour analyser des journaux système, détecter des anomalies et générer des recommandations de sécurité.
Objectifs
- Comprendre comment utiliser l’API NVIDIA pour exploiter un modèle de langage avancé.
- Apprendre à analyser des journaux système avec un modèle LLM.
- Automatiser la génération de rapports de sécurité.
Prérequis
- Compte NVIDIA NGC : Créez un compte ici.
- Clé API NVIDIA : Générez une clé API dans votre tableau de bord NVIDIA NGC.
- Google Colab : Utilisez une instance Colab pour exécuter ce TP.
- Documentation de l'API NVIDIA : Consultez ce lien.
Étape 1 : Configuration de l’API NVIDIA
1.1 Installation des Bibliothèques
Exécutez la cellule suivante dans Google Colab pour installer les dépendances :
!pip install openai
1.2 Configuration de l’API
Créez un client pour interagir avec l’API NVIDIA.
from openai import OpenAI
# Configurer le client NVIDIA
client = OpenAI(
base_url="https://integrate.api.nvidia.com/v1",
api_key="VOTRE_API_KEY" # Remplacez par votre clé API NVIDIA
)
print("API NVIDIA configurée avec succès.")
Remarque : Remplacez VOTRE_API_KEY par votre clé API NVIDIA.
Étape 2 : Chargement des Journaux Système
2.1 Simulation de Journaux
Créez une liste contenant des journaux système simulés :
# Journaux système simulés
logs = [
"2025-01-10 12:00:01 User 'admin' logged in from IP 192.168.1.10",
"2025-01-10 12:15:23 Failed login attempt for user 'root' from IP 10.0.0.15",
"2025-01-10 12:20:45 User 'john' downloaded sensitive file 'confidential.pdf'",
"2025-01-10 12:35:50 Unusual traffic detected from IP 10.0.0.20",
"2025-01-10 12:50:10 User 'admin' performed a password reset for user 'guest'"
]
print("Journaux système chargés :")
for log in logs:
print(log)
Étape 3 : Analyse des Journaux avec NVIDIA LLM
3.1 Préparer le Prompt
Le prompt est une instruction que nous envoyons au modèle pour effectuer une analyse.
# Créer un prompt pour le modèle
prompt = f"""
Voici une liste de journaux système :
{chr(10).join(logs)}
1. Identifiez les événements suspects ou inhabituels.
2. Expliquez pourquoi ces événements sont problématiques.
3. Proposez des recommandations pour éviter ces problèmes à l'avenir.
"""
print("Prompt créé pour le modèle.")
3.2 Envoyer le Prompt à l’API
Utilisez l’API NVIDIA pour analyser les journaux.
# Envoyer la requête à l’API NVIDIA
completion = client.chat.completions.create(
model="nvidia/llama-3.1-nemotron-70b-instruct",
messages=[{"role": "user", "content": prompt}],
temperature=0.5,
top_p=1,
max_tokens=1024,
stream=True
)
# Afficher la réponse en continu
print("\n### Résultat d'analyse ###")
for chunk in completion:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
Étape 4 : Sauvegarder le Rapport
4.1 Enregistrer le Rapport
Les résultats générés par le modèle peuvent être sauvegardés pour une analyse ultérieure.
# Sauvegarder le rapport généré
rapport = ""
for chunk in completion:
if chunk.choices[0].delta.content is not None:
rapport += chunk.choices[0].delta.content
with open("rapport_securite.txt", "w") as file:
file.write(rapport)
print("\nLe rapport a été sauvegardé sous 'rapport_securite.txt'.")
Discussions et Questions
Questions pour les étudiants
- Quels événements ont été identifiés comme suspects ?
- Les recommandations sont-elles pertinentes ?
- Comment pourrait-on améliorer l’analyse pour des systèmes réels ?
Suggestions d’amélioration
- Ajouter des journaux système réels pour tester la robustesse.
- Personnaliser les modèles avec des données d’entraînement spécifiques.
- Automatiser la classification des événements par gravite : critique, moyenne, faible.
Conclusion
Ce TP vous a permis de :
- Configurer un modèle LLM NVIDIA.
- Analyser des journaux système et détecter des anomalies.
- Générer un rapport automatisé de sécurité.
Si vous avez des questions ou souhaitez explorer d’autres cas d’usage, n’hésitez pas à les poser à la fin du workshop.