Blog

ใช้ SRAN วิเคราะห์การติดต่อสื่อสารผ่านโปรแกรม Pokemon Go

โลกเราวันนี้ มีอย่างหนึ่งที่เหมือนกันคือ การทำอะไรตามๆกัน จนเป็นกระแสสังคม หรือโปเกมอนฟีเวอร์ ให้ทายไม่เกินเดือนก็เริ่มหมดอายุความฟีเวอร์ ต้องเดินตามรุุ่นพี่ที่เคยเกิดก่อน เช่น ตุ๊กตาลูกเทพ เฟอร์บี้ และอื่นๆ ที่ผ่านมา
เมื่อเห็นคนทำก็อยากทำตามบ้างครับ
แต่ทำครั้งนี้ สำหรับผมแล้ว จะลองมาแกะให้เห็นเบื้องหลังการติดต่อสื่อสาร จากเล่นเกมส์ 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

เกมส์ Pokemon Go  พัฒนาโดยบริษัท 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 
 

 


 

ทำการสำรวจระบบเครือข่ายเพื่อตรวจดูอุปกรณ์ทั้งหมดที่มี

 



และเครื่องที่จะใช้ทดสอบเกมส์ Pokemon Go คือ Private IP : 192.168.1.143  เราใช้ชื่อว่า "มือถือของนก"  เป็นมือถือยี่ห้อซัมซุง ระบบปฏิบัติการ Android (ขอล็อคเป้าที่เครื่องนี้)
 



และทำการเพิ่มข้อมูลในระบบ Inventory ที่มีในเครื่อง SRAN   จากนั้นเราก็มาดู Log file ที่เกิดขึ้นทาง ระบบเครือข่ายคอมพิวเตอร์ (Network Log)
โดยเข้าหน้าค้นหา  Deep Search  ว่า "pokemon"    สิ่งที่ได้คือ   User_agent ของอปุกรณ์  จะขึ้นมาทันทีว่า ใช้โปรแกรม Pogemon go อยู่ โดย User_agent จะแสดงค่าดังนี้

pokemongo/0 CFNetwork/758.5.3 Darwin/15.6.0

 
ภาพการติดต่อสื่อสาร จากไอพีต้นทาง ไปยังไอพีปลายทางระบบแม่ข่ายที่ให้บริการเกมส์ Pokemon Go รวมถึงรายละเอียดการติดต่อสื่อสาร ผ่าน 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 สำหรับ Pokemon Go บ้างหน้าตาเป็นไง
 


แล้ว SSL Log ล่ะ
 

ทั้ง DNS และ SSL  จะพบ IP 216.58.196.33 เป็นเรื่องอื่นที่ไม่ใช่ Pokemon Go จึงแสดงให้เห็นว่าไอพี นี้ไม่ได้ใช้เฉพาะเกมส์ 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 ทั้งหมด

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