Friday, October 21, 2011

แฮกเกอร์เปรียบเสมือนน้ำท่วม

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

ก่อนอื่นผมขอกล่าวถึงการเปรียบเทียบองค์ประกอบที่จำเป็นของบทความนี้ก่อนนะครับ ได้แก่ ระบบคอมพิวเตอร์และเครื่องเซิร์ฟเวอร์ ก็เปรียบได้กับบ้านของพวกเรา และน้ำท่วมนั้นก็เปรียบได้กับผู้โจมตีหรือแฮกเกอร์ เป็นต้น

วิธีการป้องกันน้ำท่วมบ้านนั้นก็เปรียบเสมือนกับผู้ดูแลบริหารจัดการระบบคอมพิวเตอร์นั้นจำเป็นจะต้องป้องกันโอกาสที่จะถูกโจมตีจากเหล่าแฮกเกอร์ ได้แก่
  1. การติดตั้งไฟร์วอลล์ เปรียบได้กับการสร้างรั้วป้องกันน้ำ ด้วยอิฐบล็อก หรือการสร้างคันกั้นน้ำด้วยทราย และกระสอบทราย เพื่อปฏิเสธไม่ให้น้ำซึ่งเป็นสิ่งที่เราไม่ต้องการนั้นเข้ามาในบ้านของเราได้
  2. โปรแกรมอุดช่องโหว่ (Patch) เปรียบได้กับการใช้สิลิโคน กาวยาง หรืออุปกรณ์ต่างๆ อุดตามรูรั่วที่อยู่ตามรั้ว ประตู และจุดต่างๆรอบๆบ้าน ซึ่งหากเปรียบเทียบกับการป้องกันระบบคอมพิวเตอร์ เจ้าหน้าที่ดูแลระบบคอมพิวเตอร์นั้นก็ต้องอัพเดตโปรแกรมต่างๆด้วยโปรแกรมอุดช่องโหว่อยู่สม่ำเสมอ
  3. ระบบตรวจจับผู้บุกรุก (IDS) ก็เปรียบได้กับการติดตั้งระบบแจ้งเตือนน้ำท่วม
  4. สำรองข้อมูลที่สำคัญ นั้นก็อาจเปรียบได้กับการเก็บของสำคัญเพื่อไม่ให้น้ำมาทำลายให้เสียหาย
จะเห็นว่าที่จริงแล้วการป้องกันระบบคอมพิวเตอร์นั้นก็ไม่ได้แตกต่างจากการป้องกันน้ำท่วมบ้านมากนัก โดยแนวความคิดของแฮกเกอร์หรือน้ำนั้นก็คล้ายกัน นั่นก็คือการพยายามหาจุดอ่อนเพียงจุดเดียวเพื่อที่จะบุกรุกเข้ามาในระบบเครือข่ายหรือบ้านของเรา แต่หากเราที่มีหน้าที่ดูแลระบบคอมพิวเตอร์และบ้านจำเป็นจะต้องอุดช่องโหว่ทั้งหมดที่มีอยู่ ดังนั้นงานของเราจึงหนักกว่าเหล่าแฮกเกอร์มากนัก

ถึงแม้ว่าเราจะเตรียมการป้องกันรอบนอกอย่างแน่นหนาแล้ว ก็ยังไม่พอเนื่องจากภัยคุกคามที่น่ากลัวอย่างหนึ่งคือ ภัยที่เกิดจากภายใน (Insider Threat) ซึ่งก็เหมือนกับการที่ไม่ระวังป้องกันน้ำจากท่อระบายน้ำภายในบ้าน ทำให้น้ำสามารถเอ่อล้นเข้าท่วมบ้านจากภายในบ้านได้อีกด้วย อีกทั้งเหตุน้ำท่วมตามที่ต่างๆนั้นก็เกิดจากสาเหตุนี้ด้วย

Monday, October 03, 2011

เรียนรู้...ก่อนถูกขโมยรหัสผ่าน

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


หลายคนคงได้ข่าวว่าบัญชีผู้ใช้งานทวีตเตอร์ของนายกรัฐมนตรีถูกแฮก แล้วโพสท์ข้อความด้วยชื่อของนายกเอง เมื่อวิเคราะห์จากความเป็นไปได้แล้ว โดยความเห็นส่วนตัวคิดว่าแฮกเกอร์น่าจะขโมยรหัสผ่านของบัญชี้นี้ แล้วใช้เข้าสู่ระบบจากนั้นจึงทวีต (คือการโพสท์ข้อความบนทวีตเตอร์) ข้อความตามที่เป็นข่าวได้ ดังนั้นบทความนี้จะกล่าวถึงเทคนิคกลยุทธ์ต่างๆเบื้องต้นที่แฮกเกอร์อาจจะใช้ขโมยรหัสผ่านต่างๆของเหยื่อ โดยมีวัตถุประสงค์เพื่อสร้างความตระหนัก ให้ผู้อ่านได้ระมัดระวังตัวและเตรียมการป้องกันไม่ให้แฮกเกอร์มาฉวยโอกาสจากบัญชีผู้ใช้ของเรา นอกจากนี้ผู้เขียนขอเสนอแนะวิธีการใช้งานเครือข่ายสังคมออนไลน์อย่างปลอดภัยอีกด้วย


การหลอกถาม (Social Engineering) การหลอกถามนี้เขาใช้กลยุทธ์ปลอมตัวเป็นบุคคลอื่น จากนั้นก็จะอาศัยจุดอ่อนของจิตใจมนุษย์ ด้วยการสร้างเรื่องราวหลอกลวงต่างๆที่สามารถทำให้เหยื่อหลงเชื่อ สงสาร หรือเกิดความโลภ จนต้องยอมเปิดเผยข้อมูลส่วนบุคคลของตนเองได้ ยกตัวอย่างเช่น อาจจะปลอมเป็นเจ้าหน้าที่ตำรวจโทรเข้ามาบอกว่า เหยื่อเป็นผู้ต้องสงสัยในคดีหนึ่ง แล้วบังคับให้เหยื่อบอกรหัสผ่าน ถ้าไม่บอกแสดงว่ายอมรับว่าเป็นอาชญากรจริงๆ เหยื่อได้ยินดังนั้นก็เกิดความตื่นตระหนกตกใจ จนทำให้ยอมเปิดเผยรหัสผ่านได้ หรือในบางกรณีก็อาจจะติดต่อมาบอกว่าเหยื่อเป็นผู้โชคดีได้รับรางวัลชิ้นใหญ่ แต่สร้างเงื่อนไขให้เหยื่อจะต้องลงทะเบียนยืนยันตัวตนโดยการกรอกชื่อผู้ใช้งานและรหัสผ่านบนเว็บไซต์ที่ผู้ประสงค์ร้ายเตรียมไว้ ซึ่งวิธีการนี้เป็นวิธีการหลอกถามผสมผสานกับฟิชชิ่งนั่นเอง เป็นต้น


ฟิชชิ่ง (Phishing) ผู้ประสงค์ร้ายจะสร้างหน้าเว็บหลอกลวงโดยเลียนแบบหน้าเว็บไซต์เครือข่ายสังคมออนไลน์ ซึ่งมีช่องให้กรอกชื่อบัญชีผู้ใช้งานและรหัสผ่าน จากนั้นผู้ประสงค์ร้ายนี้จะส่งอีเมล์สแปมมาหาเหยื่อ โดยหลอกว่าบัญชีผู้ใช้งานของเหยื่อมีปัญหา ถูกระงับใช้จนกว่าจะล็อกอินเข้าระบบเพื่อให้สามารถใช้งานได้อีก หากเหยื่อหลงเชื่อเหยื่อจะเข้าไปกรอกข้อมูลบัญชีผู้ใช้งานและรหัสผ่าน แน่นอนว่าเหยื่อจะไม่สามารเข้าสู่ระบบเครือข่ายสังคมออนไลน์ได้ แต่เว็บหลอกลวงนี้ได้ขโมยข้อมูลบัญชีผู้ใช้ของเหยื่อเรียบร้อยแล้ว


รูปที่ 1 หน้าเว็บฟิชชิ่งของทวีตเตอร์

รูปที่ 2 หน้าเว็บฟิชชิ่งของเฟซบุค


