
تهيئة Auditd بأفضل الممارسات
___ ___ __ __
/ | __ ______/ (_) /_____/ /
/ /| |/ / / / __ / / __/ __ /
/ ___ / /_/ / /_/ / / /_/ /_/ /
/_/ |_\__,_/\__,_/_/\__/\__,_/
تكوين أفضل الممارسات لـ Auditd
تتمثل فكرة هذا التكوين لـ auditd في توفير خط أساسي لأفضل الممارسات:
تتجاهل مجموعة القواعد المبسّطة عمداً بعض القياس عن بُعد عالي القيمة ولكن قد يكون كبير الحجم، خاصة أحداث إنشاء العملية، وإنشاء المقبس، وفشل الوصول إلى الملفات. قم بضبط هذه الأقسام وفقاً لبيئتك إذا لزم الأمر.
يركز التكوين الحالي على مجالات التغطية التالية:
ptrace و memfd_create و bpf ومساحات الأسماء و io_uring و userfaultfdexecve و execveat وإنشاء المقبس وحذف الملفات واستخدام ABI 32 بتتهدف مجموعة القواعد هذه إلى البقاء غير مرتبطة بمنطق الكشف النهائي. تركز على جمع القياس عن بُعد للمراجعة المفيد بشكل واسع والذي يمكن تحليله بطرق مختلفة، على سبيل المثال باستخدام أدوات تعتمد على Sigma أو استعلامات SIEM.
أحد المشاريع مفتوحة المصدر التي يمكنها الاستفادة من بيانات المراجعة هذه هو Aurora Linux، وهو وكيل خفيف وقابل للتخصيص يعتمد على Sigma لنظام لينكس يجمع بين القياس عن بُعد المستند إلى eBPF والإثراء على مستوى مساحة المستخدم ومطابقة قواعد Sigma.
تتضمن مجموعة القواعد هذه عمداً -i بحيث لا تؤدي المسارات الخاصة بالتوزيع الاختيارية إلى إحباط التحميل على الأنظمة التي تغيب فيها بعض الملفات الثنائية أو الدلائل. هذا يحافظ على بساطة النشر الافتراضي، ولكنه يعني أيضاً تجاهل أخطاء تحميل القاعدة.
إذا كنت تريد تحققاً صارماً قبل النشر، اختبر نسخة مؤقتة مع إزالة سطر -i، على سبيل المثال:
grep -v '^-i$' audit.rules > /tmp/audit.rules.strict
auditctl -R /tmp/audit.rules.strict
يتضمن المستودع أيضاً فحوصات GitHub Actions التي تقوم بفحص القواعد والتحقق من إمكانية تحميل نسخة CI محمولة ونسخة صارمة على Ubuntu.
تستخدم عدة قواعد في audit.rules auid>=1000 -F auid!=unset للتركيز على نشاط المستخدم التفاعلي واستبعاد جلسات تسجيل الدخول غير المحددة.
1000 هو UID_MIN الشائع في العديد من توزيعات لينكس، لكنه ليس عالمياً. إذا كان مضيفك يستخدم UID_MIN مختلفاً، تحقق من /etc/login.defs واستبدل 1000 في audit.rules قبل النشر:
awk '$1=="UID_MIN" { print $2 }' /etc/login.defs
في 29 أبريل 2026، نشر Xint ثغرة Copy Fail (CVE-2026-31431)، وهي تقنية لتصعيد الامتيازات المحلية تسيء استخدام واجهة مستخدم التشفير في النواة (AF_ALG) مع splice() لإفساد الملفات المدعومة بصفحة الذاكرة المؤقتة في الذاكرة.
تتضمن مجموعة القواعد هذه كتلة af_alg صغيرة لجمع الأجزاء المستقرة والمنخفضة الضوضاء من هذا الإعداد من جلسات المستخدم المنسوبة:
socket(AF_ALG, ...)bind() باستخدام struct sockaddr_alg ثابت الحجم الشائعsetsockopt(..., SOL_ALG, ...)هذا مقصود أن يكون أكثر عمومية من توقيع لمرة واحدة لـ authencesn(hmac(sha256),cbc(aes)) لأن عوامل تصفية استدعاءات النظام في المراجعة لا يمكنها مطابقة وسائط النص. عملياً، يوجد اسم الخوارزمية في سجل SOCKADDR الصادر عن bind()، لذلك الكشف النهائي الموصى به هو:
key=af_algSOCKADDR.saddr / SADDR={ saddr_fam=alg ... }salg_type=aead مع salg_name يحتوي على authencesn(pid أو exe أو auid العديد من هذه الارتباطات في نافذة زمنية قصيرةيعتمد الإثبات المفاهيمي الذي وصفه Xint أيضاً على عمليات splice() المتكررة. استدعاءات النظام تلك مزعجة جداً لمجموعة القواعد الافتراضية في العديد من الأنظمة، لذلك يوفر المستودع فقط تراكب splice_user معلقاً في audit.rules. قم بتمكينه فقط إذا كانت splice / vmsplice غير شائعة في بيئتك واربطه بنشاط af_alg الأخير من نفس العملية أو جلسة المستخدم.
يعتمد التكوين على المصادر التالية وسنوات من التحسينات المدمجة في مجموعة القواعد الافتراضية:
Gov.uk auditd rules https://github.com/gds-operations/puppet-auditd/pull/1
CentOS 7 hardening https://highon.coffee/blog/security-harden-centos-7/#auditd---audit-daemon
Linux audit repo https://github.com/linux-audit/audit-userspace/tree/master/rules
Auditd high performance linux auditing https://linux-audit.com/tuning-auditd-high-performance-linux-auditing/
Copy Fail: 732 Bytes to Root on Every Major Linux Distribution. https://xint.io/blog/copy-fail-linux-distributions
Linux kernel crypto userspace interface (AF_ALG) https://docs.kernel.org/crypto/userspace-if.html
لم يتم تضمين كل هذه القواعد.
للتوافق مع PCI DSS انظر: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-pci-dss-v31.rules
للتوافق مع NISPOM انظر: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-nispom.rules
سجل IppSec فيديو يشرح كيفية اكتشاف استغلال ثغرة OMIGOD باستخدام auditd. مفاهيم auditd الأساسية في ذلك الفيديو لا تزال مفيدة، لكن مجموعة القواعد في هذا المستودع تم تبسيطها بشكل كبير منذ ذلك الحين. تعامل مع الفيديو كخلفية تاريخية ومقدمة لأفكار الكشف المستندة إلى auditd، وليس كتوثيق سطر بسطر لـ audit.rules الحالي.
https://www.youtube.com/watch?v=lc1i9h1GyMA
يرجى المساهمة بتغييراتك كطلبات سحب.