Ubuntu804 ติดตั้งระบบตรวจและรายงานการบุกรุกคอมฯ ทริพไวร์


tripwire เป็นโปรแกรมที่เหมือนกับโปรแกรม...

Ubuntu 8.04 ติดตั้งระบบตรวจและรายงานการบุกรุกคอมฯ ทริพไวร์

 

บันทึกของผมอันนี้ต้องออกตัวก่อนว่า ไม่ใช่ฐานะผู้เชี่ยวชาญระบบความปลอดภัยคอมพิวเตอร์ แต่เป็นผู้ใช้งานคอมพิวเตอร์ที่ติดตั้ง โปรแกรมทริพไวร์ บนอูบูนทู804

 

ผมเคยอ่านเพาเวอร์พอยท์จาก information security center ถ้าผมจำไม่ผิด เป็นของมหาวิทยาลัยเยล สหรัฐอเมริกา (ตอนนี้ต้องการจะเอามาอ้างอิง กลับค้นหาไม่เจอ) เป็นการนำเสนอที่พูดถึงว่า มีอะไรบ้างที่เป็นข้อสังเกตสำหรับผู้ใช้คอมพิวเตอร์ ว่าคอมพิวเตอร์ถูกละเมิดสิทธิ์ บุกรุกเข้ามา (hacked) และไฟล์อะไรบ้างที่มักจะถูก hacked  และแนะนำ คือการติดตั้งโปรแกรมช่วย ต่างๆ เช่น tripwire, rpm, aide, ls, pkgck, logcheck, sar และ bastilleรวมทั้งการ backup

 

ผมได้ลองติดตั้ง ทริพไวร์ (tripwire) ดู พบว่าเว็บไซต์เขียนแนะนำดีนั้น เขียนโดย Marco Fioretti เขาเขียนได้ครอบคลุมดีมาก เข้าใจไม่ยาก มีที่คลาดเคลื่อนเพียงเล็กน้อยซึ่งสามารถค้นหาและแก้ให้ถูกได้ง่าย ผมจึงแนะนำถ้าสนใจจะอ่านเพิ่ม  [อ้างอิง 1] ส่วนรายการ[อ้างอิง 2] โดย ..นพปฎล กุลจรรยาภิวัฒน์ (2544) ปรับปรุงโดย คุณชวลิต ทินกรสูติบุตร (2546) ก็อาจจะเก่าไปนิดหนึ่ง ผมไม่สามารถใช้คำสั่งทำตามได้ทีเดียว แต่ก็ดีที่ทำให้เข้าใจการทำงานของโปรแกรมยิ่งขึ้น ส่วนอ้างอิง [3] ก็ได้คำสั่งเขียนลง text file  ส่วนอื่นๆที่ไม่ได้อ้างอิงคือที่อยู่ในคู่มือ (พิมพ์ man tripwire จริงๆทุกอย่างมีเขียนไว้ในคู่มือแล้ว)

 

tripwire เป็นโปรแกรมที่เหมือนกับโปรแกรม aide ที่ใช้รายงานสภาพของไฟล์ เฉพาะไฟล์ที่กำหนดไว้ (แต่ไม่ป้องกันการบุกรุก) เรียกว่า ระบบ IDS (Intrusion Detection System)

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

 

การจะได้ประโยชน์จากโปรแกรมนี้

1. จะต้องอดทน ใส่ใจและปรับปรุงไฟล์ที่ควบคุมโปรแกรมอยู่เสมอ ดูไดอะแกรม อ้างอิง [2]

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

 

มีสองไฟล์ที่สำคัญที่ควบคุมโปรแกรม

1. twcfg.txt ที่กำหนดนิยามตัวแปร และการตั้งคอนฟิกกูเรชันต่างๆ

2. twpol.txt กำหนด policy ซึ่งจะกำหนดว่าวัตถุใดบ้างที่ต้องติดตาม และถ้าวัตถุหายหรือเปลี่ยนแปลงไปจะทำอย่างไร

 

