เราสามารถใช้ SRAN วิเคราะห์การติดต่อสื่อสารผ่านโปรแกรม PokemonGo ได้อย่างไร เรามีคำอธิบายมาให้คุณ
โลกเราวันนี้ มีอย่างหนึ่งที่เหมือนกันคือ การทำอะไรตามๆกัน จนเป็นกระแสสังคม หรือโปเกมอนฟีเวอร์ ให้ทายไม่เกินเดือนก็เริ่มหมดอายุความฟีเวอร์ ต้องเดินตามรุุ่นพี่ที่เคยเกิดก่อน เช่น ตุ๊กตาลูกเทพ เฟอร์บี้ และอื่นๆ ที่ผ่านมา เมื่อเห็นคนทำก็อยากทำตามบ้างครับ แต่ทำครั้งนี้ สำหรับผมแล้ว จะลองมาแกะให้เห็นเบื้องหลังการติดต่อสื่อสาร จากเล่นเกมส์ PokemonGo จากมือถือผู้ใช้งาน ไปจนถึงการส่งข้อมูลผ่านระบบเครือข่ายอินเทอร์เน็ต จนเราจะค้นพบตัวการ์ตูนตัวนี้กัน ว่ามันแตกต่างกับที่ตาเรามองเห็นในโลกความเป็นจริงอย่างไร
การสื่อสารผ่าน Pokemon Go
ขั้นตอนเราจำลองระบบเครือข่ายขึ้นมา 1 วง โดยใช้ Switch และอุปกรณ์ AP (Access Point) เพื่อกระจายสัญญาณ Wi-Fi ให้กับอุปกรณ์ โดยตั้งวงเป็นชุดไอพีเดียวกันหมดขึ้น LAN 192.168.150.x Wifi 192.168.1.x ใช้ช่องทางออกอินเทอร์เน็ตผ่าน 3BB
และเรามีอุปกรณ์จัดเก็บบันทึกข้อมูลจราจรคอมพิวเตอร์ โดยใช้ Network Log ที่ได้รับจากการสำเนาข้อมูลจากอุปกรณ์มาวิเคราะห์ ในที่นี้เราใช้ SRAN รุ่น LT50 Hybrid
เกมส์ โปเกมอน โก พัฒนาโดยบริษัท Niantic ทำบนระบบปฏิบัติการ iOS และ Android โดยเกมส์จะเน้นไปทางการใช้การค้นหาพิกัดทางภูมิศาสตร์เพื่อค้นหาตัวการ์ตูนโปเกมอนทำให้ผู้เล่นเพลิดเพลินในการค้นหาจากโลกเสมือนไปยังโลกแห่งความจริงที่บางครั้งอาจพบข่าวว่าเดินจนตกน้ำ หรือ เกิดอุบัติเหตุจาการเล่นเกมส์ผ่านสมาร์ทโฟน (สังคมก้มหน้าอย่างแท้จริง)
เมื่อเริ่มต้นทำการดาวโหลดโปรแกรมโปเกมอน จะเห็นว่ามีการทำ SSO (Single Sign On) ผ่าน E-mail ของ Gmail หากใครมี Gmail ก็สามารถใช้งานโปรแกรมนี้ได้โดยไม่ต้องสมัครทางอื่น (ลองอ่านบทความเก่า หนึ่งในนั้น คนไม่มีตัวตนไม่มีสิทธิ )
เมื่อทำการสมัครเล่นเกมส์มีการติดต่อไปที่ seattleclouds.com การเชื่อมต่อในจุดนี้มีความเสี่ยงหากพื้นที่นั้นมีคนทำ MITM หรือ ดักรับข้อมูลอยู่ เนื่องจากข้อมูลที่ส่งไปเป็น Paint text เช่น เห็น data leak จากข้อมูลพื้นฐานเครื่องของคนอื่นได้ เมื่ออยู่ LAN วงเดียวกัน หรืออยู่บนระบบเครือข่ายเดียวกันและมีอุปกรณ์ดังกล่าวอยู่ด้วย ก็มีโอกาสรั่วจากจุดนี้ได้
ผ่าน xml เป็นข้อมูลรั่วออกมา
ส่วนการเชื่อมต่อไปยัง โดเมนอย่างน้อยดังนี้
ภาพการเรียกข้อมูลผ่านค่า DNS ของเกมส์ Pokemon เมื่อทำการเริ่มใช้งานตอนแรก จะบอกโดเมนที่ติดต่อและค่าไอพีของ Server DNS เหล่านี้ ซึ่งตรงนี้เป็นฝั่ง Web Services หลังบ้าน โปเกมอน โก
ทำการสำรวจระบบเครือข่ายเพื่อตรวจดูอุปกรณ์ทั้งหมดที่มี
และเครื่องที่จะใช้ทดสอบเกมส์ Pokemon Go คือ Private IP : 192.168.1.143 เราใช้ชื่อว่า “มือถือของนก” เป็นมือถือยี่ห้อซัมซุง ระบบปฏิบัติการ Android (ขอล็อคเป้าที่เครื่องนี้)
และทำการเพิ่มข้อมูลในระบบ Inventory ที่มีในเครื่อง SRAN จากนั้นเราก็มาดู Log file ที่เกิดขึ้นทาง ระบบเครือข่ายคอมพิวเตอร์ (Network Log) โดยเข้าหน้าค้นหา Deep Search ว่า “Pokemon” สิ่งที่ได้คือ User agent ของอปุกรณ์ จะขึ้นมาทันทีว่า ใช้โปรแกรม Pokemon go อยู่ โดย User agent จะแสดงค่าดังนี้ pokemongo/0 CFNetwork/758.5.3 Darwin/15.6.0
ภาพการติดต่อสื่อสาร จากไอพีต้นทาง ไปยังไอพีปลายทางระบบแม่ข่ายที่ให้บริการเกมส์ โปเกมอน โก รวมถึงรายละเอียดการติดต่อสื่อสาร ผ่าน Protocol HTTP (ตรวจในส่วนที่ไม่มีการเข้ารหัสข้อมูล)
เมื่อทำลงรายละเอียดของข้อมูลชุดไอพีในการติดต่อสื่อสาร
Host Name : lh3.ggpht.com , lh4.ggpht.com , lh6.ggpht.com
ส่วนค่าไอพีได้รับ มีค่าเดียวคือ IP 216.58.196.33 (Cloud Service จาก Google)
- PING photos-ugc.l.googleusercontent.com (216.58.221.33) 56(84) bytes of data.
- 64 bytes from hkg08s13-in-f33.1e100.net (216.58.221.33): icmp_seq=1 ttl=54 time=25.4 ms
- 64 bytes from hkg08s13-in-f33.1e100.net (216.58.221.33): icmp_seq=2 ttl=54 time=25.5 ms
- 64 bytes from hkg08s13-in-f33.1e100.net (216.58.221.33): icmp_seq=3 ttl=54 time=25.4 ms
เดาได้ว่าเป็น IP (216.58.221.x) ช่วงดังกล่าวน่าจะเป็น Load Balancer แต่นี้ทำบนผู้ให้บริการ 3BB ซึ่งในแต่ละผู้ให้บริการอาจจะมีความแตกต่างกันไปก็ได้
AS15169 ของ Google Inc ใช้เครื่องมือ Shodan ตรวจให้
เปิด 80 , 443 Server จาก Google ส่วนใหญ่จะมีการ Harden เปลืองแรงเปล่าหากจะค้นหาต่อ ลองมาส่อง DNS Log สำหรับ โปเกมอน โก บ้างหน้าตาเป็นไง
แล้ว SSL Log ล่ะ
ทั้ง DNS และ SSL จะพบ IP 216.58.196.33 เป็นเรื่องอื่นที่ไม่ใช่ โปเกมอน โก จึงแสดงให้เห็นว่าไอพี นี้ไม่ได้ใช้เฉพาะเกมส์ Pokemon เท่านั้น DNS Log ที่เกี่ยวกับ Pokemon หน้าตาเป็นอย่างงี้
ปรากฎว่า Pokemon ซ่อนตัวที่ HTTP Log ชอบเลยครับ URI ที่พบบน HTTP Log พบว่าจุดแสดงภาพ ไม่มีการเข้ารหัสของรูปภาพ
ยกตัวอย่าง
http://lh3.ggpht.com/owWi6EWWDy1iPCHW1xfbSMwoZF5ZRqK2o-KClJS_Opy24OdDNfMx5UUV_TSLetDF4mIhrpEEE54EOydW5CQRGQ
ภาพที่มาจาก URL ที่บอกนี้จะพบตัว Pokemon ซ่อนอยู่ ส่วนมากจะอยู่ใกล้ๆศาล… อันนี้คงเกิดจากการเขียนโปรแกรมแบบสุ่ม (Random)
เมื่อทำการทดสอบการใช้งานของข้อมูล (Bandwidth) ทำการค้นหา เวลาที่ใช้เปิดเกมส์ Pokemon Go
ทำการค้นหา Deep Search โดยทำการเลือก ค้นหาเวลา 09:01 ของวันที่ 8 สิงหาคม 2559 ผลลัพธ์
เมื่อได้ผลลัพธ์ทำการคัดกรองเฉพาะค่าไอพี 192.168.1.143 สิ่งที่ได้คือค่าการติดต่อสื่อสาร ของโปรแกรม Pokemon Go ค่า Duration คือการระยะเวลาทั้งหมดของการสื่อสาร จะพบว่าติดต่อไปที่เครื่อง 220 วินาที นานที่สุดของการใช้งานบนเครื่องนี้ในช่วงเวลาที่ติดต่อไปที่ IP 216.58.196.33 การรับค่าคือ 70,145 Byte และอีกครั้งที่ 43,429 Byte ซึ่งเป็นประมาณไม่มากแต่มีการใช้งานต่อเนื่อง
ตลอดระยะเวลาที่เครื่องมือถือของนกใช้งานโปรแกรม Pogemon Go คือ 9:00 – 10:00 ใช้ Bandwidth ทั้งหมด วิเคราะห์การสื่อสารผ่าน Pokemon Go โดย SRAN 14.43 MB ตลอดช่วงเวลา 1 ชั่วโมง ใช้จำนวน Session ที่เชื่อมต่อทั้งหมด
513 ครั้ง ตลอดช่วงเวลา 1 ชั่วโมง
การป้องกัน
สำหรับองค์กรที่ต้องการ Block ไม่ให้พนักงานเล่น อย่าเข้าใจผิดว่าเอา IP ที่ผมให้ไปนั้นใส่ Firewall นะ เพราะมันมีหลาย App วิ่งบน IP 216.58.196.33 หรือห้าม block domain ที่ชื่อ lhตัวเลข.ggpht.com จะทำให้ใช้งานไม่ได้บาง App บนมือถือ ส่งผลการทำงานที่ไม่ปกติ การ Block ต้องใช้พวก Next Gen Firewall หรือ NIPS แบบ inline ขวางลำที่ระบบเครือข่าย โดยใช้การ block พวก User_agent ที่บ่งบอกว่าเป็น Pokemon เอาครับ
สรุป
Pokemon Go เกมส์ยอดฮิต สำหรับความเสี่ยงที่ผมพบ คือ ความเป็นส่วนตัวเรื่อง Location base จะถูกส่งไปชุดไอพีของ Google Cloud โดยมีบริษัทที่ทำเนื้อหาของเกมส์อยู่เบื้องหลัง ซึ่งตัวผมไม่โลกสวย ผมกลับมองว่าเป็นการเต็มใจเชิญเข้าถึงพื้นที่ Private เช่นภายในรั้วบ้าน ในตัวอาคาร ในหมู่บ้าน และอื่นๆ ที่ในอดีต google street view ไปไม่ถึง แต่นี้ด้วยความยินยอมและสมัครใจ Big data ฝั่งผู้ให้บริการ ได้ว่าอัพเกรดคลังข้อมูลอีกครั้ง
ซึ่งในอนาคตการค้นหาข้อมูลของเราคงพบอะไรลึกขึ้นอีกก็เป็นได้ งานนี้โตเร็วเกินขาดจึงละเลยความปลอดภัยไปบ้าง มีการหลุดให้เห็น เช่น ภาพที่มากับ Pokemon ปัจจุบันเท่าที่ทดสอบพบว่าไม่มีการเข้ารหัส จะทำให้ session ที่เกิดขึ้นบนเครือข่ายนั้นๆ หากมีโจร จะถูกขโมยค่า cookie ได้ไม่ยาก เช่นมีการดักรับข้อมูลกลางอากาศ MITM เป็นต้น
ในกรณีที่มีการเก็บบันทึกข้อมูลจราจรทาง Network Log ก็จะมองเห็นเช่นกัน ทำให้สามารถมองเห็นภาพสถานที่ได้ จากข้อมูลที่ส่งผ่านทางระบบเครือข่าย นั่นหมายความว่ากรุณาเล่นอย่างคำนึงความเป็นส่วนตัวด้วยเพราะข้อมูลที่ส่งไปประมวลผล Big data มันลอยไปบนก้อนเมฆแห่งข้อมูล จึงอย่าได้ไปส่องหา Pokemon ในห้องนอนล่ะกันนะ จบข่าว
Link ที่มา http://nontawattalk.sran.org/2016/08/pokemon-go.html
Knowledge