
eBPF-संचालित मूक पर्यवेक्षक कंटेनरीकृत रनटाइम के लिए, मैलवेयर विश्लेषण सैंडबॉक्स और एजेंटिक AI मॉनिटरिंग के लिए निर्मित।

एक हल्का eBPF-आधारित रनटाइम सुरक्षा ट्रेसर, विशेष रूप से मैलवेयर विश्लेषण सैंडबॉक्स के लिए बनाया गया है। एक नमूना एक अलग कंटेनर में डालें, और Azazel हर सिस्टम कॉल, फ़ाइल टच, नेटवर्क कनेक्शन और संदिग्ध व्यवहार को कैप्चर करता है, फिर आपको हर चीज़ का एक साफ JSON स्ट्रीम देता है।
चाहे आप एक स्वचालित मैलवेयर विश्लेषण सैंडबॉक्स बना रहे हों या स्वायत्त AI एजेंटों के लिए 24/7 रनटाइम मॉनिटरिंग की आवश्यकता हो, Azazel सर्जिकल, अदृश्य और AI-तैयार JSON टेलीमेट्री प्रदान करता है।
उपयोग:
azazel [फ़्लैग्स]
azazel [कमांड]
कमांड:
run-sandbox एक अलग डॉकर सैंडबॉक्स में मैलवेयर नमूना चलाएं और उसे ट्रेस करें
list-containers चल रहे कंटेनरों की सूची दिखाएं
version संस्करण प्रिंट करें
वैश्विक फ़्लैग्स:
-c, --container strings फ़िल्टर करने के लिए कंटेनर ID(एँ) (एकाधिक निर्दिष्ट कर सकते हैं)
-o, --output string आउटपुट फ़ाइल पथ (डिफ़ॉल्ट: stdout)
--pretty JSON आउटपुट को सुंदर-प्रिंट करें
--stdout जब --output सेट हो तब भी stdout पर प्रिंट करें
-v, --verbose वर्बोज़ लॉगिंग
--no-summary बाहर निकलने पर सारांश अक्षम करें
-h, --help सहायता

| श्रेणी | घटनाएँ | विवरण |
|---|---|---|
| प्रक्रिया | process_exec, process_exit, process_clone | पूर्ण प्रक्रिया वृक्ष: फ़ाइलनाम, argv, निकास कोड, क्लोन फ़्लैग्स, पैरेंट PID |
| फ़ाइल | file_open, file_write, file_read, file_unlink, file_rename | पथनाम, फ़्लैग्स, बाइट गणना |
| नेटवर्क | net_connect, net_bind, net_listen, net_accept, net_sendto, net_dns | IPv4/IPv6 पते, पोर्ट, udp_sendmsg पर kprobe के माध्यम से DNS पता लगाना |
| सुरक्षा | mmap_exec, ptrace, module_load | W+X मेमोरी मैपिंग, प्रक्रिया इंजेक्शन प्रयास, कर्नेल मॉड्यूल लोडिंग |
कुल 19 हुक पॉइंट — सिस्कॉल एंट्री पर ट्रेसपॉइंट + DNS डिटेक्शन के लिए एक kprobe।
vmlinux.h के माध्यम से, पुनर्संकलन के बिना कर्नेल संस्करणों में काम करता हैjq, Elasticsearch, Splunk, या आपकी अपनी पाइपलाइन के लिए तैयार/tmp से निष्पादन, संवेदनशील फ़ाइल एक्सेस (/etc/shadow, /proc/self/mem), ptrace, W+X mmap और कर्नेल मॉड्यूल लोडिंग के लिए स्वचालित अलर्टCONFIG_DEBUG_INFO_BTF=y के साथअपने कर्नेल को सत्यापित करें:
# BTF समर्थन (आवश्यक)
ls /sys/kernel/btf/vmlinux
# कर्नेल संस्करण
uname -r
# क्लोन करें
git clone https://github.com/beelzebub-labs/azazel.git
cd azazel
# डेव कंटेनर बनाएं
make docker-dev
# इसमें प्रवेश करें (विशेषाधिकार प्राप्त, होस्ट PID/cgroup नेमस्पेस के साथ)
make docker-dev-run
# कंटेनर के अंदर:
make vmlinux # कर्नेल प्रकार परिभाषाएँ उत्पन्न करें
make generate # BPF C → Go बाइंडिंग संकलित करें
make build # बाइनरी बनाएं
# सब कुछ ट्रेस करें, stdout पर आउटपुट
sudo ./bin/azazel
# सब कुछ ट्रेस करें, सुंदर JSON के साथ फ़ाइल में सहेजें
sudo ./bin/azazel --output events.json --pretty
# केवल एक विशिष्ट कंटेनर को ट्रेस करें
sudo ./bin/azazel --container <container_id> --output events.json
# चल रहे कंटेनरों की सूची दिखाएं
sudo ./bin/azazel list-containers
# डेव कंटेनर के अंदर
make test
यह बाइनरी बनाता है, ट्रेसर शुरू करता है, एक मैलवेयर व्यवहार सिम्युलेटर चलाता है, फिर मान्य करता है कि सभी अपेक्षित घटना प्रकार कैप्चर किए गए थे।
हर घटना एक एकल JSON पंक्ति (NDJSON) है:
{
"timestamp": "2025-01-15T14:30:22.123456789Z",
"event_type": "process_exec",
"pid": 12345,
"tgid": 12345,
"ppid": 12300,
"uid": 0,
"gid": 0,
"comm": "bash",
"cgroup_id": 6789,
"container_id": "a1b2c3d4e5f6",
"filename": "/tmp/suspicious_binary",
"args": "/tmp/suspicious_binary"
}
{
"timestamp": "2025-01-15T14:30:22.234567890Z",
"event_type": "net_connect",
"pid": 12345,
"tgid": 12345,
"ppid": 12300,
"uid": 0,
"gid": 0,
"comm": "curl",
"cgroup_id": 6789,
"container_id": "a1b2c3d4e5f6",
"sa_family": "AF_INET",
"dst_addr": "93.184.216.34",
"dst_port": 443
}
जब ट्रेसर बंद होता है (Ctrl+C या SIGTERM), यह stderr पर एक सारांश प्रिंट करता है:
========================================
Azazel सारांश
========================================
कुल घटनाएँ: 1847
घटना गणना:
file_open 892
file_write 312
process_exec 47
net_connect 23
...
सुरक्षा अलर्ट (3):
[मध्यम] संदिग्ध पथ से निष्पादन: /tmp/suspicious_binary (pid=12345 comm=bash)
[मध्यम] संवेदनशील फ़ाइल एक्सेस: /etc/shadow (pid=12346 comm=cat)
[गंभीर] मेमोरी को WRITE+EXEC के रूप में मैप किया गया (संभावित कोड इंजेक्शन/अनपैकिंग) (pid=12347 comm=malware)
========================================
शामिल docker-compose.yml एक पूर्ण विश्लेषण वातावरण स्थापित करता है:

# सैंडबॉक्स शुरू करें
docker compose up -d
# एक नमूना सैंडबॉक्स में कॉपी करें
docker cp ./samples/malware.elf sandbox:/tmp/sample
# इसे निष्पादित करें
docker exec sandbox /tmp/sample
# घटनाएँ ./output/events.json में लिखी जाती हैं
cat output/events.json | jq .
# एक नमूने का एंड-टू-एंड विश्लेषण: हैश → ट्रेस → रिपोर्ट
sudo ./analyze.sh ./samples/malware.elf 30
यह उत्पन्न करता है:
output/events_<timestamp>.json — कच्ची घटना स्ट्रीमoutput/report_<timestamp>.md — हैश, घटना सारांश, नेटवर्क कनेक्शन और सुरक्षा अलर्ट के साथ मार्कडाउन रिपोर्टउपयोग:
azazel [फ़्लैग्स]
azazel [कमांड]
कमांड:
list-containers चल रहे कंटेनरों की सूची दिखाएं
version संस्करण प्रिंट करें
फ़्लैग्स:
-c, --container strings फ़िल्टर करने के लिए कंटेनर ID(एँ) (एकाधिक निर्दिष्ट कर सकते हैं)
-o, --output string आउटपुट फ़ाइल पथ (डिफ़ॉल्ट: stdout)
--pretty JSON आउटपुट को सुंदर-प्रिंट करें
--stdout जब --output सेट हो तब भी stdout पर प्रिंट करें
-v, --verbose वर्बोज़ लॉगिंग
--no-summary बाहर निकलने पर सारांश अक्षम करें
-h, --help सहायता