ขั้นตอน/คำสั่ง

1. sudo apt-get install tripwire

โปรแกรมที่โหลดมาได้และติดตั้งปัจจุบันนี้ เป็นเวอร์ชัน 2.3 (มีเวอร์ชัน 2.4 แล้ว ซึ่งเข้าใจว่าเป็น autoconfiguration)

ในระหว่างการติดตั้ง จะปรากฏหน้าต่าง Tripwire Configuration อ่านเสร็จ กดลูกศรขวา ปุ่มโอเคเป็นสีแดง กดเอ็นเทอร์

หน้าต่างที่สองปรากฏ ถามว่าจะให้สร้างไฟล์ (conf file และ policy file ไหม) ซึ่งจะต้องใส่กลุ่มคำที่เป็นรหัสผ่าน เรียก passphrase จำนวนสองชุด (site key และ local key) ซึ่งในช่วงเวลาระหว่างการสร้างไฟล์คีย์ทั้งสอง  หลังการป้อนรหัส อาจเป็นโอกาสให้ผู้บุกรุกขโมยไปได้--ช่างประจวบเหมาะ (ถ้าคิดว่าโอกาสจะเกิดสูง ก็อาจตอบ No ในช่วงนี้ คือติดตั้งโปรแกรมโดยไม่สร้างคีย์ แล้วไปสร้างคีย์เองด้วยคำสั่ง twadmin  คีย์ที่สร้างแล้วแล้วนี้ถ้าต้องการเปลี่ยนก็ใช้คำสั่ง twadmin เช่นกัน)

ตอบ yes

(หน้าต่างทั้งสองจะปรากฏซำ้อีกครั้ง กด ok และ yes ตามลำดับ)

 

2. find /etc/tripwire

ผมใช้คำสั่งนี้ ตรวจดูว่ามีไฟล์อะไร สร้างขึ้นบ้าง

อย่างน้อย ต้องมีไฟล์เก็บรหัส 2ไฟล์ (site.key & local.key) มีคอนฟิกกูเรชันไฟล์ ไฟล์policy และ text files สำหรับ คอนฟิกกูเรชันไฟล์ ไฟล์policy ดังนี้

/etc/tripwire

/etc/tripwire/site.key

/etc/tripwire/twpol.txt

/etc/tripwire/tw.cfg

/etc/tripwire/youruser-desktop-local.key

/etc/tripwire/twcfg.txt

/etc/tripwire/tw.pol

 

3. ขั้นต่อไป ใช้คำสั่งในฐานะเจ้าของคอมพิวเตอร์ (owner) คือ root ใช้คำสั่ง sudo su

4. เริ่มด้วยการทำสำเนา text files เก็บไว้กันพลาด ด้วย

    # cp -p /etc/tripwire/twcfg.txt /etc/tripwire/twcfg.txt.orig

    # cp -p /etc/tripwire/twpol.txt /etc/tripwire/twpol.txt.orig

 -p คือตัวเลือก ที่ให้สำเนา โดยคงความเหมือนเดิมของไฟล์ต้นฉบับ (mode, สภาพความเป็นเจ้าของ และ timestamps)

   ถ้าทุกอย่างถูกต้อง ก็จะพบสำเนาที่สร้างในโฟลเดอร์

 

5. สร้าง encrypted conf file

   # twadmin --create-cfgfile --cfgfile twcfg.enc --site-keyfile /etc/tripwire/site.key /etc/tripwire/twcfg.txt

กดเอ็นเทอร์จะถามกลุ่มรหัสผ่าน (site-key) ดังนี้

Please enter your site passphrase:

เมื่อป้อนรหัสแล้ว ในที่สุดจะรายงานการเขียนไฟล์เสร็จดังนี้

Wrote configuration file: /home/your-user-name/twcfg.enc

 

6. สร้าง encrypted policy file

# twadmin --create-polfile --cfgfile twcfg.enc --polfile twpol.enc --site-keyfile /etc/tripwire/site.key /etc/tripwire/twpol.txt

Please enter your site passphrase:

Wrote policy file: /home/your-user-name/twpol.enc

 

ในขั้นที่ 6 สังเกตว่า การเข้ารหัสไฟล์policy ต้องใช้ไฟลืคอนฟิกกูเรชันที่เข้ารหัสแล้วด้วย

โปรแกรมจะใช้ ไฟล์ที่เข้ารหัส (encrypted) แทนการใช้ text file ธรรมดา เนื่องจากตรวจดูความเสียหายผิดปกติง่ายกว่า

 

7. สร้าง ฐานข้อมูล

# tripwire -m i --cfgfile twcfg.enc --polfile twpol.enc --site-keyfile /etc/tripwire/site.key --local-keyfile /etc/tripwire/your-user-name-desktop-local.key

Please enter your local passphrase:

จะปรากฏข้อความต่อไปนี้ ที่คอนโซล

Parsing policy file: /home/your-user-name/twpol.enc

Generating the database...

*** Processing Unix File System ***

### Warning: File system error.

### Filename: /var/lib/tripwire/your--desktop.twd

### No such file or directory

### Continuing...

...

...

...

### Warning: File system error.

### Filename: /proc/7410/task/7410/fdinfo/4

### No such file or directory

### Continuing...

จะปรากฏคำเตือนมากมาย (ซึ่งจริงๆ สามารถใช้ ตัวเลือกในคำสั่งที่ให้ไม่ต้องแสดงคำเตือน เปิด man tripwire) แต่ในที่สุดจะได้

Wrote database file: /var/lib/tripwire/your-user-name--desktop.twd

The database was successfully generated.

 

8. ตรวจ ความคงอยู่ (ครบปกติดังเดิม)ของไฟล์ คือขั้นตอน check integrity ด้วย

tripwire –check

หรือ

tripwire -m c

 

จากนั้นอ่านรายงานที่แสดงในคอนโซล มีอะไรเปลี่ยนแปลง เพิ่มขึ้น หายไป มีระบบไฟล์ผิดพลาดอย่างไร ซึ่งในตอนแรกอาจมีสิ่งผิดปกติมากมาย (warning) อันนี้เป็นเพราะในไฟล์ policy ที่กำหนดมาจากโปรแกรมนั้น กำหนดให้ตรวจสอบติดตามหลายไฟล์ ซึ่งอาจมีไฟล์จำนวนมากที่ยังไม่ได้ติดตั้ง หรืออาจจะไม่ติดตั้งเลยตลอดเวลาการใช้งานของผู้ใช้ ดังนั้นต้อง comment out ในไฟล์ policy ด้วยการใช้ # ที่หน้าบรรทัดที่ไม่ต้องการให้โปรแกรมตรวจสอบ

อาจต้องทำขั้นตอนนี้ซ้ำไปมาจนกว่า การแจ้งเตือนที่ไม่เหมาะสมหมดไป

 

9. หลังจากแก้ไขไฟล์ policy ที่เป็น text file ไปแล้ว ก็สร้างไฟล์ไบนารีของ policy file ขึ้นมาใหม่ (encrypted policy file) ใช้คำสั่งในข้อ 6

 

10. ปรับ policy ของโปรแกรมให้เป็นปัจจุบัน (ขั้นตอน update policy)

คำสั่ง

tripwire -m p  /etc/tripwire/twpol.txt

ถ้าปรากฏว่า คำสั่งนี้ โปรแกรมทำไม่ได้ (ไม่มีการเปลี่ยนทั้ง policy และ database) ดังผลลัพธ์ต่อไปนี้

.

.

.

======== Step 2: Updating the database with new objects.

======== Step 3: Pruning unneeded objects from the database.

Policy update failed; policy and database files were not altered.

 

