วันอังคารที่ 31 พฤษภาคม พ.ศ. 2554

เทคนิคที่ใช้กันโดยทั่วไปในการบุกรุกเข้าสู่ระบบคอมพิวเตอร์

เทคนิคที่ใช้กันโดยทั่วไปในการบุกรุกเข้าสู่ระบบคอมพิวเตอร์

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


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


rsh - เป็นเซอร์วิสที่ไม่ควรนำมาใช้และควรจะลบออกจากระบบ เนื่องจากมันเป็นวิธีการพิสูจน์ตัวผู้ใช้ที่แย่ ง่ายต่อการถูกโจมตี พบว่าส่วนมากผู้ที่ใช้มันเนื่องจากความเกียจคร้านในการพิมพ์รหัสผ่านในการ เข้าสู่ระบบอื่น โฮสต์จำนวนมากใช้ระบบเชื่อถือโฮสต์(transitive trust) (โดยใช้ ไฟล์ .rhosts) วิธีนี้ทำให้ระบบต่าง ๆ ถูกบุกรุกเข้าอย่างรวดเร็วแม้ว่าโฮสต์เพียงโฮสต์เดียวในระบบจะถูกบุกรุก ยูนิกซ์ของผู้ผลิตบางรายมีไฟล์ /etc/hosts.equiv มีเครื่องหมาย "+" ที่ยอมให้โฮสต์ใดก็ตามสามารถเข้าถึงระบบได้ นอกจากนี้ rsh daemon จำนวนมากที่ไม่มีการบันทึกการใช้คำสั่งใด ๆ เลย ดังนั้นคุณจึงควรปิดเซอร์วิสนี้และ ลบออกจากระบบเพื่อให้มั่นใจว่าเซอร์วิสนี้จะไม่ได้ใช้งานอีก ถ้าคุณจำเป็นต้องใช้ความสามารถในการรันจากโฮสต์ อื่นและระบบการเชื่อถือโฮสต์สำหรับการทำงานบางอย่างโดยอัตโนมัติควรใช้ SSH แทน


rlogin - ดูในส่วนของ rsh ถ้าจะใช้ rlogin ควรใช้เวอร์ชันที่สามารถปิดการสนับสนุนไฟล์ .rhosts และห้าม ไม่ให้ยูสเซอร์ใช้ไฟล์ .rhosts โดยไม่มีข้อยกเว้นสำหรับยูสเซอร์คนใด ตรวจสอบให้แน่ใจว่าไฟล์ /etc/hosts.equiv ไม่มีเครื่องหมาย "+"


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


rexd - เป็น RPC เซอร์วิสที่ยอมให้โฮสต์อื่นใช้คำสั่งบนระบบที่เป็นเป้าหมายเหมือนกับยู สเซอร์ในระบบตามที่ต้องการ (บางครั้งไม่สามารถใช้คำสั่งเช่นเดียวกับเป็น root) เซอร์วิสนี้มาพร้อมกับยูนิกซ์บางเวอร์ชันที่เปิดเซอร์วิสนี้ไว้ สิ่งสำคัญที่ควรรู้คือความปลอดภัยของ rexd ขึ้นอยู่กับ client ไม่ใช่ตัวเซิร์ฟเวอร์เอง เนื่องจาก ผู้โจมตีสามารถปลอมเป็นยูสเซอร์ใด ๆ ก็ได้ตามที่ต้องการ คุณสามารถตรวจดูได้ง่าย ๆ ว่ามีเซอร์วิสที่ชื่อว่า BOHICA ที่รอการติดต่ออยู่หรือไม่


Anonymous FTP ที่มีการกำหนดค่าไม่ถูกต้อง - อย่ารัน anonymous FTP เซิร์ฟเวอร์ถ้าไม่จำเป็น FTP ไซต์มักจะมีการกำหนดค่าผิด มีผู้ผลิต OS รายหนึ่งที่มี man page ของซอฟท์แวร์ที่ให้รายละเอียดเกี่ยวกับการเซ็ตอัป anonymous FTP ที่ไม่ถูกต้องและไม่ปลอดภัย นอกจากนี้ยังมี FTP daemon หลาย ๆ ตัวมีปัญหาหลายหลายประเด็นที่นำไปสู่การบุกรุกเข้าสู่ระบบถึงแม้ว่าจะไม่ได้ เปิดการใช้บริการ anonymous FTP ก็ตาม ถ้าต้องรัน anonymous FTP คุณจำเป็นต้องใส่ใจเรื่องนี้อย่างดีและทำตามทำแนะนำของ Auscert Guidelines เพื่อให้สามารถเซ็ตอัปได้ถูกต้อง ผู้โจมตีสามารถใช้การกำหนดค่าที่ผิดพลาดนี้เพื่อ แลกเปลี่ยนซอฟท์แวร์ละเมิดลิขสิทธิ์ ทำให้ไฟล์สำหรับดาวน์โหลดเสียหาย ได้สิทธิ์ในการเข้าระบบจากภายนอก ผ่านการรักษาความปลอดภัยจากไฟล์วอลและ packet filter และการใช้ในทางที่ผิดอื่น ๆ ได้อีกมากมาย


finger - เซอร์วิส finger สามารถใช้เพื่อหาข้อมูลเกี่ยวกับ account จากโฮสต์ที่เป็นเป้าหมาย finger บาง เวอร์ชันยอมให้คุณใช้คำสั่งที่สามารถแสดงรายการของทุก ๆ ยูสเซอร์ในโฮสต์นั้น บางเวอร์ชันยอมให้แสดง ไฟล์ utmp ซึ่งดูได้ว่ายูสเซอร์ login มาจากที่ไหนและเมื่อใด บางเวอร์ชันยอมให้ผู้โจมตีรันคำสั่งที่อยู่ใน โฮสต์นั้น หรือเซ็ตอัปไฟล์ .plan เพื่อให้เมลล์ข้อมูลข่าวสารที่เกี่ยวข้องกับระบบนั้นไปให้ผู้โจมตี ดังนั้นจึงควร ปิดเซอร์วิสนี้


Generic Recon Mechanisms - เซอร์วิสอย่างเช่น finger, systat, netstat, rusersd และอื่น ๆ สามารถใช้เพื่อรวบรวมข้อมูลเกี่ยวกับชื่อยูสเซอร์ ข้อมูลเกี่ยวกับเน็ตเวิร์ค network accounting และข้อมูล อื่น ๆ ช่วยให้ผู้โจมตีสามารถรู้ข้อมูลเกี่ยวกับโฮสต์เป้าหมายและเน็ตเวิร์ค systat และ netstat สามารถให้ข้อมูล เกี่ยวกับ process ที่รันอยู่บนโฮสต์นั้นและข้อมูลเกี่ยวกับการกำหนดค่าของเน็ตเวิร์ค เซอร์วิสที่เกี่ยวกับ rpc เช่น rusersd และ rstatd ยอมให้ผู้โจมตีดูได้ว่าใครที่ login เข้าสู่ระบบบ้างและเผ้าดูระบบเพื่อการวางแผนการโจมตี


NIS (ชื่อเก่าคือ YP) - เซอร์วิสนี้มีปัญหามากมาย ยอมให้ผู้โจมตีสำเนาไฟล์รหัสผ่านจากโฮสต์ภายนอก ในบางกรณี สามารถรันคำสั่งจากโฮสต์ภายนอกได้ด้วย ถ้าต้องการใช้เซอร์วิสนี้ให้อัปเกรดเป็น NIS+ แบบ และตรวจสอบ ให้แน่ใจว่าซอฟทแวร์นี้ได้รับการ patch แล้ว


RPC Portmapper - บางเวอร์ชันยอมให้ผู้โจมตีทำการโจมตีที่เรียกว่า "proxy attack" ที่ยอมให้ผู้โจมตี ผ่านการรักษาความปลอดภัยจากโฮสต์นั้นโดยการทำให้ RPC call ที่ดูเหมือนมาจากโฮสต์นั้นเอง (localhost) เซอร์วิสนี้ยังสามารถใช้เพื่อหา RPC เซอร์วิสที่มีช่องโหว่ คุณควรปิด RPC เซอร์วิสทั้งหมดถ้าคุณไม่ใช่มัน หรือเปลี่ยนไปใช้ portmapper replacement ของ Venema แทนซึ่งได้แก้ไขปัญหาเหล่านี้แล้ว ซึ่งซอฟท์แวร์ นี้ช่วยเพียงแต่ป้องกันไม่ให้หาข้อมูลโดยใช้ portmapper เท่านั้น อย่างไรก็ตามผู้บุกรุกที่มีความรู้เรื่องนี้ดีสามารถหลีกเลี่ยง portmapper (และสิ่งที่ใช้ป้องกัน) ไปใช้วิธีอื่นเพื่อสแกนหาเซอร์วิสได้โดยตรง ดังนั้นจึงมีความจำเป็นที่ คุณต้องปิด RPC เซอร์วิสทั้งหมดที่ไม่ใช้ ข้อควรระวัง: ไซต์ของ Wietse Vnema เคยถูกบุกรุกและหลายโปรแกรมถูกแทนที่โดย trojan horses(รวมถึง TCP Wrapper โปรแกรมยอดนิยมของเขาด้วย) ดังนั้น คุณจึงควรตรวจซอฟท์แวร์ทั้งหมดที่อยู่ที่ไซต์ของเขาโดยใช้ PGP key ของ Wietse Venema ก่อนที่จะ install ซอฟท์แวร์ลงไป


NFS - NFS มีปัญหาอื้อฉาวมาก ผู้โจมตีสามารถใช้เซอร์วิสนี้เพื่ออ่านหรือเขียนไฟล์และได้สิทธิ์ในการเข้า ถึงระบบโดยหลายวิธีการ ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณใช้ daemon เวอร์ชันล่าสุดสำหรับ OS ของคุณ จะแก้ปัญหาโดยทั่วไปได้หลายปัญหา และตรวจให้แน่ใจว่าไม่ได้ export ไดเร็กทอรีออกสู่ภายนอก (the world) โดย export เฉพาะไดเร็กทอรีที่โฮสต์ต้องใช้เท่านั้นและไม่จำเป็นต้อง export เกินกว่าที่จำเป็น (ทำไมต้อง export ไดเร็กทอรี "/" ทั้งที่จำเป็นเพียง ไดเร็กทอรี "/usr/local/tools") คุณควรใช้ซอฟท์แวร์ fsirand หรือ ยูทิลิตีที่คล้ายคลึงหลังจากการลง patch แล้วเพื่อให้การจัดการเกี่ยวกับไฟล์(filehandle) เป็นแบบสุ่ม ควร export แบบ read-only เท่านั้น เมื่อ export แบบ read-write ตรวจดูให้แน่นอนว่าระบบไม่อนุญาตให้ผู้มีสิทธิ์เป็นผู้บริหารระบบ(root) สามารถใช้สิทธิ์ของผู้บริหารระบบต่อระบบไฟล์ export mount ได้ เซอร์วิส mountd ของลีนุกซ์มักจะมีช่องโหว่ที่นำไปสู่การใช้สิทธิ์การเข้าสู่ระบบจากภายนอก ตรวจให้แน่ใจว่า ระบบของคุณได้รับการแก้ไขแล้ว และถ้าคุณไม่ได้รัน NFS ให้ปิด daemon ที่เกี่ยวข้องกับ NFS ด้วย


WWW server - ถ้าคุณไม่จำเป็นต้องรัน www เซิร์ฟเวอร์คุณควรจะเปิดมันเสีย ผู้โจมตีหลาย ๆ คนสามารถ ใช้ไฟล์ cgi-bin ที่มากับเซิร์ฟเวอร์เหล่านี้เพื่อเข้าถึงระบบจากภายนอก ถ้าคุณกำลังรัน www เซิร์ฟเวอร์ คุณ ควรไปที่ไดเร็กทอรีที่เก็บไฟล์ cgi-bin และ "rm" ไฟล์ cgi-bin ทั้งหมดแล้วแทนที่ด้วย CGI สคริปต์ของคุณเอง CGI สคริปต์ตัวอย่างทั้งหมดที่มากับ www เซิร์ฟเวอร์อาจมีช่องโหว่ ซึ่งควรจะลบทิ้งเสีย


SMTP - ตรวจดูให้แน่ใจว่า SMTP เซิร์ฟเวอร์ของคุณใช้ daemon เวอร์ชันล่าสุด Sendmail,smail และอื่น ๆ ทั้งหมดมีปัญหาตั้งแต่เรื่อง denial of service จนถึงการได้สิทธิ์เข้าระบบจากภายนอก ถ้าโฮสต์ของคุณไม่ใช่ mail คุณควรปิดเซอร์วิสนี้เสีย ถ้าคุณใช้ mail ให้ยกเลิกการใช้ Sendmail ไปใช้ qmail หรือ vmailer ซึ่งปลอดภัยกว่ามาก (ในขณะที่เขียนอยู่)


SNMP - SNMP daemon และเซอร์วิสหลาย ๆ อันที่ถูกเซ็ตอัปด้วยcommunity string ที่ง่ายต่อการเดา ทำให้ผู้โจมตีสามารถกำหนดค่าของ network device ที่สำคัญได้ใหม่ ได้ข้อมูลที่เกี่ยวข้องและทำให้เกิดสถานการณ์ ที่ควบคุมไม่ได้ ให้ปิดการใช้ SNMP ในเน็ตเวิร์คของคุณเสีย หรือถ้าจำเป็นต้องใช้ให้อัปเกรดเป็น SNMPv2 เป็นอย่างต่ำ และใช้ community name ที่เดาไม่ได้ ถึงกระนั้นก็ตามเซอร์วิสยังสามารถถูกโจมตีได้


TFTP - Trivial File Transfer Protocol บริการนี้มักจะยอมให้ผู้โจมตีสามารถสำเนาไฟล์สำคัญ เช่น /etc/passwd เนื่องจากมันไม่ต้องการพิสูจน์ตัวผู้ใช้ ผู้ใช้ใด ๆ สามารถติดต่อมาและอ่านไฟล์ใดที่เขาต้องการ


X-Windows - ผู้โจมตีสามารถใช้ X-Windows clinets ที่เปิดไว้เพื่ออ่านข้อมูลที่ป้อนจากคีย์บอร์ด ทำ screen shot, รันคำสั่งเช่นเดียวกับยูสเซอร์และกระทำการอันมุ่งร้าย ตรวจสอบให้แน่ใจว่าอุปกรณ์ที่เกี่ยวข้องกับ X-Windows มีความปลอดภัยโดยการใช้คำสั่ง xhost หรือ xauth ที่เกี่ยวข้องกับการรักษาความปลอดภัย ถ้าคุณใช้ Microsoft Windows X clients คุณก็ทำเช่นเดียวกัน


Generic RPC services - RPC เซอร์วิสหลายอย่างมีปัญหาที่สามารถใช้เพื่อการโจมตีได้ ถ้าคุณไม่ใช่เซอร์วิส ให้ปิดมันเสีย ( rusers, sprayd,walld,rexd และอื่น ๆ) โดยเฉพาะเซอร์วิส statd (บางครั้งมีชื่อเรียกเป็น "status" ใน portmapper) ถูกใช้อย่างกว้างขวางโดยผู้บุกรุกเข้าสู่ระบบ เซอร์วิสนี้ควรได้รับการ patch หรือปิดไปเสียถ้าไม่จำเป็น (มันถูกใช้โดย NFS เพื่อให้สามารถใช้งาน file locking ได้ดียิ่งขึ้น ดังนั้นคุณอาจจะปิดไม่ได้ถ้าคุณใช้ NFS) ให้ติดต่อผู้ขายซอฟท์แวร์สำหรับ update อีกเซอร์วิสหนึ่งคือ ttdbserverd สามารถบุกรุกเข้าสู่ระบบจากภายนอก (remotely exploitable overflow) ปิด RPC เซอร์วิสเสียหรือทำการ patch ซอฟท์แวร์เหล่านี้


DNS - ตรวจให้แน่ใจว่าคุณใช้ DNS เวอร์ชันล่าสุดใน name server ของคุณเพื่อป้องกัน cache poisoning และ buffer overrun attack,เซ็ตไม่ไห้มีการใช้ zone transfer ไปสู่ไซต์ที่ไม่ใช่ secondary name server เพื่อไม่ใช่ผู้โจมตีดูชื่อโฮสต์ทั้งหมดเพื่อหาเป้าหมายเพื่อการโจมตี ควรระวังเกี่ยวกับชื่อของ DNS เซิร์ฟเวอร์ด้วย ชื่อโฮสต์ไม่ควรบอกถึงลักษณะของเซิร์ฟเวอร์แก่ยูสเซอร์ภายนอก การตั้งชื่อเครื่องว่า "gauntlet-fw.somedomain.com" บอกได้ว่าคุณอาจใช้ TIS Gauntlet firewall หรือเครื่องที่ใช้ชื่อ "temp123.somedomain.com" ทำให้รู้ได้ว่าเครื่องนั้นควรจะเป็นเป้าหมายที่ดีเนื่องจากมันอาจจะไม่ได้ รีบการเฝ้าดู(monitered) คุณอาจรัน BIND ใน ระบบที่ใช้ chroot() ดูคำแนะนำได้ทีนี่ http://www.psionic.com/papers/dns


IMAP/POP - เป็นวิธีที่ใช้บุกรุกโดยทั่วไปสำหรับผู้โจมตี บางเวอร์ชันจะมีช่องโหว่ที่ร้ายแรงและง่ายต่อการโจมตีแบบ buffer overrun ยอมให้รันคำสั่งโดยใช้สิทธิ์เช่นเดียวกับ root ให้ update daemon หรือ ปิดเซอร์วิสนี้ถ้าคุณไม่ใช้ POP เซิร์ฟเวอร์บางเครื่องจะไม่รายงานการ login ที่ล้มเหลวด้วย ดังนั้นผู้โจมตีจึงอาจเดารหัสผ่านแบบสุ่มจนเข้าระบบได้ (brute force) คุณจะไม่มีทางรู้ได้เลย ดังนั้นคุณจึงควรอัปเกรด ซอฟท์แวร์นี้


Samba - เป็นวิธีการที่นิยมใช้กันเพื่อโจมตีลีนุกซ์เวอร์ชันที่มาพร้อมกับเซอร์วิส นี้ โดยค่าเริ่มต้นมันมีปัญหาเกี่ยว กับ buffer overrun ที่ยอมให้ผู้โจมตีรันคำสั่งโดยใช้สิทธิ์ของ root จึงควรปิดเซอร์วิสนี้หรืออัปเดทซอฟท์แวร์เสีย


Password Sniffing - เป็นวิธีการโจมตีแบบหนึ่งที่มีประสิทธิภาพมาก ไม่ใช่เพราะว่ามันซับซ้อนแต่เพราะ มันทำให้ผู้โจมตีเข้าถึงระบบเป็นร้อย ๆ ระบบได้อย่างรวดเร็วถ้าผู้โจมตีใช้ sniffer ในที่ซึ่งมีการติดต่อทางเน็ตเวิร์คอย่างหนาแน่น เมื่อได้รหัสผ่านมาแล้วก็ยากที่จะหาตัวผู้โจมตีเนื่องจากพวกเขาเป็นเหมือน เป็นยูสเซอร์ธรรมดาเท่านั้น การป้องกันการโจมตีวิธีนี้จึงทำได้โดยการไม่ยอมให้ผู้โจมตีเข้าถึงโฮสต์ได้ และใช้การติดต่อที่เข้ารหัส ในการต่อระหว่างโฮสต์โดยใช้เครื่องมืออย่างเช่น SSH แทน โชคไม่ดีที่โปรโตคอลอื่นเปิดโอกาสให้มีการโจมตี นี้ได้เช่นกัน (POP, FTP,HTTP) คุณอาจแก้ไขโดยการใช้ SSH ผ่านระบบการทำงานของ SSH เพื่อการใช้เซอร์วิสเหล่านี้ แต่ยูสเซอร์หลายคนปฏิเสธที่จะใช้ถ้าไม่ได้บังคับอย่างจริงจัง วิธีแก้ปัญหาจริงคือการใช้ โปรโตคอล IPSec อย่างกว้างขวาง ซึ่งอาจจะต้องใช้เวลาอีกหลายปี


"Temporary" Changes - เป็นการเปลี่ยนแปลงชั่วคราวที่คุณได้เซ็ตไว้ เพื่อให้บางคนเข้ามาใช้ระบบชั่วคราว แต่ลืมปิดการใช้งานเสีย ดูเหมือนว่านักล้วงข้อมูลสามารถหาช่องโหว่นี้เจอได้ ไม่ว่าคุณคิดว่าคุณซ่อนไว้ดีอย่างไรก็ตาม ดังนั้นจึงไม่ควรเซ็ตค่าชั่วคราวสำหรับโฮสต์ใด ๆ ก็ตามที่อยู่ในอินเตอร์เน็ต ไม่ว่าจะนานเท่าใดก็ตาม


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



Credit : THD

ไม่มีความคิดเห็น:

แสดงความคิดเห็น