การป้องกันการเจาะระบบ 235034 Security in Computer Systems and Networks การป้องกันการเจาะระบบ Lec. Sanchai Yeewiyom School of Information and Communication Technology University of Phayao
Objective ความหมายของการเจาะระบบ ประเภทของ Hacker รูปแบบการโจมตี
การเจาะระบบ (Hacking) To write or refine computer program skillfully To use one’s skill in computer programming to gain illegal or unauthorized access to a file or network: hacked into the company’s intranet To gain access to (a computer file or network) illegally or without authorization: hacked the firm's personnel database Computers. to devise or modify (a computer program), usually skillfully ที่มา www.dictionary.com
การเจาะระบบ (Hacking) เจาะเข้าโปรแกรมคอมพิวเตอร์อย่างผิดกฎหมาย ที่มา www.nectec.or.th แต่เดิม การเจาะเข้าใช้ระบบโดยไม่ได้รับอนุญาต จะใช้คำว่า 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 Password Guessing Denial of Service Decryption Birthday Attacks Sniffing Man-in-the-middle Attacks
Social Engineering https://i.ytimg.com/vi/d4EBzt1Gxc8/maxresdefault.jpg
Social Engineering เป็นปฏิบัติการทางจิตวิทยา หลอกหล่อให้หลงเชื่อ ไม่ต้องอาศัยความชำนาญเกี่ยวกับคอมพิวเตอร์ ส่วนใหญ่ใช้วิธีโทรศัพท์สอบถามข้อมูล อาจใช้วิธีค้นหาข้อมูลจากถังขยะ (Dumpster Diving) เพื่อค้นหาข้อมูลจากเอกสารที่นำมาทิ้ง หรือใช้วิธี Phishing การป้องกันทำได้โดย มีการกำหนดนโยบายและขั้นตอนการปฏิบัติงานที่เข้มงวด เช่น การเปลี่ยนรหัสผ่าน รวมถึงมีการอบรมและบังคับใช้อย่างจริงจัง
Password Guessing http://www.alphr.com/features/371158/top-ten-password-cracking-techniques
Password Guessing Password เป็นสิ่งที่ใช้ในการพิสูจน์ความเป็นตัวตนของผู้ใช้งาน เป็นความลับส่วนบุคคล ผู้ใช้มักกำหนดโดยใช้คำง่ายๆ เพื่อสะดวกในการจดจำ สาเหตุจากต้องเปลี่ยนบ่อย หรือมี Password หลายระดับ หรือระบบห้ามใช้ Password ซ้ำเดิม Password ที่ง่ายต่อการเดา ได้แก่ สั้น ใช้คำที่คุ้นเคย ใช้ข้อมูลส่วนตัว ใช้ Password เดียวทุกระบบ จด Password ไว้บนกระดาษ ไม่เปลี่ยน Password ตามระยะเวลาที่กำหนด
Denial of Service https://threefirdhaus.files.wordpress.com/2011/11/blog_ddos_attack_diagram.jpg
Denial of Service เป้าหมายคือทำให้ระบบหยุดให้บริการ เป็นการโจมตีที่มีความเสี่ยงน้อย เนื่องจากถูกตรวจจับได้ง่ายโดย Firewall หรือ IDS ระบบที่มีการ Update อยู่ตลอดมักจะไม่ถูกโจมตีด้วยวิธีนี้ บางครั้งตรวจจับได้ยากเนื่องจากมีลักษณะคล้ายกับการทำงานของ Software จัดการเครือข่าย
Decryption https://gigaom.com/wp-content/uploads/sites/1/2012/02/eavesdrop-1-o-640x427.jpg
Decryption หลักการคือ การพยายามให้ได้มาซึ่ง Key เพราะ Algorithm เป็นที่รู้จักกันอยู่แล้ว อาจใช้วิธีการตรวจสอบดูข้อมูลเพื่อวิเคราะห์หา Key โดยเฉพาะการใช้ Weak Key ที่จะส่งผลทำให้ได้ข้อมูลที่มีลักษณะคล้าย ๆ กัน ทำให้เดา Key ได้ง่าย ควรใช้ Key ความยาวอย่างน้อย 128 bit อาจใช้หลักทางสถิติมาวิเคราะห์หา Key จากตัวอักษรที่พบ
Relative frequencies of letters in the English language (Oxford dictionary) https://en.wikipedia.org/wiki/Letter_frequency
Birthday Attacks เป็นวิธีการโจมตีการเข้ารหัสด้วยการสุ่ม Key แนวคิด เมื่อเราพบใครสักคนหนึ่ง มีโอกาสที่จะมีวันเกิด 1 ใน 365 วัน ยิ่งพบคนมากขึ้นก็ยิ่งจะมีโอกาสวันเกิดซ้ำกันมากยิ่งขึ้น การเลือกรหัสผ่านวิธีการที่ดีที่สุดคือการใช้ Random Key แต่การ Random Key นั้นก็มีโอกาสที่จะได้ Key ที่ซ้ำเดิม
Sniffing การดักจับข้อมูลบนระบบเครือข่าย ใช้เครื่องมือ เช่น Wireshark เพื่อให้ได้มาซึ่งข้อมูล เช่น Password, Cookie/Session ID, ข้อความ เป็นต้น
Wireshark http://download.ba/program-image/wireshark.jpg
Man-in-the-middle Attacks พยายามทำตัวเป็นคนกลางคอยดักเปลี่ยนแปลงข้อมูลโดยที่ คู่สนทนาไม่รู้ตัว อาจใช้เทคนิค ARP Spoof/ARP Poisoning เพื่อหลอกเครื่องเหยื่อ (Victim) และ Gateway ถ้าโจมตีแบบ Active จะมีการเปลี่ยนแปลงข้อมูล แต่ถ้าโจมตีแบบ Passive จะไม่มีการเปลี่ยนแปลงข้อมูล การโจมตีแบบ Replay Attack ข้อความจะถูกเก็บไว้ระยะเวลาหนึ่งแล้วค่อยส่งต่อ ป้องกันโดยการเข้ารหัสข้อมูล ร่วมกับ Digital Signature
ARP Spoof/ARP Poisoning http://www. theprohack
ARP Spoof/ARP Poisoning http://securitymusings.com/article/tag/arp-spoofing
ARP Spoof/ARP Poisoning http://www. theprohack
การเจาะระบบ Threat สามารถเข้าสู่ระบบได้ผ่านทาง Computer Vulnerability อาจเกิดจากข้อบกพร่องในการพัฒนา Software หรือ Hardware ข้อบกพร่องในการพัฒนา Software ได้แก่ Input Validation Error Access Validation Error Exception Condition Handling Error Environmental Error Configuration Error Race Condition
ข้อบกพร่องในการพัฒนา Software Input Validation Error : เกิดจากการที่รับ Input เข้ามาประมวลผลโดยไม่ได้ตรวจสอบความถูกต้องก่อน อาจทำให้เกิดปัญหา Buffer Overflow : โปรแกรมได้รับ Input ที่มีขนาดใหญ่กว่าที่กำหนด ทำให้ Buffer ไม่สามารถเก็บข้อมูลได้ทั้งหมด ทำให้ข้อมูลบางส่วนไปทับข้อมูลในหน่วยความจำของ Process อื่น อาจทำให้ผู้โจมตีสามารถ Run Process อื่น แทนโปรแกรมที่กำลัง Run อยู่ได้ Boundary Condition Error : ระบบได้รับ Input ที่มีขนาดใหญ่เกินขอบเขตที่โปรแกรมกำหนดไว้ อาจโดยผู้ใช้หรือจากโปรแกรมเอง อาจทำให้เกิดการใช้ Resource จนหมด หรือเกิดการ Reset ค่าของตัวแปร หรือปัญหา Division by Zero (0/0)
ข้อบกพร่องในการพัฒนา Software Access Validation Error : กลไกควบคุมการเข้าถึงระบบ (Access Control) ทำงานผิดพลาด ซึ่งเกิดจากตัวระบบเอง Exception Condition Handling Error : การจัดการเกี่ยวกับเงื่อนไขที่ยกเว้นของการทำงานของโปรแกรม Environmental Error : ระบบที่ติดตั้งในสภาวะแวดล้อมที่ไม่เหมาะสม เช่น โปรแกรมอาจทำงานได้ไม่ดีบนระบบปฏิบัติการบางตัวหรือบางรุ่น การทำงานที่ขัดกันของโปรแกรมที่อยู่บนระบบเดียวกัน ตรวจพบปัญหาในขั้นตอนการพัฒนาระบบได้ยาก
ข้อบกพร่องในการพัฒนา Software Configuration Error : เกิดจากการ Configuration ระบบที่ไม่ถูกต้อง ไม่สมบูรณ์ หรือหละหลวม เช่น กำหนดให้เป็นค่า Default เพื่อง่ายต่อการใช้งาน แต่อาจกลายเป็นช่องโหว่ Race Condition : เกิดขึ้นเมื่อมี Delay ในการทำงานของระบบรักษาความปลอดภัย เช่น มีการเขียนข้อมูลลงในระบบ โดยระบบเข้าใจว่าผู้ใช้นั้นมีสิทธิ์ แต่ที่จริงแล้วระบบรักษาความปลอดภัยอาจยังไม่ถึงเวลาทำงาน
ขั้นตอนการเจาะระบบ การเลือกใช้เครื่องมือ การสำรวจข้อมูลเป้าหมาย การสแกนเครือข่าย การสแกนพอร์ต การโจมตี
การเลือกใช้เครื่องมือ ค้นหาเครื่องมือได้จากอินเทอร์เน็ต ทั้งจาก Website และ IRC Exp. https://insecure.org https://www.antionline.com https://packetstormsecurity.com/ https:// www.nmap.org https://www.tenable.com/products/nessus-home
http://insecure.org
www.antionline.com
http://packetstormsecurity.com/
www.nmap.org
https://www.tenable.com/products/nessus-home
การสำรวจข้อมูลเป้าหมาย เป็นการสำรวจเป้าหมายเบื้องต้นเพื่อใช้ในการวางแผนการโจมตี ใช้การสแกนเพื่อสำรวจข้อมูล คำแนะนำสำหรับผู้ดูแลระบบ ควรมีมารยาทในการสแกน เพื่อป้องกันปัญหาสำหรับเครื่องที่ถูกสแกน ดังนั้นควรต้องทราบ IP Address ของเครื่องที่ต้องการสแกน เป็นเครื่องใช้งานจริงหรือเครื่องทดสอบ ช่วงเวลาที่ได้รับอนุญาตให้สแกน การได้รับอนุญาตจากเจ้าของเครื่อง
การสแกนเครือข่าย เพื่อทดสอบว่าเครื่องเป้าหมายเปิดอยู่หรือไม่ นิยมใช้การ ping (ICMP ping) บางกรณีอาจใช้วิธี telnet ไปยังเครื่องเป้าหมายที่ port 80, 25, 21 เพื่อหลบเลี่ยงการกรองคำสั่ง ping ของ Router หรือ Firewall
การสแกนพอร์ต ผู้โจมตีจะต้อง อาศัยความเร็ว ความแม่นยำ และการซ่อนตัว เพื่อป้องกันการตรวจจับของ IDS, Honey pot หรือ Firewall เครื่องมือที่นิยม คือ NMAP
https://nmap.org/6/
การโจมตี ใช้เครื่องมือที่เหมาะสมเข้าโจมตีในรูปแบบที่ต้องการ เช่น 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
การป้องกันการถูกเจาะระบบ สแกนเพื่อหาจุดอ่อน (Vulnerability Scanning) ควรทำจากหลายๆจุด จากทั้งภายในและภายนอก ในส่วนของ DMZ (Demilitarized Zone) ด้วย เมื่อพบช่องโหว่ให้ทำการ Update Patch เพื่ออุดช่องโหว่นั้น
เครื่องมือสำหรับการรักษาความปลอดภัย GFI LANguard Network Security Scanner (N.S.S.) eEye Retina Network Security Scanner Microsoft Baseline Security Analyzer (MBSA) Nessus Security Scanner
GFI LANguard Network Security Scanner ตรวจเช็คจุดอ่อนหรือช่องโหว่และข้อแนะนำในการแก้ไข สแกน TCP และ UDP Port จัดการ Patch และ Service Pack http://www.gfi.com/products-and-solutions/network-security-solutions/gfi-languard
GFI LANguard Network Security Scanner https://www. gfi
Retina Network Security Scanner ใช้ประเมินความเสี่ยงของเครือข่าย สแกนเครือข่ายเพื่อหาช่องโหว่ พร้อมทั้งรายงาน และให้คำแนะนำในการแก้ไขช่องโหว่ http://www.beyondtrust.com/Products/RetinaNetworkSecurityScanner/
Retina Network Security Scanner https://www. beyondtrust
Microsoft Baseline Security Analyzer (MBSA) แสดงข้อแนะนำและขั้นตอนการแก้ไขช่องโหว่ ช่วยตรวจเช็คการ Configuration ที่ไม่ถูกต้อง และ Patch ที่ยังไม่ได้ติดตั้ง http://technet.microsoft.com/en-us/security/cc184924
Microsoft Baseline Security Analyzer https://www. microsoft
Nessus Security Scanner สแกนเครือข่ายเพื่อหาช่องโหว่ พร้อมทั้งรายงาน แสดงข้อแนะนำและขั้นตอนการแก้ไขปัญหา เป็น Software แบบ Client/Server สามารถติดตั้งไว้ได้หลายเครื่องในระบบเครือข่ายและควบคุมจากเครื่องเดียว ง่ายต่อการบริหารจัดการ http://www.tenable.com/products/nessus-vulnerability-scanner
Nessus Security Scanner https://www. esecforte
การสแกนเครื่องเป้าหมาย ตัวอย่างเครื่องมือที่ใช้ ได้แก่
Advanced IP Scanner http://www.advanced-ip-scanner.com ใช้สแกนสแกนระบบเครือข่าย ว่าภายในเครือข่ายนั้นมีเครื่องคอมพิวเตอร์เครื่องใดอยู่บ้าง และยังสามารถตรวจหา Folder ที่เปิดแชร์ภายในเครือข่ายได้อีกด้วย
NetworkView http://www.networkview.com/index.html ใช้สแกนเครื่องคอมพิวเตอร์ทั้งโดเมน
Advanced Port Scanner http://www.advanced-port-scanner.com
Angry IP Scanner http://angryip.org/download/#windows Scan หา IP Address ของเครื่องที่อยู่ในเครือข่าย
Nmap https://nmap.org/ ใช้สแกนหมายเลข Port และบริการอื่นๆ ของเครื่องเป้าหมาย
SoftPerfect Network Scanner https://www. softperfect สามารถ Scan เครือข่ายที่ใช้ Protocol IPv4 , IPv6, SNMP ได้
เว็บไซต์ศึกษาข้อมูลเพิ่มเติม http://www.hackingexposed.com http://www.gfi.com http://insecure.org/nmap/ https://www.techtalkthai.com