โลกเราวันนี้ มีอย่างหนึ่งที่เหมือนกันคือ การทำอะไรตามๆกัน จนเป็นกระแสสังคม หรือโปเกมอนฟีเวอร์ ให้ทายไม่เกินเดือนก็เริ่มหมดอายุความฟีเวอร์ ต้องเดินตามรุุ่นพี่ที่เคยเกิดก่อน เช่น ตุ๊กตาลูกเทพ เฟอร์บี้ และอื่นๆ ที่ผ่านมา
เมื่อเห็นคนทำก็อยากทำตามบ้างครับ
แต่ทำครั้งนี้ สำหรับผมแล้ว จะลองมาแกะให้เห็นเบื้องหลังการติดต่อสื่อสาร เพื่อที่ทำให้เข้าใจ และรู้ทันการติดต่อสื่อสารจากการเล่นเกมส์ 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
ใช้เครื่องมือ 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
นนทวรรธนะ สาระมาน
พ่อบ้าน
มี censys.io ด้วยนะครับ ไว้ช่วยส่อง 🙂
https://censys.io/ipv4/216.58.221.33
You don’t say so!
เยี่ยมแล้วสามารถค้นหาที่ซ่อน Pokemon ได้ด้วยเปล่า
ที่ว่าเต็มใจให้ข้อมูลมากกว่า street view เดิม แปลว่าการเปิดโหมด ar จะมีการบันทึกวิดีโอส่งไปที่กูเกิ้่ลหรือส่งไปแค่พิกัดครับ ถ้าแค่พิกัดผมว่าเค้าน่าจะมีอยู่นานแล้ว และไม่น่าจะ apply กับ street view ได้เพราะ street view เน้นให้เห็นภาพด้วยครับ