29 มี.ค. เวลา 08:36 • การศึกษา

ทำความรู้จักกับการเจาะระบบ

บทความนี้เป็นการแชร์และให้ความรู้สำหรับท่านที่ไม่ได้เรียนสายคอมพิวเตอร์โดยตรง ไกด์สำหรับน้องๆที่เรียนด้าน Security ที่ต้องมองบนกับกองหนังสือหนาๆที่ซื้อมาแล้วไม่ได้อ่านก็จะสรุปตรงนี้ทีเดียวเลย และข้อสุดท้ายเจอมาบ่อยๆ สำหรับท่านที่เข้าใจเรื่องการ Hack แบบผิดๆ เช่น โดนเพื่อนแกล้งโพสต์เฟสบุ๊คตัวเองขณะไปทำธุระแล้วก็สรุปว่า Hack หรือเหล่าคนดังที่โพสต์เองแต่มาบอกว่าไม่ได้โพสต์โดนคนอื่น Hack อะไรแบบนี้เป็นต้น
การเจาะระบบ (Hacking) คือ
การเจาะเข้าโปรแกรมคอมพิวเตอร์อย่างผิดกฎหมายแต่เดิม การเจาะเข้าใช้ระบบโดยไม่ได้รับอนุญาต จะใช้คำว่า Cracking (Cracker) ส่วนคำว่า Hacking (Hacker) จะหมายถึงผู้ที่ใช้คอมพิวเตอร์และ ซอฟต์แวร์อย่างเชี่ยวชาญแต่ในปัจจุบันกลับใช้คำว่า Hacking (Hacker) ในทางลบ
ประเภทของ Hacker
  • Hacker
  • Cracker
  • Script kiddy
  • Spy
  • Employee
  • Terrorist
Hacker (แฮกเกอร์) มีความหมาย 2 นัย
  • ด้านบวก คอยช่วยสำรวจเครือข่ายเพื่อหาช่องโหว่หรือสิ่งแปลกปลอม มีแรงจูงใจเพื่อการพัฒนาหรือปรับปรุงระบบให้มีความปลอดภัย หน้าที่ ค้นหาจุดอ่อน และแก้ไขก่อนเกิดเหตุไม่พึงประสงค์
  • ด้านลบ คือ ผู้ที่พยายามหาวิธีการ หรือหาช่องโหว่ของระบบ เพื่อแอบ ลักลอบเข้าสู่ระบบ เพื่อล้วงความลับ หรือแอบดูข้อมูลข่าวสาร บางครั้งมี การทำลายข้อมูลข่าวสาร หรือทำความเสียหายให้กับองค์กร
Cracker (แคร๊กเกอร์)
บุคคลที่พยายามทำลายระบบ ต่างจาก Hacker ตรงที่ใช้ประโยชน์จากช่องโหว่ที่พบเพื่อทำลาย สร้าง ปัญหา หรือหยุดการให้บริการและต้องแข่งกับคนอื่นเพื่อแสดงความสามารถ
Script kiddy (สคริปต์คิดดี้)
ยังไม่ค่อยมีความชำนาญ ไม่สามารถเขียนโปรแกรมในการเจาะระบบได้เอง อาศัย Download จากอินเทอร์เน็ตส่วนใหญ่เป็นเด็กมีเวลามากใช้เวลาในการทดลองและมักไม่เข้าใจในเทคโนโลยีที่ตัวเองใช้โจมตีเป้าหมายมักเป็นผู้ใช้งานหรือเครื่องคอมพิวเตอร์ทั่วไป
Spy (สายลับ)
บุคคลที่ถูกจ้างเพื่อเจาะระบบและขโมยข้อมูลการโจมตีมีความเฉพาะเจาะจง พยายามไม่ให้ผู้ถูกโจมตีรู้ตัวเป็นผู้ที่มีความชำนาญสูงมาก
Employee (พนักงาน)
อาจมีแรงจูงใจจาก
แสดงให้เห็นว่าองค์กรมีจุดอ่อน
แสดงความสามารถของตัวเองเนื่องจากถูกประเมินค่าต่ำเกินไปหรืออาจเกิดความไม่พอใจในการพิจารณาผลงาน
ผลประโยชน์ส่วนตัว เช่น ถูกจ้างจากคู่แข่ง
สามารถเข้าถึงและโจมตีระบบได้ง่าย เพราะอยู่ในระบบ
Terrorist (ผู้ก่อการร้าย)
มีความชำนาญสูงคาดเดาวิธีการได้ยาก เป้าหมายไม่แน่นอนอาจเป็นระบบเล็กๆ หรือขนาดใหญ่ เช่น ระบบควบคุมการจ่ายไฟฟ้าบางกลุ่มโจมตีเพื่อหารายได้สนับสนุนการก่อการร้าย เช่น หลอกลวง ให้บริจาค หรือขโมยข้อมูลบัตรเครดิต
รูปแบบการโจมตี
  • Social Engineering เป็นปฏิบัติการทางจิตวิทยา หลอกหล่อให้หลงเชื่อส่วนใหญ่ใช้วิธีโทรศัพท์สอบถามข้อมูล อาจใช้วิธีค้นหาข้อมูลจากถังขยะ (Dumpster Diving) เพื่อค้นหา ข้อมูลจากเอกสารที่นำมาทิ้ง การป้องกันทำได้โดย มีการกำหนดนโยบายและขั้นตอนการปฏิบัติ งานที่เข้มงวด เช่น การเปลี่ยนรหัสผ่าน รวมถึงมีการอบรมและบังคับ ใช้อย่างจริงจัง
  • Password Guessing Password เป็นสิ่งที่ใช้ในการพิสูจน์ความเป็นตัวตนของผู้ใช้งาน เป็นความลับส่วนบุคคลผู้ใช้มักกำหนดโดยใช้คำง่ายๆ เพื่อสะดวกในการจดจำ สาเหตุจากต้องเปลี่ยนบ่อย หรือมี Password หลายระดับ หรือระบบห้ามใช้ Password ซ้ำเดิมPassword ที่ง่ายต่อการเดา ได้แก่ สั้น ใช้คำที่คุ้นเคย ใช้ข้อมูลส่วนตัว ใช้ Password เดียวทุกระบบจด Password ไว้บนกระดาษ ไม่เปลี่ยน Password ตามระยะเวลาที่กำหนด
  • Denial of Service เป้าหมายคือทำให้ระบบหยุดให้บริการ เป็นการโจมตีที่มีความเสี่ยงน้อยที่สุด เนื่องจากถูกตรวจจับได้ง่ายโดย Firewall หรือ IDS ระบบที่มีการ Update อยู่ตลอดมักจะไม่ถูกโจมตีด้วยวิธีนี้บางครั้งตรวจจับได้ยากเนื่องจากมีลักษณะคล้ายกับการทำงานของ Software จัดการเครือข่าย
  • Decryption หลักการคือ การพยายามให้ได้มาซึ่ง Key เพราะ Algorithm เป็นที่รู้จัก กันอยู่แล้ว อาจใช้วิธีการตรวจสอบดูข้อมูลเพื่อวิเคราะห์หา Key โดยเฉพาะการ ใช้ Weak Key ที่จะส่งผลทำให้ได้ข้อมูลที่มีลักษณะคล้ายๆ กันทำให้ เดา Key ได้ง่าย ควรใช้ Key ความยาวอย่างน้อย 128 bit หรืออาจใช้หลักทางสถิติมาวิเคราะห์หา Key จากตัวอักษรที่พบ
  • Birthday Attacks เป็นวิธีการโจมตีการเข้ารหัสด้วยการสุ่ม Key แนวคิดเมื่อเราพบใครสักคนหนึ่ง มีโอกาสที่จะมีวันเกิด 1 ใน 365 วัน ยิ่งพบคนมากขึ้นก็ยิ่งจะมีโอกาสวันเกิดซ้ำกันมากยิ่งขึ้น การเลือกรหัสผ่านวิธีการที่ดีที่สุดคือการใช้ Random Key แต่การ Random Key นั้นก็มีโอกาสที่จะได้ Key ที่ซ้ำเดิม
  • Sniffing การดักจับข้อมูลบนระบบเครือข่าย ใช้เครื่องมือ เช่น Wireshark เพื่อให้ได้มาซึ่งข้อมูล เช่น Password, Cookie/Session ID, ข้อความ เป็นต้น
  • Man-in-the-middle Attacks พยายามทำตัวเป็นคนกลางคอยดักเปลี่ยนแปลงข้อมูลโดยที่คู่สนทนาไม่รู้ตัว อาจใช้เทคนิค ARP Spoof/ARP Poisoning เพื่อหลอกเครื่องเหยื่อ (Victim) และ Gateway ถ้าโจมตีแบบ Active จะมีการเปลี่ยนแปลงข้อมูล แต่ถ้าโจมตีแบบ Passive จะ ไม่มีการเปลี่ยนแปลงข้อมูลการโจมตีแบบ Replay Attack ข้อความจะถูกเก็บไว้ระยะเวลาหนึ่งแล้วค่อยส่งต่อ
การเจาะระบบ อาจเกิดจากข้อบกพร่องในการพัฒนา Software หรือ Hardware
ข้อบกพร่องในการพัฒนา Software ได้แก่
  • Input Validation Error : เกิดจากการที่รับ Input เข้ามาประมวลผลโดย ไม่ได้ตรวจสอบความถูกต้องก่อน อาจทำให้เกิดปัญหา
  • Buffer Overflow : โปรแกรมได้รับ Input ที่มีขนาดใหญ่กว่าที่กำหนด ทำให้ Buffer ไม่สามารถเก็บข้อมูลได้ทั้งหมด ทำให้ข้อมูลบางส่วนไป ทับข้อมูลในหน่วยความจำของ Process อื่น อาจทำให้ผู้โจมตีสามารถ Run Process อื่น แทนโปรแกรมที่กำลัง Run อยู่ได้
  • Boundary Condition Error : ระบบได้รับ Input ที่มีขนาดใหญ่เกิน ขอบเขตที่โปรแกรมกำหนดไว้ อาจโดยผู้ใช้หรือจากโปรแกรมเอง อาจทำให้เกิดการใช้ Resource จนหมด หรือเกิดการ Reset ค่าของตัวแปร หรือปัญหา Division by Zero (0/0)
  • Access Validation Error : กลไกควบคุมการเข้าถึงระบบ (Access Control) ทำงานผิดพลาด ซึ่งเกิดจากตัวระบบเอง
  • Exception Condition Handling Error : การจัดการเกี่ยวกับเงื่อนไขที่ ยกเว้นของการทำงานของโปรแกรม
  • Environmental Error : ระบบที่ติดตั้งในสภาวะแวดล้อมที่ไม่เหมาะ สม เช่น โปรแกรมอาจทำงานได้ไม่ดีบนระบบปฏิบัติการบางตัวหรือบางรุ่น การทำงานที่ขัดกันของโปรแกรมที่อยู่บนระบบเดียวกัน ตรวจพบปัญหาในขั้นตอนการพัฒนาระบบได้ยาก
  • Configuration Error : ระบบที่ไม่ถูกต้องไม่สมบูรณ์หรือหละหลวม เช่น กำหนดให้เป็นค่า Default เพื่อง่ายต่อการใช้ งาน แต่อาจกลายเป็นช่องโหว่
  • Race Condition : เกิดขึ้นเมื่อมี Delay ในการทำงานของระบบรักษาความปลอดภัย เช่น มีการเขียนข้อมูลลงในระบบ โดนระบบเข้าใจว่าผู้ใช้นั้นมี สิทธิ์ แต่ที่จริงแล้วระบบรักษาความปลอดภัยอาจยังไม่ถึงเวลาทำงาน
ขั้นตอนการเจาะระบบ
การเลือกใช้เครื่องมือ
ค้นหาได้จากอินเทอร์เน็ต ทั้งจาก Website และ IRC เช่น
การสำรวจข้อมูลเป้าหมาย
เป็นการสำรวจเป้าหมายเบื้องต้นเพื่อใช้ในการวางแผนการโจมตีใช้การสแกนเพื่อสำรวจข้อมูล ดังนั้นควรต้องทราบ
1. IP Address ของเครื่องที่ต้องการสแกน
2. เป็นเครื่องใช้งานจริงหรือเครื่องทดสอบ
3. ช่วงเวลาที่ได้รับอนุญาตให้สแกน
4. การได้รับอนุญาตจากเจ้าของเครื่อง
การสแกนเครือข่าย
  • เพื่อทดสอบว่าเครื่องเป้าหมายเปิดอยู่หรือไม่
  • นิยมใช้การ ping (ICMP ping)
  • บางกรณีอาจใช้วิธี telnet ไปยังเครื่องเป้าหมายที่ port 80, 25, 21 เพื่อ หลบเลี่ยงการกรองคำสั่ง ping ของ Router หรือ Firewall
การสแกนพอร์ต
ผู้โจมตีจะต้องอาศัยความเร็ว ความแม่นยำและการซ่อนตัวเพื่อป้องกันการตรวจจับของ IDS, Honey pot หรือ Firewall
เครื่องมือที่นิยม คือ NMAP
การโจมตีใช้เครื่องมือที่เหมาะสมเข้าโจมตีในรูปแบบที่ต้องการ เช่น
  • DoS แบบ Ping of Death (IP Packet ที่ใช้ในการ Ping มีความยาวมากกว่าปกติ (65,535 ไบท์))
  • DoS แบบ Ping Flood (การส่ง ICMP Request ปริมาณมากๆ เป้าหมายต้องคอยตอบ ICMP Reply จนไม่มีเวลาไปทำงานอื่น)
  • DoS แบบ Smurf Attack (การส่ง ICMP Echo Request แบบ Broadcast ทุก Host ที่อยู่ใน Network จะทำการตอบกลับด้วย ICMP Echo Reply กลับไปยังเครื่องเป้าหมายแทนที่จะไปหา เครื่อง Hacker โดยการปลอม IP Address ต้นทาง
  • Rootkit (เป็นรูปแบบการโจมตีแบบพิเศษที่สามารถซ่อนตัวใน โปรแกรมหลัก (root) ในระบบที่ติดไวรัส ซึ่งผู้ดูแลระบบไม่ สามารถ เห็นได้จึงทำให้ไม่สามารถตรวจจับได้)
  • Cross Site Scripting (XSS) : เป็นเทคนิคการส่ง Link ที่ฝัง Code หรือ Script การทำงานของ Hacker เข้าไป เพื่อให้ปรากฏบนหน้าเว็บของเว็บไซต์ที่มีช่องโหว่ โดยหลอกให้ผู้ใช้กรอกข้อมูลสำคัญแล้วส่งกลับ มาให้ Hacker
➤ ติดตามข่าวสารเพิ่มเติมได้ที่ :
โฆษณา