Pages

วันอาทิตย์, ตุลาคม 2

ผ่าพิสูจน์ Twitter


หลายท่านที่เป็นนักท่องอินเทอร์เน็ตคงรู้จักเจ้านกน้อย Twitter กันเป็นอย่างดี Twitter เป็นเครือข่ายสังคมออนไลน์ที่คนทั่วโลกนิยมใช้ลักษณะการส่งข้อความสั้นๆไว้อธิบาย, ถ่ายทอดและแสดงออกถึงความรู้สึกนึกคิดของตนเองหรือไว้แจ้งข่าวสารต่างๆ หลายคนก็นำเอา Twitter ใช้ในการแจ้งเหตุด่วนเหตุร้าย หรือไว้ทำการโฆษณาขายสินค้าและบริการ ด้วยก็มี ด้วยมีเนื้อหาจำกัดในการส่งข้อความทำให้ต้อง "tweet" กันถี่ๆ และ re-tweet กันไป .. ถึงอย่างไรข้อความที่ขึ้นบน twitter ก็หาใช่ว่าจะมีความถูกต้องและน่าเชื่อถือ เพราะผู้ส่งนั้นอาจไม่ใช่คนส่งข้อความที่แท้จริงก็ได้ หรือส่งข้อความที่ไม่ใช่เรื่องจริง ซึ่งเหตุผลประการใดนั้นก็สุดแล้วแต่ผู้รับข้อมูลข่าวสารจะใช้ดุลพินิจพิจารณาต่อไป

ผมเขียนบทความนี้ขึ้นอาจจะอยู่ในช่วง Hot ๆ พอดี เนื่องด้วย Twitter ของท่านนายกฯ (twitter.com/PouYingluck) ถูก Hack หรือมีผู้เข้าถึงข้อมูล account ที่ไม่ใช่ของตนเองขึ้น จะพบว่าข้อความที่ปรากฏต่อสาธารณะทางอินเทอร์เน็ตจึงดูว่าไม่ใช่ตัวจริงที่ส่งข้อความ .. ซึ่งกรณีนี้ผู้กระทำนั้นมีฐานความผิดเกี่ยวกับ พ.ร.บ คอมพิวเตอร์ฯ อย่างแน่นอนอย่างน้อย มาตรา 5 และ 14 เป็นต้น แต่ทั้งนี้ก็อย่าได้ตื่นเต้นไปเลยเพราะไม่ใช่ครั้งแรกที่คนดังจะถูก Hack ผู้นำประเทศหรือแม้กะทั่งคนที่ทำ facebook เองก็ยังเคยโดน hack มาแล้ว

ก่อนที่จะทำอะไร เราควรรู้องค์ประกอบของระบบ Twitter เสียก่อน ผมก็ถือโอกาสนี้ชำแหละกระบวนการติดต่อสื่อสารระหว่างผู้ใช้งาน (เราๆ ท่านๆ) ไปเรียกติดต่อระบบเครื่องแม่ข่าย Twitter ที่การทำงานเป็น Cloud computing ทั้งหมด ดังนี้

1. ควรรู้ที่ตั้ง Twitter เพื่อเกิดปัญหาจะได้ติดต่อได้ถูกต้อง

ที่ตั้งของ Twitter โดยการ whois แล้วคือ (รายละเอียดที่ http://www.sran.net/search?q=twitter.com)

Domain Name.......... twitter.com
Creation Date........ 2000-01-22
Registration Date.... 2011-08-31
Expiry Date.......... 2019-01-22

Organisation Name.... Twitter, Inc.
Organisation Address. 795 Folsom Street
Organisation Address. Suite 600
Organisation Address. San Francisco
Organisation Address. 94107
Organisation Address. UNITED STATES
Admin Address........ 795 Folsom Street
Admin Address........ Suite 600 San Francisco 94107 UNITED STATES
Admin Email.......... admin@melbourneitdbs.com
Tech Email........... domains-tech@twitter.com
Admin Phone.......... +415.2229670
Admin Fax............ +415.2220922

-- หากกระทรวงฯ / หน่วยงานที่ได้รับหน้าที่ ต้องการติดต่อขอข้อมูลควรทำการติดต่อไปที่ e-mail/เบอร์โทร/fax ของผู้ดูแลระบบจากข้อมูลที่กล่าวมานี้ จะเป็นช่องทางที่สามารถติดต่อกับทางบริษัท Twitter ได้

2. ระบบเครือข่าย Twitter มีหน้าตาอย่างไร
Twitter มีโครงข่ายของตนเองโดยมี Autonomous System Number (ASN) ประกอบด้วย
2.1 AS13414 ซึ่งเป็นของ Twitter Inc.
2.2 AS35995 ซึ่งเป็นของ Level 3 Communications, Inc.
2.3 AS33517 DYNDNS Dynamic Network Services, Inc. ASN
2.4 AS15169 Google , Inc

ทั้งหมดมีชุด IPv4 และ IPv6 จำนวนไม่น้อย ในที่นี้ขอยกตัวอย่างเฉพาะ IPv4 คืออยู่ที่ 2 ชุด ซึ่งถือได้ว่าเป็นคลังแสงของระบบ twitter ทั้งหมดอยู่ที่นี้ ได้แก่ 199.59.148.0/22 และ 199.16.156.0/22 ถ้ารวมแบบเบื้องต้นแล้วจะพบว่ามี IPs allocated จำนวน 2,048 IPs ที่เชื่อมโยงกันเป็นระบบเครือข่ายของ Twitter ซึ่งจำนวน IPs เหล่านี้ทำหน้าที่เป็น Cluster ทั้งระดับ Server Base (เครื่องแม่ข่าย),ระดับ Application (ซอฟต์แวร์) ต่อเชื่อมกันเป็น Cloud Computing ขึ้น
ดังนั้นการแกะรอย IP Address ต้องเข้าใจว่าปลายทางที่เกิดเหตุอาจจะกระจายอยู่ในกลุ่มก้อนเมฆ( Cloud Computing) ใดที่หนึ่งก็ได้ (เครื่องใดเครื่องหนึ่งอาจจะไม่ใช่เครื่องที่เรา Ping เจอหรือ Trace route เจอเป็นต้น)
ยิ่งไปกว่านั้น เนื่องด้วย Twitter , Facebook , Youtube ล้วนเป็น Social Network ที่คนไทยนิยมใช้
ในระดับผู้ให้บริการอินเทอร์เน็ตในประเทศไทย (ISP : Internet Services Provider) อาจมีการทำ Peering
เพื่อเชื่อมโยงข้อมูลก็เป็นไปได้ เพื่อเป็นการเอาใจลูกค้าหรือรักษาลูกค้าให้มาใช้บริการของตน เนื่องจากการทำ Peering หรือ Caching นั้นทำให้การรับส่งข้อมูลได้รวดเร็วขึ้น หากเป็นเช่นนี้ก็จะทำให้การตรวจสอบข้อมูลต้องเพิ่มขั้นตอนไปที่ตรวจสอบที่ผู้ให้บริการ Peering หรือ Caching เหล่านั้นด้วย ที่นิยมในประเทศไทย ก็มีบริการของ Akamai Network และ Global Crossing เป็นต้น ซึ่งส่วนใหญ่แล้วเป็นการทำ Caching ในระดับ Web Application เท่าที่เห็นว่าส่วนใหญ่ข้อมูลทำติดต่อสื่อสารกันระหว่างประเทศไทย สิงคโปร์ และ มาเลเซีย เพื่อติดต่อไปยังเครือข่ายตัวจริงของระบบ Social network ที่นิยมใช้กัน



ภาพ 1 : เป็นการ whois ASN ที่เชื่อมโยงกับ twitter จาก Hurricane Electric whois


ภาพที่ 2 : เมื่อพิจารณาการเชื่อมข้อมูลของโดเมน twitter.com จาก Robtex whois
จะเห็นว่าความสัมพันธ์ในการติดต่อสื่อสาร twitter มีการเชื่อมโยงกับหลายส่วน โดยศูนย์กลางอยู่ที่ช่วง IPs จาก AS13414

อ่านเพิ่มเติมจาก : บทความเก่าที่เคยเขียน เรื่อง ปัจจัยทั้ง 4 ในการสืบสวนหาผู้กระทำความผิดเกี่ยวกับคอมพิวเตอร์

ดังนั้นในกรณีที่ต้องการตรวจสอบหา IP Address ของไทยไปยัง Twitter (โดยไม่ใช้วิธีขอ Log จาก Twitter ตรงๆ) ก็ทำได้โดยการขอความร่วมมือกับ ISP ในประเทศไทย เพื่อดู Flow ในการติดต่อสื่อสารไปยัง ASN ที่
กล่าวมาได้ซึ่ง Network Flow ที่กล่าวมาควรมีการเห็นดั้งนี้คือ

- Time ที่ตรงตามเวลามาตราฐาน เช่น หน่วยวัดเวลาของมาตรวิทยา
- Source IP ซึ่งเป็น Public IP ภายในประเทศไทย
- Destination IP ซึ่งเป็น IP allocate จาก AS13414
- และ Port Application (HTTP , HTTPS และ DNS) ในที่นี้ดูเฉพาะ Port ปลายทางก็พอคือ 80 และ 443 ที่เป็นการติดต่อแบบ TCP เบื้องต้นประมาณนี้ก่อน

ซึ่งในปัจจุบันมี ISP ไม่กี่ที่ที่สามารถตรวจสอบการเชื่อมต่อดังกล่าวมาได้ และคงไม่มีใครมา capture traffic ข้อมูลที่เกิดขึ้นจากการใช้งานอินเทอร์เน็ตในประเทศไทยอยู่ตลอดเวลาเป็นแน่

* อยากทราบข้อมูลเพิ่มในส่วนนี้ลองอ่านบทความเก่าๆ ของผมดูสิ เรื่อง ข้อเท็จจริงในการดักข้อมูล และ รู้ทัน Sniffer


3. ข้อสังเกตสำหรับการตรวจสอบข้อมูล จากการเรียกข้อมูล Twitter ผ่าน Web Application

Twitter ถือได้ว่าเป็น Web 2.0 การเปิดเว็บไซต์เพียงเว็บเดียว โดเมนเดียว แต่เบื้องหลังของการเชื่อมนั้นติดต่อไปหลากหลายที่ ซึ่งจะทำการพิสูจน์ให้เห็นโดยใช้ account twitter ของผู้เขียนเองมานำเสนอให้เห็นถึงขั้นตอนการติดต่อสื่อสารภายในระบบ twitter

3.1 เมื่อทำการเข้าเว็บ http://twitter.com และทำการ Login เพื่อเข้าสู่ระบบหากใส่ username และ password ถูกต้อง
เบื้องหลังที่เรามองไม่เห็นผ่านหน้าจอ พบว่ามีการติดต่อไปยังหลากหลาย Source



ภาพ 3 : การ login โดยใช้ account ของผู้เขียนและเปิดโปรแกรมชนิด Revert Proxy เพื่อทำการวิเคราะห์ลักษณะการติดต่อสื่อสารระหว่างผู้ใช้งานและฝั่งเครือข่ายให้บริการ twitter
จะเห็นการติดต่อสื่อสารระหว่างเครื่องผู้ใช้งาน (ตัวเรา) กับระบบ Twitter เพียงเสี้ยววินาที จะเห็นว่าเครื่องคอมพิวเตอร์ของเราติดต่อไปยังหลายโดเมน และมีลักษณะเช่นนี้ตลอดเวลาที่เปิดหน้าเว็บ twitter ขึ้น

3.2 สังเกตค่า session ID

สิ่งที่น่าสังเกตคือ session ที่เกิดขึ้นเบื้องหลังที่ติดต่อไปที่หน้า http://twitter.com/sessions?phx=1
นั้นจะมีลักษณะ Method เป็น POST หากใช้โปรแกรมพวก Sniffer ดักข้อมูลในส่วนนี้ (ภายในเครื่องตัวเอง)
จะพบว่าสามารถมองเห็น Username หรือ e-mail และ password ที่ใช้ในการ login ได้


ภาพ 4 : ค่า session ID ที่พบซึ่งไม่มีการเข้ารหัสในส่วนนี้

จากภาพ session[username_or_email] และ session[password] จะเป็นค่า plain text ที่สามารถดักข้อมูลได้ ซึ่งการทำ session hijack ก็จะสามารถปลอมเป็น account ที่ใช้งานเป็นคนอื่นได้ อาจไม่ต้องทราบถึง password ก็เข้าใช้ account ผู้อื่นได้ (วิธีขโมย session ต้องทำในเครือข่ายเดียวกัน หรือ วง Network ภายในเดียวกัน)

3.3 สังเกตค่า cookie
ค่า cookie หากไม่มีทำการล้างข้อมูลหรือลบค่า cookie ในเครื่องจะทำให้มีรอยประวัติทิ้งไว้อยู่ว่าในวันเวลาดังกล่าวได้เข้ามาใช้งาน (login) twitter จริง


ภาพ 5 : การแสดงค่า cookie จากการใช้งาน twitter ทั้งฝั่งผู้ใช้งานและผู้ให้บริการในระดับ application layer ของทาง twitter

จะเห็นได้ว่า ค่า cookie sent และค่า cookie received โดยเฉพาะค่า Cookie Received จะได้ auth_token ซึ่งส่วนนี้ twitter ใช้เทคโนโลยีที่ชื่อว่า Oauth มาช่วยกำหนดเรื่องสิทธิต่างๆ ค่า auth_token แต่ละคนจะไม่เหมือนกันเช่นเดียวกับค่า twid ก็ไม่ซ้ำกันเป็นต้น ในค่า cookie จะมีการบันทึกไว้ทั้งฝั่งผู้ใช้งานและ ฝั่งผู้ให้บริการ Application twitter ดังนั้นพบผู้ต้องสงสัยแล้วหลักฐานในส่วนนี้ก็จะยืนยันได้ว่าเป็นผู้กระทำการจริงเป็นต้น

cookie ก็สามารถขโมยได้เหมือนกับการ ขโมย session ID โดยเฉพาะ หากมีการดัก cookie แล้วได้ค่าหมายเลข cookie เป้าหมายเมื่อไหร่ก็สามารถนำค่า cookie เป้าหมายมาทำการใส่ค่า long string ที่ “Set-Cookie: _twitter_sess=xxxxxxxxxxx” มาแทนค่า cookie ของเราเอง ก็สามารถขโมย user ของ twitter ได้เช่นกันด้วยเทคนิคนี้เมื่อขโมย cookie มาได้แล้วทำการ refresh หน้าเพจก็สามารถกลายเป็นบุคคลอื่น / account อื่นโดยไม่จำเป็นต้องรู้ username และ password ,ถ้าผู้ใช้งานผ่าน SSL ก็จะทำการดักข้อมูลทำได้ลำบากขึ้นได้ (ต้องอยู่ในเครือข่าย LAN เดียวกันแล้วทำเทคนิค MITM : Man In The Middle) โดยมากจะผ่าน SSL เมื่อใช้คอมพิวเตอร์ / บราวเซอร์ ที่แสดง User-agent เป็น PC ทั่วไป แต่หากใช้ Mobile Application เพิ่มความสะดวกในการใช้ twitter บาง application ติดต่อโดยไม่มีการเข้ารหัสซึ่งเป็นผลให้การดักข้อมูลทำได้ง่ายขึ้นเช่นกัน

3.4 สังเกตค่า Timeline เพื่อหาเวลาที่แน่นอน ซึ่งส่วนนี้เราแทบจะไม่สามารถดูผ่านหน้าเว็บ twitter ได้เลยว่าเวลาที่โพสเวลาอะไรกันแน่ จะเห็นเวลาคร่าวๆเช่นผ่านมาแล้ว 5 ชั่วโมงเป็นต้น หากดูที่ user timeline จะพบเวลาที่เป็นนาทีได้

ภาพที่ 6 : เมื่อนำค่า pcap (Packet Capture :อ่านเพิ่มเติม) จากการใช้งาน twitter มาเปิดในโปรแกรม Wireshark จะพบค่า URI สำหรับบอก Timeline และค่า Key Oauth ที่ระบุถึงการใช้สิทธิ (Authorization) ในโปรแกรม twitter ซึ่งจากค่าดังกล่าวก็จะสามารถหาเวลาที่ทำการ Post ข้อความได้แม่นยำขึ้น แต่หากไม่มีเครื่องสามารถดูผ่านค่า Feed RSS ของ User Timeline ของผู้นั้นได้เช่นกัน

ในกรณีนี้จะพบว่าการส่งข้อความที่ไม่ใช่ตัวจริงส่งนั้นเกิดขึ้นเมื่อเวลา 10:22 AM ของวันที่ 2 ตุลาคม 2554

ภาพที่ 7 : แสดงค่า Timeline จาก RSS Feed ที่พบจะเห็นวันเวลาที่ละเอียดขึ้นจะพบว่าช่วงเวลาที่โพสนั้นห่างกันเพียงแค่ นาทีต่อนาที โดยรวมไม่เกิน 10 นาทีต่อหนึ่งข้อความ ต่อเนื่องกันตั้งแต่ 10.22 AM -10:43 AM จำนวน 8 ข้อความ

4. ช่องโหว่ที่เกิดขึ้นโดยเข้าถึงสิทธิการใช้งานผู้อื่น
4.1 การทำ Forgot password
หากเปิดเผยข้อมูลส่วนตัวมากเกินไป อาจนำไปใช้ในขั้นตอน Forgot password ได้
หรือเดารหัสผ่านจากข้อมูลส่วนตัวอื่นๆเช่น บ้านเลขที่ เบอร์โทรศัพท์ ทะเบียนรถ ชื่อบุคคลที่เรารัก เป็นต้น

4.2. การติด malware
การติดตั้งโปรแกรมโดยมิได้ติดตั้งจากแหล่งที่น่าเชื่อถือได้ อาจติด malware ที่มีความสามารถในการขโมยข้อมูลส่วนตัวได้ ไม่ว่าจะใช้มือถือ คอมพิวเตอร์พกพา หรืออื่นๆ malware จะเป็น Spy เช่น เป็น Keylogger จับข้อมูลผ่านแป้นคียบอร์ด คอยส่งข้อมูลให้กับ Hacker ก็อาจเกิดขึ้นได้

4.3 อื่นๆ ที่กล่าวมาทั้งหมดนี้ล้วนเป็นทางเทคนิค หากการเข้าถึงข้อมูลผู้อื่นนั้นอาจไม่ได้มาจากทางเทคนิคอย่างเดียว เป็นเพียงเส้นผมบังภูเขาก็ได้ เช่น กรณีที่ Password ง่ายต่อการเดา , การถือ Account มีหลายคน , การเก็บบันทึก Account เพื่อการเข้าถึงข้อมูลเปิดเผยมากเกินไป เช่นเก็บบันทึกในสมุดโน็ต , ที่เครื่องมือถือ และโน็ตบุ๊ต เป็นต้น ก็สุดแล้วแต่ความประมาทของคนที่มีโอกาสเกิดขึ้นได้ทั้งสิ้น

ในอนาคตเราอาจจะพบว่าการใช้อินเทอร์เน็ตอย่างไม่เหมาะสมจนทำให้เกิดความเสียหาย และเกิดฐานความผิดเกี่ยวกับคอมพิวเตอร์จะมีมากขึ้น เป็นไปตามจำนวนผู้ใช้งานอินเทอร์เน็ตที่สูงขึ้นอยู่ทุกปี คงถึงเวลาแล้วที่ภาครัฐควรเอาใจใส่ในเรื่องการตรวจหาผู้กระทำความผิดทางคอมพิวเตอร์อย่างจริงจัง โดยอาจจะต้องมาศึกษาเรื่อง Lawful Interception ซึ่งในประเทศที่พัฒนาแล้วก็มีการทำเรื่องตรวจสอบข้อมูลการใช้งานอินเทอร์เน็ตทั้งสิ้น ประเทศเราเคยทำมาก่อนหน้านี้คือศูนย์ ISOC แต่กับเห็นว่าไม่ได้มีการทำการต่อแล้ว หากเห็นเรื่องนี้เป็นเรื่องสำคัญและมีโอกาสกระทบต่อความมั่นคงของชาติ ศาสนา และพระมหากษัตริย์ และประชาชนผู้ใช้งานโดยตรงด้วยแล้วนั้น ควรกลับมาดูแลเรื่องการตรวจสอบข้อมูลอย่างจริงจัง และควรใช้อำนาจเจ้าหน้าที่พนักงานที่ถูกแต่งตั้งให้สามารถตรวจสอบข้อมูลได้ตามกฏหมาย พ.ร.บ ว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์ ให้เป็นประโยชน์ ส่วนสังคมจะมองว่าเป็นการละเมิดสิทธิ ก็ต้องสร้างความเข้าใจว่าเป็นการตรวจสอบ IP Address ที่ต้องสงสัย หาใช่ว่าเพียงทราบ IP Address จะรู้ว่าใครเป็นใคร (Who) ทำอะไร (What) เวลาใด (When) อย่างไรก็ต้องผ่านขั้นตอนขอหมายศาล และขั้นตอนการขอรายชื่อ account ผู้ใช้งานในระบบ billing ของฝั่งผู้ให้บริการอินเทอร์เน็ต หรือ ISP อยู่ดี ซึ่งมีขั้นตอนอีกไม่น้อย ดังนั้นหากใช้ข้อมูลอินเทอร์เน็ตอย่างสร้างสรรค์และถูกต้องไม่ต้องกลัวว่าจะโดนตรวจสอบ การตรวจสอบไว้ป้องปรามอาชญากรรมทางคอมพิวเตอร์ที่มีมากขึ้นๆ จนเป็นปัญหาสังคม และมีผลกระทบต่อความมั่นคงของประเทศชาติได้เช่นกันหากไม่มีมาตรการอันใดที่จะมาตรวจสอบข้อมูลทางอินเทอร์เน็ตในอนาคต