ตรวจสอบแอพ "หมอชนะ" เบื้องต้น

Saturday, April 11, 2020 6:38 PM 1 Comments ,

เมื่อวันที่ 10 เมษายน 2563 ได้มีการเปิดตัวแอพ หมอชนะ เพื่อเก็บประวัติการเดินทางของประชาชน และประเมินว่าบริเวณนั้นมีผู้ป่วย COVID-19 หรือไม่ ผมจึงทำการตรวจสอบว่ามีการส่งข้อมูลอะไรบ้างไปยัง Server

รูปจาก https://www.prachachat.net/ict/news-447255


วิธีการตรวจสอบเบื้องต้นคือการทำ Man In The Middle (MITM)

โดยมีการเรียก API ต่างๆดังนี้

1. /registerDevice

โดยมีการส่งข้อมูลเป็น JSON ดังนี้

Request:

{"deviceId":"XXXXXXXXXX"}

โดยค่าใน deviceId น่าจะเป็นค่า hash จากอะไรบางอย่าง

Response:

{"userId":"XXXXXXXXXX","anonymousId":"XXXXXXXXXX"}

2. /userdata

มีการเรียกใช้เมื่อทำแบบทดสอบ

Request:

{"data":{"questionaire":{"one_uri_symp":["none"],"travel_risk_country":false,"covid19_contact":["none"],"int_contact":false}}}

3. /qr

เรียกเพื่อโหลด QRCode ของเรา โดยมีการส่ง anonymousId แนบไปกับ header ด้วย


4. /location

อันนี้จะส่งข้อมูลพิกัดที่เราอยู่ไปยัง Server

Request:

{"locations":[{"is_moving":false,"uuid":"XXXX","timestamp":"2020-04-11T10:50:50.482Z","odometer":0,"coords":{"latitude":13,"longitude":100,"accuracy":25.9,"speed":-1,"heading":-1,"altitude":-23.5},"activity":{"type":"still","confidence":100},"battery":{"is_charging":true,"level":0.38},"extras":{"triggerType":"appState"}}]}


5. /scan

หากพบ device อื่นๆผ่าน Bluetooth  หรือการ scan QRCode ก็จะส่ง API อันนี้

{"meetId":"XXXX","timestamp":"2020-04-11T11:06:53.777Z","meetWithIds":["XXXX"],"location":{"latitude":13,"longitude":100,"accuracy":24.2},"type":"bluetooth"}

6. https://raw.githubusercontent.com/codeforpublic/morchana-core/master/available

เป็น API Kill-Switch เอาไว้เมื่อเลิกเก็บข้อมูลผู้ใช้แล้ว ก็จะใช้งานแอพไมไ่ด้ ชอบตรงที่เก็บไว้บน Github



สรุป
- ไม่พบว่ามีการส่งรูปที่เราถ่ายขึ้นไปยังบน Server
- ไม่พบว่ามีการส่งข้อมูลอื่นๆนอกเหนือจากที่ประกาศไว้
- งั้นเรามาใช้แอพ หมอชนะ กันเถอะ
Appstore: https://apps.apple.com/th/app/allthaialert/id1505185420
Play Store: https://play.google.com/store/apps/details?id=com.thaialert.app



1 comment: