ThaiCERT: Thai Computer Emergency Response Team
ศูนย์ประสานงานการรักษาความปลอดภัยคอมพิวเตอร์ ประเทศไทย 
 
 
 



ชื่อเรื่อง : Security Logs and Checkpoint Firewall-1
ที่มา :
http://www.sans.org/infosecFAQ/firewall/logs.htm
เรียบเรียงโดย : ภูวดล ด่านระหาญ
เรียบเรียงเมื่อ : 11 กรกฏาคม 2544

Checkpoint Firewall-1 เป็นไฟล์วอลที่ได้รับความนิยมยี่ห้อหนึ่ง มีส่วนแบ่งในท้องตลาดประมาณ 41% แต่ยังมีจุดด้อยที่ยังไม่ได้รับการพัฒนาคือเรื่องของ logging เนื่องจาก Firewall-1 พยายามที่จะจัดเก็บข้อมูลล็อกไฟล์ให้น้อยที่สุด และให้รายละเอียดค่อนข้างน้อย เช่น จัดเก็บเฉพาะ initial connection คือช่วงของการส่ง SYN/ACK เท่านั้น ซึ่งผู้ดูแลระบบจะไม่สามารถทราบได้ว่าหลังจากนั้นเกิดเหตุการณ์อะไรขึ้นบ้าง

นอกจากนี้โดยตัว Firewall-1 มีข้อจำกัดในการใช้งาน Syslog ซึ่งถือเป็น service มาตรฐานในการรวบรวมข้อมูลล็อกไฟล์จากโปรแกรมต่างๆ มาไว้ที่เดียว ซึ่งจากนั้นอาจจะใช้ Swatch เป็นเครื่องมือในการพิจารณาล็อกไฟล์แบบ real time จาก syslog นั้นได้ ในกรณีที่ท่านต้องการให้ Firewall-1 สามารถสนับสนุนการทำงานกับ syslog แล้ว จะต้องซื้อโปรแกรมเสริม (add-on products and OPSEC(Open Platform for Security) providers) ซึ่งแน่นอนว่าจะต้องมีค่าใช้จ่ายที่เพิ่มขึ้น

Firewall-1 จะเก็บข้อมูลล็อกไว้ในรูปแบบไฟล์ binary ดังนั้นจะต้องทำการ export ข้อมูล binary เหล่านั้นให้อยู่ในรูปของ delimited format (เป็นไฟล์ที่มีรูปแบบที่แน่นอน โดยอาศัยตัวอักษรบางชนิดคั่นระหว่างฟิลด์ของข้อมูล) โดยปกติแล้ว Firewall-1 จะมีปัญหาในการ export ข้อมูล คือ ลำดับของฟิลด์ที่ export ออกมานั้น จะมีความแตกต่างกัน แต่ก็ยังโชคดีที่มีเครื่องมือช่วยเหลือในเรื่องนี้ให้ลุล่วงได้คือ Spitzner

Log Maintenance

ข้อมูลล็อกของ Firewall-1 นั้นจะมีขนาดที่ใหญ่เพิ่มขึ้นเรื่อยๆ ถ้าเราใช้ Checkpoint GUI ในการตรวจสอบข้อมูลล็อก ก็อาจจะเสียเวลาค่อนข้างนานในการประมวลผล และบางครั้งอาจทำให้ระบบมีปัญหาถึงขั้นแฮงก์ได้ วิธีแก้ไขคือ ใช้คำสั่ง fw logswitch รันใน cron job เพื่อให้มีการตัดข้อมูลล็อกออกเป็นไฟล์ย่อยๆ ได้

การทำงานของ fw logswithc นั้นจะทำกับข้อมูลล็อกที่มีอยู่ก่อนหน้านี้แล้ว โดยจะสร้างไฟล์ใหม่ ซึ่งชื่อไฟล์มีรูปแบบดังนี้คือ

ddmmyyyy-hh:mm:ss.log

เช่น สมมุติว่าขณะที่รัน fw logswitch คือวันที่ 23 May 2001 1:00 am ก็จะได้แบ็กอัพไฟล์ชื่อว่า 23May2001-01:00:00.log ซึ่งเราสามารถแบ็กอัพไฟล์นี้ไว้ในเทปหรือย้ายไปเครื่องอื่นได้

รูปแบบของคำสั่งคือ #fw logswitch ถ้ารันใน cron job ก็สามารถตั้งได้ เช่น 0 1 * * * fw logswitch ซึ่งจะรันคำสั่งนี้ทุกเวลาตีหนึ่งของทุกวัน ข้อสำคัญคือต้องรัน cron job ในฐานะ root เท่านั้น

หลังจากที่แบ็กอัพข้อมูลล็อกไว้แล้ว ขั้นตอนต่อไปคือ export ให้อยู่มนรูปแบบ ASCII สำหรับวิเคราะห์ข้อมูลต่อไป คำสั่งที่ใช้ export คือ

#fw logexport -d : -i input.file -o output.file -n

-d = ใช้ตัวแบ่งคั่นฟิลด์เป็น : ถ้าไม่ระบุ โดย default คือตัว semi-colon (;)
-i = ระบุ input file
-o = ระบุ output file
-n = สั่งโปรแกรมให้ใช้ค่า IP address ไม่ต้องแปลงเป็น domain name (ทำให้ทำงานได้เร็วขึ้น)

โดยปกติแล้วขนาดไฟล์ของ output จะมีขนาดใหญ่กว่า input file ประมาณ 2.5 เท่า ท่านสามารถดูตัวอย่างของการสั่ง export ได้ ดังนี้

Fw logexport -d : -i 23May2001-01:00:00.log -o fwlog5-23-01.txt -n

สำหรับความหมายของฟิลด์นั้นจะมีลักษณะดังด้านล่าง แต่ลำดับของฟิลด์อาจจะมีความแตกต่างกันได้

num Record number
date Date record was written
time Time record was written
orig Which firewall is writing the record
type Log entry or Alert
action Accept or Drop
alert Kind of alert generated, if any
i/f_name Firewall interface that the traffic was seen on
i/f_dir In relation to the firewall, inbound or outbound
proto TCP, UDP, ICMP
src Source IP address
dst Destination IP address
service Destination port
s_port Source port
len Packet length
rule Firewall rule that triggered the log Entry
icmp-type ICMP Type
icmp-code ICMP Code
xlatesrc NAT, the source IP that was translated
xlatedst NAT, the destination IP that was translated
xlatesport NAT, the translated source port
xlatedport NAT, the translated destination port
message Firewall message to explain an action
user User authenticated by the Firewall
reason Is Encryption happening, authentication?
scheme: Encryption Scheme being used
methods: Encryption protocol being used
srckeyid Key scheme used by source IP
dstkeyid Key scheme used by destination IP
sys_msgs System messages

หลังจากที่เราได้ข้อมูลในรูป ASCII แล้วก็สามารถวิเคราะห์ข้อมูลได้เลย หรืออาจะจะใช้เครื่องมืออื่นๆ มาช่วย เช่น export ข้อมูลให้เข้าสู่ relational database เพื่อพิจารณาอีกครั้ง จากนั้นสิ่งที่ต้องพิจารณาคือ เราจะเอาข้อมูลอะไรมาแสดงผลจากวัตถุดิบเหล่านั้น ข้อมูลที่ถูกหยิบขึ้นมาแสดงบ่อย อาทิเช่น





Home || เอกสารเผยแพร่ || Firewall

ThaiCERT Disclaimer | Copyright © 2001 ThaiCERT(NECTEC). All rights reserved.