
إطار عمل خادع منخفض التفاعل قابل للتكوين عبر YAML لنشر خوادم خداع تستند إلى HTTP/HTTPS مع مصائد مدمجة وتكامل سجلات Datadog.
HASH هو إطار عمل لإنشاء ونشر الـ Honeypots منخفضة التفاعل.

الفلسفة الأساسية لـ HASH هي سهولة التهيئة والمرونة لمحاكاة أي برنامج يعمل عبر HTTP/HTTPS، مع الحد الأدنى الممكن من البصمة لتجنب اكتشافه كـ Honeypot.
fakerjs لتجنب كشف الـ Honeypotتم بناء HASH باستخدام Node.js ولكنه يمكنه محاكاة أي لغة/خادم ويب بناءً على التهيئة. اقرأ الوثائق الكاملة أدناه.
npm install -g hash-honeypot
docker run --rm ghcr.io/datadog/hash help
يستخدم HASH ملفات YAML لتهيئة طريقة محاكاة البرنامج المطلوب. الهيكل النموذجي لمجلد التعريف هو كالتالي
|____templates
| |____resources
| | |____index.html
| | |____style.css
| | |____favicon.ico
| |____404.yaml
| |____default.yaml
|____init.yaml
يمكنك بناؤه بنفسك أو إنشاؤه باستخدام الأمر generate
Usage: HASH generate [options] <folder>
Generate honeypot profile
Arguments:
folder path/to the app
Options:
-t --template <template_name> base template (default: "default")
-n --name <honeypot_name> Honeypot name
-s --swagger <swagger_file> Path to swagger file to convert
-h, --help display help for command
مثال
hash-honeypot generate myhoneypot --name my-honey-pot --template default
يمكنك أيضاً تحويل ملفات Swagger إلى Honeypot مباشرة من الأمر generate
مثال لتحويل ملف(ـات) Swagger إلى Honeypot
hash-honeypot generate sample-swagger2 -n sample -s ./test-swagger/test-swagger.yaml
Usage: HASH run [options] <folder>
Run HASH
Arguments:
folder path/to the template folder
Options:
-l, --log <transport> logging transport (default: "console,file,datadog")
-f, --log_file <filename> logging filename (default: "hash.log")
-h, --help display help for command
مثال
hash-honeypot my-honeypot-profile -l file -f ./logs/hash.log
إذا كنت تستخدم Datadog للسجلات، تأكد من تصدير مفتاح API الخاص بـ Datadog:
export DD_API_KEY=<your-api-key>
يمكنك تخصيص ملف تعريف الـ Honeypot الخاص بك كما تريد
مثال لقالب الطلب:
id: sqli-error
info:
title: 'SQL error honeytrap'
requests:
- isTrap: false
expect:
method: GET
path: '/author/:Id([0-9]+)'
reply:
status: 200
headers:
content-type: 'text/html'
body:
view: 'author.html'
- isTrap: true
expect:
method: GET
path: '/author/:Id'
reply:
status: 500
headers:
content-type: 'text/html'
body:
contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2"
اقرأ مرجع التهيئة هنا أو شاهد الأمثلة هنا.
صدر تحت ترخيص Apache-2.0، المساهمات مرحب بها!
لا تتردد في فتح مشكلة (Issue)، أو التواصل عبر [email protected].