Monday, April 02, 2012

การเข้าถึงระบบโดยไม่ได้รับอนุญาต (Unauthorized Access)

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


ภาพประกอบจาก http://www.thenewnewinternet.com/


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

การเดารหัสผ่านแบบถึก (Brute force) เป็นการเข้าถึงระบบเครือข่ายคอมพิวเตอร์ที่มีการป้องกันด้วยรหัสผ่าน แต่เนื่องจากผู้กระทำผิดนี้ไม่ทราบรหัสผ่านของเหยื่อ จึงทำการเดารหัสผ่าน ซึ่งวิธีการเดารหัสผ่านแบบถึกนี้ เป็นวิธีการเดารหัสผ่านที่ไม่ต้องใช้เทคนิคพิเศษ เพียงแค่เรียงลำดับตัวอักษรตามความเป็นไปได้ทั้งหมดเท่านั้นเอง กล่าวคือ จากรูปที่ 1 ผู้กระทำผิดอาจจะเดาจาก aaa, aab, aac, .... ไล่ไปเรื่อยๆ จนพบรหัสผ่านที่สามารถจะเข้าไปยังบัญชีของเหยื่อได้ ดังนั้นการเดารหัสผ่านด้วยวิธีนี้จำเป็นจะต้องใช้การประมวณผลของหน่วยประมวณผลกลาง (ซีพียู หรือ CPU) อย่างมาก ดังนั้นถ้าหากเครื่องคอมพิวเตอร์ที่ใช้ในการเดารหัสผ่านแบบถึกนี้มีหน่วยประมวณผลกลางที่มีความเร็วสูง ก็จะสามารถค้นหารหัสผ่านพบได้เร็วขึ้นด้วย

 
รูปที่ 1 แสดงกระบวนการเดารหัสผ่านแบบถึก

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


รูปที่ 2 แสดงลักษณะการเดารหัสผ่านด้วยคำที่อยู่ในคลังคำศัพท์

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

รูปที่ 3 แสดงลักษณะการชนกันของแฮช

ตารางสายรุ้ง (Rainbow table) เนื่องจากระบบการจัดเก็บรหัสผ่านนั้นเก็บด้วยค่าแฮช และยังอาจเกิดการชนกันของแฮช ดังนั้นจึงมีนักเจาะระบบคิดค้นวิธีการเจาะระบบด้วยการนำจุดอ่อนของการชนกันของแฮชมาใช้ในการสร้างตารางสายรุ้ง ที่จะเก็บค่าของแฮชและค่าของข้อมูลธรรมดาที่ถูกใช้เป็นรหัสผ่าน ซึ่งนักเจาะระบบจะขโมยค่าแฮชของรหัสผ่านที่ถูกจัดเก็บไว้ในระบบออกมา แล้วนำค่าแฮชมาเปรียบเทียบถ้าหากมีค่าแฮชใดในตารางสายรุ้งตรงกับค่าแฮชของรหัสผ่าน นักเจาะระบบก็จะนำค่ารหัสผ่านไปใช้ในการเข้าสู่ระบบของเหยื่อได้เลย การเจาะระบบด้วยวิธีนี้จะอาศัยจุดอ่อนของการชนกันของแฮช ดังรูปที่ 4 จะเห็นว่าถ้าหากมีค่าแฮชของรหัสผ่านที่ถูกเก็บในระบบมีค่าเป็น "bf787577ff656cde5b5d1f8236a75d2a" นักเจาะระบบก็จะเดารหัสผ่านของเหยื่อเป็นคำว่า "rootkit" ก็จะสามารถเข้าสู่ระบบได้โดยที่ไม่ต้องสนใจว่าที่จริงแล้วเหยื่อได้ตั้งรหัสผ่านไว้ว่าอย่างไร เป็นต้น

รูปที่ 4 แสดงรูปแบบของตารางสายรุ้ง

การสแกนพอร์ต (Port scanning) เป็นเทคนิคที่ใช้ในการค้นหาบริการของระบบที่เปิดให้บริการอยู่ เพื่อที่จะนำข้อมูลเหล่านี้ไปใช้ค้นหาจุดอ่อนของระบบต่อไป การสแกนพอร์ตส่วนใหญ่นั้นจะอาศัยลักษณะการติดต่อของโพรโตคอลทีซีพีไอพี (TCP/IP) ซึ่งโดยปกติแล้วระบบที่เชื่อมต่อสู่ระบบเครือข่ายนั้นจะต้องมีพอร์ตไว้รองรับการเชื่อมต่อ เปรียบเสมือนประตูและหน้าต่างของระบบนั่นเอง ซึ่งนักเจาะระบบส่วนใหญ่ต้องการข้อมูลเหล่านี้เพื่อนำไปใช้ในการเจาะระบบต่อไป

No comments: