GORAGOD.com

การตรวจสอบและป้องกันการ Hack เบื้องต้น

บทความนี้ผมคัดมาจากการโพสต์บน FB เนื่องจากช่วงนี้มีการพูดถึงเรื่องนี้กันไม่เว้นแต่ละวัน และเพื่อไม่ให้มันหายไปเมื่อเวลาผ่านไป ผมเลยเอามาบันทึกไว้ที่นี่

พักนี้เห็นโดน Hack กันบ่อย ช่องทางที่สามารถ hack ได้มีหลายช่องทาง เอาคร่าวๆ ได้แก่
  1. ช่องโหว่ของ Server แก้ไขได้โดยการอัปเกรด Server ให้ทันสมัย 
  2. ช่องโหว่ของ Application อันนี้ต้องใช้จากแหล่งที่เชื่อถือได้เท่านั้น หลีกเลี่ยงโปรแกรมประเภท Crack มา หรือ พวก NULL
  3. ช่องโหว่ของสคริปต์ ถ้าเป็น สคริปต์ที่เขียนเอง ต้องอุดรอยรั่วให้หมด ถ้าเป็นสคริปต์ที่แจกฟรี ก็ให้อัปเดทเวอร์ชั่นล่าสุด
จริงๆ ช่องทางต่างๆดังกล่าว ก็เป็นที่รู้ๆกันอยู่แต่ส่วนใหญ่ไม่ค่อยทำกัน ด้วยเหตุ (ตามแต่จะอ้าง) นาๆประการ

มาพูดถึง ถ้ายังไม่ติดไวรัส ควรทำตามข้อ 1 ถึง 3 อย่างสม่ำเสมอนะครับ แต่ถ้าติดแล้วทำแค่นั้นคงไม่พอ

โดยปกติเมื่อ Hacker สามารถเข้าถึงเว็บเราได้ เขามักไม่ทำแค่เปลี่ยนหน้าเพจ เขาอาจวาง Back Door ไว้ด้วยเผื่อหากต้องการเข้ามาอีกครั้งเขาจะเข้าผ่าน Back Door โดยไม่ต้อง Hack ซึ่งส่วนใหญ่หากทำตาม 1 ถึง 3 แล้วยังเข้าได้อีก ก็ด้วยเหตุนี้แหละ

Back Door ก็คือสคริปต์ PHP นี่แหละครับ (มักจะมีนามสกุล php) โดยทั่วๆไปมันจะเป็นสคริปต์พวกจัดการไฟล์และไดเร็คทอรี่ โดยจะทำตัวเหมือนโปรแกรม ftp เพื่อให้ Hacker สามารถเข้าถึงไฟล์และไดเร็คทอรี่ต่างๆบน Server ได้ (อาจมีความสามารถมากกว่าโปรแกรม ftp ด้วยซ้ำไป) ดังนั้นถ้าเขาวางไฟล์ประเภทนี้ได้ เขาก็คือ เจ้าของ Host ดีๆนี่เอง

ถ้าเขาวาง Back Door ได้ เขาจะได้อะไรไปบ้าง คงเป็นคำถามที่หลายๆคนสงสัย ... ถ้าอ่านย่อหน้าข้างบนผมบอกว่าเขาคือเจ้าของ Host ดังนั้นสิ่งที่เขาได้ไปคือทุกอย่างที่อยู่ใน Host ครับ ไม่ว่าจะเป็น สคริปต์ ไฟล์ต่างๆ และฐานข้อมูล 

การป้องกัน ก็ทำตาม ข้อ 1 ถึง 3 ด้านบนอย่างเคร่งครัดครับ

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

ง่ายนิดเดียว(ยากเยอะแยะ) ก็อีตรงที่ Server มักมีไฟล์จำนวนมาก แล้วจะรู้ได้ไงว่าจะลบอันไหน และไฟล์ที่ว่าอาจมีชื่ออะไรก็ได้โดย Hacker อาจตั้งชื่อให้มันเป็นชื่อที่คุ้นเคยและอาจมีได้บน Server ทั่วๆไป เช่น index.php, main.php (ไม่ต้องมองหา virus.php นะ คงไม่มีใครใช้ชื่อนี้)
  1. คำตอบแรก อยู่ที่ความรอบคอบของตัวเอง ก่อนอื่นเราต้องรู้ก่อน ว่า Server ของเราจริงๆแล้วมีไฟล์อะไรบ้าง ถ้าเราเข้า Server สม่ำเสมอ จดบันทึกไว้ ทำสำเนาไว้ ปัญหานี้จะตรวจสอบง่ายมาก เพราะไฟล์ที่เราไม่คุ้นเคยนั่นแหละครับเป็นไฟล์ที่น่าสงสัย มีโปรแกรมจำนวนมากใช้เปรียบเทียบไฟล์บนเครื่องของเรากับบน Server ได้เช่น Aptana Studio และโปรแกรม FTP บางตัว ซึ่งถ้าเรามีสำเนาต้นฉบับที่ปลอดภัยอยู่ในเครื่อง งานนี้ก็หมูครับ
  2. ถัดจากนี้ก็มีอีกวิธี โดยใช้โปรแกรมประเภท FTP ทั่วๆไป ปกติแล้ว โปรแกรม FTP เมื่อมีการแสดงรายชื่อไฟล์ มันจะแสดงวันที่แก้ไขล่าสุดด้วย เราก็สามารถสังเกตจากวันที่นี้ได้ โดยไฟล์ที่เพิ่งถูกแก้ไขเร็วๆนี้คือไฟล์ต้องสงสัยว่าจะเป็นไวรัส หรือ ติดไวรัส
  3. อีกวิธีหนึ่งก็คือ ดาวน์โหลดไฟล์ทั้งหมดจาก Server ลงมาแล้วแสกนด้วยโปรแกรม AntiVirus เนื่องจากโดยปกติแล้วโปรแกรม AntiVirus สามารถตรวจสอบพบไฟล์ต้องสงสัยได้ โดยโปรแกรมที่ผมใช้ตรวจสอบคือ ESET แต่มันอาจแยกไม่ครบ 100% นะครับ เพราะไวรัสบางตัวก็เขียนซะเนียนจนแยกไม่ออกว่าเป็นไวรัสหรือเปล่า (ต้องไม่ลืมว่ามันเป็นสคริปต์ PHP นะครับ ดังนั้นมันก็ต้องเขียนคำสั่ง PHP ธรรมดา) ดังนั้นการดำเนินการในข้อนี้ต้องทำร่วมกับหัวข้ออื่นๆด้านบนด้วย

จริงๆแล้ว Back Door อาจเป็นไฟล์นามสกุลอื่นก็ได้ แต่มันจะไม่สามารถทำงานได้ จนกว่าจะมีการอนุญาติให้มันประมวลผลได้ ซึ่งการอนุญาติ สามารถทำได้ที่ไฟล์ .htaccess โดยการทำตามนี้ การกำหนดให้ Apache execute ไฟล์อื่นเป็น PHP นอกจากไฟล์ php ซึ่งถ้าพบอะไรประมาณนี้ ก็อาจเป็นไปได้ว่าโดนซะแล้ว

โดยปกติ Back Door มักถูกอัปโหลด ไปยังโฟลเดอร์อัปโหลดที่ดำเนินการโดย script ดังนั้นโฟลเดอร์ที่ควรตรวจสอบก่อน คือโฟลเดอร์เหล่านี้

หากพบว่ามี Back Door ควรกำจัดมันให้หมดนะครับ หากยังมีหลงเหลืออยู่แม้แต่อันเดียว Hacker ก็ยังสามารถเข้าระบบเราได้อยู่ดี