โปรแกรมประสงค์ร้าย (Malware) วิธีการนี้แฮกเกอร์จะใช้สารพัดวิธีการเพื่อหลอกให้เหยื่อดาวน์โหลดและติดตั้งโปรแกรมประสงค์ร้าย หลังจากนั้นโปรแกรมเหล่านี้จะแอบทำงานโดยที่ผู้ใช้ไม่รู้ตัว ตัวอย่างของโปรแกรมที่ใช้ขโมยข้อมูล คือ ม้าโทรจัน (Trojan horse) ซึ่งหลังจากที่โปรแกรมประเภทม้าโทรจันถูกติดตั้งในเครื่องของเหยื่อยแล้ว โปรแกรมนี้จะค้นหาข้อมูลส่วนบุคคลของเหยื่อที่ถูกเก็บไว้ในเครื่องคอมพิวเตอร์ โดยเฉพาะข้อมูลบัตรเครดิตที่เหยื่อใช้ซื้อสินค้าออนไลน์ ชื่อบัญชีผู้ใช้งานตามเว็บต่างๆของเหยื่อ รวมไปถึงรหัสผ่านที่ถูกบันทึกไว้ที่หน้าเว็บเบราเซอร์ นอกจากนี้ม้าโทรจันประเภทดักปุ่มคีย์บอร์ด (Keylogger) ก็สามารถบันทึกข้อมูลตัวอักษรที่เหยื่อยกดปุ่มบนคีย์บอร์ดได้อีกด้วย เป็นต้น จากนั้นเมื่อถึงเวลาที่กำหนดข้อมูลเหล่านี้จะถูกส่งออกจากเครื่องของเหยือไปยังแฮกเกอร์ผู้สร้างหรือเป็นเจ้าของโปรแกรมประสงค์ร้ายชนิดนี้ต่อไป แล้วแฮกเกอร์จะนำข้อมูลที่ได้มาเข้าสู่ระบบโดยใช้ชื่อบัญชีของเหยื่อ


แกะรหัสผ่าน (Password Cracking) วิธีการแกะรหัสผ่านนี้มีด้วยกันหลายวิธีแต่ละวิธีก็มีชั้นเชิง เทคนิคที่แตกต่างกัน เริ่มด้วยการเดารหัสผ่านแบบอึดถึก (Brute force) เป็นการเดารหัสผ่านด้วยความเป็นไปได้ทั้งหมดโดยเรียงลำดับตัวอักษรไปเรื่อยๆ จนกว่าจะพบรหัสผ่านที่ถูกต้อง วิธีการนี้มีข้อดีคือสามารถแกะรหัสผ่านได้แน่นอน (ถ้ารหัสผ่านง่ายพอ) แต่มีข้อเสียคือ ถ้าหากรหัสผ่านยาวและซับซ้อน วิธีการนี้อาจจะต้องใช้เวลาเป็นล้านปีเพื่อแกะรหัสผ่านนี้ก็ได้ วิธีการเทียบรหัสผ่านกับคำในพจนานุกรม (Dictionary) เป็นวิธีการเดารหัสผ่านจากการเดารหัสผ่านจากฐานข้อมูลหรือพจนานุกรมที่แฮกเกอร์สร้างขึ้น โดยในฐานข้อมูลหรือพจนานุกรมนี้จะมีข้อมูลของรหัสผ่านที่ง่ายและเป็นที่นิยมใช้กัน หรือเป็นคำศัพท์ที่อยู่ในพจนานุกรมอีกด้วย วิธีการสุดเป็นวิธีการเดาสุ่มรหัสผ่านอย่างมีหลักการ (Guessing) วิธีการนี้แฮกเกอร์จะเดารหัสผ่านของเหยื่อโดยอาศัยรหัสผ่านทั่วไปที่คนส่วนใหญ่นิยมตั้ง หรือข้อมูลส่วนบุคคลของเหยื่อ ไม่ว่าจะเป็น วันเกิด หมายเลขโทรศัพท์ หรือชื่อคนรัก เป็นต้น ซึ่งถ้าหากเหยื่อไม่มีความตระหนักเรื่องรหัสผ่าน ก็จะถูกขโมยบัญชีผู้ใช้งานได้


แอพพลิเคชั่น (Application) คุณสมบัติพิเศษอีกอย่างหนึ่งของเว็บเครือข่ายสังคมออนไลน์ในปัจจุบันคือการที่ผู้ใช้สามารถพัฒนาและติดตั้งแอพพลิเคชั่นเพิ่มเติมได้อย่างอิสระ ไม่ว่าจะเป็นการติดตั้งแอพพลิเคชั่นเกมส์ต่างๆ แอพพลิเคชั่นดูดวง หรือแม้กระทั่งแอพพลิเคชั่นสอบถามความคิดเห็น เป็นต้น โดยแอพพลิเคชั่นส่วนใหญ่นั้นถูกพัฒนาด้วยจุดประสงค์ที่ดี แต่ยังมีอีกจำนวนไม่น้อยที่มีจุดประสงค์ในการขโมยข้อมูลส่วนบุคคลของผู้ที่หลงเชื่อและติดตั้งแอพพลิเคชั่นดังกล่าว ในทุกครั้งที่ติดตั้งแอพพลิเคชั่นจะมีการขออนุญาตเพื่อเข้าถึงข้อมูลส่วนบุคคลของเจ้าของบัญชีก่อน แต่หากสังเกตให้ดี อาจมีแอพพลิเคชั่นขอสิทธิ์ในการเข้าถึงข้อมูลที่ไม่น่าจะเกี่ยวข้องกับการทำงานของแอพพลิเคชั่นตนเอง อีกทั้งบางแอพพลิเคชั่นยังเปิดช่องโหว่ให้แฮกเกอร์สามารถป้อนข้อมูลชุดคำสั่งเพื่อขโมยข้อมูลได้


