
هوني بوت منخفض الموارد يحاكي خدمات الشبكة الشائعة لكشف نشاط المهاجم بعد الاختراق، مع وحدات بروتوكول قابلة للتوسيع وتنبيهات قابلة للتكوين.
OpenCanary هو honeypot شبكي متعدد البروتوكولات. حالة الاستخدام الأساسية له هي الإمساك بالمتسللين بعد اختراقهم للشبكات غير العامة. يتطلب موارد منخفضة للغاية ويمكن تعديله وتغييره وتوسيعه.
يعمل OpenCanary كـ daemon وينفذ بروتوكولات شبكة شائعة متعددة. عندما يخترق المهاجمون الشبكات ويتفاعلون مع الـ honeypot، سيرسل لك OpenCanary تنبيهات عبر آليات متنوعة.
تم تنفيذ OpenCanary بلغة Python، لذا فإن نواة الـ honeypot تعمل عبر المنصات؛ ومع ذلك، تتطلب ميزات معينة أنظمة تشغيل محددة. التشغيل على Linux سيمنحك الخيارات الأكثر. يتطلب موارد منخفضة للغاية؛ على سبيل المثال، يمكن نشره بسهولة على Raspberry Pi أو جهاز افتراضي بموارد ضئيلة.
يصف هذا README كيفية تثبيت وتهيئة OpenCanary على Ubuntu Linux وMacOS.
OpenCanary هو الإصدار مفتوح المصدر من honeypot التجاري الخاص بنا Thinkst Canary.
تتضمن عملية تثبيت OpenCanary في الأساس التأكد من جاهزية بيئة Python، ثم تثبيت حزمة Python الخاصة بـ OpenCanary (بالإضافة إلى الإضافات الاختيارية).
إذا كان uv مثبتًا، يمكنك استخدامه لإنشاء البيئة الافتراضية وتثبيت الحزم. إذا لم يكن مثبتًا، فسيستمر تدفق python/pip القياسي أدناه في العمل.
التثبيت على Ubuntu 22.04 LTS أو 24.04 LTS:
$ sudo apt-get install python3-dev python3-pip python3-virtualenv python3-venv python3-scapy libssl-dev libpcap-dev
$ virtualenv env/
$ . env/bin/activate
$ pip install opencanary
ما يعادله مع uv الاختياري:
$ uv venv env
$ . env/bin/activate
$ uv pip install opencanary
إضافات اختيارية (إذا كنت ترغب في استخدام وحدة مشاركة ملفات Windows ووحدة SNMP):
$ sudo apt install samba # if you plan to use the Windows File Share module
$ pip install scapy pcapy-ng # if you plan to use the SNMP module
أولاً، أنشئ بيئة Python افتراضية جديدة وقم بتفعيلها:
$ virtualenv env/
$ . env/bin/activate
ما يعادله مع uv الاختياري:
$ uv venv env
$ . env/bin/activate
يجب على مستخدمي Macports بعد ذلك تشغيل:
$ sudo port install openssl
$ env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" pip install cryptography
بدلاً من ذلك، يقوم مستخدمو Homebrew x86 بتشغيل:
$ brew install openssl
$ env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
مستخدمو Homebrew M1 يقومون بتشغيل:
$ brew install openssl
$ env ARCHFLAGS="-arch arm64" LDFLAGS="-L/opt/homebrew/opt/[email protected]/lib" CFLAGS="-I/opt/homebrew/opt/[email protected]/include" pip install cryptography
(خطوة التجميع أعلاه ضرورية لأن إصدارات متعددة من OpenSSL قد تكون موجودة، مما قد يربك مكتبات Python.)
الآن يمكن أن يتم التثبيت كالمعتاد:
$ pip install opencanary
$ pip install scapy pcapy-ng # optional
مع تثبيت uv، الأوامر المكافئة هي:
$ uv pip install opencanary
$ uv pip install scapy pcapy-ng # optional
وحدة مشاركة ملفات Windows (smb) غير متاحة على macOS.
للتثبيت من المصدر، بدلاً من تشغيل pip قم بما يلي:
$ git clone https://github.com/thinkst/opencanary
$ cd opencanary
$ python setup.py sdist
$ cd dist
$ pip install opencanary-<version>.tar.gz
مع تثبيت uv، يمكنك استبدال خطوة التثبيت النهائية بـ:
$ uv pip install opencanary-<version>.tar.gz
OpenCanary معبأ عبر pkgx، لذا لا يلزم التثبيت إذا كان pkgx مثبتًا، فقط اسبق أمر opencanaryd بـ
pkgx. نظرًا لحماية متغيرات البيئة في تطبيقات sudo الحديثة، يجب تشغيل الأمر بالكامل كجذر، أو عبر sudo -E.
$ pkgx opencanaryd --version
صور Docker الخاصة بـ OpenCanary مستضافة على Docker Hub. هذه الصور مفيدة فقط على مضيفات Linux Docker، لأن محرك شبكة host مطلوب للحصول على معلومات شبكة دقيقة.
عند بدء تشغيل OpenCanary، يبحث عن ملفات التهيئة في المواقع التالية وسيتوقف عند العثور على أول تهيئة:
/etc/opencanaryd/opencanary.conf~/.opencanary.conf (أي الدليل الرئيسي للمستخدم، عادةً ما يكون root لذا /root/.opencanary.conf)./opencanary.conf (أي الدليل الذي تم تثبيت OpenCanary فيه)لإنشاء تهيئة أولية، قم بالتشغيل كـ root (قد يُطلب منك كلمة مرور sudo):
$ opencanaryd --copyconfig
[*] A sample config file is ready /etc/opencanaryd/opencanary.conf
[*] Edit your configuration, then launch with "opencanaryd --start --uid=nobody --gid=nogroup"
ينشئ هذا المسار والملف /etc/opencanaryd/opencanary.conf. يجب عليك الآن تعديل ملف التهيئة لتحديد الخدمات وخيارات التسجيل التي تريد تفعيلها.
[!WARNING] يحتوي ملف التهيئة على بيانات معقدة، بما في ذلك كائنات Python لإعدادات التسجيل. تتم قراءة التهيئة أثناء تشغيل العملية بصلاحيات الجذر. نوصي بجعل الملف مملوكًا للجذر وقابلًا للكتابة من قبل الجذر فقط. إذا كان بإمكان المستخدمين العاديين كتابة الملف، فمن الممكن تصعيد الصلاحيات إلى الجذر.
يتم التهيئة عبر ملف التهيئة بصيغة JSON. قم بتعديل الملف، وعند الرضا احفظ واخرج.
وحدة snmp متاحة فقط عند وجود Scapy. راجع خطوات التثبيت الخاصة بـ SNMP أعلاه.
وحدة portscan متاحة فقط على مضيفات Linux، لأنها تعدل قواعد iptables.
يرجى ملاحظة أنه بالنسبة لخدمة Portscan، أضفنا إعداد portscan.ignore_localhost، مما يعني أن خدمة portscan الخاصة بـ OpenCanary ستتجاهل (لن تنبه على) عمليات فحص المنافذ القادمة من عنوان IP للاستضافة المحلية (127.0.0.1). هذا الإعداد مضبوط على false افتراضيًا.
تتطلب وحدة مشاركة ملفات Windows (smb) تثبيت Samba. راجع دليلًا خطوة بخطوة على الويكي.
يتم تشغيل OpenCanary إما مباشرة على مضيف Linux أو macOS، أو عبر حاوية Docker.
ابدأ OpenCanary بتشغيل:
$ . env/bin/activate
$ opencanaryd --start --uid=nobody --gid=nogroup
مع رايتي uid وgid، يتخلى OpenCanary عن صلاحيات الجذر بعد الارتباط بمنافذه. يمكن تغيير ذلك إلى مستخدم/مجموعة آخر منخفض الصلاحيات أو حذفه للاستمرار بالصلاحيات الجذرية.
ابدأ OpenCanary بتشغيل:
$ sudo -E pkgx opencanaryd --start --uid=nobody --gid=nogroup
مع رايتي uid وgid، يتخلى OpenCanary عن صلاحيات الجذر بعد الارتباط بمنافذه. يمكن تغيير ذلك إلى مستخدم/مجموعة آخر منخفض الصلاحيات أو حذفه للاستمرار بالصلاحيات الجذرية.
يتطلب هذا المسار تثبيت Docker وDocker Compose.
ملاحظة يتم تعطيل وحدة portscan تلقائيًا لـ OpenCanary داخل Docker.
data/.opencanary.conf لتفعيل أو تعطيل أو تخصيص الخدمات التي ستعمل.ports في ملف docker-compose.yml لتفعيل/تعطيل المنافذ المطلوبة بناءً على الخدمات التي فعّلتها في ملف التهيئة.docker compose up latest
لعرض السجلات قم بتشغيل docker compose logs latest.
لإيقاف الحاوية قم بتشغيل docker compose down.
لبناء Docker OpenCanary خاص بك باستخدام docker compose، توجه إلى الويكي الخاص بنا.
يرجى التوجه إلى الويكي المخصص لدينا لكل ما يتعلق بـ OpenCanary داخل Docker.
يرجى التوجه إلى مستودعنا المنسوخ لدور Ansible الخاص بـ OpenCanary هنا.
نرحب بطلبات السحب (PRs) لهذا المشروع. يرجى قراءة وثائق مدونة قواعد السلوك والمساهمة الخاصة بنا قبل تقديم طلب سحب.
كحد أدنى يجب تشغيل pre-commit قبل تقديم طلب السحب. قم بتثبيته وتشغيله في نفس بيئة Python التي تم تثبيت OpenCanary فيها:
$ pip install pre-commit
$ pre-commit install
# Do work
$ git add file
$ git commit
# If pre-commit generated errors, then run "git add ... && git commit" again
راجع سياسة الأمان الخاصة بنا للحصول على تفاصيل حول كيفية الإبلاغ عن الثغرات الأمنية.
يرجى تقديم تقارير الأخطاء على Github باستخدام القالب الذي نقدمه.
يتم تتبع طلبات الميزات هنا.
يخضع هذا المشروع وكل من يشارك فيه إلى مدونة قواعد السلوك. بمشاركتك، يُتوقع منك الالتزام بهذه المدونة. يرجى الإبلاغ عن السلوك غير المقبول على [email protected].