ค้นหาเว็บไซต์

วิธีตรวจสอบความสมบูรณ์ของไฟล์และไดเร็กทอรีโดยใช้ "AIDE" ใน Linux


ในคู่มือสำคัญของเราในการเสริมความแข็งแกร่งและการรักษาความปลอดภัย CentOS 7 ภายใต้หัวข้อ “ปกป้องระบบภายใน ” หนึ่งในเครื่องมือรักษาความปลอดภัยที่มีประโยชน์ที่เราระบุไว้สำหรับการป้องกันไวรัส รูทคิท มัลแวร์ และการตรวจจับสิ่งที่ไม่ได้รับอนุญาต กิจกรรมคือ AIDE

AIDE (สภาพแวดล้อมการตรวจจับการบุกรุกขั้นสูง) เป็นเครื่องมือตรวจจับการบุกรุกแบบโอเพ่นซอร์สขนาดเล็กแต่ทรงพลังและฟรี ซึ่งใช้กฎที่กำหนดไว้ล่วงหน้าเพื่อตรวจสอบความสมบูรณ์ของไฟล์และไดเรกทอรีในระบบปฏิบัติการแบบ Unix เช่น ลินุกซ์ เป็นไบนารีแบบคงที่อิสระสำหรับการกำหนดค่าการตรวจสอบไคลเอ็นต์/เซิร์ฟเวอร์แบบง่าย

มีคุณสมบัติหลากหลาย: ใช้ไฟล์การกำหนดค่าข้อความธรรมดาและฐานข้อมูลทำให้ใช้งานง่าย รองรับอัลกอริธึมการแยกข้อความหลายอย่างเช่น แต่ไม่ จำกัด เพียง md5, sha1, rmd160, Tiger; รองรับคุณสมบัติไฟล์ทั่วไป ยังรองรับนิพจน์ทั่วไปที่มีประสิทธิภาพเพื่อเลือกรวมหรือแยกไฟล์และไดเร็กทอรีที่จะสแกน

นอกจากนี้ยังสามารถคอมไพล์ด้วยการสนับสนุนพิเศษสำหรับการบีบอัด Gzip, Posix ACL, SELinux, XAttrs และแอตทริบิวต์ระบบไฟล์แบบขยาย

Aide ทำงานโดยการสร้างฐานข้อมูล (ซึ่งเป็นเพียงสแน็ปช็อตของส่วนที่เลือกของระบบไฟล์) จากกฎนิพจน์ทั่วไปที่กำหนดไว้ในไฟล์การกำหนดค่า เมื่อฐานข้อมูลนี้เริ่มต้นแล้ว คุณสามารถตรวจสอบความสมบูรณ์ของไฟล์ระบบกับฐานข้อมูลได้ คู่มือนี้จะแสดงวิธีการติดตั้งและใช้งานผู้ช่วยใน Linux

วิธีการติดตั้ง AIDE ใน Linux

Aide ได้รับการบรรจุในที่เก็บข้อมูลอย่างเป็นทางการของการกระจาย Linux กระแสหลัก เพื่อติดตั้งให้รันคำสั่งสำหรับการแจกจ่ายของคุณโดยใช้ตัวจัดการแพ็คเกจ

apt install aide 	   [On Debian/Ubuntu]
yum install aide	   [On RHEL/CentOS] 	
dnf install aide	   [On Fedora 22+]
zypper install aide	   [On openSUSE]
emerge aide 	           [On Gentoo]

หลังจากติดตั้งแล้ว ไฟล์การกำหนดค่าหลักคือ /etc/aide.conf หากต้องการดูเวอร์ชันที่ติดตั้งรวมถึงพารามิเตอร์เวลาคอมไพล์ ให้รันคำสั่งด้านล่างบนเทอร์มินัลของคุณ:

aide -v
ผลลัพธ์ตัวอย่าง
Aide 0.14

Compiled with the following options:

WITH_MMAP
WITH_POSIX_ACL
WITH_SELINUX
WITH_PRELINK
WITH_XATTR
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"

