??中文| Anglais |文档/Wiki | ❓提问/Problèmes |讨论/Discussions
安全 / 审计 / 便捷
HuggingFace
AutoAudit-7B, cette version est une version de démonstration formée sur Alpaca-Lora. Il fonctionne admirablement dans le domaine de la sécurité des réseaux, donnant des réponses satisfaisantes en anglais. Cependant, il manque actuellement de compréhension contextuelle et nécessite un modèle de paramètres plus large pour remédier à cette limitation.
AutoAudit-8B-Instruct, cette version est affinée sur la base de Llama3-8B-instruct, et ses performances en matière de réponse aux requêtes liées à la cybersécurité se sont considérablement améliorées. Les capacités fondamentales du modèle ont également connu une amélioration substantielle par rapport à AutoAudit-7B.
AutoAudit-Qwen, en raison de la disponibilité limitée du corpus chinois de cybersécurité, ce modèle est encore en phase d'exploration et de planification.
D'autres LLM seront bientôt disponibles
Ce projet explore l'application des grands modèles linguistiques (LLM) au sein de la cybersécurité, motivée par la complexité du domaine et le besoin critique de mécanismes de défense robustes. La cybersécurité englobe divers domaines tels que les systèmes d'exploitation, les protocoles réseau, l'analyse des logiciels malveillants et la détection des menaces . À mesure que les cybermenaces gagnent en sophistication et en ampleur, les LLM constituent une voie prometteuse pour améliorer la détection, l’analyse et la réponse aux menaces grâce à des capacités avancées de traitement du langage. Leur capacité à interpréter, générer et synthétiser de grandes quantités de données positionne les LLM comme un outil de transformation pour relever les défis complexes de cybersécurité.
Par rapport aux méthodes traditionnelles, les LLM peuvent être affinés pour s'adapter au paysage des menaces en constante évolution, fournissant des connexions de connaissances inter-domaines et des réponses d'urgence exploitables. Ils peuvent également automatiser des tâches analytiques répétitives, intégrer des données provenant de sources multiples et générer des évaluations des risques qui capturent les menaces subtiles, améliorant ainsi l'adaptabilité et la résilience des systèmes de sécurité. Par conséquent, les LLM jouent un rôle crucial dans le renforcement des cadres de défense en matière de cybersécurité, en offrant un soutien amélioré aux experts et en permettant une protection plus complète et plus flexible.
Pour une commodité interactive et pour aborder des scénarios pratiques d'audit de sécurité, nous avons couplé le modèle AutoAudit avec ClamAV pour créer une plate-forme d'analyse de sécurité (avec l'interface inspirée des modèles Bootstrap). Si vous souhaitez télécharger directement le modèle AutoAudit, vous pouvez visiter HuggingFace pour obtenir les poids.
Téléchargez le contenu de ce référentiel sur votre serveur local ou distant :
git clone [email protected]:ddzipp/AutoAudit.git
cd AutoAudit
Créez un environnement Conda :
conda create --name AutoAudit python=3.8
conda activate AutoAudit
Installer les dépendances :
pip install -r requirements.txt
Installez ClamAV et ajoutez ClamAV au chemin de l'environnement.
Définissez les chemins pour le modèle de lama et les poids Lora dans le bac à sable :
sandbox/yahma/llama-7b-hf
sandbox/lilBuffaloEirc/autoaudit_20230703_attempt2
Exécutez la commande suivante pour démarrer le projet :
python manage.py runserver
Nous avons adopté la méthode d'organisation des jeux de données Self-Instruct, qui combine annotation humaine et données auto-générées. L'ensemble de données provient principalement de Github, Kaggle, de sites Web de sécurité et d'ensembles de données de vulnérabilités de sécurité accessibles au public. Par la suite, il subit un nettoyage et une augmentation des données pour construire des données de dialogue. L'ensemble de données est strictement organisé au format d'ensemble de données du modèle Alpaca, divisé en trois parties : instruction, entrée et sortie. Dans le résultat, nous spécifions que l'analyse doit inclure des informations détaillées (analyse), une évaluation de sécurité (étiquette), des risques de sécurité (risque) et des solutions correspondantes (solution). Pour obtenir des informations détaillées sur l'ensemble de données (y compris le format et l'organisation), reportez-vous aux données de formation AutoAudit. Voici quelques exemples :
question | répondre | Sujet |
---|---|---|
Veuillez évaluer si cette déclaration comporte des vulnérabilités de sécurité :" ou pg_sleep ( TIME ) --" | 1. analyse : l'instruction SQL semble tenter une injection SQL en injectant une commande sleep à l'aide de la fonction 'pg_sleep'.n 2. étiquette : élevén 3. risque : l'instruction SQL donnée présente un risque élevé d'injection SQL. Il utilise la fonction 'pg_sleep' pour tenter une attaque aveugle par injection SQL basée sur le temps.n 4. solution : Implémentez une validation et un paramétrage d'entrée appropriés pour empêcher les attaques par injection SQL. | Analyse SQL |
Veuillez analyser si cet extrait de code Python présente des risques de sécurité:"import socketnimport jsonnimport osnimport subprocessnimport base64nnclass Backdoor:n def init (self, ip, port):n self.connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)n self.connection.connect((ip, port))" | 1. analyse : L'extrait de code Python définit une classe nommée 'Backdoor' avec une méthode d'initialisation ' init '. La classe établit une connexion socket à une adresse IP et un port spécifiés.n 2. étiquette : Faiblen 3. risque : L'extrait de code Python donné présente un faible risque de sécurité. Il établit principalement une connexion socket, qui est une opération réseau courante. Cependant, le risque de sécurité réel dépend des détails d'implémentation de la classe et de son utilisation.n 4. solution : assurez-vous que la classe 'Backdoor' et son utilisation disposent de mesures de sécurité appropriées, telles qu'une validation d'entrée appropriée et des protocoles de communication sécurisés. , les contrôles d'accès et la gestion des erreurs, pour atténuer les risques de sécurité potentiels. | Analyse du code Python |
Quel est l’objectif de la liste de révocation de certificats (CRL) ? | L'objectif de la liste de révocation de certificats (CRL) est de répertorier les certificats numériques révoqués par l'autorité de certification (CA) émettrice avant leur date d'expiration prévue, indiquant qu'ils ne doivent plus être fiables. | Questions et réponses sur les connaissances en matière de sécurité |
La composition de l'ensemble de données utilisé pour entraîner le modèle actuel et leurs proportions correspondantes sont les suivantes :
Pour simplifier le processus de génération automatisée d'ensembles de données, nous avons également mis à jour le GPT dans le GPT Store dédié à la génération d'ensembles de données d'assurance qualité de cybersécurité, et les résultats de la génération sont les suivants :
Je tiens à remercier mon ami Eric Ma; Travailler avec lui pour améliorer continuellement ce projet a été l'une des expériences les plus significatives. Je tiens également à exprimer ma gratitude au CUHKSZ He Lab, où j'ai beaucoup appris et consolidé mon orientation vers de nouvelles améliorations. Enfin, j'adresse mes remerciements à tous les membres de la communauté open source. Merci pour votre soutien et votre aide. Je ferai de mon mieux pour développer mon projet, j'espère qu'il vous plaira.