ก่อนเริ่มหลักสูตร
AIDE ย่อมาจาก “Advanced Intrusion Detection Environment” และเป็นหนึ่งในระบบที่ได้รับความนิยมมากที่สุดสำหรับการตรวจสอบการเปลี่ยนแปลงในระบบปฏิบัติการบน Linux AIDE ใช้เพื่อป้องกันมัลแวร์ ไวรัส และตรวจจับกิจกรรมที่ไม่ได้รับอนุญาต เพื่อตรวจสอบความสมบูรณ์ของไฟล์และตรวจจับการบุกรุก AIDE จะสร้างฐานข้อมูลข้อมูลไฟล์และเปรียบเทียบสถานะปัจจุบันของระบบกับฐานข้อมูลนี้ AIDE ช่วยลดเวลาในการสืบสวนเหตุการณ์โดยมุ่งเน้นไปที่ไฟล์ที่ได้รับการแก้ไข
คุณสมบัติผู้ช่วย:
- รองรับคุณสมบัติไฟล์ต่างๆ รวมถึง: ประเภทไฟล์, inode, uid, gid, การอนุญาต, จำนวนลิงก์, mtime, ctime และ atime
- รองรับการบีบอัด Gzip, SELinux, XAttrs, Posix ACL และแอตทริบิวต์ระบบไฟล์
- รองรับอัลกอริธึมต่าง ๆ รวมถึง md5, sha1, sha256, sha512, rmd160, crc32 เป็นต้น
- การส่งการแจ้งเตือนทางอีเมล
ในบทความนี้ เราจะดูวิธีการติดตั้งและใช้ AIDE สำหรับการตรวจจับการบุกรุกบน CentOS 8
ข้อกำหนดเบื้องต้น
- เซิร์ฟเวอร์ที่ใช้ CentOS 8 พร้อม RAM อย่างน้อย 2 GB
- การเข้าถึงรูท
เริ่มต้นใช้งาน
แนะนำให้อัพเดตระบบก่อน เมื่อต้องการทำเช่นนี้ ให้เรียกใช้คำสั่งต่อไปนี้
dnf update -y
หลังจากอัปเดตแล้ว ให้รีสตาร์ทระบบเพื่อให้การเปลี่ยนแปลงมีผล
การติดตั้งผู้ช่วย
AIDE มีอยู่ในพื้นที่เก็บข้อมูลเริ่มต้นของ CentOS 8 คุณสามารถติดตั้งได้อย่างง่ายดายโดยใช้คำสั่งต่อไปนี้:
dnf install aide -y
เมื่อการติดตั้งเสร็จสมบูรณ์ คุณสามารถดูเวอร์ชัน AIDE ได้โดยใช้คำสั่งต่อไปนี้:
aide --version
คุณควรเห็นสิ่งต่อไปนี้:
Aide 0.16
Compiled with the following options:
WITH_MMAP
WITH_PCRE
WITH_POSIX_ACL
WITH_SELINUX
WITH_XATTR
WITH_E2FSATTRS
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_CURL
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"
ตัวเลือกที่มี aide
สามารถดูได้ดังนี้:
aide --help
การสร้างและเริ่มต้นฐานข้อมูล
สิ่งแรกที่คุณต้องทำหลังจากติดตั้ง AIDE คือการเริ่มต้นใช้งาน การเริ่มต้นประกอบด้วยการสร้างฐานข้อมูล (สแนปชอต) ของไฟล์และไดเร็กทอรีทั้งหมดบนเซิร์ฟเวอร์
ในการเริ่มต้นฐานข้อมูล ให้รันคำสั่งต่อไปนี้:
aide --init
คุณควรเห็นสิ่งต่อไปนี้:
Start timestamp: 2020-01-16 03:03:19 -0500 (AIDE 0.16)
AIDE initialized database at /var/lib/aide/aide.db.new.gz
Number of entries: 49472
---------------------------------------------------
The attributes of the (uncompressed) database(s):
---------------------------------------------------
/var/lib/aide/aide.db.new.gz
MD5 : 4N79P7hPE2uxJJ1o7na9sA==
SHA1 : Ic2XBj50MKiPd1UGrtcUk4LGs0M=
RMD160 : rHMMy5WwHVb9TGUc+TBHFHsPCrk=
TIGER : vkb2bvB1r7DbT3n6d1qYVfDzrNCzTkI0
SHA256 : tW3KmjcDef2gNXYqnOPT1l0gDFd0tBh9
xWXT2iaEHgQ=
SHA512 : VPMRQnz72+JRgNQhL16dxQC9c+GiYB8g
uZp6uZNqTvTdxw+w/IYDSanTtt/fEkiI
nDw6lgDNI/ls2esijukliQ==
End timestamp: 2020-01-16 03:03:44 -0500 (run time: 0m 25s)
คำสั่งดังกล่าวจะสร้างฐานข้อมูลใหม่ aide.db.new.gz
ในแคตตาล็อก /var/lib/aide
. สามารถดูได้โดยใช้คำสั่งต่อไปนี้:
ls -l /var/lib/aide
ผล:
total 2800
-rw------- 1 root root 2863809 Jan 16 03:03 aide.db.new.gz
AIDE จะไม่ใช้ไฟล์ฐานข้อมูลใหม่นี้จนกว่าจะเปลี่ยนชื่อเป็น aide.db.gz
. ซึ่งสามารถทำได้ดังนี้:
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
ขอแนะนำให้คุณอัปเดตฐานข้อมูลนี้เป็นระยะเพื่อให้แน่ใจว่ามีการตรวจสอบการเปลี่ยนแปลงอย่างเหมาะสม
คุณสามารถเปลี่ยนตำแหน่งของฐานข้อมูลได้โดยการเปลี่ยนพารามิเตอร์ DBDIR
ในไฟล์ /etc/aide.conf
.
กำลังดำเนินการตรวจสอบ
ขณะนี้ AIDE พร้อมใช้ฐานข้อมูลใหม่แล้ว ดำเนินการตรวจสอบ AIDE ครั้งแรกโดยไม่ทำการเปลี่ยนแปลงใดๆ:
aide --check
คำสั่งนี้จะใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์ ขึ้นอยู่กับขนาดของระบบไฟล์และจำนวน RAM บนเซิร์ฟเวอร์ของคุณ เมื่อการสแกนเสร็จสิ้น คุณจะเห็นสิ่งต่อไปนี้:
Start timestamp: 2020-01-16 03:05:07 -0500 (AIDE 0.16)
AIDE found NO differences between database and filesystem. Looks okay!!
ผลลัพธ์ข้างต้นบอกว่าไฟล์และไดเร็กทอรีทั้งหมดตรงกับฐานข้อมูล AIDE
ผู้ช่วยทดสอบ
ตามค่าเริ่มต้น AIDE จะไม่ติดตามไดเรกทอรีรากของ Apache เริ่มต้น /var/www/html.
มากำหนดค่า AIDE เพื่อดูกันเถอะ ในการทำเช่นนี้คุณจะต้องเปลี่ยนไฟล์ /etc/aide.conf
.
nano /etc/aide.conf
เพิ่มบรรทัดด้านบน "/root/CONTENT_EX"
ต่อไปนี้:
/var/www/html/ CONTENT_EX
จากนั้นสร้างไฟล์ aide.txt
ในแคตตาล็อก /var/www/html/
โดยใช้คำสั่งต่อไปนี้:
echo "Test AIDE" > /var/www/html/aide.txt
ตอนนี้ให้รันการตรวจสอบ AIDE และตรวจสอบให้แน่ใจว่าตรวจพบไฟล์ที่สร้างขึ้น
aide --check
คุณควรเห็นสิ่งต่อไปนี้:
Start timestamp: 2020-01-16 03:09:40 -0500 (AIDE 0.16)
AIDE found differences between database and filesystem!!
Summary:
Total number of entries: 49475
Added entries: 1
Removed entries: 0
Changed entries: 0
---------------------------------------------------
Added entries:
---------------------------------------------------
f++++++++++++++++: /var/www/html/aide.txt
เราเห็นว่าตรวจพบไฟล์ที่สร้างขึ้น aide.txt
.
หลังจากวิเคราะห์การเปลี่ยนแปลงที่ตรวจพบแล้ว ให้อัพเดตฐานข้อมูล AIDE
aide --update
หลังจากการอัพเดตคุณจะเห็นสิ่งต่อไปนี้:
Start timestamp: 2020-01-16 03:10:41 -0500 (AIDE 0.16)
AIDE found differences between database and filesystem!!
New AIDE database written to /var/lib/aide/aide.db.new.gz
Summary:
Total number of entries: 49475
Added entries: 1
Removed entries: 0
Changed entries: 0
---------------------------------------------------
Added entries:
---------------------------------------------------
f++++++++++++++++: /var/www/html/aide.txt
คำสั่งดังกล่าวจะสร้างฐานข้อมูลใหม่ aide.db.new.gz
ในแคตตาล็อก
/var/lib/aide/
คุณสามารถดูได้ด้วยคำสั่งต่อไปนี้:
ls -l /var/lib/aide/
ผล:
total 5600
-rw------- 1 root root 2864012 Jan 16 03:09 aide.db.gz
-rw------- 1 root root 2864100 Jan 16 03:11 aide.db.new.gz
ตอนนี้เปลี่ยนชื่อฐานข้อมูลใหม่อีกครั้งเพื่อให้ AIDE ใช้ฐานข้อมูลใหม่เพื่อติดตามการเปลี่ยนแปลงเพิ่มเติม คุณสามารถเปลี่ยนชื่อได้ดังนี้:
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
รันการตรวจสอบอีกครั้งเพื่อให้แน่ใจว่า AIDE กำลังใช้ฐานข้อมูลใหม่:
aide --check
คุณควรเห็นสิ่งต่อไปนี้:
Start timestamp: 2020-01-16 03:12:29 -0500 (AIDE 0.16)
AIDE found NO differences between database and filesystem. Looks okay!!
เราดำเนินการตรวจสอบโดยอัตโนมัติ
เป็นความคิดที่ดีที่จะทำการตรวจสอบ AIDE ทุกวันและส่งรายงานทางไปรษณีย์ กระบวนการนี้สามารถเป็นแบบอัตโนมัติโดยใช้ cron
nano /etc/crontab
หากต้องการรันการตรวจสอบ AIDE ทุกวันเวลา 10:15 น. ให้เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์:
15 10 * * * root /usr/sbin/aide --check
ขณะนี้ AIDE จะแจ้งให้คุณทราบทางไปรษณีย์ คุณสามารถตรวจสอบเมลของคุณด้วยคำสั่งต่อไปนี้:
tail -f /var/mail/root
สามารถดูบันทึก AIDE ได้โดยใช้คำสั่งต่อไปนี้:
tail -f /var/log/aide/aide.log
ข้อสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีใช้ AIDE เพื่อตรวจจับการเปลี่ยนแปลงไฟล์และระบุการเข้าถึงเซิร์ฟเวอร์ที่ไม่ได้รับอนุญาต สำหรับการตั้งค่าเพิ่มเติม คุณสามารถแก้ไขไฟล์การกำหนดค่า /etc/aide.conf ได้ ด้วยเหตุผลด้านความปลอดภัย ขอแนะนำให้จัดเก็บฐานข้อมูลและไฟล์การกำหนดค่าไว้ในสื่อแบบอ่านอย่างเดียว ข้อมูลเพิ่มเติมสามารถพบได้ในเอกสารประกอบ
ที่มา: will.com