WorkshopCyberAI / workshop1.md
sallani's picture
Upload 10 files
2223769 verified

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

  1. Comprendre comment utiliser l’API NVIDIA pour exploiter un modèle de langage avancé.
  2. Apprendre à analyser des journaux système avec un modèle LLM.
  3. Automatiser la génération de rapports de sécurité.

Prérequis

  1. Compte NVIDIA NGC : Créez un compte ici.
  2. Clé API NVIDIA : Générez une clé API dans votre tableau de bord NVIDIA NGC.
  3. Google Colab : Utilisez une instance Colab pour exécuter ce TP.
  4. 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

  1. Quels événements ont été identifiés comme suspects ?
  2. Les recommandations sont-elles pertinentes ?
  3. Comment pourrait-on améliorer l’analyse pour des systèmes réels ?

Suggestions d’amélioration

  1. Ajouter des journaux système réels pour tester la robustesse.
  2. Personnaliser les modèles avec des données d’entraînement spécifiques.
  3. 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.