แอบดักข้อมูล (Sniffering) วิธีการนี้ต้องอาศัยความอดทนของแฮกเกอร์ เนื่องจากปริมาณข้อมูลที่ถูกส่งในระบบเครือข่ายนั้นมีปริมาณมหาศาล แต่แฮกเกอร์จำเป็นจะต้องดึงข้อมูลออกมา แล้วตรวจหาที่ละแพ็กเก็ต (หน่วยย่อยในการแบ่งข้อมูลก่อนที่จะถูกส่งในระบบเครือข่าย) ว่าเป็นแพ็กเก็ตที่เหยื่อส่งเพื่อทำการเข้าสู่ระบบหรือไม่ และถ้าหากเหยื่อเรียกดูเว็บเครือข่ายสังคมออนไลน์ด้วยโพรโตคอล HTTP (Hyper Text Transfer Protocol) จะทำให้แฮกเกอร์สามารถเห็นข้อมูลบัญชีผู้ใช้งานพร้อมรหัสผ่านของเหยื่อได้โดยตรง เนื่องจากการส่งข้อมูลด้วยโพรโตคอล HTTP นี้ ข้อมูลจะไม่ถูกเข้ารหัส แต่หากใช้โพรโตคอล HTTPS ซึ่งเป็นการเข้ารหัสโพรโตคอล HTTP ด้วย SSL (Secure Socket Layer) กล่าวคือข้อมูลที่ถูกส่งด้วยโพรโตคอล HTTPS จะถูกเข้ารหัสไว้ ทำให้ถึงแม้ว่าแฮกเกอร์จะสามารถดักข้อมูลได้ แต่ก็ไม่อาจสามารถแกะข้อมูลบัญชีผู้ใช้งานและรหัสผ่านออกมาได้ 
หมายเหตุ ให้สังเกตที่ชื่อเว็บไซต์ว่าขึ้นต้นด้วย http:// หรือ https:// เพื่อดูว่าเราใช้โพรโตคอลแบบใด


วิธีการป้องกัน
  1. ใช้รหัสผ่านที่แข็งแรง เปลี่ยนบ่อยๆ ไม่ใช่ชื่อเฉพาะหรือข้อมูลส่วนบุคคลที่จะถูกเดาได้ง่าย เพื่อป้องกันไม่ให้ผู้ประสงค์ร้ายให้โปรแกรมถอดรหัสได้สำเร็จ
  2. ห้ามเผยแพร่ข้อมูลส่วนบุคคลของเรา บนหน้าเว็บเครือข่ายสังคมออนไลน์ เนื่องจากผู้ประสงค์ร้ายอาจจะนำข้อมูลเหล่านี้ไปเดารหัสผ่าน หรือใช้ในการตอบคำถามลับเมื่อลืมรหัสผ่าน เช่นวันเกิดคุณแม่, ชื่อโรงเรียนประถม, ทีมกีฬาที่ชื่นชอบ เป็นต้น
  3. อย่าหลงเชื่อบุคคลที่มาสอบถามข้อมูลส่วนบุคคลของเรา หรือหลอกล่อให้ติดตั้งโปรแกรมที่ไม่น่าเชื่อถือแหล่งที่มา
  4. ลบแอพพลิเคชั่นที่ไม่ได้ใช้งานแล้วจากบัญชีเครือข่ายสังคมออนไลน์
  5. เมื่อต้องการล็อกอินเข้าระบบ ให้พิมพ์ชื่อเว็บไซต์ด้วยตัวเอง
  6. อย่าหลงเชื่อข้อความในอีเมล์ที่ต้องสงสัยว่าอาจจะเป็นฟิชชิ่ง
  7. ติดตั้งโปรแกรมป้องกันไวรัสพร้อมปรับปรุงฐานข้อมูลอยู่เสมอ และสแกนหาไวรัสทั้งระบบบ่อยๆ 
  8. ไม่อนุญาตแอพพลิเคชั่นที่ไม่ทราบแหล่งที่มา หรือไม่น่าเชื่อถือ ติดตั้งในบัญชีเครือข่ายสังคมออนไลน์ของเรา
  9. ให้เข้าถึงเว็บเครือข่ายออนไลน์ด้วย HTTPS เพื่อเข้ารหัสข้อมูลของเราก่อนถูกส่งออกไป