Bosh sahifa Wiki Kernel Audit

Kernel Audit

Kernel Auditoperatsion tizim yadrosi kuzatadigan xavfsizlikka oid amallarni strukturali audit hodisalari sifatida qayd etish mexanizmi. Linux Audit subsistemasi system call, credential o‘zgarishi, file access, SELinux denial va audit policy o‘zgarishlarini kernel nuqtasida ushlashi mumkin. Kernel mediation application logidan mustaqil dalil beradi, lekin hodisani biznes ma’nosiga aylantirish uchun user-space kontekst ham kerak.

Arxitektura

Kernel audit hooklari event recordlar yaratadi va netlink orqali user-space audit daemoniga yuboradi. Daemon ularni persistent faylga yozadi, remote collectorga uzatadi yoki dispatcher pluginlariga beradi. Bitta hodisa syscall, path, credential va MAC recordlari kabi bir nechta yozuvdan iborat bo‘lishi mumkin; umumiy serial ularni bog‘laydi.

Queue kernel memoryda cheklangan. User-space collector sekin yoki ishlamay qolsa backlog oshadi. Backlog limit va failure mode audit siyosatining kritik qismidir.

Qoidalar

Audit rule system call, arxitektura, UID, executable, path yoki boshqa maydon bo‘yicha hodisani tanlaydi. 32-bit va 64-bit ABI uchun system call raqamlari farq qilishi sabab arxitektura filtri aniq beriladi. Path watch rename va mount semantikasini hisobga olishi kerak.

Juda keng all syscalls qoidasi performance va diskni bosadi. Threat model bo‘yicha privilege, identity database, konfiguratsiya va muhim data pathlari tanlanadi. Rule key keyingi tahlilda hodisani policy maqsadiga bog‘laydi.

Identity maydonlari

Real/effective UID bilan birga login audit UID sessionning asl autentifikatsiyalangan userini saqlashi mumkin. User sudo orqali root bo‘lsa effective UID o‘zgaradi, audit login identity esa zanjirni ko‘rsatadi. Session ID bir login doirasidagi hodisalarni birlashtiradi.

Container user namespace UIDlari host auditida mapped qiymat bilan ko‘rinishi mumkin. PID namespace ham raqamni o‘zgartiradi. Container ID yoki cgroup metadata’sini collector boyitishi kerak.

MAC va seccomp

SELinux kabi LSM deniallari kernel audit kanaliga sabab, source context, target context, object class va permission bilan yoziladi. Seccomp rad etgan system call ham audit hodisasi berishi mumkin. Permissive rejimdagi “would deny” yozuvi enforcement denialidan ajratiladi.

Audit logdan avtomatik allow policy yaratish xavfli. Avval operation haqiqatan zarurmi, path va domain to‘g‘rimi, compromised input qoidani sun’iy kengaytiryaptimi tekshiriladi.

Yaxlitlik va failure

Audit konfiguratsiyasini o‘zgartirish privilege talab qiladi va o‘zi qayd etiladi. Qoidalar bootning erta bosqichida yuklanib, kerak bo‘lsa immutable holatga qulflanadi. Kernel kompromat qilingan bo‘lsa u yaratadigan auditga to‘liq ishonib bo‘lmaydi; remote log va measured boot qo‘shimcha qatlam beradi.

Backlog to‘lganda record drop counteri oshishi, processlar bloklanishi yoki panic siyosati ishlashi mumkin. Muhit availability va evidence talabiga qarab variant tanlaydi. Monitoring daemon holati bilan birga lost record va queue delayni kuzatadi.

Performance

Har syscall uchun path resolution va argument capture qilish yuqori yukda sezilarli overhead beradi. Rule filterlari imkon qadar kernelda erta rad etadi, lekin juda ko‘p path watch va string record baribir xarajatli. Benchmark normal workload, attack burst va collector sekinlashishini qamraydi. Auditni performance uchun butunlay o‘chirish o‘rniga qamrov threat modelga mos toraytiriladi.

Record parsing

Bir serialga tegishli recordlar ketma-ket kelsa ham collector event tugashini aniq timeout yoki end marker bilan biladi. Path encoding, escaped byte va interpreted/ raw qiymatlar xavfsiz parse qilinadi. User controlled string log formatiga yangi soxta record qo‘sha olmaydi. SIEM normalization original raw record va kernel sequence’ni saqlab, keyingi forensicsda qayta talqin qilish imkonini beradi.

Bog‘liq tushunchalar

Linux Audit, auditd, netlink, audit rule, SELinux AVC, syscall auditing