
Log Management: รวบรวมและวิเคราะห์ Log ด้วย Syslog และ ELK Stack
ทุกอุปกรณ์ network, server และ application สร้าง log ตลอดเวลา log บอกว่าเกิดอะไรขึ้นในระบบ ใครทำอะไร เมื่อไหร่ สำเร็จหรือล้มเหลว เมื่อเกิด security incident หรือ system outage log เป็นหลักฐานชิ้นแรกที่ต้องดู แต่ถ้า log กระจายอยู่ในอุปกรณ์หลายร้อยตัว การค้นหาข้อมูลจะยากมาก
Log Management คือการรวบรวม log จากทุกแหล่งมาเก็บที่ศูนย์กลาง จัดระเบียบ ค้นหาได้ง่าย วิเคราะห์ได้ และตั้ง alert เมื่อเจอ pattern ที่น่าสงสัย บทความนี้จะอธิบายการใช้ Syslog เป็น protocol รวบรวม log และ ELK Stack (Elasticsearch, Logstash, Kibana) เป็นแพลตฟอร์มวิเคราะห์
ทำไมต้องรวบรวม Log
Security Incident Response
เมื่อเกิด security breach ต้องตอบคำถามให้ได้ว่า ผู้โจมตีเข้ามาอย่างไร เมื่อไหร่ ทำอะไรบ้าง เข้าถึงข้อมูลอะไร ถ้าไม่มี centralized logs อาจตอบไม่ได้ เพราะ log ในอุปกรณ์อาจถูกลบโดยผู้โจมตี หรือถูก overwrite เพราะ storage เต็ม centralized log server เก็บ log copy ที่ผู้โจมตีไม่สามารถแก้ไขหรือลบได้
Compliance
มาตรฐานหลายอย่างกำหนดให้ เก็บ log เป็นระยะเวลาที่กำหนด PCI DSS กำหนดให้เก็บ audit log อย่างน้อย 1 ปี (3 เดือนต้อง readily available) พ.ร.บ. คอมพิวเตอร์ ของไทยกำหนดให้เก็บ log อย่างน้อย 90 วัน ISO 27001 กำหนดให้มี logging และ monitoring
Troubleshooting
เมื่อ network หรือ application มีปัญหา log ช่วย pinpoint สาเหตุได้เร็ว ดู log จาก firewall, switch, server, application พร้อมกัน correlate events ข้ามอุปกรณ์ หา root cause ได้เร็วกว่าการ login เข้าอุปกรณ์ทีละตัว
Syslog: Protocol มาตรฐานสำหรับ Log
Syslog คืออะไร
Syslog (RFC 5424) เป็น protocol มาตรฐานสำหรับส่ง log messages จากอุปกรณ์ network ไปยัง centralized server อุปกรณ์ network แทบทุกตัว (Cisco, Juniper, FortiGate, Mikrotik, Linux) รองรับ Syslog ส่ง log ผ่าน UDP port 514 (เร็ว แต่อาจ loss) หรือ TCP port 514 (reliable) หรือ TLS port 6514 (encrypted)
Syslog Severity Levels
| Level | ชื่อ | คำอธิบาย | ตัวอย่าง |
|---|---|---|---|
| 0 | Emergency | ระบบใช้งานไม่ได้ | System crash |
| 1 | Alert | ต้องแก้ไขทันที | Database corruption |
| 2 | Critical | เงื่อนไขวิกฤต | Hardware failure |
| 3 | Error | เกิดข้อผิดพลาด | Interface down |
| 4 | Warning | เตือน อาจเป็นปัญหา | High CPU, memory |
| 5 | Notice | ปกติ แต่สำคัญ | Config change, login |
| 6 | Informational | ข้อมูลทั่วไป | Interface up/down |
| 7 | Debug | ข้อมูล debug | Packet trace |
Syslog Server Options
| Software | OS | ราคา | จุดเด่น |
|---|---|---|---|
| rsyslog | Linux | ฟรี | Built-in Linux, reliable, filter rules |
| syslog-ng | Linux | ฟรี (OSE) / จ่าย (PE) | Advanced parsing, flexible routing |
| Kiwi Syslog | Windows | ฟรี (limited) / $295 | GUI, ง่าย, Windows native |
| Graylog | Linux | ฟรี (OSS) / จ่าย (Enterprise) | Web UI, search, dashboards, alerts |
ELK Stack: วิเคราะห์ Log อย่างมืออาชีพ
Components ของ ELK Stack
Elasticsearch เป็น search engine ที่เก็บและ index log data ค้นหาได้เร็วมากแม้จะมี log หลายล้าน records Logstash รับ log จากหลายแหล่ง (Syslog, file, API) parse, filter, transform แล้วส่งเข้า Elasticsearch Kibana เป็น web UI สำหรับค้นหา log, สร้าง visualizations, dashboards และตั้ง alerts ปัจจุบันมักเพิ่ม Filebeat เป็น lightweight shipper ส่ง log จาก servers ไปยัง Logstash หรือ Elasticsearch โดยตรง
ELK สำหรับ Network Logs
อุปกรณ์ network ส่ง Syslog ไปยัง Logstash ที่มี syslog input plugin Logstash parse syslog message ดึง fields สำคัญ (timestamp, hostname, severity, facility, message) ส่งเข้า Elasticsearch ใช้ Kibana สร้าง dashboard แสดง: firewall deny logs, authentication failures, interface up/down events, config changes ตั้ง alert เมื่อ authentication failures เกิดมากผิดปกติ (brute force attempt)
Use Cases สำหรับ Log Analysis
Failed Login Detection
ค้นหา failed login attempts จาก firewall, switch, server ถ้า IP เดียว failed login 10+ ครั้งใน 5 นาที = อาจเป็น brute force ตั้ง alert ใน Kibana ส่ง email/Slack notification
Firewall Deny Analysis
วิเคราะห์ firewall deny logs เพื่อดู top denied source IPs (อาจเป็น attacker scanning) top denied destination ports (อาจเป็น malware trying to connect) internal IPs ที่พยายามเข้าถึง unauthorized resources
Configuration Change Tracking
Monitor configuration changes บนอุปกรณ์ network ใครเปลี่ยน config เมื่อไหร่ เปลี่ยนอะไร unauthorized changes จะถูกตรวจจับทันที
Best Practices สำหรับ Log Management
Time Synchronization (NTP)
NTP สำคัญมากสำหรับ log management อุปกรณ์ทุกตัวต้อง sync เวลาด้วย NTP server เดียวกัน ถ้าเวลาไม่ตรง การ correlate events ข้ามอุปกรณ์จะผิดพลาด ตั้ง NTP server ภายในองค์กร อุปกรณ์ทุกตัว sync กับ NTP server นี้
Log Retention Policy
กำหนด retention policy ว่าจะเก็บ log นานเท่าไหร่ 90 วันเป็นขั้นต่ำตาม พ.ร.บ. คอมพิวเตอร์ไทย 1 ปีสำหรับ PCI DSS compliance ใช้ index lifecycle management ใน Elasticsearch ลบ index เก่าอัตโนมัติ คำนวณ storage ที่ต้องการ: ถ้ามี log 1GB/วัน × 365 วัน = 365GB ต่อปี
Secure Log Transport
ใช้ TLS encrypted syslog (port 6514) แทน plain text UDP syslog ป้องกันการดักฟัง log ที่อาจมีข้อมูลสำคัญ (IP addresses, usernames, policy names) ถ้าอุปกรณ์ไม่รองรับ TLS syslog ให้ส่ง syslog ภายใน management VLAN ที่แยกจาก data traffic
ทิ้งท้าย: Log ที่ไม่ได้ดูคือ Log ที่ไร้ค่า
การเก็บ log อย่างเดียวไม่พอ ต้องวิเคราะห์ด้วย ใช้ ELK Stack หรือ Graylog สร้าง dashboards ที่ดูง่าย ตั้ง alerts สำหรับ events สำคัญ review alerts ทุกวัน ทำ incident investigation เมื่อพบสิ่งผิดปกติ log ที่ดีช่วยให้ตรวจจับปัญหาเร็ว แก้ไขเร็ว และป้องกันปัญหาในอนาคต
อ่านเพิ่มเติมเกี่ยวกับ DNS Security และ Network Monitoring ที่ siamlancard.com หรือจาก icafeforex.com และ siam2r.com