ตรวจสอบแอพ "หมอชนะ" เบื้องต้น
เมื่อวันที่ 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 comments: