
14,956 MITRE ATT&CK-मैप किए गए नियमों, Ansible परिनियोजन रोल, और सुरक्षा निगरानी व अनुपालन ऑडिटिंग के लिए lint/test टूलिंग के साथ सर्वोत्तम-प्रथा Linux Auditd नियम सेट।
यह रिपॉज़िटरी Linux Audit Daemon (Auditd) कॉन्फ़िगरेशन और परिनियोजन के लिए व्यापक सर्वोत्तम प्रथाएँ प्रदान करती है, जिसमें सुरक्षा-केंद्रित ऑडिट नियमों का एक विस्तृत सेट, स्वचालित परिनियोजन के लिए एक Ansible role और वे उपकरण शामिल हैं जो वास्तविक kernels पर नियमों का परीक्षण करते हैं।
नियम सेट, role और परीक्षणों में किए गए परिवर्तन CHANGELOG.md में सूचीबद्ध हैं।
Auditd एक शक्तिशाली Linux ऑडिटिंग सिस्टम है जो व्यापक सिस्टम निगरानी और लॉगिंग क्षमताएँ प्रदान करता है। इसे सुरक्षा-प्रासंगिक घटनाओं को ट्रैक करने के लिए डिज़ाइन किया गया है और यह निम्नलिखित के लिए आवश्यक है:
हमारे व्यापक ऑडिट नियम (/ndaal/audit_best_practices.rules या /dataset/audit_best_practices.rules) विभिन्न सुरक्षा मानकों और सर्वोत्तम प्रथाओं को पूरा करने के लिए डिज़ाइन किए गए हैं, जिनमें शामिल हैं:
| फ़ाइल | सामग्री |
|---|---|
dataset/audit_best_practices.rules | मुख्य नियम सेट: 903 keys के साथ 14,956 सक्रिय नियम, जो arch=b32/arch=b64 जोड़ों के रूप में लिखे गए हैं। यह वह फ़ाइल है जिसे Ansible role डाउनलोड करता है। |
dataset/audit_best_practices_high_volume.rules | बिना फ़िल्टर किए गए संग्रह वाली सहयोगी फ़ाइल: किसी भी गैर-सिस्टम उपयोगकर्ता के प्रत्येक execve, kill/tkill/tgkill और आउटबाउंड connect। इसमें प्रत्येक नियम टिप्पणीबद्ध है, इसलिए फ़ाइल डिफ़ॉल्ट रूप से बंद रहती है। इसका हेडर बताता है कि एक समय में एक ब्लॉक को कैसे सक्षम किया जाए। |
ndaal/ | दोनों फ़ाइलों की बाइट-समान प्रतियाँ। |
*.rules.sha-256 | sha256sum प्रारूप में SHA-256 साइडकार। Ansible role प्रत्येक डाउनलोड को उनके विरुद्ध जाँचता है। किसी नियम फ़ाइल को संपादित करने के बाद, उन्हें पुनः उत्पन्न करने के लिए tools/update_rules_checksums.sh चलाएँ। |
tools/key-decisions.tsv | प्रत्येक key टकराव जोड़ी के लिए एक निर्णय, जिसे tools/resolve_key_collisions.py द्वारा लागू किया जाता है। |
जिस नियम को किसी माप ने गलत सिद्ध किया है, उसे कारण बताने वाले दिनांकित नोट के साथ टिप्पणीबद्ध कर दिया जाता है। कुछ भी हटाया नहीं जाता, इसलिए फ़ाइल प्रत्येक निर्णय का इतिहास बनाए रखती है।
जो key किसी technique ID से शुरू होती है, वह MITRE ATT&CK Enterprise 19.2 का अनुसरण करती है। ATT&CK v19 ने छह IDs रद्द कर दीं जिनका उपयोग फ़ाइल करती थी। 2026-09-27 को उनकी keys का नाम बदलकर उन उत्तराधिकारियों के नाम पर कर दिया गया जो MITRE उनके लिए बताता है। प्रत्येक SIEM क्वेरी और अलर्ट को बदलें जो पुरानी key का उपयोग करता है:
| पुरानी key | नई key |
|---|---|
T1562.001_Impair_Defenses_Disable_or_Modify_Tools | T1685_Disable_or_Modify_Tools |
T1562.004_Impair_Defenses_Disable_or_Modify_System_Firewall | T1686_Disable_or_Modify_System_Firewall |
T1070.002_Indicator_Removal_Clear_Linux_or_Mac_System_Logs | T1685.006_Disable_or_Modify_Tools_Clear_Linux_or_Mac_System_Logs |
T1107_File_Deletion | T1070.004_Indicator_Removal_File_Deletion |
T1169_Sudo | T1548.003_Abuse_Elevation_Control_Mechanism_Sudo_and_Sudo_Caching |
T1079_Multilayer_Encryption | T1573_Encrypted_Channel |
/var/log/audit/ पर निगरानी में T1685.006 के बजाय T1685.004_Disable_or_Modify_Tools_Disable_or_Modify_Linux_Audit_System_Log होती है, जो ऑडिट लॉग के लिए v19 उप-तकनीक है। नाम बदलने से पहले लिखे गए दिनांकित नोट्स, और उनके द्वारा समझाए गए टिप्पणीबद्ध नियम, पुराने नाम बनाए रखते हैं।
इसके अलावा 2026-09-27 को, जो keys गलत technique का नाम लेती थीं, उन्हें ठीक किया गया। इन नियमों के लिए SIEM क्वेरी और अलर्ट भी बदलें:
| नियम | पुरानी key | नई key |
|---|---|---|
/etc/passwd पर लेखन और attribute परिवर्तन (एक नया जोड़ा; reads T1087 बनाए रखते हैं) | T1087_Account_Discovery | T1098_Account_Manipulation |
/etc/shadow पर लेखन और attribute परिवर्तन | T1087_Account_Discovery | T1098_Account_Manipulation |
कोई व्यक्ति /etc/shadow पढ़ता है | T1087_Account_Discovery | T1003.008_OS_Credential_Dumping_etc_passwd_and_etc_shadow |
/etc/ssh/sshd_config | T1021_Remote_Services | T1021.004_Remote_Services_SSH |
/root/.ssh/authorized_keys | T1021_Remote_Services | T1098.004_Account_Manipulation_SSH_Authorized_Keys |
/etc/systemd/system/ | T1053.006_Scheduled_Task_Systemd_Timers | T1543.002_Create_or_Modify_System_Process_Systemd_Service |
date | T1083_File_and_Directory_Discovery | T1124_System_Time_Discovery |
| Python इंटरप्रेटर (pip, pipx, conda और npm T1072 बनाए रखते हैं) | T1072_Software_Deployment_Tools | T1059.006_Command_and_Scripting_Interpreter_Python |
| किसी व्यक्ति द्वारा चलाए गए mysql और psql | T1213_002_database_access | T1213.006_Data_from_Information_Repositories_Databases |
/etc/group पर लेखन और attribute परिवर्तन | T1087_Account_Discovery | T1098_Account_Manipulation |
/etc/gshadow पर लेखन और attribute परिवर्तन (एक नया जोड़ा; reads T1087 बनाए रखते हैं) | T1087_Account_Discovery | T1098_Account_Manipulation |
/usr/lib/systemd/system/ (/run/systemd/transient/ T1053.006 बनाए रखता है) | T1053.006_Scheduled_Task_Systemd_Timers | T1543.002_Create_or_Modify_System_Process_Systemd_Service |
/home/vagrant/.ssh/authorized_keys | T1021_Remote_Services | T1098.004_Account_Manipulation_SSH_Authorized_Keys |
/var/log/tomcat10/ में लेखन, 64-बिट (एक टाइपो) | tomcattomcat | tomcat |
/etc/mandiant/ में लेखन, 32-बिट (एक टाइपो) | mmandiant_config | mandiant_config |
unix_chkpwd, जो sudo और screen locks का पासवर्ड जाँच है, व्यक्ति की audit ID के साथ /etc/shadow पढ़ता है, इसलिए प्रत्येक पासवर्ड जाँच अब T1003.008 के रूप में आती है। credential dumping के लिए SIEM नियम में exe=/usr/sbin/unix_chkpwd को फ़िल्टर करें। T1234_567 वर्तनी में key वाले अन्य 34 नियमों ने कभी किसी रिकॉर्ड को लेबल नहीं किया, क्योंकि एक पहले का नियम उन्हीं घटनाओं से मेल खाता है। उन्हें उस नियम का नाम बताने वाले नोट के साथ टिप्पणीबद्ध कर दिया गया है।
kexec_load, capset, perf_event_open और semtimedop_time64 की 32-बिट कॉल अब 32bit_abi के बजाय KEXEC, capability_change_ebpf, perf_event_ebpf और T1559_Inter-Process_Communication लेकर आती हैं। पूरी data directory पर elasticsearch-data निगरानी दोनों ABIs पर बंद है: इसकी चेतावनी इसे opt-in बनाती है। 64-बिट होस्ट पर elasticsearch-nodes और elasticsearch-data-deletion keys, जो इसे तब तक ले जाती थीं, फिर से प्रकट होती हैं।
kernel किसी घटना से मेल खाने वाले सबसे पहले लोड किए गए नियम की key संलग्न करता है। यह syscall नियमों और path watches दोनों पर लागू होता है (kernel/auditfilter.c, kernel/auditsc.c)। इसलिए जल्दी रखा गया व्यापक नियम अपने बाद के प्रत्येक विशिष्ट नियम से key छीन लेता है। 2026-09-20 तक बिना फ़िल्टर किया गया procmon execve नियम पंक्ति 1,575 पर था, और 368 keys कभी किसी रिकॉर्ड पर प्रकट नहीं हुईं।
catch-all नियम अब फ़ाइल को बंद करते हैं, इस क्रम में:
user_exec: लॉगिन सत्र का प्रत्येक execve (auid>=500, auid!=-1) जिसे किसी watch और किसी elevation नियम ने दावा नहीं कियाprocmon: प्रत्येक शेष execve (daemons, cron, boot)setres*/setfs*, stime और 32-बिट umount नियमnetwork_changes (प्रत्येक socket और setsockopt) और elasticsearch-bind-success (प्रत्येक सफल bind)32bit_abi: arch=b32 के लिए -S all, हमेशा फ़ाइल का अंतिम -a नियमइस ब्लॉक के ऊपर प्रत्येक नया नियम जोड़ें। tools/auditd-rules-lint.sh ऐसी फ़ाइल को विफल कर देता है जिसमें कोई catch-all ऊपर चला जाए: यह key shadowing और अंतिम न होने वाले -S all नियम की रिपोर्ट करता है।