
Cert Central समझौता प्रमाणपत्र डेटाबेस से स्वचालित YARA नियम उत्पादन।
CertGraveyard समझौता प्रमाणपत्र डेटाबेस से स्वचालित YARA नियम निर्माण।
# रिपॉजिटरी क्लोन करें
git clone https://github.com/tjnel/certgraveyard_yara.git
cd certgraveyard_yara
# UV के साथ स्थापित करें
uv sync --all-extras
# CertGraveyard से नवीनतम CSV डाउनलोड करें
cert-graveyard-yara download
# जाँचें कि CSV बदला है या नहीं
cert-graveyard-yara check-changed
# YARA नियम उत्पन्न करें
cert-graveyard-yara generate
# नियमों को मान्य करें
cert-graveyard-yara validate --engine yara
# संयुक्त फ़ाइल और ZIP संग्रह बनाएँ
cert-graveyard-yara combine
cert-graveyard-yara package
# पूरी पाइपलाइन चलाएँ
cert-graveyard-yara run --all
नवीनतम रिलीज़ डाउनलोड करें या सीधे नियमों का उपयोग करें:
# संयुक्त नियमसेट के साथ स्कैन करें
yara rules/combined/MAL_Compromised_Cert_*.yara /path/to/scan
# या अलग-अलग नियमों का उपयोग करें
yara rules/individual/*.yara /path/to/scan
cert-graveyard-yara/
├── .github/workflows/ # GitHub Actions
│ ├── daily-update.yml # दैनिक CSV जाँच और नियम निर्माण
│ ├── ci.yml # PR सत्यापन और परीक्षण
│ └── release.yml # रिलीज़ निर्माण
├── src/cert_graveyard_yara/ # स्रोत कोड
│ ├── __init__.py
│ ├── downloader.py # CSV डाउनलोड और कैशिंग
│ ├── parser.py # CSV पार्सिंग
│ ├── generator.py # YARA नियम निर्माण
│ ├── validator.py # नियम सत्यापन
│ ├── changelog.py # चेंजलॉग प्रबंधन
│ └── cli.py # कमांड-लाइन इंटरफ़ेस
├── tests/ # परीक्षण सूट
├── rules/
│ ├── individual/ # अलग-अलग YARA नियम फ़ाइलें
│ └── combined/ # संयुक्त रिलीज़ फ़ाइलें
├── data/ # CSV डेटा और हैश फ़ाइलें
├── templates/ # Jinja2 टेम्पलेट
└── CHANGELOG.md
प्रत्येक नियम इस प्रारूप का अनुसरण करता है:
import "pe"
rule MAL_Compromised_Cert_Emotet_DigiCert_0a_1b_2c_3d {
meta:
description = "समझौता प्रमाणपत्र का उपयोग कर मैलवेयर Emotet का पता लगाता है..."
author = "TNEL (https://github.com/tjnel/certgraveyard_yara)"
reference = "https://certgraveyard.org"
hash = "a1b2c3d4..."
malware = "Emotet"
malware_type = "Trojan"
cert_issuer = "DigiCert SHA2 Assured ID Code Signing CA"
cert_serial = "0a:1b:2c:3d"
cert_valid_from = "2024-01-15"
cert_valid_to = "2025-01-15"
condition:
uint16(0) == 0x5a4d and
for any sig in pe.signatures : (
sig.issuer contains "DigiCert SHA2 Assured ID Code Signing CA" and
sig.serial == "0a:1b:2c:3d"
)
}
# डेव निर्भरताओं के साथ स्थापित करें
uv sync --all-extras
# लिंटिंग चलाएँ
uv run ruff check src tests
# टाइप जाँच चलाएँ
uv run mypy src
# परीक्षण चलाएँ
uv run pytest
# कवरेज के साथ सभी परीक्षण चलाएँ
uv run pytest
# विशिष्ट परीक्षण फ़ाइल चलाएँ
uv run pytest tests/test_generator.py
# विस्तृत आउटपुट के साथ चलाएँ
uv run pytest -v
| चर | विवरण | डिफ़ॉल्ट |
|---|---|---|
CERTGRAVEYARD_URL | CSV डाउनलोड URL | https://certgraveyard.org/api/download_csv |
MIT लाइसेंस - विवरण के लिए LICENSE देखें।
| कमांड | विवरण |
|---|
download | CertGraveyard से CSV डाउनलोड करें |
check-changed | जाँचें कि पिछली बार के बाद CSV बदला है या नहीं |
generate | CSV से YARA नियम उत्पन्न करें |
validate | YARA नियमों को मान्य करें |
changelog | चेंजलॉग को परिवर्तनों के साथ अपडेट करें |
combine | संयुक्त YARA फ़ाइल बनाएँ |
package | नियमों का ZIP संग्रह बनाएँ |
run | पूरी पाइपलाइन चलाएँ |