บทความนี้จริงๆก็ไม่ใช่เรื่องใหม่อะไร ผมเคยเขียนในเรื่องที่คล้ายกันนี้ไว้แล้วเมื่อสองปีก่อนแต่จนมาถึงวันนี้มันกลับมาเป็นที่กล่าวขานอีกครั้งหลังมีเจ้า Firesheep ออกมาซึ่งมันก็ใช้หลักการเดิมๆคือ SideJacking สำหรับบทความนี้เราจะมาเริ่มกันตั้งแต่การกำเนิดของที่มาที่ไปและเมื่ออยู๋วง Lan เดียวกันกับ Hacker จะโดนโจมตีแบบไหนได้บ้าง
กาลครั้งหนึ่งนานมาแล้วสมัยเริ่มมี Internet และเว็บไซต์ก็ได้มีมาตรฐานในการส่งข้อมูลแบบหนึ่งขึ้นมานั้นคือ HTTP(Hypertext Transfer Protocol) ซึ่งเป็น Protocol ที่ใช้ในการรับส่งข้อมูลระหว่าง Client กับ Server ซึ่งก็แน่นอนในตอนนั้นไม่ได้คิดว่าจะส่งอะไรที่เป็นความลับมากมาย(เพราะมันไม่ได้ถูกออกแบบมาอย่างนั้น)
SideJacking |
จากรูปข้างบนคือตัวอย่างการ Request และ Response ระหว่างผู้ใช้กับ Server ซึ่งจะเห็นว่าข้อมูลทั้งส่งไปและรับมาจะอยู่ในรูป Plain text ซึ่งจุดอ่อนคือสามารถถูกดักจับระหว่างทางในการรับและส่งและสามารถนำไปใช้ได้เลย ซึ่งในที่นี้เราจะเห็นว่ามีการรับส่งค่าที่เกี่ยวกับ Cookie ด้วย!
เราจะมาว่าในส่วนของเทคนิคที่เจ้า Firesheep ใช้โจมตี สำหรับใครที่ยังไม่รู้ว่าเจ้า Firesheep คืออะไร เจ้า Firesheep คือ Hack tools ตัวหนึ่งซึ่งเป็น add-on ของ Web browser ที่ชื่อว่า Firefox โดยความสามารถของมันคือขโมย Sessions ของผู้ใช้(Sidejacking) แปลเป็นภาษาชาวบ้านคือสามารถเข้าใช้ User ของเหยื่อได้โดยไม่จำเป็นที่จะต้องรู้ Password ของเหยื่อ !
เทคนิค Sidejacking นั้นจะแบ่งออกเป็นสองขั้นตอน
ขั้นที่ 1 Arpspoof โดยเทคนิคนี้จะทำการส่ง Arp packets ไปหลอกเครื่องเหยื่อว่าเราเป็น Gateway เพื่อที่จะทำให้ข้อมูลของเหยื่อไหลผ่านเครื่องของ Hacker (โดยเทคนิคนี้ก็เป็นเทคนิคที่เจ้า Netcut ใช้โดยมันจะส่ง Arp packets ไปหลอกให้เครื่องเหยื่อหา Gateway ที่แท้จริงไม่เจอทำให้เหยื่อไม่สามารถใช้ Internet ได้)
ขั้นที่ 2 หลังจากที่ข้อมูลไหลผ่านเครื่องของ Hacker แล้วจะใช้เทคนิคในการดักจับ(Sniffing)และกรองเอาเฉพาะในส่วนของ Sessions ของเหยื่อด้วยการ Regular Expression จาก packets ที่ไหลผ่าน
ขั้นที่ 3 ใช้ Sessions ของเหยื่อในการทำสิ่งใดๆเท่าที่ Sessions นั้นมีสิทธิจนกว่าจะมีกว่า Logout หรือ Sessions time out
แต่สำหรับเจ้า Firesheep นั้นจะมีขั้นตอนที่แตกต่างไปบ้างคือจะไม่ทำ Arpspoof แต่ใช้วิธี Sniffing แบบเก่าแทนซึ่งจะใช้ได้ผลกับการเชื่อมต่อแบบ Wireless และ Hub เท่านั้นสำหรับ Switch นั้นจะต้องใช้เทคนิค Arpspoof ร่วมด้วย
ที่มาของรูป:http://arsyan.com/blog/wp-content/uploads/2010/10/Firesheep-Post-Shit-Message-On-Wall.png
ที่จริงแล้วมันได้มีตัวช่วยที่ทำให้การส่งข้อมูลระหว่างผู้ใช้กับ Server ปลอดภัยขึ้นนั้นคือ Secure Sockets Layer (SSL) ซึ่งมันมีความแตกต่างอยู่เล็กน้อยระหว่าง SSL 3.0 และ TLS 1.0 ถ้าไม่ระบุตัวใดตัวหนึ่งเป็นพิเศษตัวย่อ SSL จะหมายถึงเจ้าสองตัวนี้ทั้งคู่ ซึ่งการทำงานของมันเอาแบบย่อๆเลยคือมันจะทำสามสิ่งนี้
1.ตรวจสอบ Server ว่าเป็น Server จริงหรือไม่
2.ตรวจสอบ Client ว่าเป็น Client จริงหรือไม่
3.เข้ารหัสข้อมูลที่ส่งไปและรับมา
ที่มาของรูป: http://4.bp.blogspot.com/_MiAJXkPG1IM/TNH8lUBdJJI/AAAAAAAABpA/jbnVpn6rhDQ/s1600/firesheep-man-in-the-middle.jpg
รูปข้างบนคือตวามแตกต่างระหว่าง HTTPS(HTTP + SSL) กับ HTTP ซึ่ง HTTPS ก็เหมือนจะเป็นทางออกที่ดีแต่มันยังไม่ใช่คำตอบสุดท้ายเพราะมันมีการโจมตีด้วยเทคนิค SSL Strip ซึ่งเทคนิคก็คล้ายๆ Sidejacking แต่เพิ่มในส่วน Bypass SSL เข้าไปโดยเทคนิคก็คือมีการหลอก Cert(Cert คือสิ่งที่ใช้ระบุตัวตนแบบหนึ่งในกรณีนี้ใช้ระบุตัว Server) เพื่อให้เหยื่อเข้าใจว่าเครื่อง Hacker เป็น Server ที่กำลังติดต่อจริงๆและหลังจากนั้นก็ … กลายเป็นโกโก้คั้น ฮ่าๆ แต่มันมีจุดสังเกตุอยู่บ้างสำหรับผู้ใช้ตาดำๆอย่างเรา ตามรูป
กรณี Firefox
กรณี Chrome
ถ้าปกติเราเข้าเว็บแห่งหนึ่งทุกวันแล้วมันไม่เคยมีอะไรแบบข้างบนเลย แต่วันหนึ่ง(Some day)เปิดเว็บเดิมแต่ดันมีลักษณะแบบข้างบนนี้ขึ้นมาละก็ชัดเจนตอนนี้เรากำลังโดนของ(ยกเว้น Cert ของ Server จะหมดอายุนะ เช่น เคยมีของ Microsoft(live.com) Cert หมดอายุ(มันปล่อยให้หมดได้ไงฟ่ะ) ==”)
แต่ถ้าเว็บไหนที่เราเข้าแล้วมีแบบนี้ทุกวัน(เช่น ม. ผม==”)ก็ทำใจซะครับ เอามาชี้วัดในกรณีนี้ไม่ได้
สรุปวิธีป้องกัน
1.ใช้ HTTPS(HTTP + SSL) ซะ Facebook, Twitter และอื่นๆสามารถใช้ได้โดยการตั้งค่า เช่น ใน Facebook ให้เข้าไปที่เมนูบัชชีผู้ใช้(อยู่ขวาบน) >ตั้งค่าบัชชีผู้ใช้ >ความปลอดภัยของบัญชีผู้ใช้ ให้เลือกใช้การเชื่อมต่อแบบปลอดภัย (https) และสังเกตุที่ Address Bar ว่าเป็น HTTPS หรือยัง เช่น https://www.facebook.com/
2.Logout ซะหน่อยเมื่อเล่นเสร็จ !
3.ดูความผิดปกติของ Cert ตามรูปข้างบน
4.ไม่ควรไปอยู่ในวง Lan สาธารณะ หรือ Connect WIFI ที่ไม่น่าเชื่อถือเพราะมันมีการเปิด WIFI ปลอมไว้ดักจับข้อมูลด้วยคือ Hacker มันเปิดไว้ปล่อยให้เหยื่อเล่น Net ฟรีอย่างสบายใจแต่หลังจากนั้นก็ … กลายเป็น โกโก้คั้น ฮ่าาาา
5.ไม่ควรไปอย่ในวง Lan ที่ไม่น่าเชื่อถือ(ย้ำอีกรอบ)เพราะมันยังมีอีกหลายเทคนิคเช่น Remote buffer overflow ที่ผมได้เขียนไว้แล้วแต่มันเอามาโจมตี Client ด้วย เช่น Metasploit < script Kiddies ก็ใช้เป็นนะเธอว์
6.อย่าลืมว่าเราไม่ไปอยู่วง Lan เดียวกับ Hacker แต่เขาอาจจะสามารถมาแอบเข้ามาอยู่วง Lan เดียวกับเราโดยที่เราไม่รู้ก็ได้นะเธอว์ ! WEP!
#Reference วิธีการทำงานของ Firesheep โดย @ptantiku