Համակարգի իրադարձությունների աուդիտ. Մոնիտորինգ և անվտանգության վերլուծություն¶
Այս հոդվածում
Linux համակարգի անվտանգությունն ու կայունությունն ապահովելու համար բավարար չէ միայն սպառնալիքները կանխելը՝ անհրաժեշտ է նաև հայտնաբերել և քննել իրադարձությունները։ Համակարգի աուդիտը չի արգելափակում հարձակումները, սակայն թույլ է տալիս գրանցել թափանցումը, նույնականացնել դրա աղբյուրն ու չափերը և հավաքել ապացույցներ վերլուծության համար։
Շատ բաշխումների հիմնական աուդիտային գործիքը auditd դեմոնն է։ Այն հետևում է միջուկի կանչերին (համակարգային կանչեր), գրանցում է օգտատերերի և գործընթացների գործողությունները և պահպանում իրադարձությունները կառուցվածքային օրագրերում։
Ինչպես է աշխատում auditd-ն¶
Աուդիտային համակարգը կցվում է միջուկին՝ օգտագործելով տրիգերներ, որոնք ակտիվանում են համակարգային կանչ մտնելիս (entry) կամ դուրս գալիս (exit)։ Կանոնները որոշում են, թե որ կանչերը, ֆայլերը, օգտատերերը կամ գործընթացներն են մոնիտորինգի տակ։ Բոլոր գրանցված իրադարձությունները գրվում են /var/log/audit/audit.log ֆայլ։
auditd-ի միջոցով կարող եք հետևել.
- Համակարգի և ծառայությունների միացման/անջատմանը
- Կարևոր ֆայլերի, օրինակ՝
/etc/passwd,/etc/shadow, SSH կոնֆիգուրացիաների և այլնի նկատմամբ կատարվող գործողություններին - Ֆայլերի իրավունքների, սեփականության կամ բնութագրերի փոփոխություններին
- Ֆայլերի, թղթապանակների և հղումների ստեղծման/ջնջմանը
- Ֆայլային համակարգի մոնտաժմանը
- Տեղեկատվական ցանցի կապերին և կոնֆիգուրացիայի փոփոխություններին
- Որոշակի օգտատերերի կամ գործընթացների գործողություններին
Ինստալյացիա և բաղադրիչներ¶
CentOS/RHEL-ում audit փաթեթը նախապես տեղադրված է։
Debian/Ubuntu-ում այն տեղադրվում է հետևյալ հրամանով.
Հիմնական օգնական գործիքներ.
| Օգնական գործիք | Նպատակ |
|---|---|
auditctl | Աուդիտային կանոնների և վիճակի կառավարում (դինամիկ կոնֆիգուրացիա) |
ausearch | Օրագրերի որոնում ըստ տարբեր չափանիշների (օգտատեր, ֆայլ, համակարգային կանչ և այլն) |
aureport | Ամփոփիչ զեկույցների ստեղծում (ըստ ֆայլի, օգտատիրոջ, ժամանակի և այլն) |
autrace | Գործընթացի համակարգային կանչերի հետքի հետևում (համեմատելի է strace-ի հետ, սակայն ինտեգրված է աուդիտի հետ) |
Դեմոնի կոնֆիգուրացիան գտնվում է /etc/audit/auditd.conf ֆայլում (բուֆերներ, լցվածության դեպքում վարքագիծ, օրագրերի պտտում և այլն)։ Նախնական կարգավորումները սովորաբար համապատասխանում են մեծամասնության սցենարներին։
Աուդիտային կանոնների կարգավորում¶
Կանոնները կարելի է սահմանել դինամիկորեն՝ auditctl-ի միջոցով, կամ ստատիկորեն՝ /etc/audit/audit.rules ֆայլում։
Հիմնական սինտաքսիս.¶
-
Իրադարձությունների ցանկեր.
task— գործընթացի ստեղծում
entry/exit— համակարգային կանչի մուտք/ելք (ամենատարածվածը)
user— օգտատիրոջ տարածության իրադարձություններ
exclude— բացառություններ -
Գործողություններ.
always— գրանցել իրադարձությունը
never— անտեսել -
Օրինակներ.
# Հետևել /etc-ում ֆայլերի բացմանը՝ գրառման կամ բնութագրերի փոփոխության դեպքում
sudo auditctl -a task,always -S open -F dir=/etc -F auid>=1000 -F perm=wa
# Նույնը, բայց ավելի պարզ և արդյունավետ ֆայլերի/թղթապանակների համար
sudo auditctl -a task,always -S open -F dir=/etc -F perm=wa
# Որոշակի ֆայլ
sudo auditctl -a task,always -F path=/etc/passwd -F perm=wa
Նշում
-p wa զտիչը նշանակում է գրառման և բնութագրերի փոփոխություններ։
Մշտական կանոններ՝ /etc/audit/audit.rules-ում¶
Ձևաչափը համապատասխանում է auditctl հրամաններին, սակայն առանց հրամանի ինքնին.
# Օրինակներ (մեկը յուրաքանչյուր տողում)
-a task,always -S open -F dir=/etc -F perm=wa
-a task,always -S open -F path=/etc/passwd -F perm=wa
Ֆայլը խմբագրելուց հետո կիրառեք փոփոխությունները.
Օրագրերի վերլուծություն¶
Օրագրերը պահվում են /var/log/audit/ թղթապանակում։ Հիմնական գործիքներն են aureport-ը և ausearch-ը։
aureport — Ամփոփումներ և զեկույցներ¶
# Զեկույց ֆայլերի մուտքի մասին
sudo aureport -f
# Միայն վերջին 10 րոպեի համար (դիտարկելի անուններով)
sudo aureport -f -i --start recent
# Ամփոփում ըստ ֆայլի (քանի անգամ է յուրաքանչյուրը մուտք գործել)
sudo aureport -f --summary
# Զեկույց որոշակի ժամանակահատվածի համար
sudo aureport --start 08/20/2025 12:00 --end 08/20/2025 13:00 -f
# Հարմար ժամանակի նշաններ. today, yesterday, this-week, recent, now
sudo aureport -f --start today --summary
ausearch — Իրադարձությունների մանրամասն վերլուծություն¶
# Ըստ իրադարձության ID-ի (aureport-ից)
sudo ausearch -a 123456
# Ըստ օգտատիրոջ (UID)
sudo ausearch -ui 1001 -i
# Ըստ կատարելի ֆայլի
sudo ausearch -x /usr/bin/sudo -i
# Ըստ համակարգային կանչի
sudo ausearch -sc openat -i
# Ըստ ծառայության (օրինակ՝ cron)
sudo ausearch -tm cron -i
# Ժամանակի սահմանափակմամբ
sudo ausearch --start 08/20/2025 12:00 --end 08/20/2025 13:00 -f /etc/passwd
Նշում
-i (կամ --interpret) դրոշակը UID/GID և համակարգային կանչերի կոդերը փոխարինում է դիտարկելի անուններով։