
MITRE ATT&CK, Sigma, और Atomic Red Team डेटा को BloodHound ग्राफ़ में एकत्रित करता है ताकि SOC विश्लेषक डिटेक्शन कवरेज का मानचित्रण कर सकें, अंतराल की पहचान कर सकें, और Cypher क्वेरी के साथ घटनाओं की जांच कर सकें।

BloodSOCer एक Python स्वचालन उपकरण है जो कई स्रोतों (Mitre ATT&CK, Sigma rules, Atomic Red Team) से ख़तरे की खुफिया जानकारी एकत्र करता है और BloodHound में OpenGraph प्रारूप में इन्जेस्ट करने के लिए JSON फ़ाइलें बनाता है। BloodSOCer फ़ाइलों को BloodHound पर अपलोड भी कर सकता है और कस्टम ऑब्जेक्ट्स के लिए आइकन सेट कर सकता है, यदि कॉन्फ़िगरेशन में API टोकन परिभाषित हों। सुरक्षा विश्लेषक तब डेटा को किसी भी कोण से देख सकते हैं, और आरंभ करने में सहायता के लिए कुछ Cypher क्वेरी भी दी गई हैं।
इस परियोजना के पीछे विचार SOC को Mitre ATT&CK Framework के अपने कवरेज का मानचित्रण करने में मदद करना है और घटना प्रतिक्रिया (incident response) के दौरान तुरंत पहचानने में सहायता करना है कि ब्लाइंड स्पॉट कहाँ हो सकते हैं। आदर्श रूप से SOC को अपने स्वयं के डिटेक्शन मैप करने चाहिए न कि Sigma के "तैयार" डिटेक्शन। मुझे गलत मत समझिए, Sigma मेरे पसंदीदा Open Source प्रोजेक्ट्स में से एक है, लेकिन अधिकांश डिटेक्शन संदर्भ/संवर्धन (context/enrichment) के लिए बेहतर होते हैं या कार्रवाई योग्य टिकट बनाने की तुलना में खतरे की खोज (threat hunting) की लीड उत्पन्न करते हैं।
जब मैं SOC में था तो हम अक्सर यह देखने/दिखाने की कोशिश करते थे कि हमारे डिटेक्शन ATT&CK Framework से कैसे मैप होते हैं। मुझे हमेशा लगता था कि BloodHound प्रकार का ग्राफ़ इसके लिए शानदार होगा, इसलिए मैंने यह प्रोजेक्ट बनाया, उम्मीद करते हुए कि यह साथी ब्लू टीम के सदस्यों को उनके कवरेज और विभिन्न हिस्सों के आपसी जुड़ाव को विज़ुअलाइज़ करने में मदद करेगा।
ART के इन्जेस्ट के साथ, यह देखना भी संभव है कि कौन से TTP का परीक्षण करना आसान है और कौन से आसानी से परीक्षण नहीं किए जा सकते।
मैं आपको दृढ़ता से प्रोत्साहित करता हूँ कि यदि आप किसी ऐसे TTP के लिए डिटेक्शन/परीक्षण बनाते हैं जिसके पास कोई नहीं है, तो Sigma Rules और ART को मूल प्रोजेक्ट में वापस साझा करें।
UL-Cyphers.py या --setup के माध्यम से बंडल किए गए Cypher क्वेरी को BloodHound में आयात करेंhttp://127.0.0.1:8080)रिपॉज़िटरी क्लोन करें:
git clone https://github.com/yourusername/BloodSOCer.git
cd BloodSOCer
निर्भरताएँ स्थापित करें:
pip3 install -r requirements.txt
BloodSOCer.py में API क्रेडेंशियल्स कॉन्फ़िगर करें:
apikey = "your-api-key-here"
apiid = "your-api-id-here"
python3 BloodSOCer.py
python3 BloodSOCer.py -h
python3 BloodSOCer.py --mitre, -m
python3 BloodSOCer.py --sigma, -s
python3 BloodSOCer.py --art, -r
python3 BloodSOCer.py --define-icons, -di
python3 BloodSOCer.py --setup, -st
python3 BloodSOCer.py --upload-only, -ul
python3 BloodSOCer.py --all, -a
python3 BloodSOCer.py --mitre --sigma --define-icons
python3 BloodSOCer.py --clear-db
नोट: --define-icons और --upload-only के लिए BloodSOCer.py में API Key और API Secret परिभाषित होना अनिवार्य है
कस्टमाइज़ करने के लिए BloodSOCer.py संपादित करें:
http://127.0.0.1:8080)BloodSOCer/
├── BloodSOCer.py # मुख्य एंट्री पॉइंट
├── MitreHound.py # MITRE ATT&CK डेटा फ़ेचर
├── ARTHound.py # Atomic Red Team डेटा फ़ेचर
├── SigmaHound.py # Sigma rules डेटा फ़ेचर
├── Define-Icons.py # BloodHound आइकन कस्टमाइज़र
├── UL-Cyphers.py # इन्जेस्ट किए गए डेटा को क्वेरी करने में सहायता हेतु कस्टम Cyphers अपलोड करें
├── Cyphers/ # सहेजी गई क्वेरी (Cypher) JSONs
├── ressources/ # छवियाँ/आरेख (Arrows graph, logo)
├── README.md # यह फ़ाइल
├── requirements.txt # Python निर्भरताएँ
└── output/ # जनरेट की गई *_graph.json फ़ाइलें
यह प्रोजेक्ट निम्नलिखित नोड प्रकार जोड़ता है:
यह प्रोजेक्ट निम्नलिखित एजेस/संबंध जोड़ता है:
Exploits करता हैUses करता हैPartOf हैSubTechniqueOf हैDetectedBy हैTestedBy हैInvestigateWith हैBloodSOCer Arrows Graph
इस Arrows.app ग्राफ़ की json फ़ाइल डाउनलोड करने के लिए यहाँ क्लिक करें
Mimikatz का उपयोग करते हुए FIN7 के लिए डिटेक्शन

FIN7 द्वारा उपयोग की जाने वाली Tactics

FIN7 गतिविधि के लिए डिटेक्शन और परीक्षण

FIN7 और Scattered Spider गतिविधि की जाँच के लिए Playbooks

Define-Icons.py में परिभाषित कस्टम आइकन BloodHound इंटरफ़ेस पर लागू किए जाएँगेApache 2.0
जब मैंने पहली बार OpenGraph के बारे में सुना, तो मैंने तुरंत सोचा कि यह Mitre ATT&CK Framework को इन्जेस्ट करने और उसे विज़ुअलाइज़ करने के लिए BloodHound का उपयोग करने का एक शानदार तरीका होगा। Olaf Hartong ने कुछ साल पहले ऐसा किया था उनका ब्लॉग देखें, जो स्पष्ट रूप से SadProcessor से प्रेरित था, जो अब मेरे सहयोगी हैं। हम इस पर पूर्ण चक्र (full circle) पर आ गए हैं।
Pull requests और issues का स्वागत है।