คุณสามารถเปิดการกำหนดค่าโดยใช้โปรแกรมแก้ไขที่คุณชื่นชอบ

vi /etc/aide.conf

มีคำสั่งที่กำหนดตำแหน่งของฐานข้อมูล ตำแหน่งรายงาน กฎเริ่มต้น ไดเร็กทอรี/ไฟล์ที่จะรวมไว้ในฐานข้อมูล

ทำความเข้าใจกฎเกณฑ์ผู้ช่วยที่เป็นค่าเริ่มต้น

เมื่อใช้กฎเริ่มต้นข้างต้น คุณสามารถกำหนดกฎที่กำหนดเองใหม่ในไฟล์ aide.conf ได้ เป็นต้น

PERMS = p+u+g+acl+selinux+xattrs

กฎ PERMS ใช้สำหรับการควบคุมการเข้าถึงเท่านั้น โดยจะตรวจจับการเปลี่ยนแปลงใด ๆ ในไฟล์หรือไดเร็กทอรีตามสิทธิ์ของไฟล์/ไดเร็กทอรี ผู้ใช้ กลุ่ม สิทธิ์ควบคุมการเข้าถึง บริบท SELinux และแอตทริบิวต์ของไฟล์

วิธีนี้จะตรวจสอบเฉพาะเนื้อหาไฟล์และประเภทไฟล์เท่านั้น

CONTENT = sha256+ftype

นี่เป็นเวอร์ชันขยายของกฎก่อนหน้านี้ โดยจะตรวจสอบเนื้อหาเพิ่มเติม ประเภทไฟล์ และการเข้าถึง

CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs

กฎ ข้อมูลเท่านั้น ด้านล่างจะช่วยตรวจจับการเปลี่ยนแปลงข้อมูลภายในไฟล์/ไดเรกทอรีทั้งหมด

DATAONLY =  p+n+u+g+s+acl+selinux+xattrs+sha256

การกำหนดกฎเพื่อดูไฟล์และไดเร็กทอรี

เมื่อคุณกำหนดกฎแล้ว คุณสามารถระบุไฟล์และไดเร็กทอรีที่จะรับชมได้ เมื่อพิจารณากฎ PERMS ข้างต้น คำจำกัดความนี้จะตรวจสอบสิทธิ์สำหรับไฟล์ทั้งหมดในไดเรกทอรีราก

/root/\..*  PERMS

วิธีนี้จะตรวจสอบไฟล์ทั้งหมดในไดเร็กทอรี /root เพื่อดูการเปลี่ยนแปลงใดๆ

/root/   CONTENT_EX

เพื่อช่วยคุณตรวจจับการเปลี่ยนแปลงข้อมูลภายในไฟล์/ไดเร็กทอรีทั้งหมดภายใต้ /etc/ ให้ใช้สิ่งนี้

/etc/   DATAONLY 

การใช้ AIDE เพื่อตรวจสอบความสมบูรณ์ของไฟล์และไดเรกทอรีใน Linux

เริ่มต้นด้วยการสร้างฐานข้อมูลกับการตรวจสอบที่จะดำเนินการโดยใช้แฟล็ก --init คาดว่าจะเสร็จสิ้นก่อนที่ระบบของคุณจะเชื่อมต่อกับเครือข่าย

คำสั่งด้านล่างจะสร้างฐานข้อมูลที่มีไฟล์ทั้งหมดที่คุณเลือกไว้ในไฟล์กำหนดค่าของคุณ

aide --init

จากนั้นเปลี่ยนชื่อฐานข้อมูลเป็น /var/lib/aide/aide.db.gz ก่อนดำเนินการต่อโดยใช้คำสั่งนี้

mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

ขอแนะนำให้ย้ายฐานข้อมูลไปยังตำแหน่งที่ปลอดภัยซึ่งอาจอยู่ในสื่อแบบอ่านอย่างเดียวหรือบนเครื่องอื่น แต่ต้องแน่ใจว่าคุณอัปเดตไฟล์การกำหนดค่าเพื่ออ่านจากที่นั่น

