Thursday, September 20, 2007

ประเภทต่างๆ ของ Security Tools

เวลาที่คนส่วนใหญ่พูดถึงคำว่า tool หรือ security tools ในเนื้อหาที่เกี่ยวข้องกับ IT Security นั้น เค้ามักจะหมายถึงซอฟแวร์ต่างๆ ที่ใช้ในการตรวจสอบความปลอดภัยของระบบคอมพิวเตอร์ แม้ว่าจะมี tool บางตัวที่เป็นได้ทั้งฮาร์ดแวร์และซอฟแวร์ก็ตาม (เช่น sniffer) แต่สำหรับเนื้อหาในบทความนี้ ผมจะขอเน้นไปที่ tool ประเภทที่ฟรีและเป็น open source ซอฟแวร์ ที่เน้นในการใช้สำหรับตรวจสอบหรือ audit ระบบนะครับ แต่สำหรับ tool ตัวไหนที่ไม่ฟรี ผมก็จะระบุบอกไว้นะครับ

โดยทั่วๆ ไปแล้ว ประเภทต่างๆ ของ security tools ที่ใช้ในการตรวจสอบระบบหรือ audit มีดังต่อไปนี้
  1. Password crackers
  2. Scanners
  3. Exploitation tools
  4. Sniffers & Intrusion Detection System (IDS)
  5. Wireless tools
โอเค ทีนี้เรามาทำความเข้าใจกันกับ tool แต่ละประเภทกันเลยนะครับ

1. Password crackers

จุดประสงค์:
ใช้เพื่อค้นหารหัสผ่าน (password) ในการเข้าระบบ หรือใช้เพื่อตรวจสอบ password ที่ตั้งด้วยคำง่ายๆ เช่น คำที่มาจากพจนานุกรม (dictionary)

คำอธิบาย:
โดยทั่วๆ ไป เทคนิคที่ใช้ในการ crack password มีดังต่อไปนี้
  • Dictionary attack คือการเดา password ด้วยการใช้คำจากพจนานุกรม
  • Brute force attack คือการเดา password ด้วยการสุ่มตัวอักษรทีละตัวไปเรื่อยๆ จนครบทุกตัวอักษรที่มี (ตั้งแต่ a ไปจนถึง z และ A ไปจนถึง Z และอาจจะรวมไปถึงตัวอักษรพิเศษด้วย เช่น # ! @ %) โดยการเดาแบบนี้ อาจจะเริ่มตั้งแต่ 1 ตัวอักษรไปจนถึงจำนวนตัวอักษรที่ตั้งไว้ (ปกติมักจะตั้งไว้สูงสุดที่ 8 ตัวอักษร เพราะคนโดยทั่วๆ ไปมักจะตั้ง password ไม่ยาวเกินนี้ จริงมั้ยครับ?)
  • Rainbow table attack คือการใช้ rainbow table (ซึ่งก็คือตารางที่มีคำ password ต่างๆ ที่เราต้องการใช้ในการเดาหรือ crack ประกอบไปด้วยกับค่า hash ของ password นั้นๆ ที่ได้มีการคำนวนไว้ล่วงหน้าเรียบร้อยแล้ว) ซึ่งเทคนิคนี้สามารถช่วยให้เราสามารถค้นหา password ได้อย่างรวดเร็วมากขึ้นมากๆ แต่ก็มีข้อแม้อยู่ว่าเราจะต้องทำการสร้างหรือคำนวน rainbow table ขึ้นมาก่อน ซึ่งใช้เวลานานมากและก็กินเนื้อที่บนฮาร์ดดิสค่อนข้างเยอะด้วย

ตัวอย่าง:
  • John The Ripper - ใช้สำหรับ crack หรือค้นหา weak Unix password เป็นหลัก แต่ก็สามารถใช้ในการค้นหา password ในระบบ Windows Operating Systems ด้วยก็ได้
  • Cain & Abel - ใช้สำหรับค้นหาหรือกู้คืน password สำหรับระบบ Windows Operating Systems ซึ่งรองรับหลายเทคนิค เ่ช่น sniffing network, dictionary attack, brute-force attack และ rainbow table attack เป็นต้น
  • THC-Hydra - ใช้ในการ crack หรือค้นหา login password ซึ่งรองรับหลาย protocols (เช่น telnet, ftp, http, https เป็นต้น)
2. Scanners

จุดประสงค์:
ใช้เพื่อค้นหาข้อมูลหรือช่องโหว่เกี่ยวกับระบบที่เราต้องการตรวจสอบ เช่น ตรวจสอบหา port หรือ service ที่เปิดใช้งานในเครื่องเซิฟเวอร์ หรือตรวจสอบหาช่องโหว่ (vulnerability) ในเครื่องเซิฟเวอร์

คำอธิบาย:
Scanners สามารถแบ่งออกได้เป็นสามประเภทหลักๆ ดังนี้
  • Port scanners - ใช้สำหรับตรวจสอบว่ามี port หรือ service ไหนเปิดอยู่บ้าง เช่น สแกนแล้วพบว่าเครื่องเซิฟเวอร์มี port 23 เปิดอยู่ scanner ก็จะบอกเราว่ามีการเปิดใช้งาน telnet
  • Vulnerability scanners - ใช้สำหรับตรวจหาช่องโหว่ในระบบหรือเครื่องเซิฟเวอร์ ซึ่งผลลัพธ์ของ scanner ประเภทนี้จะบอกเราว่ามีช่องโหว่อะไรบ้างที่ถูกตรวจพบ และเราสามารถแก้ไขได้อย่างไร
  • Web vulnerability scanners - ใช้งานเหมือนกับ vulnerability scanner แต่จะเจาะจงไปที่การตรวจหาช่องโหว่ของ web application และ web server เป็นหลัก
ตัวอย่าง:
  • Nmap (Port scanner) - เป็น tool ที่นิยมใช้กันอย่างแพร่หลายสำหรับการสแกนหา port และตรวจสอบ service ต่างๆ ในระบบ network นอกเหนือไปจากนั้น Nmap ยังสามารถบอกได้ด้วยว่า เครื่องเซิฟเวอร์ที่เรากำลังสแกนอยู่ รัน OS อะไรได้ด้วย (แต่บางครั้งผลลัพธ์อาจจะไม่ตรง 100%)
  • SuperScan (Port scanner) - เป็น tool สำหรับ Windows เท่านั้น ที่ใช้ในการสแกน port, ping หรือ traceroute เป็นต้น
  • Nessus (Vulnerability scanner) - ถือได้ว่าเป็น free tool ที่ดีที่สุดก็ว่าได้ ซึ่งมีการอัพเดท plugin ที่ใช้ในการตรวจสอบช่องโหว่อยู่ตลอดเวลา (ประมาณ 11,000 plugins)
  • Nikto (Web vulnerability scanner) - ใช้ในการสแกนตรวจหาช่องโหว่สำหรับ web server
3. Exploitation tools

จุดประสงค์:
ใช้สำหรับการทดสอบเจาะระบบ (penetration test) เพื่อทดลองดูว่าระบบการป้องกันของเราทำงานได้อย่างถูกต้องตามที่ต้องการหรือไม่

คำอธิบาย:
โดยทั่วๆ ไปแล้ว คนที่จะสามารถใช้ exploitation tool ได้นั้น มักจะต้องเป็นคนที่มีความรู้ทางด้าน security มากพอสมควร แต่ก็มีข้อยกเว้นอยู่ว่า ถ้าเป็น exploitation tool ประเภท point-and-click (คือ ประเภทที่เป็นไฟล์ .exe และมี GUI ที่ให้เราสามารถใส่ IP address ของเครื่องเป้าหมาย แล้วกดปุ่มยิงได้ทันที) นั่นก็ไม่จำเป็นต้องมีความรู้มากมายนักในการใช้

ตัวอย่าง:
  • Metasploit Framework - เป็น advanced open-source tool ที่ใช้สำหรับพัฒนาและทดสอบ exploit code ในการเจาะช่องโหว่ของโปรแกรมต่างๆ
  • Core Impact (ไม่ฟรี และแพงมากกกกก) - ถือเป็น exploitation tool ที่เรียกได้ว่ามีประสิทธิภาพและฟังชั่นหลากหลายมากที่สุด ในการใช้ทดสอบเจาะระบบ และยังมีฐานข้อมูลของ exploit ที่ถูกอัพเดทอยู่ตลอดเวลาให้พร้อมใช้งาน
  • Canvas (ไม่ฟรี และแพงมากก แต่ยังถูกกว่า Core Impact) - ในกรณีที่คุณไม่สามารถซื้อ Core Impact มาใช้ได้ ลองหันมาดู Canvas สิครับ :-)
4. Sniffers & Intrusion Detection System (IDS)

จุดประสงค์:
ใช้เพื่อดักจับข้อมูลที่วิ่งอยู่ใน network เพื่อทำการวิเคราะห์และตรวจสอบ network traffic (หรือที่เรียกว่าการทำ network monitoring นั่นเอง)

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

ตัวอย่าง:
  • Wireshark - ชื่อเก่าของ tool ตัวนี้คือ Ethereal ซึ่งเป็น tool ที่ได้รับความนิยมอย่างมาก ในการใช้สำหรับ sniff ข้อมูลที่วิ่งอยู่ network เพื่อตรวจสอบ
  • Tcpdump - เป็น tool เก่าแก่ที่ใช้กันมานานสำหรับ sniffing หรือ network monitoring ถึงแม้ว่า tcpdump จะไม่มี GUI เหมือนกับ Wireshark แต่ก็สามารถทำงานได้อย่างมีประสิทธิภาพไม่แพ้กัน และ tcpdump ก็ยังกิน system resource น้อยกว่าด้วย
  • Snort - เป็นอีกหนึ่งในฟรีและ open-source tool ที่ใช้กันอย่างแพร่หลาย Snort สามารถช่วยเฝ้าระวังระบบ network ของเราได้ ด้วยการตรวจสอบ packet ต่างๆ ที่วิ่งอยู่ใน network ซึ่งถ้าหาก Snort พบว่ามีการสแกน port หรือมี worm ระบาดอยู่ มันก็จะฟ้องบอกเราทันที
5. Wireless tools

จุดประสงค์:
เป็น tool ประเภทที่ใช้สำหรับการตรวจสอบ wireless security โดยเฉพาะ

คำอธิบาย:
ประเภทของ Wireless tools หลักๆ แล้วมีอยู่แค่สองประเภท ได้แก่ 1) sniffer และ 2) password cracker ซึ่งสำหรับ tool ประเภทแรกที่มีลักษณะเป็น sniffer (และกึ่งๆ scanner) ยกตัวอย่าง เช่น NetStumbler และ Kismet จะเป็น tool ที่ใช้ในการสแกนตรวจหา rogue access point หรือ access point ที่ติดตั้งโดยไม่ได้รับอนุญาติในบริเวณพื้นที่ทำงานในออฟฟิต ส่วน tool ประเภทที่สองที่มีลักษณะเป็น password cracker นั้น จะมีไว้สำหรับตรวจสอบความแข็งแกร่งของ wireless key ที่ใช้เข้ารหัส wireless network ซึ่งถ้าเป็น WEP key แล้วละก็ tool ที่ชื่อว่า Aircrack-ng สามารถ crack หรือถอดรหัส WEP key ออกมาได้อย่างแน่นอน ไม่ว่าจะตั้งไว้ยากแค่ไหนก็ตาม ซึ่งจุดอ่อนนี้เกิดขึ้นมาจาก algorithm หรือวิธีการที่ WEP key ใช้ในการเข้ารหัสนั่นเอง

ตัวอย่าง:
  • NetStumbler - ทำงานบน Windows ซึ่ง tool นี้ใช้สำหรับการสแกนหา wireless access point (หรือที่เราเรียกว่า "wardriving") ซึ่งมีเวอร์ชั่นที่เราสามารถลงใน PDA ได้ด้วย
  • Kismet - ใช้ในลักษณะเดียวกับ NetStumbler แต่การทำงานจะแตกต่างกันตรงที่ Kismet สแกนแบบ passive ส่วน NetStumbler จะสแกนแบบ active (โดยการส่ง packet ออกไปเพื่อค้นหา access point)
  • Aircrack-ng - เป็น tool ที่สามารถ crack WEP/WPA key ได้รวดเร็วที่สุด ซึ่งสามารถถอดรหัส WEP key ตั้งแต่ 40-bit ไปจนถึง 512-bit ได้ แต่จะต้องเก็บข้อมูล packet ให้ได้มากพอเสียก่อน
จริงๆ แล้ว security tools ยังมีอีกมากมายหลายประเภทเลยนะครับ ถ้าท่านไหนสนใจที่จะศึกษาเพิ่มเติมละก็ ลองเข้าไปดูที่เว็บไซด์ Top 100 Network Security Tools ดูนะครับ เอาไว้ถ้ามีโอกาสละก็ ผมจะเขียน tutorial สำหรับการใช้งาน tool บางตัวที่น่าสนใจนะครับ ยังไงก็ช่วย comment ด้วยละกันนะครับว่าแต่ละท่านสนใจ tool อะไรกันบ้างครับ

Resources:

1 comment:

Unknown said...

อยากทราบการใช้ snort ครับวิธี install และวิธีการใช้งานบน linux ครับอาจารย์