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

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: