
स्टैटिक और डायनामिक विश्लेषण उपकरण जो दुर्भावनापूर्ण कोड, संदिग्ध बाइनरी और गोपनीयता उल्लंघनों का पता लगाने के लिए है।
इंस्टॉल - उपयोग - डायनामिक विश्लेषण - YARA नियम - CI/CD
दस्तावेज़: अंग्रेज़ी | Tiếng Việt
दुर्भावनापूर्ण कोड, संदिग्ध बाइनरी और गोपनीयता उल्लंघनों का पता लगाने के लिए स्टैटिक और डायनामिक विश्लेषण उपकरण। YARA नियमों, Docker सैंडबॉक्सिंग, MobSF मोबाइल विश्लेषण, पेलोड डीओबफस्केशन और बहु-प्रारूप रिपोर्टिंग (JSON, HTML, SARIF) के साथ स्रोत कोड, संकलित निष्पादन योग्य (.exe, .dll, .elf), macOS बंडल (.app, .dmg, .pkg), मोबाइल ऐप्स (.apk, .ipa) और एप्लिकेशन पैकेजों का विश्लेषण करता है।
pip install malware-check
pipx install malware-check
git clone https://github.com/momenbasel/malware-check.git
cd malware-check
pip install -e ".[dev]"
यह कोर CLI इंस्टॉल करता है। pefile/lief के माध्यम से बाइनरी विश्लेषण, magika के माध्यम से AI-संचालित फ़ाइल डिटेक्शन और yara-python के माध्यम से YARA स्कैनिंग वैकल्पिक ऐड-ऑन हैं।
# कोर + बाइनरी विश्लेषण + AI फ़ाइल डिटेक्शन + YARA
pip install malware-check[full]
# या केवल ज़रूरत के अनुसार इंस्टॉल करें
pip install malware-check[binary]
pip install malware-check[detect]
pip install malware-check[yara]
# या एक्स्ट्रा मैन्युअल रूप से इंस्टॉल करें
pip install pefile lief magika yara-python
pip install malware-check[detect]
जब इंस्टॉल होता है, malware-check Magika का उपयोग करके क्रॉस-प्लेटफ़ॉर्म फ़ाइल पहचान को बेहतर बनाता है, file_type मेटाडेटा को समृद्ध करता है, और बिना एक्सटेंशन या छिपी हुई फ़ाइलों को फ़ाइल नाम के बजाय सामग्री के आधार पर सही विश्लेषक पर रूट करता है।
# Docker आवश्यक - https://docs.docker.com/get-docker/
# सैंडबॉक्स इमेज बनाएं (एक बार की सेटअप)
malware-check build-sandbox
malware-check info
info कमांड दिखाएगा कि Magika-संचालित फ़ाइल डिटेक्शन उपलब्ध है या नहीं।
Claude Code स्किल के रूप में इंस्टॉल करें ताकि Claude आपके लिए फ़ाइलों का विश्लेषण कर सके:
# GitHub से स्किल इंस्टॉल करें
npx skills install momenbasel/malware-check --skill malware-check
# या मैन्युअल: skill/SKILL.md को अपनी स्किल्स डायरेक्ट्री में कॉपी करें
cp -r skill/ ~/.claude/skills/malware-check/
फिर Claude Code में कहें: "scan this file for malware" या "is this binary safe?" और Claude स्वचालित रूप से malware-check का उपयोग करेगा।
आपको CLI टूल भी इंस्टॉल होना चाहिए:
pip install malware-check pefile lief yara-python
टूल इंस्टॉल करें और अपने Codex एजेंट निर्देशों में जोड़ें:
# 1. CLI इंस्टॉल करें
pip install malware-check pefile lief yara-python
# 2. अपने Codex निर्देशों (codex.md या system prompt) में जोड़ें
echo 'मैलवेयर के लिए फ़ाइलों का विश्लेषण करने के लिए `malware-check scan <path> --verbose` का उपयोग करें।' >> AGENTS.md
# 3. या Codex स्किल के रूप में इंस्टॉल करें
cp -r skill/ .codex/skills/malware-check/
किसी भी AI कोडिंग एजेंट के लिए जो टूल उपयोग या कस्टम निर्देशों का समर्थन करता है:
# 1. इंस्टॉल करें
pip install malware-check
# 2. एजेंट निर्देशों में जोड़ें:
# "जब कोड/बाइनरी को मैलवेयर के लिए जाँचने के लिए कहा जाए, तो उपयोग करें: malware-check scan <target> --verbose"
# "रिपोर्ट के लिए: malware-check scan <target> --format html -o report.html"
# "CI/CD के लिए: malware-check scan <target> --format sarif -o report.sarif --exit-code"
malware-check scan suspicious_file.py
# बेहतर परिणाम जब malware-check[detect] इंस्टॉल हो
malware-check scan suspicious_payload --verbose
malware-check scan /path/to/project --verbose
# पहले सैंडबॉक्स बनाएं (एक बार)
malware-check build-sandbox
# व्यवहार विश्लेषण के साथ स्कैन करें
malware-check scan malware.exe --dynamic
malware-check scan /Applications/SuspiciousApp.app --dynamic --verbose
# JSON रिपोर्ट
malware-check scan target/ --format json -o report.json
# HTML डैशबोर्ड
malware-check scan target/ --format html -o report.html
# CI/CD के लिए SARIF
malware-check scan target/ --format sarif -o results.sarif
# निष्कर्षों पर गैर-शून्य कोड के साथ बाहर निकलें (CI गेट्स के लिए)
malware-check scan . --format sarif -o results.sarif --exit-code
malware-check info
name: Security Scan
on: [push, pull_request]
jobs:
malware-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install malware-check
run: pip install malware-check
- name: Run scan
run: malware-check scan . --format sarif -o results.sarif --exit-code
- name: Upload SARIF
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
malware-check/
├── src/malware_check/
│ ├── cli.py # Click CLI एंट्री पॉइंट
│ ├── scanner.py # ऑर्केस्ट्रेटर + वैकल्पिक Magika-आधारित फ़ाइल डिटेक्शन
│ ├── models.py # Finding, FileAnalysis, ScanResult डेटा मॉडल
│ ├── analyzers/
│ │ ├── code.py # स्रोत कोड पैटर्न मिलान (40+ नियम)
│ │ ├── binary.py # PE/Mach-O/ELF विश्लेषण
│ │ ├── privacy.py # PII, ट्रैकिंग, अनुमतियाँ
│ │ ├── yara_engine.py # YARA नियम संकलन और स्कैनिंग
│ │ └── dynamic.py # Docker सैंडबॉक्स व्यवहार विश्लेषण
│ └── reporters/
│ ├── console_reporter.py # रिच टर्मिनल आउटपुट
│ ├── json_reporter.py # JSON निर्यात
│ ├── html_reporter.py # HTML डैशबोर्ड (Jinja2)
│ └── sarif_reporter.py # CI/CD के लिए SARIF 2.1.0
├── rules/yara/ # बंडल YARA नियम
├── tests/ # pytest टेस्ट सूट
└── pyproject.toml # प्रोजेक्ट मेटाडेटा
किसी भी निर्देशिका में कस्टम नियम जोड़ें और --yara-rules के माध्यम से पास करें:
malware-check scan target/ --yara-rules /path/to/my/rules/
नियम गंभीरता, श्रेणी, आत्मविश्वास, CWE और MITRE ATT&CK मैपिंग के लिए मेटाडेटा फ़ील्ड का समर्थन करते हैं:
rule My_Custom_Rule {
meta:
description = "Detect custom malware pattern"
severity = "critical"
category = "backdoor"
confidence = "0.90"
mitre = "T1059"
cwe = "CWE-94"
recommendation = "Remove malicious code"
strings:
$pattern = "suspicious_string"
condition:
$pattern
}
Docker सैंडबॉक्स पूर्ण पृथक्करण के साथ व्यवहार संबंधी विश्लेषण प्रदान करता है:
निगरानी किए गए व्यवहार:
# क्लोन करें और डेव डिपेंडेंसी इंस्टॉल करें
git clone https://github.com/momenbasel/malware-check.git
cd malware-check
pip install -e ".[dev]"
# वैकल्पिक: विकास करते समय Magika, YARA और बाइनरी एक्स्ट्रा शामिल करें
pip install -e ".[dev,full]"
# टेस्ट चलाएँ
pytest
# लिंट
ruff check src/ tests/
MIT लाइसेंस - विवरण के लिए LICENSE देखें।
| श्रेणी | पता लगाने के उदाहरण |
|---|
| रिवर्स शेल | Python socket+subprocess, bash /dev/tcp, netcat, PowerShell TCPClient, socat |
| बैकडोर | वेब शेल (PHP/JSP/ASP.NET), कमांड इंजेक्शन (Python/JS/Java/Ruby/Go/C), बाइंड शेल, छिपे हुए रूट, रिमोट कोड लोडिंग, यूज़र क्रिएशन, SSTI, असुरक्षित डिसीरियलाइज़ेशन |
| ओबफस्केशन | Base64+eval चेन, कैरेक्टर कोड निर्माण, हेक्स पेलोड, डायनामिक इम्पोर्ट |
| क्रिप्टो माइनर | Stratum पूल कनेक्शन, माइनिंग API, वॉलेट पते (BTC/ETH/XMR) |
| रैनसमवेयर | फ़ाइल एन्क्रिप्ट वॉक, फिरौती संदेश, एन्क्रिप्ट+रिनेम पैटर्न |
| क्रेडेंशियल चोरी | हार्डकोडेड सीक्रेट, क्लिपबोर्ड चोरी, एनवायरनमेंट हार्वेस्टिंग, ब्राउज़र क्रेडेंशियल फ़ाइलें |
| सप्लाई चेन | संदिग्ध npm/pip इंस्टॉल हुक, डिपेंडेंसी कन्फ्यूज़न, कस्टम रजिस्ट्री |
| पर्सिस्टेंस | Cron/schtasks निर्माण, रजिस्ट्री Run कीज़, LaunchAgent/Daemon, SUID मैनिपुलेशन |
| प्रिविलेज एस्केलेशन | SUID बिट मैनिपुलेशन, setuid(0), chown root |
| एंटी-विश्लेषण | डीबगर डिटेक्शन, VM डिटेक्शन, TLS कॉलबैक, ptrace उपयोग |
| कीलॉगर | GetAsyncKeyState, SetWindowsHookEx, pynput, CGEventTapCreate |
| गोपनीयता | ट्रैकिंग SDK (40+), PII फ़ील्ड (SSN, क्रेडिट कार्ड, बायोमेट्रिक्स, स्वास्थ्य), आक्रामक अनुमतियाँ, डिवाइस फिंगरप्रिंटिंग |
| बाइनरी संकेतक | पैक्ड बाइनरी (UPX, उच्च एंट्रॉपी), RWX सेक्शन, संदिग्ध इम्पोर्ट, अहस्ताक्षरित/छेड़छाड़ किया गया कोड |
| सुरक्षा | कार्यान्वयन |
|---|
| नेटवर्क अलगाव | --network none (डिफ़ॉल्ट) |
| मेमोरी सीमा | 512MB |
| CPU सीमा | 1 कोर |
| प्रक्रिया सीमा | 100 PIDs |
| रीड-ओनली FS | --read-only जिसमें /tmp और /evidence के लिए tmpfs |
| क्षमताएँ | सभी हटा दी गईं (--cap-drop=ALL) |
| विशेषाधिकार वृद्धि | अवरुद्ध (--security-opt=no-new-privileges) |
| टाइमआउट | कॉन्फ़िगरेबल (डिफ़ॉल्ट 30s) |
| तकनीक | ID | पता लगाना |
|---|
| कमांड और स्क्रिप्टिंग इंटरप्रेटर | T1059 | रिवर्स शेल, eval/exec पैटर्न |
| सर्वर सॉफ़्टवेयर घटक: वेब शेल | T1505.003 | PHP/JSP/ASP वेब शेल |
| ओबफस्केटेड फ़ाइलें या जानकारी | T1027 | Base64, कैरेक्टर कोड, हेक्स एन्कोडिंग |
| संसाधन अपहरण | T1496 | क्रिप्टो माइनिंग पूल और उपकरण |
| प्रभाव के लिए डेटा एन्क्रिप्टेड | T1486 | रैनसमवेयर फ़ाइल एन्क्रिप्शन |
| इनपुट कैप्चर: कीलॉगिंग | T1056.001 | कीबोर्ड हुक और लॉगर |
| शेड्यूल किया गया कार्य/जॉब | T1053 | Cron, schtasks, LaunchAgent |
| बूट या लॉगऑन ऑटोस्टार्ट | T1547 | रजिस्ट्री Run कीज़ |
| प्रक्रिया इंजेक्शन | T1055 | VirtualAllocEx + WriteProcessMemory |
| पासवर्ड स्टोर से क्रेडेंशियल | T1555 | ब्राउज़र क्रेडेंशियल फ़ाइल एक्सेस |
| एलिवेशन कंट्रोल का दुरुपयोग | T1548 | SUID बिट मैनिपुलेशन |
| डीबगर से बचाव | T1622 | एंटी-डीबग API कॉल |
| सप्लाई चेन समझौता | T1195 | दुर्भावनापूर्ण इंस्टॉल हुक |