หลังจากสร้างฐานข้อมูลแล้ว ตอนนี้คุณสามารถตรวจสอบความสมบูรณ์ของไฟล์และไดเร็กทอรีได้โดยใช้แฟล็ก --check

aide --check

มันจะอ่านสแน็ปช็อตในฐานข้อมูลและเปรียบเทียบกับไฟล์/ไดเร็กทอรีที่พบดิสก์ระบบของคุณ หากพบการเปลี่ยนแปลงในตำแหน่งที่คุณอาจไม่คาดคิด ระบบจะสร้างรายงานซึ่งคุณสามารถตรวจสอบได้

เนื่องจากไม่มีการเปลี่ยนแปลงใดๆ กับระบบไฟล์ คุณจะได้รับเฉพาะเอาต์พุตที่คล้ายกับเอาต์พุตด้านบนเท่านั้น ตอนนี้ให้ลองสร้างไฟล์บางไฟล์ในระบบไฟล์ ในพื้นที่ที่กำหนดไว้ในไฟล์คอนฟิกูเรชัน

vi /etc/script.sh
touch all.txt

จากนั้นทำการตรวจสอบอีกครั้ง ซึ่งควรรายงานไฟล์ที่เพิ่มไว้ข้างต้น ผลลัพธ์ของคำสั่งนี้ขึ้นอยู่กับส่วนของระบบไฟล์ที่คุณกำหนดค่าสำหรับการตรวจสอบ ซึ่งอาจใช้เวลานานในการล่วงเวลา

aide --check

คุณต้องดำเนินการตรวจสอบผู้ช่วยเป็นประจำ และในกรณีที่มีการเปลี่ยนแปลงใดๆ ในไฟล์ที่เลือกไว้แล้วหรือการเพิ่มคำจำกัดความของไฟล์ใหม่ในไฟล์การกำหนดค่า ให้อัปเดตฐานข้อมูลโดยใช้ตัวเลือก --update เสมอ:

aide --update

หลังจากรันการอัปเดตฐานข้อมูล หากต้องการใช้ฐานข้อมูลใหม่สำหรับการสแกนในอนาคต ให้เปลี่ยนชื่อเป็น /var/lib/aide/aide.db.gz เสมอ:

mv /var/lib/aide/aide.db.new.gz  /var/lib/aide/aide.db.gz

นั่นคือทั้งหมดที่สำหรับตอนนี้! แต่ให้สังเกตประเด็นสำคัญเหล่านี้:

  • คุณลักษณะหนึ่งของระบบตรวจจับการบุกรุกส่วนใหญ่ที่ AIDE รวมอยู่ด้วยก็คือ พวกเขาจะไม่จัดหาโซลูชันให้กับช่องโหว่ด้านความปลอดภัยส่วนใหญ่ในระบบ อย่างไรก็ตาม ช่วยบรรเทากระบวนการตอบสนองการบุกรุกโดยช่วยให้ผู้ดูแลระบบตรวจสอบการเปลี่ยนแปลงใดๆ ในไฟล์/ไดเร็กทอรีระบบ ดังนั้นคุณควรระมัดระวังและอัปเดตมาตรการรักษาความปลอดภัยปัจจุบันของคุณอยู่เสมอ
  • ขอแนะนำอย่างยิ่งให้เก็บฐานข้อมูลที่สร้างขึ้นใหม่ ไฟล์การกำหนดค่า และไบนารี AIDE ไว้ในตำแหน่งที่ปลอดภัย เช่น สื่อแบบอ่านอย่างเดียว (เป็นไปได้หากคุณติดตั้งจากแหล่งที่มา)
  • เพื่อความปลอดภัยเพิ่มเติม ให้พิจารณาลงนามในการกำหนดค่าและ/หรือฐานข้อมูล

สำหรับข้อมูลเพิ่มเติมและการกำหนดค่า โปรดดูหน้าคู่มือหรือดูหน้าแรกของ AIDE: http://aide.sourceforge.net/