
إطار خداع يعتمد على LLM أولاً: "الحاوية الوهمية التي ترد عليك!™"

تقديم honeyprompt، إطار عمل خداع يعتمد على LLM أولاً، صُنع بواسطة/لمطوري الويب. مشروع شغف شخصي لـ @alectrocute.
يدعم جميع مزودي LLM الرئيسيين في السحابة والمحليين. SSH وHTTP وTLS وTCP وtelnet وغيرها. يأتي كحاوية صغيرة (وكثنائي ثابت واحد) ويحتفظ بكل المقابض في ملف واحد honeyprompt.yaml.
لا حاجة لتجميع الإضافات، ولا تشغيل قاعدة بيانات، سهل التوسع ويمكن نشره على أجهزة منخفضة المواصفات.
يتوفر مثيل تجريبي على 172.233.151.216، مع لوحة الويب غير الموثقة هنا:
http://172.233.151.216:9090. وهو مثيل عام لـ honeyprompt يعمل على VPS رخيص من Linode، مع openrouter/free كمزود/نموذج LLM الوحيد.
لأسهل إعداد في عام 2026، نوصي باستخدام Docker وOpenRouter/openrouter/free كمزود LLM. جميع مزودي LLM الرئيسيين في السحابة والمحليين مدعومون. ثلاثة ملفات وأمر واحد ينشر النشر الافتراضي الكامل: سبعة أدوات خداع مدعومة بـ LLM، تخزين دائم للأحداث، ولوحة المشغل.
1. احصل على التكوين الافتراضي وملف compose وقالب env:
# إذا لم يكن لديك Docker:
# curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
mkdir honeypot && cd honeypot
wget https://raw.githubusercontent.com/alectrocute/honeyprompt/main/honeyprompt.yaml
wget https://raw.githubusercontent.com/alectrocute/honeyprompt/main/compose.yaml
wget -O .env https://raw.githubusercontent.com/alectrocute/honeyprompt/main/.env.example
(أو استنسخ المستودع وانتقل إليه cd — نفس الملفات الثلاثة.)
2. املأ ملف .env. قيمتان مطلوبتان:
OPENROUTER_API_KEY=sk-or-... # استخدم مفتاحاً مخصصاً مع حد إنفاق
HONEYPROMPT_PANEL_PASSWORD=changeme # كلمة مرور المصادقة الأساسية للوحة
3. ابدأه:
docker compose up -d
4. اختبره:
ssh -p 2222 root@localhost # كلمة المرور: root — ثم اكتب أي شيء
curl http://localhost:2375/v1.54/containers/json # واجهة Docker API "المكشوفة"
5. شاهد ما يحدث في اللوحة للقراءة فقط على http://127.0.0.1:9090 (سجل الدخول باسم admin مع كلمة مرور اللوحة الخاصة بك). كل اتصال وبيانات اعتماد وأمر يتدفق مباشرة. إذا كنت منشوراً على مضيف بعيد، ستحتاج إلى كشف منفذ :9090 في compose.yaml. هذا غير موصى به لنشرات الإنتاج.
استخدم إصداراً مرقماً بدلاً من
latestلنشرات الإنتاج — عيّنHONEYPROMPT_IMAGEفي.env.
الملف honeyprompt.yaml الذي قمت بتنزيله للتو هو ملف توضيحي مشروح بالكامل. يشمل ملفات تعريف لـ:
/ يقدم صفحة nginx الترحيبية القياسية فوراً، والمسارات الأعمق تمر إلى LLM لصفحات إنترانت كاملة HTML/CSS ونماذج تسجيل الدخول ولوحات الإدارة المصممة لإبقاء المهاجم ينقر.[!مهم] حتى إذا كنت تستخدم LLM، حدد المسارات الأكثر استخداماً وأضف قواعد ثابتة لها. سيوفر لك هذا كمية هائلة من رموز LLM ويسرع الاستجابات للطلبات التي لا تستحق تكلفة استدعاء LLM. أمثلة عشوائية:
whoami، فحوصات الصحة، أيقونة المفضلة، استفسارات الإصدار، إلخ.
هذا الحد الأدنى من honeyprompt.yaml يزيّف صندوق SSH بقاعدتين ثابتتين وبدون LLM:
panel:
enabled: true
address: "0.0.0.0:8080"
events:
buffer: 2000
file: /data/events.jsonl # نشاط المهاجم الدائم
services:
- protocol: ssh
address: "0.0.0.0:2222"
description: "وحدة بناء Ubuntu 26.04 LTS"
serverName: "gpu-runner-07"
passwordRegex: "^(root|admin|123456)$" # كلمات المرور التي "تعمل"
commands:
- regex: "^whoami$"
handler: "root"
- regex: "^(.+)$"
handler: "bash: command not found"
docker run --rm \
-p 2222:2222 -p 8080:8080 \
-v "$(pwd)/honeyprompt.yaml:/etc/honeyprompt/honeyprompt.yaml:ro" \
-v honeyprompt-data:/data \
alectrocute/honeyprompt:latest
لنشر دائم، استخدم compose.yaml المرفق. يغطي دليل النشر إصدارات Docker Hub وأسرار GitHub المطلوبة وإعداد المنفذ والجدار الناري والوصول للوحة عبر SSH والترقيات والاستعادة وتخزين الأحداث والعزل.
كل ما على وعاء العسل (honeypot) فعله هو شيء واحد جيد: البقاء مقنعاً لفترة كافية حتى يستمر المهاجم في الكتابة. كل أمر ينفذه هو استخبارات — الأدوات التي يلجأ إليها، بيانات الاعتماد التي يعيد استخدامها، الثغرات (CVEs) التي يفترض أنك لم تقم بتصحيحها. وعاء العسل الثابت يخرج عن الشخصية بمجرد تشغيل أمر لم يتوقعه المؤلف. honeyprompt يسلم تلك اللحظة إلى LLM، بحيث تجيب الصدفة على dmesg | tail أو cat /etc/shadow بالطريقة التي يجيب بها النظام الحقيقي، وتستمر الجلسة.
شاهد عرض Adel Karimi الرائع في DEF CON 32 حول Galah، (أول؟) وعاء عسل LLM، الذي ألهم هذا المشروع: https://www.youtube.com/watch?v=XGsm4Qcc_Ag
هذا هو الجزء الذي يستحق الفهم مسبقاً، لأن الاثنين منفصلان عمداً:
تقوم بتكوينهما بشكل منفصل:
# العسل: نشاط المهاجم.
events:
buffer: 2000 # الأحداث الأخيرة محفوظة في الذاكرة للوحة
file: /data/events.jsonl # حفظ كل حدث كـ JSON Lines
# تشخيصات وقت التشغيل الخاصة به.
logging:
level: info # debug | info | warn | error
format: text # كيف يظهر على وحدة التحكم: text (مقروء للبشر) أو json
file: /data/honeyprompt.log # اختياري؛ على القرص يكون دائماً JSON
events.jsonl هو كائن JSON واحد مكتفي بذاته لكل سطر — جاهز لـ tail -f أو الإرسال إلى SIEM أو إعادة التشغيل باستخدام jq. أوامر Docker أعلاه تقوم بتركيب الـ volume المسمى honeyprompt-data في /data، لذا تبقى الأحداث حتى بعد استبدال الحاوية. يتم إلحاق كلا الملفين ويتم مسحهما عند الإغلاق النظيف.
format يؤثر فقط على كيفية عرض سجلات التشغيل على وحدة التحكم؛ ملف سجل التشغيل، عند تفعيله، يكون دائماً JSON منظم ليسهل تحليله.

لوحة تحكم اختيارية للقراءة فقط تبث أحداث الخداع فور حدوثها، وتصنفها حسب البروتوكول، وتصدر كل شيء بصيغة JSON بنقرة واحدة:
panel:
enabled: true
address: "0.0.0.0:8080"
auth: # مصادقة أساسية اختيارية
username: admin
password: "${HONEYPROMPT_PANEL_PASSWORD}"
لوحة التحكم هي HTML وCSS وجافا سكريبت عادية (src/panel/assets) مضمنة في الثنائي. اترك auth غير معرّف لتعطيل المصادقة.
كل مزود هو وحدة خاصة به مع مهلة زمنية وإعادة محاولات وحدود معدل ورؤوس خاصة به. المفاتيح تأتي من البيئة. خارج الصندوق: