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

การตรวจสอบ หรือสแกน

การตรวจสอบ หรือสแกน

การ แกะรอยเป็นเสมือนการเคาะประตูบ้าน โดยผู้เจาะระบบได้ตรวจสอบข้อมูลก่อนเริ่มโจมตี และในการสแกนนี้เป็นการตรวจสอบเพื่อเข้าไปดูข้อมูล หรือรายละเอียดภายใน



การ Ping Sweeps

เป็นเทคนิคที่นิยมใช้กันโดยทำการตรวจสอบหมายเลข IP Address เป็นช่วงซึ่งเป็นการส่ง ICMP Echo (Type Coolและตอบกลับด้วย ICMP ECHO_REPLY (Type 0) ซึ่งถ้ากำหนดเป็นช่วงมากก็จะเสียเวลา การใช้จะไม่ตรวจสอบหลายรอบซึ่งจะใช้เพียงครั้งเดียวเช่น Gping หรือ fping

การ Ping จะวิ่งไปสู่ช่วงของหมายเลขที่ใช้ หมายเลขที่เป็น Network ID กับ Broadcast ID จะไม่ใช้

Pinger เป็น Ping sweep ที่อยู่ในรูปแบบกราฟฟิก

คำสั่ง nmap เป็นวิธีการตรวจสอบ ซึ่งสามารถกำหนดพอร์ตที่ต้องการได้

ตัวอย่าง nmapnt –sP –PT80 192.168.1.0/24 ถ้าต้องการลองสามารถตรวจสอบพอร์ตอื่นๆได้ เช่น POP3 (110), IMAP4(143), AUTH(113), SMTP(25) เป็นต้น

คำสั่ง Hping เป็นคำสั่งที่ใช้ตรวจสอบซึ่งสามารถตรวจสอบแฟลก (Flag) ต่างๆได้ ซึ่งมีการใช้งานคล้ายๆกับ Traceroute โดยมีตัวอย่างดังนี้

Hping 192.168.1.2 –S –p 80 –f

โดยคำสั่งนี้จะตอบกลับด้วย flags=SA คือ SYN กับ ACK ดูเพิ่มเติมได้จากเว็บ www.kyuzz.org/antirez

คำสั่ง icmpenum ซึ่งเป็นการตรวจสอบเครื่องที่ทำงานอยู่โดยใช้ ICMP ECHO

ตัวอย่าง icmpenum –i2 –c 192.168.1.0

ข้อดีการใช้คือจะส่งแพ็ตเกตปลอมเพื่อ ป้องกันการตรวจสอบว่าส่งมาจากที่ใด ซึ่งใช้ –s เพื่อระบุหมายเลขที่กำหนดปลอม และ –p เพื่อดักจับแพ็ตเกตที่ตอบสนองกลับ



วิธี การป้องกัน Ping Sweep

ทำได้สองวิธี

   1. วิธีแรกคือตรวจจับ เช่นโปรแกรม Network-based Intrusion Detection System: IDS) เช่น Network Flight Recorder (NFR) และ Snort (http://www.snort.org/)
      ถ้าเป็นบน Windows ใช้ Genius 3.1 ซึ่งเข้าดูใน http://www.indiesoft.com/
      หรือใช้ตรวจสอบพอร์ตที่สแกนด้วย BlackICE จาก www.networkice.com
   2. การป้องกันเราสามารถตรวจสอบ และป้องกันเข้ามาได้โดยตัวอย่างที่ตรวจสอบคือ ICMP ชนิดที่เป็น ECHO จะใช้อยู่ประจำเราอาจจะทำการปิดไว้เพื่อป้องกัน Denial of Service เช่น Smurf หรือพวกที่เข้ามาโดยใช้ประตูหลังเช่น Ioki




ICMP Queries

เป็นการใช้โปรแกรม Ping sweep และตรวจสอบเวลาที่ใช้ ซึ่งทำให้เข้าใจถึงเครือข่ายปลายทาง

การตรวจสอบเวลาจากเราท์เตอร์ใช้ คำสั่ง icmpquery –t 192.168.1.1 หรือตรวจสอบซับเน็ตด้วย icmpquery –m 192.168.1.1



การป้องกัน ICMP Query

คือป้องกันรหัส ของ ICMP type Timestamp (ที่เป็นเลข 13) และ Address Mask (รหัส 17) ใช้ Snort หรือ NIDS



การตรวจสอบพอร์ต

Port scanning เป็นการต่อเชื่อมเข้าที่ TCP port หรือ UDP Port ดูว่าเครื่องทำงานอยู่หรือไม่ ซึ่งเครื่องปลายทางต้องอยู่ในภาวะ Listening

ซึ่ง ผู้ตรวจสอบสามารถที่จะตรวจสอบเครื่องที่ต่ออินเตอร์เน็ตได้ โดยดูจากพอร์ตที่เปิดอยู่ ซึ่งสามารถวิเคราะห์ได้ทั้ง UDP/TCP, บริการ, และระบบปฏิบัติการ

ประเภทของการสแกน

ในโปรแกรม Nmap ของ Fyodor ดูได้

-         TCP connect scan เป็นการเปิดการเชื่อมต่อด้วย TCP 3 ครั้งในการติดต่อคือ SYN, SYN/ACK, และ ACK

-         TCP SYN scan เป็นการเปิดเพียงครึ่งเพราะเซตแฟลก SYN ไว้เป็น 1 เครื่องจะตอบกลับด้วย SYN/ACK เป็นหนึ่งซึ่งก็พอสำหรับการทราบว่าบริการเครื่องเปิดอยู่ แต่ถ้าเครื่องไม่เปิดจะได้รับตอบกลับมาเป็น TCP RST/ACK

-         TCP FIN scan เป็นการส่ง FIN เป็น 1 ไปยังเครื่อง ซึ่งถ้าพัฒนาตามมาตรฐาน RFC 793 ก็จะส่ง TCP RST ซึ่งแสดงว่าเครื่องไม่ได้เปิดให้บริการ

-         TCP Xmas Tree scan เป็นการส่ง TCP FIN, URG และ PUSH ไปพอร์ตเป้าหมาย ซึ่งเครื่องปลายทางจะส่ง TCP RST ทุกพอร์ตที่ปิดกลับมา

-         TCP null scan ใช้ส่งแฟลกเป็น 0 เครื่องจะส่ง TCP RST ของทุกๆพอร์ตที่ปิดอยู่กลับมา

-         TCP ACK scan ใช้ค้นหา rule และ policy ต่างๆที่เซตไว้ที่ไฟร์วอลล์ ถ้าไฟร์วอลล์ที่ฉลาดจะกรองได้ด้วย

-         TCP windows scan เป็นการตรวจสอบพอร์ตใดที่กรองไว้ไม่ให้เข้าใช้ และได้รับการอนุญาต โดยระบบจะแจ้งค่า TCP Windows Size

-         TCP RPC scan ใช้เฉพาะเครื่องที่เป็นยูนิกซ์ ตรวจสอบว่ามี RPC services ใดบ้าง

-         UDP scan ตรวจสอบเครื่องปลายทางด้วย ICMP type PORT UNREACHABLE ซึ่งพอร์ตที่ปิดอยู่จะตรงกันข้าม



การค้น หาบริการทั้งหมดบน TCP/UDP

Strobe

เป็นเครื่องมือที่ใช้ใน การสแกนพอร์ตโดยดูได้จาก (http://ftp://ftp.FreeBSD.org/pub/FreeBSD/ports.distfiles/strobe-1.06.tgz) เป็นเครื่องมือที่ทำงานได้เร็ว และสามารถตรวจสอบบริการต่างๆได้ ซึ่งตรวจสอบได้เฉพาะ TCP เท่านั้น
UDP_SCAN

เนื่องจาก Strobe ตรวจสอบได้เฉพาะ TCP port จึงมีเครื่องมือชุด SATAN (Security Administrator Tool for Analyzing Networks) ที่พัฒนาโดย Dan Framer และ Wietse Venema ในปี 1995 ซึ่งตัวใหม่ชื่อ SAINT ได้พัฒนาโดยดูจาก http://wwdsilx.wwdsi.com ซึ่งตรวจสอบ UDP scan ได้

การใช้ UDP_SCAN ถูกตรวจจับได้โดยบรรดา IDS (Intrusion Detection System) และไฟร์วอลล์ต่างๆที่ระบบจะแจ้งให้กลับผู้ดูแลทราบโดยทั่วไปค้นหาในพอร์ต มาตรฐาน
Netcat

เป็นเครื่องมือที่ถูกพัฒนาโดย Hobbit (hobbit@avian.org) ซึ่งสแกนแทบทุกเทคนิค เหมือนดาบสองคมโดยใช้ดังนี้

Nc –v –z –w2 192.168.1.1 1-140

เป็นการตรวจสอบ TCP/UDP ให้ใช้ –u และ –w2 เป็นการระบุเวลาในการรอคอยมาที่สุด

Network Mapper (nmap)

ดู ได้จาก http://www.insecure.org/nmap) ซึ่งสามารถตรวจสอบได้ทั้งสอง ดูความช่วยเหลือจาก nmap –h

ตัวอย่าง การใช้ nmap –sS 192.168.1.1

การใช้ Nmap นอกจากตรวจสอบแล้วยังสามารถที่ส่งแพ็คเก็ตปลอมได้ด้วย –D ซึ่งทำให้ยากต่อการติดตาม การปลอมหมายเลข IP Address ต้องเป็นที่อยู่ของเครื่อง Server จริงมิฉะนั้นจะกลายเป็น SYN Flood

ตัวอย่าง การใช้ nmap –sS 192.168.1.1 –D 10.1.1.1

การตรวจสอบ ident scanning, Ident ดูใน RFC-1431 เป็นการเข้าไปที่พอร์ต 113 เพื่อค้นหาผู้ใช้ TCP connection ซึ่งจะเป็นเจ้าของระบบทำงานอยู่

ตัวอย่างการใช้ nmap –I 192.168.1.10

ซึ่งการที่ผู้เจาะระบบทราบข้อมูลตรงนี้ถ้ามีแอ พพลิเคชั่นในการเข้าครอบครองสิทธิเป็นอันว่าเสร็จเรียบร้อยโรงเรียนแฮกเกอร์


FTP bounce scanning

เป็นการใช้ข้อบกพร่องของ FTP (RFC 959) ซึ่งเป็นวิธีการเปิดการเชื่อมต่อไปยัง FTP Server โดยใช้ FTP ที่รองรับ Proxy connection และยังใช้เทคนิคนี้ในการส่งจดหมายปลอมไปเพื่อป้องกันการตามรอย และโจมตี FTP ให้ดิสก์เต็ม หลีกเลี่ยงจากไฟร์วอลล์ ซึ่ง Nmap รองรับในการใช้ –b แต่ทำงานได้บางเงื่อนไขเท่านั้น

-         FTP ต้องมีไดเรคทรอรี่ที่อ่าน และเขียนข้อมูลได้

-         FTP Server ต้องยอมให้ Nmap ป้อนหมายเลขพอร์ตปลอมเข้าไปด้วยคำสั่ง PORT

ใน FTP หลังๆจะป้องกันไว้แล้ว



การใช้ Strobe จะได้รู้จักบริการที่เปิดอยู่กับเครื่อง ซึ่งถ้าดูบริการที่ทำงานอยู่ portmapper (หมายเลข 111), Berkeley R Service (พอร์ต 512-514), NFS (2049) หรือสูงกว่าเราคาดเดาได้ว่าเป็น Sun Solaris เพราะโดยทั่วไป Sun จะใช้บริการ RPC ที่พอร์ต 327xx ขึ้นไป

ถ้าตรวจสอบพบ Port 139 เป็น Windows 9x, Port 135, 139 เป็น Windows NT



เครื่องมือที่ ใช้ตรวจสอบบน Windows-Based
NetScan Tools Pro 2000

เป็นเครื่อง มือที่มีความสามารถรอบด้านทั้ง nslookup, dig, axfr, whois, ping sweeps, NetBIOS Name table scan, SNMP walks และอื่นๆ

การตรวจสอบพอร์ตทำได้ ทั้ง TCP/UDP ปัจจุบันมีเวอร์ชั่น 4.0x แล้ว
SuperScan

เป็น เครื่องมือที่ใช้ตรวจสอบ TCP Port มีความยืดหยุ่น และฟรี โดยสามารถที่จะระบุหมายเลข IP Address ที่ต้องการได้
NTOScanner

เข้า ไปที่ http://www.ntobjectives.com เป็นเครื่องมือที่รวดเร็ว และใช้ง่าย มีการดัมพ์นำผลลัพธ์มาแสดง
WinSacn

พัฒนา โดย Sean Mathias หรือ http://www.prosolve.com สามารถใช้คำสั่งในการทำงานได้ด้วย Scan.exe
IpEye

มาจาก http://ntsecurity.nu ซึ่งจะตรวจสอบพอร์ตด้วย Source port scanning ใช้ได้เฉพาะ Windows 2000 เท่านั้นและตรวจสอบทีละเครื่อง

ตัวอย่าง ipeye.exe 192.168.234.110 –syn –p 1 1023 –sp 20

มีการหลบเลี่ยง ด้วยการใช้พอร์ต 20 และวิ่งเข้าไปในเครือข่ายภายใน ซึ่งไฟร์วอลล์คิดว่าอนุญาต แล้วก็ให้เข้าไป ซึ่งใช้ไม่ได้ง่ายกับเครือข่ายที่เป็น NAT (Network Address Translation)
WUPS

Windows UDP Port Scanner (WUPS) เข้าไปใน http://ntsecurity.nu ซึ่งมีการแสดงแบบกราฟฟิก และสามารถตรวจสอบพอร์ต UDP ได้อย่างรวดเร็ว



การป้องกันการ ตรวจสอบพอร์ต

วิธีพื้นฐานที่ใช้กันคือการใช้ Network-based IDS อย่างเช่น NFR หรือใช้ snort เพื่อตรวจจับการสแกนพอร์ตได้

ในยูนิกซ์ มี scanlogd (http://www.openwall.com/scanlogd) จาก Solar Designer และ Psioni PortSentry จาก Abacus (http://www.psionic.com/abaus/) หรือการกำหนดกฎในไฟล์ของPortSentry  ซึ่งจะแม็บในแต่ละระบบที่แตกต่างกัน ซึ่งในซอฟต์แวร์นี้ทำงานภายใต้ Unix

ในเอกสารการป้องกันแฮกเกอร์ที่ สแกนพอร์ตไปที่ http://www.openwall.com/scanlogd/P53-13.gz

Psionic Logcheck (http://www.psionic.com/abacus/logcheck) เข้ามาใช้ระบบแจ้งเตือนหากมีการเข้ามาเกินกว่าค่าที่กำหนด หรือใช้โปรแกรมวิเคราะห์เช่น Lance Spitzner (http://www.enteract.com/~lspitz/intrusion.html) ที่เป็นโปรแกรมเสริมใน Firewall-1 ชื่อ alert.sh สามารถตรวจสอบการสแกนพอร์ตได้

สำหรับระบบปฏิบัติการ Windows ก็มี BlackICE และ Zone Alarm ซึ่งเป็นทั้งไฟล์วอลล์ และ IDS

การป้องกัน

ถึง แม้ว่าจะป้องกันการตรวจสอบได้ยากที่ตรวจสอบ แต่สิ่งทำได้คือการผ่านบริการเท่าที่จำเป็น



การตรวจสอบ ประเภทของระบบปฏิบัติการ

เทคนิคที่ทราบมีอยู่มากมายคือการค้นหา TCP/UDP port ซึ่งเมื่อทราบบริการแล้วก็ตรวจสอบข้อบกพร่องของระบบปฏิบัติการ ซึ่งเครื่องมือที่ใช้ได้แก่ nmap และ queso


Active Stack Fingerprinting

ก่อนเข้าสู่ nmap และ queso ต้องเข้าใช้ความหมายของ Active Stack fingerprint (ASF) ก่อน

ASF เป็นการตรวจสอบประเภทของระบบปฏิบัติการที่ใช้โดยจะดูจากไดรเวอร์ของโปรโตคอล

ซึ่ง ระบบแต่ละตัวจะมีการทำงานเป็นของตนเอง ซึ่งระบบจะหาความแตกต่างในแต่ละวิธี

-         FIN Probe

-         Bogus Flag prove

-         Initial Sequence Number (ISN) sampling

-         Don’t fragment bit monitoring

-         TCP initial window size

-         ACK value

-         ICMP error message quenching

-         ICMP message quoting

-         ICMP error message-echoing integrity

-         Type of Service (TOS)

-         Fragmentation handling

-         TCP options

ซึ่ง nmap –o 192.168.1.10 จะตรวจสอบและพิจารณาได้ OS ที่ควรจะเป็น

Queso เป็นเครื่องมือแรกๆที่ได้เปิดตัวใน http://www.apostols.org/projectz และได้ถูกนำไปใส่ใน nmap คำสั่งสามารถตรวจสอบได้ทั้งพอร์ต 80 และพอร์ตอื่นๆ



มาตรการ ป้องกันการตรวจจับใน ASF

การตรวจจับ มีเครื่องมือต่างๆที่ใช้ตรวจสอบได้แต่ไม่บอกถึงว่าถูกตรวจสอบด้วยเทคนิคใด

การ ป้องกัน สามารถเขียนป้องกันเองได้ โดยใช้ TCP_DROP_SYSFIN เพื่อให้ระบบไม่สนต่อการส่ง SYN หรือ FIN โดย nmap

ใช้ Proxy หรือ Firewall ในการบล็อกเพื่อป้อนกันไม่ให้เข้าใช้โดยง่าย



Passive Operating System Identification (POSI)

เราได้รู้จัก ASF โดยใช้ nmap และ queso แล้วมาดูการตรวจสอบแบบ POSI ซึ่งตรวจสอบยาก
Passive Stack Fingerprinting (PSF)

เป็นเทคนิคคล้าย ASF ซึ่งแฮกเกอร์จะเฝ้าดูอย่างเงียบกับการจราจรที่เกิดขึ้น โดยดูได้จากเอกสาร http://www.enteract5.com/~lspitz/finger.html ได้มีเครื่องมือ siphone ที่ตรวจสอบแบบ Passive ซึ่งดูได้จาก http://www.subterrain.net/projects/siphon
Passive Signatures

เราตรวจสอบค่าต่างๆดังนี้

-         Time To Live (TTL) จะตรวจสอบพบว่าค่าไม่เท่ากันในแต่ละระบบ

-         Window Size ซึ่งค่าดีฟอลท์จะต่างกัน

-         DF (Don’t fragment bit) ดูว่ามีการกำหนด DF bit หรือไม่ เพราะบางระบบมักจะเซตค่านี้เป็น 1 แต่บางระบบกำหนดเป็น 0

-         Type of Service ดูว่า TOS กำหนดไว้เป็นอะไร

ซึ่งค่าต่างๆเหล่านี้ให้ดูหลายๆอย่างประกอบกัน และเครื่องมือ siphon ก็อาศัยหลักการณ์เดียวกันนี้ด้วย

เช่นเราไป telnet และใช้ snort ในการตรวจสอบซึ่งจะพบค่า Seq, Ack, Win, TCP Option แล้วไปเปรียบเทียบกับไฟล์

หรือใช้ siphon –v –I x10 –o fingerprint.out แล้วไปตรวจสอบ

การป้องกันใช้หลักการเดียวกับ ASF



เครื่อง มือการค้นหา และสำรวจอัตโนมัติ

Cheops (http://www.marko.net/cheops) เป็นเครื่องมือที่ใช้ตรวจสอบค่าต่างๆไว้ในแพ็ตเกตเดียวทั้ง queso และการตรวจสอบพอร์ต

Tkined เป็นเครื่องมือใน Scotty หาได้จาก http://wwwhome.cs.utwente.nl/~schoenw/scotty ซึ่งพัฒนารวมกัน และวิเคราะห์เครือข่ายเข้าด้วยกันแสดงเป็นกราฟฟิก

มาตรการ ป้องกันการค้นหาอัตโนมัติ

ใช้หลักการในการป้องกันที่กล่าวมาในตอนต้น

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

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