
कम-संसाधन हनीपॉट जो सामान्य नेटवर्क सेवाओं का अनुकरण करके उल्लंघन-पश्चात हमलावर गतिविधि का पता लगाता है, जिसमें विस्तार योग्य प्रोटोकॉल मॉड्यूल और कॉन्फ़िगर करने योग्य अलर्टिंग शामिल है।
OpenCanary एक मल्टी-प्रोटोकॉल नेटवर्क हनीपॉट है। इसका प्राथमिक उपयोग-मामला हैकर्स को तब पकड़ना है जब वे गैर-सार्वजनिक नेटवर्क में सेंध लगा चुके हों। इसकी संसाधन आवश्यकताएँ बेहद कम हैं और इसे समायोजित, संशोधित और विस्तारित किया जा सकता है।
OpenCanary एक डेमॉन के रूप में चलता है और कई सामान्य नेटवर्क प्रोटोकॉल लागू करता है। जब हमलावर नेटवर्क में सेंध लगाते हैं और हनीपॉट के साथ इंटरैक्ट करते हैं, तो OpenCanary आपको विभिन्न तंत्रों के माध्यम से अलर्ट भेजेगा।
OpenCanary Python में लागू किया गया है, इसलिए मूल हनीपॉट क्रॉस-प्लेटफ़ॉर्म है; हालाँकि, कुछ सुविधाओं के लिए विशिष्ट OS की आवश्यकता होती है। Linux पर चलाने से आपको सबसे अधिक विकल्प मिलेंगे। इसकी संसाधन आवश्यकताएँ बेहद कम हैं; उदाहरण के लिए, इसे Raspberry Pi या न्यूनतम संसाधनों वाले VM पर आसानी से तैनात किया जा सकता है।
यह README बताता है कि Ubuntu Linux और MacOS पर OpenCanary को कैसे स्थापित और कॉन्फ़िगर किया जाए।
OpenCanary हमारे व्यावसायिक Thinkst Canary हनीपॉट का ओपन सोर्स संस्करण है।
OpenCanary की स्थापना में अनिवार्य रूप से Python वातावरण तैयार सुनिश्चित करना, फिर OpenCanary Python पैकेज (साथ ही वैकल्पिक अतिरिक्त चीज़ें) स्थापित करना शामिल है।
यदि 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 File Share मॉड्यूल और 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 File Share (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 कार्यान्वयनों में पर्यावरण चर सुरक्षाओं के कारण, पूरी कमांड को root के रूप में, या sudo -E के माध्यम से चलाया जाना चाहिए।
$ pkgx opencanaryd --version
OpenCanary Docker इमेज 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 ऑब्जेक्ट शामिल हैं। कॉन्फ़िगरेशन को root विशेषाधिकारों के साथ चल रही प्रक्रिया के दौरान पढ़ा जाता है। हम अनुशंसा करते हैं कि फ़ाइल को root-स्वामित्व वाली और केवल root द्वारा लिखने योग्य बनाएँ। यदि सामान्य उपयोगकर्ता फ़ाइल लिख सकते हैं, तो विशेषाधिकारों को root तक बढ़ाना संभव है।
कॉन्फ़िगरेशन JSON कॉन्फ़िग फ़ाइल के माध्यम से किया जाता है। फ़ाइल संपादित करें, और जब संतुष्ट हों तो सहेजें और बाहर निकलें।
snmp मॉड्यूल केवल तभी उपलब्ध है जब Scapy मौजूद हो। ऊपर SNMP के लिए स्थापना चरण देखें।
portscan मॉड्यूल केवल Linux होस्ट पर उपलब्ध है, क्योंकि यह iptables नियमों को संशोधित करता है।
कृपया ध्यान दें कि Portscan सेवा के लिए, हमने एक portscan.ignore_localhost सेटिंग जोड़ी है, जिसका अर्थ है कि OpenCanary portscan सेवा localhost IP (127.0.0.1) से उत्पन्न पोर्ट स्कैन को अनदेखा करेगी (उन पर अलर्ट नहीं करेगी)। यह सेटिंग डिफ़ॉल्ट रूप से गलत (false) है।
Windows File Share मॉड्यूल (smb) के लिए Samba स्थापना आवश्यक है। Wiki पर चरण-दर-चरण मार्गदर्शिका देखें।
OpenCanary या तो सीधे Linux या macOS होस्ट पर चलाया जाता है, या Docker कंटेनर के माध्यम से।
OpenCanary को यह चलाकर प्रारंभ करें:
$ . env/bin/activate
$ opencanaryd --start --uid=nobody --gid=nogroup
uid और gid फ़्लैग के साथ, OpenCanary अपने पोर्ट से बंधने के बाद root विशेषाधिकार छोड़ देता है। इसे अन्य कम-विशेषाधिकार वाले उपयोगकर्ता/समूह में बदला जा सकता है या root विशेषाधिकारों के साथ चलते रहने के लिए छोड़ा जा सकता है।
OpenCanary को यह चलाकर प्रारंभ करें:
$ sudo -E pkgx opencanaryd --start --uid=nobody --gid=nogroup
uid और gid फ़्लैग के साथ, OpenCanary अपने पोर्ट से बंधने के बाद root विशेषाधिकार छोड़ देता है। इसे अन्य कम-विशेषाधिकार वाले उपयोगकर्ता/समूह में बदला जा सकता है या root विशेषाधिकारों के साथ चलते रहने के लिए छोड़ा जा सकता है।
इस मार्ग के लिए Docker और Docker Compose स्थापित होना आवश्यक है।
नोट Dockerised OpenCanary के लिए portscan मॉड्यूल स्वचालित रूप से अक्षम कर दिया जाता है।
data/.opencanary.conf फ़ाइल को संपादित करके उन सेवाओं को सक्षम, अक्षम या अनुकूलित करें जो चलेंगी।docker-compose.yml फ़ाइल के ports अनुभाग को संपादित करें।docker compose up latest
लॉग देखने के लिए docker compose logs latest चलाएँ।
कंटेनर रोकने के लिए docker compose down चलाएँ।
docker compose का उपयोग करके अपना स्वयं का Docker OpenCanary बनाने के लिए, हमारे wiki पर जाएँ
Dockerised OpenCanary से संबंधित सब कुछ जानने के लिए कृपया हमारे समर्पित Docker wiki पर जाएँ।
Ansible OpenCanary भूमिका (role) के लिए कृपया हमारे फ़ोर्क किए गए रिपॉज़िटरी पर यहाँ जाएँ।
हम इस परियोजना में PRs का स्वागत करते हैं। पुल अनुरोध (pull request) सबमिट करने से पहले कृपया हमारे आचार संहिता और योगदान दस्तावेज़ पढ़ें।
न्यूनतम रूप से आपको PR सबमिट करने से पहले 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] पर करें।