
ถอดรหัสช่องโหว่: เส้นทางสู่การควบคุมระบบจากภายนอกสู่ภายใน
ในโลกดิจิทัลปัจจุบัน การรักษาความปลอดภัยของระบบถือเป็นความท้าทายที่สำคัญ การโจมตีทางไซเบอร์มักเริ่มต้นจากการค้นหาจุดอ่อนเล็กๆ ที่อาจนำไปสู่การควบคุมระบบทั้งหมดได้ บทความนี้จะพาคุณไปสำรวจเส้นทางของนักเจาะระบบในการเข้าถึงและยกระดับสิทธิ์ในระบบ Linux โดยอาศัยช่องโหว่ที่อาจถูกมองข้ามไป
นี่คือกรณีศึกษาที่เผยให้เห็นว่า การประเมินความปลอดภัยอย่างละเอียดถี่ถ้วนนั้นสำคัญเพียงใด
เจาะเข้าสู่ระบบ: เมื่อรายงานสถานะกลายเป็นประตูสู่ภัยคุกคาม
เครื่องมืออย่าง sar2html ซึ่งใช้แสดงผลข้อมูล SAR (System Activity Report) บนเว็บ เป็นตัวอย่างที่น่าสนใจถึงความสะดวกสบายที่มาพร้อมกับความเสี่ยง
เครื่องมือเหล่านี้ช่วยให้ผู้ดูแลระบบตรวจสอบประสิทธิภาพได้ง่ายขึ้น
แต่ในบางครั้ง ความสะดวกสบายก็แลกมาด้วยช่องโหว่ที่ไม่คาดคิด
ในกรณีนี้ มีการค้นพบ CVE-2019-12454 ซึ่งเป็นช่องโหว่ที่เกี่ยวข้องกับการจัดการพารามิเตอร์ plot ใน sar2html
ปัญหาคือการ ตรวจสอบข้อมูลที่ป้อน ที่ไม่รัดกุมพอ
ทำให้ผู้โจมตีสามารถใช้เทคนิค Local File Inclusion (LFI) ได้สำเร็จ
ช่องโหว่ LFI นี้อนุญาตให้ผู้โจมตีอ่านไฟล์ใดๆ บนเซิร์ฟเวอร์ได้
ไม่ว่าจะเป็นไฟล์กำหนดค่าระบบที่สำคัญอย่าง /etc/passwd เพื่อดูรายชื่อผู้ใช้
หรือแม้กระทั่ง ไฟล์บันทึก (log file) ของเว็บเซิร์ฟเวอร์ Apache ซึ่งมักจะมีข้อมูลการเข้าชมทั้งหมด
จาก LFI ผู้โจมตีสามารถพัฒนาไปสู่ Remote Code Execution (RCE) ได้
โดยการ ฉีดโค้ดอันตราย เช่น โค้ด PHP ที่สามารถรันคำสั่งได้ เข้าไปในส่วนของ HTTP User-Agent ของคำขอ HTTP ซึ่งจะถูกบันทึกลงใน access log ของ Apache
จากนั้น ใช้ช่องโหว่ LFI เพื่อเรียกอ่านและประมวลผลไฟล์ log ที่เพิ่งเขียนไปนั้น
ทำให้โค้ด PHP ที่ฝังไว้ ถูกรันบนเซิร์ฟเวอร์ ในที่สุด
ผลลัพธ์คือ ผู้โจมตีได้รับ shell หรือเข้าถึงบรรทัดคำสั่งบนระบบในฐานะผู้ใช้งานทั่วไป (low-privileged user) ซึ่งเป็นก้าวแรกที่สำคัญ
ยกระดับสิทธิ์: การค้นหาจุดอ่อนในงานอัตโนมัติ
เมื่อได้รับสิทธิ์การเข้าถึงระดับผู้ใช้งานทั่วไปแล้ว เป้าหมายต่อไปคือการ ยกระดับสิทธิ์ (Privilege Escalation) เพื่อให้ได้สิทธิ์ผู้ดูแลระบบ หรือ root
การสำรวจระบบเพื่อหาจุดอ่อนเป็นสิ่งจำเป็น
หนึ่งในสิ่งที่มักเป็นเป้าหมายสำคัญคือ งานอัตโนมัติ ที่เรียกว่า Cron job
Cron job เป็นกลไกที่ใช้รันสคริปต์หรือคำสั่งต่างๆ ตามตารางเวลาที่กำหนดไว้ล่วงหน้า
สคริปต์เหล่านี้มักจะถูกตั้งค่าให้รันโดยผู้ใช้ที่มีสิทธิ์สูง เช่น root เพื่อทำงานบำรุงรักษาระบบ
ในกรณีศึกษาที่พบ มีการพบสคริปต์ชื่อ sar_script.sh ตั้งอยู่ในไดเรกทอรี /usr/local/bin/ และถูกตั้งค่าให้รันเป็น Cron job โดยผู้ใช้ root
แต่สิ่งที่เป็น จุดอ่อนสำคัญ คือ สคริปต์ sar_script.sh นี้ สามารถแก้ไขได้ โดยผู้ใช้งานทั่วไปที่เพิ่งเจาะเข้ามาได้
นี่คือโอกาสทองสำหรับผู้โจมตี
ผู้โจมตีสามารถแก้ไขไฟล์ sar_script.sh โดยการเพิ่มคำสั่งที่ต้องการให้รันในฐานะ root ลงไป
ตัวอย่างเช่น การเพิ่มผู้ใช้ใหม่พร้อมสิทธิ์ root, การเปลี่ยนรหัสผ่านของผู้ใช้ root หรือการเรียกใช้ reverse shell ที่จะส่ง shell กลับมายังเครื่องของผู้โจมตีในฐานะ root
เมื่อ Cron job ทำงานตามเวลาที่กำหนด คำสั่งที่แก้ไขไว้ใน sar_script.sh ก็จะถูกประมวลผลโดย root โดยอัตโนมัติ
ส่งผลให้ การเข้าถึงระบบในฐานะ root สำเร็จสมบูรณ์
บทเรียนจากกรณีศึกษานี้เน้นย้ำถึงความสำคัญของการ ตรวจสอบช่องโหว่ อย่างสม่ำเสมอ ทั้งในแอปพลิเคชันและเครื่องมือเสริมต่างๆ
การตั้งค่า สิทธิ์การเข้าถึงไฟล์ และโฟลเดอร์บนระบบปฏิบัติการต้องแม่นยำและรัดกุมเสมอ
นอกจากนี้ การทบทวน โค้ดของแอปพลิเคชัน และสคริปต์อัตโนมัติ เช่น Cron job ก็เป็นสิ่งที่ไม่ควรมองข้าม
ช่องโหว่เล็กๆ หรือการกำหนดสิทธิ์ที่ผิดพลาดเพียงจุดเดียว อาจกลายเป็นประตูบานใหญ่ที่นำไปสู่การควบคุมระบบทั้งหมดได้ การรักษาความปลอดภัยจึงเป็นกระบวนการที่ต้องทำอย่างต่อเนื่องและระมัดระวังในทุกขั้นตอน