Sunday, September 23, 2007

Malware คืออะไร ?

Malicious Software (หรือ Malware) คือประเภทของโปรแกรมคอมพิวเตอร์ที่ถูกสร้างขึ้นมา โดยมีจุดมุ่งหมายเพื่อที่จะทำลายหรือสร้างความเสียหายให้แก่ระบบคอมพิวเตอร์ ระบบเครือข่าย หรือทรัพย์สินและข้อมูลของผู้ใช้งานคอมพิวเตอร์ ประเภทของ malware ต่างๆ มีดังต่อไปนี้
  1. Virus
  2. Worms
  3. Trojan Horses / Backdoors
  4. Rootkits
  5. Bots (หรือ Zombies)
  6. Spyware
  7. Adware
  8. Crimeware / Ransomware
Virus

พฤติกรรมของ virus คือการขยายพันธุ์หรือก็อปปี้ตัวมันเอง ไปติดกับไฟล์ executable (.exe files) หรือไฟล์ของอีกโปรแกรมหนึ่ง หลังจากนั้น หากผู้ใช้งานไปดับเบิ้ลคลิ๊กหรือรันโปรแกรมไฟล์นั้นๆ virus ก็จะถูกกระตุ้นให้ทำงานทันที โดยส่วนที่เป็นพิษของ virus เราเรียกกันว่า payload ซึ่งเป็นส่วนที่มีคำสั่งที่ระบุให้ virus ทำงานตาม ยกตัวอย่างเช่น payload ของ virus อาจจะระบุไว้ว่าให้ virus ทำการลบไฟล์เอกสารต่างๆ ในเครื่องของผู้ใช้งาน หรือ payload อาจจะสั่งให้ virus ลงโปรแกรมประเภท spyware ไว้ในเครื่องเพื่อคอยดักเก็บข้อมูลส่วนตัวของผู้ใช้งาน เป็นต้น ลักษณะเด่นของ virus คือ มันไม่สามารถที่จะทำงานได้ด้วยตัวของมันเอง virus จะเริ่มการทำงานหรือถูกปลุกให้ตื่นขึ้นมาได้นั้น จะต้องมีการถูกกระตุ้นก่อน เช่น ถ้าเราดาวโหลดไฟล์ attachment ที่มากับอีเมล์ซึ่งมี virus อยู่ การที่เราดาวโหลดไฟล์ virus มาไว้ที่เครื่องเฉยๆ นั้น virus จะยังไม่สามารถทำงานได้ (และบางทีโปรแกรม anti-virus ของเราก็อาจจะฟ้องขึ้นมาทันที ว่าเรากำลังดาวโหลดไฟล์ที่มี virus อยู่ และทำการลบไฟล์นั้นทิ้ง) แต่ถ้าเครื่องของเราไม่มี anti-virus หรือโปรแกรม anti-virus ของเราไม่รู้จัก virus ตัวนี้ ไฟล์ attachment ที่มี virus ก็จะถูกโหลดมาไว้ในเครื่องของเราได้สำเร็จ และเมื่อไหร่ก็ตามที่เราไปดับเบิ้ลคลิ๊กหรือเปิดไฟล์ attachment นี้ขึ้นมาใช้งาน เจ้า virus ก็จะตื่นขึ้นมาจัดการเครื่องของเราทันที

Worms

ลักษณะการทำงานของ worm จะต่างจาก virus ตรงที่ worm สามารถทำงานได้ด้วยตัวของมันเอง (ทำงานแบบอัตโนมัติหรือ automatic) โดยไม่ต้องอาศัยพาหะ หรือการเกาะไฟล์ executable อื่นๆ โดย worm จะใช้การกระจายพันธุ์ผ่านทางระบบ network เป็นหลัก ด้วยการคอยสแกนระบบ network อยู่ตลอดเวลา เพื่อที่จะหาช่องโหว่ของเครื่องที่มีอยู่ในระบบ ถ้าเครื่องไหนมีช่องโหว่ (ซึ่งเกิดจากการไม่ได้ลง patch/service pack หรือใช้โปรแกรมเวอร์ชั่นเก่า) worm ก็จะโจมตี (exploit) เครื่องเหล่านั้นทันที และก็ควบคุมเครื่องเหล่านั้น ให้ช่วยกระจายพันธุ์ต่อไป ดังนั้น เรามักจะสังเกตเห็นได้ว่า เมื่อใดก็ตามที่มีการระบาดของ worm ระบบ network ของเราก็จะทำงานช้ามาก เพราะว่า network bandwidth จะถูก worm ใช้ในการสแกนเครื่องต่างๆ โดยปกติแล้ว worm มักจะแฝงตัวมากับ virus ในลักษณะของ email attachment เพราะว่าการโจมตีผู้ใช้งานแบบนี้ได้ผลดีกว่าและง่ายกว่า และการที่ worm ฝังตัวมากับ email attachment นั้น network firewall ก็จะไม่สามารถตรวจจับและหยุด worm ตัวนั้นได้ นอกเสียจากเราจะมีโปรแกรม anti-virus ทำงานอยู่ใน mail server

Trojan Horses / Backdoors

ใครเคยดูหนังเรื่อง "Troy" บ้างครับ? จำได้มั้ยครับว่า Trojan horse หรือม้าโทรจันถูกสร้างขึ้นมาเพื่อจุดประสงค์อะไร? คำตอบก็คือ Trojan horse ถูกสร้างขึ้นมาเพื่อหลอกให้ชาวเมืองทรอยเข้าใจผิด คิดว่าทหารกรีกยอมแพ้ และสร้าง Trojan horse ขึ้นมาเพื่อเป็นรางวัลในการขอหย่าศึกนั่นเอง แต่จริงๆ แล้ว มีทหารกรีกจำนวนหนึ่งแอบซ่อนตัวอยู่ภายใน Trojan horse เมื่อถึงเวลากลางคืน ทหารกรีกที่ซ่อนตัวเหล่านั้นก็ออกมาเปิดประตูเมืองทรอย เพื่อให้ทหารกรีกที่เหลือ ที่แอบซ่อนตัวอยู่ภายนอกกำแพงเข้ามาทำลายเมืองทรอยได้ในที่สุด ซึ่ง Trojan horse (หรือเรียกสั้นๆ ว่า trojan) ในเชิงของ IT security นั้น ก็คือโปรแกรมที่ถูกสร้างขึ้นมาเพื่อใช้ในการหลอกล่อให้ผู้ใช้งานทั่วไปดาวโหลดไปใช้งาน โดยที่ไม่รู้ตัวเลยว่ามีโปรแกรมอื่น (ที่ชั่วร้าย) แอบแฝงมาด้วย ยกตัวอย่างเช่น โปรแกรมประเภทที่เป็นตัวการ์ตูนที่เคลื่อนไหวอยู่บน desktop หรือ screensaver ที่สามารถดาวโหลดได้ฟรีจาก Internet ถ้าเราดาวโหลดโปรแกรมประเภทนี้ มาจาก web site ที่ไม่น่าเชื่อถือ โปรแกรมที่เราดาวโหลดมาอาจจะเป็น trojan ก็ได้ ซึ่งเมื่อเราลงโปรแกรมที่มี trojan อยู่ด้วย เราก็ยังสามารถใช้งานโปรแกรมเหล่านั้นได้ตามปกติ แต่ที่จริงแล้ว trojan จะทำงานอยู่เงียบๆ เบื้องหลัง โดยการฝังตัวของมันลงในเครื่องของเรา และติดตั้งโปรแกรมประเภท backdoor เพื่อเปิดช่องทางให้ attacker เข้าสู่เครื่องของเราได้อย่างลับๆ ทุกเมื่อที่ต้องการ

Rootkits

ถ้าเครื่องคอมพิวเตอร์ของเราถูกเจาะหรือถูก hack ได้สำเร็จ สิ่งแรกๆ ที่ attacker จะทำก็คือลงโปรแกรมประเภท rootkit ในเครื่องของเรา เพราะ rootkit จะช่วยซ่อนไฟล์ โปรแกรมและ process ต่างๆ ที่ attacker ติดตั้งหรือดาวโหลดมาวางไว้ในเครื่องของเรา เพื่อไม่ให้เราหรือโปรแกรม anti-virus ตรวจพบได้นั่นเอง ซึ่งถ้าเครื่องของเราถูกติดตั้ง rootkit ไปแล้วละก็ โอกาสที่จะถอน rootkit ออกจากเครื่องให้ได้นั่น แทบจะเป็นไปไม่ได้เลย เพราะว่า rootkit จะไปแก้ไขหรือเปลี่ยน system file ที่สำคัญต่างๆ ทำให้เมื่อเราลบไฟล์ที่เป็นของ rootkit ออก ก็จะมีผลกระทบต่อ system file เหล่านี้ด้วย ทำให้เกิดความเสียหายต่อระบบปฎิบัติการคอมพิวเตอร์ (Operating System หรือ OS) จนอาจจะไม่สามารถบูตเครื่องขึ้นมาทำงานได้อีกต่อไปเลย

Bots (หรือ Zombies)

Bot (หรือที่เรียกอีกชื่อหนึ่งว่า Zombie) คือเครื่องคอมพิวเตอร์ที่ถูก attacker ยึดและควบคุมให้ทำตามคำสั่งต่างๆ ของ attacker ผ่านทาง Internet โดย attacker มักจะติดตั้ง rootkit ไว้ด้วย เพื่อซ่อนไฟล์และโปรแกรมของ attacker ไม่ให้ถูกจับได้ โดยที่ผู้ใช้งานคอมพิวเตอร์จะไม่รู้ตัวเลยว่า เครื่องของเค้ากลายเป็น bot ไปซะแล้ว ซึ่งในขณะที่เค้ากำลังทำงานตามปกติ เช่น พิมพ์งานเอกสาร ฟังเพลง หรือเล่นเกมส์ attacker ก็อาจจะส่งคำสั่งผ่านทาง Internet มาให้เครื่องของผู้ใช้งานคนนั้น ไปโจมตี web site ต่างๆ หรือส่ง spam ก็ได้ โดยคำสั่งเหล่านี้จะทำงานอยู่เบื้องหลัง ปกติแล้ว attacker จะยึดเครื่องคอมพิวเตอร์หลายๆ เครื่อง เพื่อทำเป็น bot เอาไว้ใช้ในงานต่างๆ ซึ่งเราเรียกกลุ่มของเครื่องที่เป็น bot ที่สามารถทำงานร่วมกันได้ ภายใต้คำสั่งของ attacker ว่า "Botnet" หรือ Bot network ซึ่ง botnet มักจะทำงานด้วยการรับคำสั่งจาก attacker ผ่านช่องทางของ Internet Relay Chat (IRC) ซึ่งวิธีนี้ทำให้ attacker สามารถเชื่อมต่อกับ botnet ได้สะดวก และสามารถกระจายคำสั่งไปยังเครื่อง bot ต่างๆ ได้พร้อมกัน ในเวลาเดียวกัน

Spyware

โปรแกรมประเภท spyware จะติดตั้งตัวของมันลงในเครื่องของเราอย่างลับๆ โดยไม่ขออนุญาติเราก่อน ว่าอยากจะลงหรือไม่ ซึ่งเมื่อ spyware ถูกติดตั้งลงในเครื่องแล้ว มันจะคอยทำงานโดยการบันทึกข้อมูลต่างๆ ที่เกี่ยวกับการใช้งานเครื่องคอมพิวเตอร์ของเรา เช่น คอยดูว่าเราไปเข้า web site ไหนบ้าง เราพิมพ์ตัวอักษรอะไรบนคีีบอร์ดบ้าง และอื่นๆ ดังนั้น spyware จึงสามารถใช้เป็นเครื่องมือสำหรับ attacker ในการขโมย username, password, และข้อมูลเกี่ยวกับบัตรเครดิตการ์ดของเราได้ด้วย โดยที่ spyware จะส่งข้อมูลที่มันเก็บได้จากเครื่องของเราไปให้เจ้านายของมัน ผ่านทางอินเตอร์เน็ต หรือระบบ network อย่างเงียบๆ เพื่อไม่ให้เรารู้ตัว

Adware

โปรแกรมประเภท adware (ส่วนใหญ่มักจะมาคู่กับ spyware เพื่อใช้ในการทำ targeted ads หรือการโฆษณาสินค้าแบบเฉพาะเจาะจงกลุ่มเป้าหมาย เพื่อเพิ่มโอกาสในการขายสินค้าให้ได้มากขึ้น) จะคอยแสดงโฆษณาสินค้าต่างๆ บนหน้าจอของเรา (หรือที่เรียกกันสั้นๆ ว่า "popup ads") ผ่านทาง web browser เช่น Internet Explorer หรือ Mozilla Firefox ซึ่งสร้างความรำคาญให้กับผู้ใช้งานส่วนมาก ที่ไม่สนใจในโฆษณา หรือ popup ads เหล่านั้น โปรแกรมประเภท adware มักจะถูกติดตั้งพร้อมกับโปรแกรมที่เราดาวโหลดมาฟรีๆ จาก web site ที่ไม่น่าเชื่อถือ

Crimeware / Ransomware

คำว่า Crimeware เป็น malware ประเภทที่มีจุดประสงค์เพื่อการกระทำที่ผิดกฎหมาย โดยมุ่งเน้นผลประโยชน์ด้านเงินหรือการเมืองเป็นหลัก โดย attacker จะใช้ crimeware เพื่อช่วยในการก่อคดีโจรกรรมข้อมูลส่วนตัว เช่น username และ password ของผู้ใช้งาน Internet แล้วก็ส่งข้อมูลที่หาได้ ไปให้ attacker หรือไม่ก็ crimeware สามารถที่จะทำการโอนเงินที่ขโมยได้ ไปยังบัญชีของ attacker แบบอัตโนมัติเลยก็ได้ ส่วน Ransomware เป็นโปรแกรมประเภทที่ใช้เพื่อเรียกค่าไถ่ (แบบมาเฟีย) ยกตัวอย่างเช่น ransomware อาจจะเข้ารหัสหรือ encrypt ไฟล์เอกสารต่างๆ ในเครื่องของเรา แล้วก็ลบไฟล์ที่เป็น original ทิ้งไป เสร็จแล้วก็ส่งอีเมล์มาบอกว่า ถ้าอยากได้ key หรือ password ในการถอดรหัสไฟล์เหล่านั้น ก็ต้องยอมจ่ายเงินให้แก่ attacker ไม่เช่นนั้น เราก็ไม่สามารถที่จะเปิดไฟล์เหล่านั้นมาใช้งานได้อีกต่อไป

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:

Monday, September 3, 2007

จะเริ่มต้นยังไงกับการเข้าสู่สายอาชีพของ IT Security ?

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

ขั้นแรก เราควรจะเริ่มจากการศึกษาภาพรวมเกี่ยวกับ IT Security โดยการอ่านหนังสือที่ให้ความรู้พื้นฐานในทุกๆ ด้านของ security ยกตัวอย่างเช่น
แน่นอนครับว่าการอ่านหนังสืออย่างเดียวคงไม่สามารถทำให้เราเก่งได้อย่างแน่นอน ดังนั้น ขั้นตอนต่อไปคือ เราควรจะทำการ set up แล็บของตัวเองขึ้นมา เพื่อที่จะทดลองวิชาต่างๆ ที่ได้อ่านมา ซึ่งในแล็บของเราอย่างน้อยก็ควรที่จะมีเครื่อง Unix/Linux สักหนึ่งหรือสองเครื่อง และก็เครื่อง Windows ซึ่งเครื่องทั้งหมดต้องเชื่อมต่อด้วยกันผ่าน network โดยเราสามารถค้นคว้าหาความรู้ที่จะมาใช้ทดลองในแล็บได้จากเว็บไซด์ต่างๆ ที่เกี่ยวกับ IT Security เช่น
ส่วนตัวอย่างหนังสือที่เราสามารถใช้ได้ในแล็บ ก็จะเป็นหนังสือในซีรี่ย์ของ Hacking Exposed ซึ่งจะอธิบายขั้นตอนและวิธีการต่างๆ ในการทดสอบ IT Security และก็ลองดาวโหลด tools ต่างๆ จากเว็บไซด์ Top 100 Network Security Tools (http://sectools.org/) แล้วลองเล่นแต่ละตัวในแล็บดู เพื่อที่จะศึกษาว่าแต่ละตัวทำงานยังไงและเราควรจะใช้ tool แต่ละตัวในสถานการณ์แบบไหนและเพื่อจุดประสงค์อะไร

หลังจากที่เราได้ศึกษาเรียนรู้เกี่ยวกับ IT Security ในด้านต่างๆ แล้ว เราก็ควรที่จะคอยอัพเดทความรู้ของเราอย่างสม่ำเสมอ โดยการอ่านบทความต่างๆ ในเว็บไซด์ที่เกี่ยวข้องกับ IT Security เช่น SecurityFocus หรือ subscribe ไปยัง security mailing lists ที่เราสนใจ โดยเฉพาะ mailing list ของ Bugtraq ที่จะคอยบอกเกี่ยวกับช่องโหว่ใหม่ๆ ที่ถูกค้นพบในซอฟแวร์ต่างๆ ซึ่งจะทำให้เราสามารถหา patch มาลงเพื่อปิดช่องโหว่ได้อย่างรวดเร็ว

ขั้นตอนสุดท้ายของเส้นทางไปสู่สายอาชีพ IT Security ก็คือ ลองไปสอบ certification ต่างๆ ที่เกี่ยวข้องกับ IT Security ดู (เช่น CISSP, CISA, CISM และ CEH เป็นต้น) เพื่อที่ว่าเราจะได้สามารถเอา certification เหล่านี้มาใช้ช่วยเราในการสมัครหางานได้ง่ายขึ้น และบางทีก็อาจจะใช้ในการต่อรองเรื่องเงินเดือนได้ด้วย และถ้าเราอยากจะสร้างชื่อเสียงในวงการ IT Security แล้วละก็ ให้ลองเข้าไปสมัครเป็นสมาชิกของ security community กับเว็บไซด์ที่เราสนใจ เพื่อที่จะได้ช่วยแบ่งปันความรู้และช่วยเหลือคนอื่น และถ้าท่านไหนที่มีความสามารถด้าน programming ก็ลองเขียน security tool ขึ้นมาเองดู ยิ่งจะเป็นการทำให้เราได้เรียนรู้เกี่ยวกับ security มากยิ่งขึ้น

ผมหวังว่าบทสรุปของผมจะสามารถช่วยตอบคำถามที่มีอยู่ในใจของหลายท่านๆ เกี่ยวกับการเริ่มต้นในสายอาชีพด้าน IT Security ได้บ้างนะครับ ถ้าท่านใดมีคำถามล่ะก็ อีเมล์มาหาผมได้เลยนะครับ ที่ andrew.thana [at] gmail.com