อาจต้องปรับลดระดับความปลอดภัยข้อมูล (security mode) ให้ต่ำ โดยกำหนดด้วย ตัวเลือก -Z low

 (ถ้าไม่กำหนด ถ้าคุณสมบัติของไฟล์ในระบบไฟล์ไม่เหมือนกับของไฟล์ในฐานข้อมูล จะเตือนและออกจากโปรแกรมโดยไม่แก้ไขเปลี่ยนแปลง) ดังนี้

tripwire -m p -Z low /etc/tripwire/twpol.txt

จะแสดงผลดังนี้

...

...

### Continuing...

### Warning: Policy Update Removed Object.

### An object has been removed since the database was last updated.

### Object name: /proc/7410/cmdline

### Continuing...

======== Step 2: Updating the database with new objects.

======== Step 3: Pruning unneeded objects from the database.

Wrote policy file: /etc/tripwire/tw.pol

Wrote database file: /var/lib/tripwire/your-user-name-desktop.twd

 

จากสองบรรทัดสุดท้ายจะเห็นว่า มีการเขียนไฟล์ policy และ database ใหม่แล้ว

 

11. ตรวจ ความคงอยู่ของไฟล์อีกครั้ง (คำสั่งดูข้อ 8)

ผลที่แสดงที่คอนโซล ช่วงแรกจะแจ้งเตือนต่างๆ

ส่วนหนึ่งแสดงดังต่อไปนี้

.

.

.

### Warning: File system error.

### Filename: /proc/7496/task/7496/fdinfo/3

### No such file or directory

### Continuing...

Wrote report file: /var/lib/tripwire/report/your-user-name-desktop-20080603-094614.twr

 

สังเกตว่า บรรทัดข้างบนจะบอกว่า ไฟล์รายงานอยู่ที่ใด

จากนั้นจะเป็นรายงาน ขึ้นต้นดังนี้

 

Tripwire(R) 2.3.0 Integrity Check Report

 

Report generated by:          root

Report created on:            Tue 03 Jun 2008 09:46:14 AM ICT

Database last updated on:     Tue 03 Jun 2008 09:39:37 AM ICT

...

...

...

 

12. ถ้าต้องการจะเขียนรายงานลง text file (non-encrypted)ใช้คำสั่ง

# twprint --print-report --cfgfile twcfg.enc --twrfile /var/lib/tripwire/report/your-user-name-desktop-20080603-094614.twr >> /home/your-user-name/your-report/03June08.tx

ซึ่งกรณีตัวอย่างนี้ จะต้องมีโฟลเดอร์ “your-report” อยู่ใน path ที่กำหนด

 

13. สามารถส่งรายงานทางอีเมล์ โดยแก้ตัวแปร REPORTFILE ในไฟล์คอนฟิกกูเรชัน

14. ต้องเช็คความคงตัวของไฟล์บ่อยมากน้อยเพียงใด ขึ้นกับ ระบบมีความสำคัญมากน้อยเพียงใด คอมพิวเตอร์จะมีโอกาสเจอผู้บุกรุกภายนอกบ่อยขนาดไหน ถ้าเป็นคอมพิวเตอร์ในหน่วยงานที่อยู่หลัง firewall อาจจะทำเพียงสัปดาห์ละครั้ง

15. กรุณาเขียนข้อคิดเห็นเพิ่มเติม เพื่อเติมเต็ม ขอบคุณครับ

 

 

Again, many thanks to Marco Fioretti in reference [1] for the nice tutorial.  As a Thai version of his work, I feel that it might not be well-explained as much as his article.

 

อ้างอิง

1. http://www.linuxjournal.com/article/8758

2. http://thaicert.nectec.or.th/paper/ids/tripwire.php

3. ubuntuforum..

 

 

หมายเลขบันทึก: 185966เขียนเมื่อ 3 มิถุนายน 2008 16:25 น. ()แก้ไขเมื่อ 15 เมษายน 2012 02:09 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (0)

ไม่มีความเห็น

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท