เมื่อวานนี้ ดร.จันทวรรณ โทรศัพท์หาผมตอนประมาณบ่ายสามกว่าๆ โดยบอกว่า สคส. โทรศัพท์มาบอกว่ากำลังอบรมการใช้ GotoKnow.org อยู่ที่พิษณุโลก แล้วอยู่ๆ GotoKnow.org ก็ใช้ไม่ได้ไปเฉยๆ

ผมรีบเข้าไปดูเครื่องแม่ข่ายที่ใช้บริการ GotoKnow.org ทันที และด้วย Best Practice ของ System Administrator สิ่งแรกที่นึกคือ เครื่องอาจจะกำลังถูกใครพยายามเจาะระบบอยู่ ใช่แล้วครับ ความรู้ฝังลึกของผมที่จะแบ่งปันสำหรับวันนี้คือ “ถ้าเครื่องแม่ข่ายที่เราดูแลอยู่มีอาการไม่ปกติ ให้คิดไว้ก่อนว่าเครื่องกำลังถูกเจาะ จนกว่าจะพิสูจน์ได้ว่าเป็นอย่างอื่น”

เมื่อไปตรวจสอบที่เครื่อง ผมพบว่าเครื่องตอบสนองช้ามาก อยู่ในอาการ Denial-Of-Service ถ้าเครื่องอยู่ในอาการนี้ ก็ยิ่งเพิ่มความมั่นใจว่าต้องกำลังถูกพยายามเจาะอยู่แน่นอน

ก่อนอื่นคงต้องอธิบายก่อนว่าเครื่องที่อยู่ในอาการ Denial-Of-Service นั้นเป็นอย่างไร

Denial-Of-Service หรือที่มักเรียกกันสั้นๆ ว่า DOS นั้น ไม่เกี่ยวกับ DOS ที่ย่อมาจาก Disk Operating System ที่เราใช้ในสมัยเก่านะครับ คนละเรื่องกันแต่ย่อเหมือนกัน

DOS คือวิธีการทำให้เครื่องแม่ข่ายทำงานเยอะๆ จนเครื่องแม่ข่ายไม่สามารถตอบสนองได้ (being overloaded) ถ้าเป็น Web Server ในกรณีของเรา ก็คือการส่ง request มาเยอะๆ โดยไม่สนใจรอรับ response

ในช่วงขณะที่เครื่องแม่ข่ายทำงานเกินความสามารถนี่เอง ระบบปฎิบัติการบางระบบจะมีการทำงานที่ผิดไปจากปกติ ซึ่งเปิดโอกาสให้นักเจาะระบบกระทำอะไรบางอย่างเพื่อสามารถเข้าใช้ระบบนั้นได้

นั่นคือ DOS แบบธรรมดาครับ ส่วนวิธีการทำให้เครื่องแม่ข่าย overloaded โดยการใช้เครื่องจากหลายๆ ที่ช่วยกันทำจะเรียกว่า DDOS หรือ Distributed Denial-Of-Service การ DDOS นี่จะทำเพื่อทำให้เครือข่ายทั้งหมดของเครื่องแม่ข่ายล่ม ตัวอย่างเช่น เครือข่ายของ CNN.com จะเจอ DDOS เป็นประจำเวลาเสนอข่าวที่ไม่สบอารมณ์นักเจาะระบบที่มีความเห็นทางการเมืองฝ่ายตรงข้ามกับอเมริกา

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

ต้วอย่างที่คลาสสิคและเกี่ยวกับ Community Blog ก็คือ เว็บใดๆ ที่ได้รับการนำเสนอข่าวใน Community Blog ที่ชื่อว่า Slashdot.org จะเกิดอาการ DDOS ภายในเวลาอันสั้นหลังจากได้รับนำเสนอ เนื่องจากผู้ใช้ของ Slashdot.org มีจำนวนมากและเข้าไปอ่านเว็บนั้นอย่างพร้อมๆ กัน อาการอย่างนี้เกิดจนกลายเป็นมีศัพท์เฉพาะสำหรับกลุ่มผู้อ่าน Slashdot.org ศัพท์คำนั้นคือ being slashdotted หรือ Slashdot Effect ครับ

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

หลังจากผมตรวจสอบเรียบร้อย ผมพบว่าเครื่องแม่ข่ายของเราเจอ Legitimate DDOS ครับ เกิดจากการมีผู้ใช้มากเกินไปในช่วงเวลาเดียวกันนั้น เห็นได้ชัดว่ามีผู้ใช้กลุ่มหนึ่งมาจากที่เดียวกันจำนวนพอประมาณผ่านเครือข่ายของ Internet Thailand (น่าจะเป็นกลุ่มที่ สคส. กำลังอบรมอยู่) ส่วนผู้ใช้อีกกลุ่มมาจาก ม.สงขลานครินทร์ ผู้ใช้อีกกลุ่มจำนวนไม่น้อยซึ่งดูเหมือนเป็นผู้ใช้โดยปกติที่มาจาก ISPs หลายๆ แห่ง แต่ที่น่าสนใจคือมีผู้ใช้กลุ่มหนึ่ง (เหมือนจะไม่มากและดูเหมือนว่า) มาจากญี่ปุ่น ซึ่งผู้ใช้กลุ่มนี้นั้นผมจะสืบต่อไปว่ามาจากไหนกันแน่

ในขณะเดียวกันที่เกิดอาการ DOS นั้น Web Crawler ของ Google กับ Inktomi ก็กำลังเก็บข้อมูลที่อยู่ใน GotoKnow.org อยู่ด้วย

Web Crawler เป็นส่วนหนึ่งในการทำงานของ Search Engine โดย Search Engine จะทำงานได้จะต้องเก็บข้อมูลจากเครื่องแม่ข่ายเราไปก่อน ตัวที่ทำหน้าที่เก็บข้อมูลนี้คือ Web Crawler นี่เองครับ

ที่น่าสนใจคือ Web Crawler ของ Google และของ Inktomi กำลังทำงานพร้อมๆ กันใน GotoKnow.org ผมก็คงต้องไปสืบต่อว่าเป็น Web Crawler ตัวจริงหรือตัวปลอม

เนื่องจากผมมีธุระตอนสี่โมงครึ่งและมีสอนตอนห้าโมงวานนี้ ทำให้ผมไม่มีเวลาตรวจสอบและเก็บข้อมูลในขณะเกิดเหตุให้ชัดเจนว่าเป็นอย่างไรกันแน่ นี่เป็นเรื่องที่น่าเสียใจเป็นอย่างยิ่ง

ข้อสรุปเบื้องต้นในตอนนี้คือ GotoKnow.org เจอสภาวะ Legitimate DDOS เนื่องจาก GotoKnow.org เริ่มเป็นที่รู้จักมากขึ้นในวงกว้าง ซึ่งเราจะปรับปรุงระบบให้สามารถรองรับจำนวนผู้ใช้ที่เพิ่มขึ้นนี้ได้ต่อไป โดยเบื้องต้นที่เราสามารถทำได้คือการเพิ่มหน่วยความจำให้แก่ระบบ เนื่องจากในขณะนี้เครื่องแม่ข่ายเรามีหน่วยความจำค่อนข้างน้อยครับ

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