Pages

วันจันทร์, สิงหาคม 8

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


โลกเราวันนี้ มีอย่างหนึ่งที่เหมือนกันคือ การทำอะไรตามๆกัน จนเป็นกระแสสังคม หรือโปเกมอนฟีเวอร์ ให้ทายไม่เกินเดือนก็เริ่มหมดอายุความฟีเวอร์ ต้องเดินตามรุุ่นพี่ที่เคยเกิดก่อน เช่น ตุ๊กตาลูกเทพ เฟอร์บี้ และอื่นๆ ที่ผ่านมา
เมื่อเห็นคนทำก็อยากทำตามบ้างครับ
แต่ทำครั้งนี้ สำหรับผมแล้ว จะลองมาแกะให้เห็นเบื้องหลังการติดต่อสื่อสาร เพื่อที่ทำให้เข้าใจ และรู้ทันการติดต่อสื่อสารจากการเล่นเกมส์ Pokemon Go  และมาดูกันว่ามันแตกต่างกับที่ตาเรามองเห็นในโลกทางกายภาพอย่างไร เมื่อเราดำดิ่งไปในโลกของข้อมูลที่ต้องใช้ตาพิเศษมองเข้าไป Pokemon Go เป็นแค่ความบันเทิง หรือเป็นเครื่องมือหนึ่งในยุทธศาสตร์ Cyber warfare ระดับโลก หรือ ถูกทุกข้อ ลองมาดูกันครับ


ขั้นตอนเราจำลองระบบเครือข่ายขึ้นมา 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

ช่วงแรกในการสมัครอาจมี Data leak อยู่บ้าง โดยเฉพาะ domain ดังภาพด้านล่าง

 ถ้ามีการ MITM ก็น่าจะมีการขโมย account กันได้
ลองมาดูหากจะตรวจ Pokemon Go บน Network ขององค์กรเราจะเริ่มอย่างไร
อันดับแรกเราควรสำรวจอุปกรณ์ที่มีทั้งหมดก่อน ในที่นี้ใช้ SRAN เป็นตัวสำรวจอุปกรณ์บนระบบเครือข่าย




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



และเครื่องที่จะใช้ทดสอบเกมส์ 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

เดาได้ว่าเป็น IP  (216.58.x.x) ช่วงดังกล่าวน่าจะเป็น Load Balancer   แต่นี้ทำบนผู้ให้บริการ 3BB ซึ่งในแต่ละผู้ให้บริการอาจจะมีความแตกต่างกันไปก็ได้

AS15169 ของ Google Inc

ลองไม่เดาจริงๆ มันควรอยู่ย่านไอพีไหนบ้าง ตัว content ใน pokemon Go

จากภาพนี้ก็ย่านไอพี content ที่ใช้สำหรับเล่นเกมส์ Pokemon Go คงอยู่ประมาณนี้ คืออยู่ใน AS15169 นี้แหละ กินความไปอีกย่านคือ 172.217.24.0/24  ไปด้วย ดังนั้นหากใครคิดจะ block IP นี้คิดผิดเลยกระทบอย่างมาก เผลอๆ google map ใช้ไม่ได้ 

 ใช้เครื่องมือ Shodan ตรวจให้



เปิด 80 , 443  Server จาก Google ส่วนใหญ่จะมีการ Harden เปลืองแรงเปล่าหากจะค้นหาต่อ
และยังไม่อยากเข้าลึกเพราะอาจเจอเส้นขนส่งข้อมูลแปลกๆ อยู่ (ไม่ขอกล่าวในที่นี้ ลองคิดดูประเทศมหาอำนาจหลายประเทศที่ไม่ใช่ขั้วฝั่งผู้ผลิต ก็ออกมาแบนกันแล้ว ซึ่งเขามองว่าเป็น Cyber war แบบหนึ่ง)

กลับมาต่อ ลองมาส่อง 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
(หากเปิดไม่ได้ เป็นเพราะ session หมดอายุ)



ภาพที่มาจาก 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  เช่นภายในรั้วบ้าน ในตัวอาคาร ในหมู่บ้าน lสถานที่ราชการ หน่วยงานด้านความมั่นคง  และอื่นๆ ก็เห็นถึง location ภายใน ได้ที่ในอดีต google street view ไปไม่ถึง แต่นี้ด้วยความยินยอมและสมัครใจ  Big data ฝั่งผู้ให้บริการ ได้ว่าอัพเกรดคลังข้อมูลอีกครั้ง ซึ่งในอนาคตการค้นหาข้อมูลของเราคงพบอะไรลึกขึ้นอีกก็เป็นได้

งานนี้โตเร็วเกินขาดจึงละเลยความปลอดภัยไปบ้าง มีการหลุดให้เห็น เช่น ภาพที่มากับ Pokemon ปัจจุบันเท่าที่ทดสอบพบว่าไม่มีการเข้ารหัส  จะทำให้ session ที่เกิดขึ้นบนเครือข่ายนั้นๆ หากมีโจร จะถูกขโมยค่า cookie ได้ไม่ยาก เช่นมีการดักรับข้อมูลกลางอากาศ MITM เป็นต้น ในกรณีที่มีการเก็บบันทึกข้อมูลจราจรทาง Network Log  ก็จะมองเห็นเช่นกัน ทำให้สามารถมองเห็นภาพสถานที่ได้ จากข้อมูลที่ส่งผ่านทางระบบเครือข่าย นั้นหมายความว่ากรุณาเล่นอย่างคำนึงความเป็นส่วนตัวด้วยเพราะข้อมูลที่ส่งไปประมวลผล Big data มันลอยไปบนก้อนเมฆแห่งข้อมูล

จึงอย่าได้ไปส่องหา Pokemon ในห้องนอนล่ะกันนะ ถ้าไม่อยากให้ก้อนเมฆแห่งข้อมูลเก็บบันทึกไว้จงอย่าทำ

จบข่าว
  
08/08/59
Nontawatt
นนทวรรธนะ  สาระมาน
พ่อบ้าน




4 ความคิดเห็น:

chonsaraman กล่าวว่า...

เยี่ยมแล้วสามารถค้นหาที่ซ่อน Pokemon ได้ด้วยเปล่า

Jobzsparrow กล่าวว่า...

มี censys.io ด้วยนะครับ ไว้ช่วยส่อง :)

https://censys.io/ipv4/216.58.221.33

Renon กล่าวว่า...

You don’t say so!

ไม่ระบุชื่อ กล่าวว่า...

ที่ว่าเต็มใจให้ข้อมูลมากกว่า street view เดิม แปลว่าการเปิดโหมด ar จะมีการบันทึกวิดีโอส่งไปที่กูเกิ้่ลหรือส่งไปแค่พิกัดครับ ถ้าแค่พิกัดผมว่าเค้าน่าจะมีอยู่นานแล้ว และไม่น่าจะ apply กับ street view ได้เพราะ street view เน้นให้เห็นภาพด้วยครับ