Անցնել պարունակությանը

Համակարգի իրադարձությունների աուդիտ. Մոնիտորինգ և անվտանգության վերլուծություն

Այս հոդվածում

Linux համակարգի անվտանգությունն ու կայունությունն ապահովելու համար բավարար չէ միայն սպառնալիքները կանխելը՝ անհրաժեշտ է նաև հայտնաբերել և քննել իրադարձությունները։ Համակարգի աուդիտը չի արգելափակում հարձակումները, սակայն թույլ է տալիս գրանցել թափանցումը, նույնականացնել դրա աղբյուրն ու չափերը և հավաքել ապացույցներ վերլուծության համար։

Շատ բաշխումների հիմնական աուդիտային գործիքը auditd դեմոնն է։ Այն հետևում է միջուկի կանչերին (համակարգային կանչեր), գրանցում է օգտատերերի և գործընթացների գործողությունները և պահպանում իրադարձությունները կառուցվածքային օրագրերում։

Ինչպես է աշխատում auditd-ն

Աուդիտային համակարգը կցվում է միջուկին՝ օգտագործելով տրիգերներ, որոնք ակտիվանում են համակարգային կանչ մտնելիս (entry) կամ դուրս գալիս (exit)։ Կանոնները որոշում են, թե որ կանչերը, ֆայլերը, օգտատերերը կամ գործընթացներն են մոնիտորինգի տակ։ Բոլոր գրանցված իրադարձությունները գրվում են /var/log/audit/audit.log ֆայլ։

auditd-ի միջոցով կարող եք հետևել.

  • Համակարգի և ծառայությունների միացման/անջատմանը
  • Կարևոր ֆայլերի, օրինակ՝ /etc/passwd, /etc/shadow, SSH կոնֆիգուրացիաների և այլնի նկատմամբ կատարվող գործողություններին
  • Ֆայլերի իրավունքների, սեփականության կամ բնութագրերի փոփոխություններին
  • Ֆայլերի, թղթապանակների և հղումների ստեղծման/ջնջմանը
  • Ֆայլային համակարգի մոնտաժմանը
  • Տեղեկատվական ցանցի կապերին և կոնֆիգուրացիայի փոփոխություններին
  • Որոշակի օգտատերերի կամ գործընթացների գործողություններին

Ինստալյացիա և բաղադրիչներ

CentOS/RHEL-ում audit փաթեթը նախապես տեղադրված է։
Debian/Ubuntu-ում այն տեղադրվում է հետևյալ հրամանով.

sudo apt-get install auditd

Հիմնական օգնական գործիքներ.

Օգնական գործիք Նպատակ
auditctl Աուդիտային կանոնների և վիճակի կառավարում (դինամիկ կոնֆիգուրացիա)
ausearch Օրագրերի որոնում ըստ տարբեր չափանիշների (օգտատեր, ֆայլ, համակարգային կանչ և այլն)
aureport Ամփոփիչ զեկույցների ստեղծում (ըստ ֆայլի, օգտատիրոջ, ժամանակի և այլն)
autrace Գործընթացի համակարգային կանչերի հետքի հետևում (համեմատելի է strace-ի հետ, սակայն ինտեգրված է աուդիտի հետ)

Դեմոնի կոնֆիգուրացիան գտնվում է /etc/audit/auditd.conf ֆայլում (բուֆերներ, լցվածության դեպքում վարքագիծ, օրագրերի պտտում և այլն)։ Նախնական կարգավորումները սովորաբար համապատասխանում են մեծամասնության սցենարներին։

Աուդիտային կանոնների կարգավորում

Կանոնները կարելի է սահմանել դինամիկորեն՝ auditctl-ի միջոցով, կամ ստատիկորեն՝ /etc/audit/audit.rules ֆայլում։

Հիմնական սինտաքսիս.

sudo auditctl -a <list>,<action> -S <syscall> -F <filter>
  • Իրադարձությունների ցանկեր.
    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

Ֆայլը խմբագրելուց հետո կիրառեք փոփոխությունները.

sudo systemctl restart auditd

Օրագրերի վերլուծություն

Օրագրերը պահվում են /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
Զիջող մուտքի որոնման օրինակ.
sudo aureport -f -i --start today | grep /etc/passwd

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 և համակարգային կանչերի կոդերը փոխարինում է դիտարկելի անուններով։

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×