Beelzebub est un cadre avancé de pot de miel conçu pour fournir un environnement hautement sécurisé pour détecter et analyser les cyberattaques. Il offre une approche de code faible pour une implémentation facile et utilise l'IA pour imiter le comportement d'un pot de miel à haute interaction.
Restez à jour sur les attaques en temps réel en rejoignant notre canal télégramme dédié: Channel Telegram
Pour mieux comprendre les capacités de Beelzebub, vous pouvez explorer notre exemple de référentiel: mariocandela / beelzebub-exemple
Nous fournissons deux options de démarrage rapide pour la construction et l'exécution de Beelzebub: à l'aide de Docker Compose ou du compilateur Go.
Construisez les images Docker:
$ docker-compose buildDémarrez Beelzebub en mode détaché:
$ docker-compose up -dTéléchargez les modules GO nécessaires:
$ go mod downloadConstruisez l'exécutable de Beelzebub:
$ go buildExécutez Beelzebub:
$ ./beelzebubInstaller la barre
Déployer Beelzebub:
$ helm install beelzebub ./beelzebub-chartProchaine version
$ helm upgrade beelzebub ./beelzebub-chartNous fournissons deux types de tests: les tests unitaires et les tests d'intégration.
Pour exécuter des tests unitaires:
$ make test.unitPour exécuter des tests d'intégration:
$ make test.dependencies.start
$ make test.integration
$ make test.dependencies.downBeelzebub propose une large gamme de fonctionnalités pour améliorer votre environnement de pot de miel:
Beelzebub permet une configuration facile pour différents services et ports. Créez simplement un nouveau fichier pour chaque service / port dans le répertoire /configurations/services .
Pour exécuter Beelzebub avec votre chemin personnalisé, utilisez la commande suivante:
$ ./beelzebub --confCore ./configurations/beelzebub.yaml --confServices ./configurations/services/Voici quelques exemples de configurations pour différents scénarios de pot de miel:
apiVersion : " v1 "
protocol : " http "
address : " :80 "
description : " Wordpress 6.0 "
commands :
- regex : " ^(/index.php|/index.html|/)$ "
handler :
<html>
<header>
<title>Wordpress 6 test page</title>
</header>
<body>
<h1>Hello from Wordpress</h1>
</body>
</html>
headers :
- " Content-Type: text/html "
- " Server: Apache/2.4.53 (Debian) "
- " X-Powered-By: PHP/7.4.29 "
statusCode : 200
- regex : " ^(/wp-login.php|/wp-admin)$ "
handler :
<html>
<header>
<title>Wordpress 6 test page</title>
</header>
<body>
<form action="" method="post">
<label for="uname"><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="uname" required>
<label for="psw"><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="psw" required>
<button type="submit">Login</button>
</form>
</body>
</html>
headers :
- " Content-Type: text/html "
- " Server: Apache/2.4.53 (Debian) "
- " X-Powered-By: PHP/7.4.29 "
statusCode : 200
- regex : " ^.*$ "
handler :
<html>
<header>
<title>404</title>
</header>
<body>
<h1>Not found!</h1>
</body>
</html>
headers :
- " Content-Type: text/html "
- " Server: Apache/2.4.53 (Debian) "
- " X-Powered-By: PHP/7.4.29 "
statusCode : 404 apiVersion : " v1 "
protocol : " http "
address : " :8080 "
description : " Apache 401 "
commands :
- regex : " .* "
handler : " Unauthorized "
headers :
- " www-Authenticate: Basic "
- " server: Apache "
statusCode : 401 Exemple avec Openai GPT-4:
apiVersion : " v1 "
protocol : " ssh "
address : " :2222 "
description : " SSH interactive OpenAI GPT-4 "
commands :
- regex : " ^(.+)$ "
plugin : " LLMHoneypot "
serverVersion : " OpenSSH "
serverName : " ubuntu "
passwordRegex : " ^(root|qwerty|Smoker666|123456|jenkins|minecraft|sinus|alex|postgres|Ly123456)$ "
deadlineTimeoutSeconds : 60
plugin :
llmModel : " gpt4-o "
openAISecretKey : " sk-proj-123456 "Exemple avec Olllama Llama3:
apiVersion : " v1 "
protocol : " ssh "
address : " :2222 "
description : " SSH Ollama Llama3 "
commands :
- regex : " ^(.+)$ "
plugin : " LLMHoneypot "
serverVersion : " OpenSSH "
serverName : " ubuntu "
passwordRegex : " ^(root|qwerty|Smoker666|123456|jenkins|minecraft|sinus|alex|postgres|Ly123456)$ "
deadlineTimeoutSeconds : 60
plugin :
llmModel : " llama3 "
host : " http://example.com/api/chat " # default http://localhost:11434/api/chat apiVersion : " v1 "
protocol : " ssh "
address : " :22 "
description : " SSH interactive "
commands :
- regex : " ^ls$ "
handler : " Documents Images Desktop Downloads .m2 .kube .ssh .docker "
- regex : " ^pwd$ "
handler : " /home/ "
- regex : " ^uname -m$ "
handler : " x86_64 "
- regex : " ^docker ps$ "
handler : " CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES "
- regex : " ^docker .*$ "
handler : " Error response from daemon: dial unix docker.raw.sock: connect: connection refused "
- regex : " ^uname$ "
handler : " Linux "
- regex : " ^ps$ "
handler : " PID TTY TIME CMD n 21642 ttys000 0:00.07 /bin/dockerd "
- regex : " ^(.+)$ "
handler : " command not found "
serverVersion : " OpenSSH "
serverName : " ubuntu "
passwordRegex : " ^(root|qwerty|Smoker666)$ "
deadlineTimeoutSeconds : 60 Nos plans futurs pour Beelzebub incluent le développer en une plate-forme PaaS robuste.
L'équipe de Beelzebub accueille les contributions et la participation du projet. Que vous souhaitiez signaler des bogues, contribuer de nouvelles fonctionnalités ou avoir des questions, veuillez vous référer à notre guide de contributeur pour des informations détaillées. Nous encourageons tous les participants et maintenseurs à adhérer à notre code de conduite et à favoriser une communauté favorable et respectueuse.
Joyeux piratage!
BEELZEBUB est concédé sous licence MIT.