[突發][有圖] 手帶 App 的命運被孟加拉人操控
IT小狗 2020-3-26 21:30:44 TL;DR 給不是IT人的你

香港政府的手帶 App 可能因「貪方便」而使用了一個名為 Humayan Kabir 的孟加拉開發者的程式碼,所以現在全香港《居安抗疫》資料,都掌握在這位外國勢力手上。他明天可以開始收集所有手帶人士電話號碼再轉售,甚至乎明天他加上要求大家輸入信用卡資料的空格,也是絕對可行的。
:^(


此乃屬於嚴重安全漏洞。在政府未修正這問題之前,盡可能不要在此程式中輸入任何敏感的個人資料。
:^(


如果你有興趣知道更多這漏洞的原理,請繼續往下閱讀或睇片。

https://www.youtube.com/watch?v=53aV2KXQ8wg

Ads

IT小狗 2020-3-26 21:31:00 今朝,小狗我發現監察手帶 app 《居安抗疫》的下載頁問題之後,想起有巴打表示連遞交表格都不成功,於是就嘗試下載這個《居安抗疫》程式的 Android 版,把它 decompile (反向編譯),看一看箇中問題,希望為 OGCIO (政府資訊科技總監辦公室) 找一些 bugs,然後讓有手帶的人成功遞交表格,怎料卻發現嚴重漏洞

先發現一個網頁表格

原本只是找一找遞交表格的伺服器 Endpoint,看看會不會有些 Error Code 能找到端倪。怎料在 RegisterInfoActivity 這個 Android 畫面上(Android 中所有用戶能看到的畫面都稱為 Activity),看到有一個類似 WebView 的東西,應該是當用戶掃描 QR Code 後,便會引導到一個網頁中繼續填寫資料。
  C2231a aVar2 = new C2231a();
  aVar2.mo5010c("https");
  aVar2.mo5009b("eqapp1.hqss.ogcio.gov.hk");
  String str2 = "/shs/www/equar/index";
  int i = 0;
  while (true) {
      int a2 = C2124e.m4129a(str2, i, 20, "/\\");
      int i2 = a2;
      aVar2.mo5008a(str2, i, a2, a2 < 20, false);
      i = i2 + 1;
      if (i > 20) {
          break;
      }
  }
  aVar2.mo5006a("www_header_token", "ODk1MGQwNzkyZmIxM2Q4MjI0ZjQxY2U4");
  aVar2.mo5006a("lang", a);
  aVar2.mo5006a("user_sn", sb.toString());
  aVar2.mo5006a("info.family", String.valueOf(list2.size()));
  webView.loadUrl(aVar2.mo5007a().f6202i);
IT小狗 2020-3-26 21:31:16 發現網頁表格的問題

在手機 app 中使用網頁來讓用戶填寫資料本來沒有什麼問題,還節省了開發成本,讓 iOS 和 Android 兩個平台都能夠使用得到。不過當我們打開這個網頁時,便發現有一個很嚴重的問題,以下為網頁的部份原始碼:
<script src="https://technext.github.io/drug/js/vendor/modernizr-3.5.0.min.js"></script>
<script src="https://technext.github.io/drug/js/vendor/jquery-1.12.4.min.js"></script>
<script src="https://technext.github.io/drug/js/ajax-form.js"></script>
<script src="https://technext.github.io/drug/js/waypoints.min.js"></script>


(因應連登的安全保護,以上代碼有稍為修改)
:^(


這部份是一些加入其他網站 JavaScript 的 HTML。在一般情況下,我們會使用其他開發者所創立的組件 (Framework/Library),減省我們自己開發的時間。不過,由於很多任何人都能夠公布組件,我們永遠不知道有沒有不懷好意的開發者,在他們的 JavaScript 中放入惡意代碼,所以我們使用任何人的組件時,必須選擇有信譽和來源可靠的組件。

而這個 app 用的是什麼組件呢?驟眼一看,modernizr、jquery、bootstrap 都是常見的工具,很多網站都有使用。

不過,部份工具的來源,卻是來自一個叫 technext.github.io 的網站,這個網站是誰控制的呢?是不是政府擁用的?

所有 github.io 其實都是由著名網站 Github 提供的免費寄存服務,我們可以輕易把網址改一改動,就知道這個寄存空間的擁用人是誰,只要把 github.io 前置的名字,改為 https://github.com/名字 就能找到。於是,我們一起來看看 https://github.com/technext 到底是何許人:

:^(


竟然是一位名為 Humayun kabir 的孟加拉開發者。
:^(
:^(
:^(
IT小狗 2020-3-26 21:31:35 有可能發生的安全漏洞

如果這個 technext.github.io 的擁用權是在政府手上,其實問題不大。不過,我相信以 Humayun kabir 為名的開發者帳戶,理應不受政府控制。而該網站存放的 modernizr、jquery,可以無需通知 OCGIO的情況下,任何修改,甚至加入惡意程式碼!

這是十分典型的 Cross-site Scripting Attack:

:^(


圖片來源: https://www.imperva.com/learn/application-security/cross-site-scripting-xss-attacks/

根據著名網絡公司 Mozilla 的安全評級,以上的 Cross-site Scripting 屬於最高級別的「嚴重級」。

換句話說:如果 Humayun kabir 得知自己的工具被香港政府使用,然後偷偷地加入新的代碼,背後偷取手帶人士的個人資料,或者甚至在表格上加上一兩個詢問個人資料的空格,再繞過政府自行收集,是絕對可行的。

而在用戶使用的途中,是完全不會察覺,亦不會知道這個表格有沒有連接上政府以外的其他伺服器

這開發者未必知情

倘若政府是聘請了這位孟加拉開發者,使用他寄放的工具,或許政府與他之間有些協議,可能還是對用家有一點點保障。

不過,我們再細心一看原本使用這工具來源的網站: http://technext.github.io/drug

:^(


這網站顯然是一個平常不過的 template 網站,應該是普遍用來方便開發者架設網站的樣版。有很可能是開發《居安抗疫》的公司同事,為圖方便起見,直接使用了 template 網站的工具來開發。
:^(
:^(
:^(
:^(
:^(
:^(


建議解決方法

其實,modernizr、jquery、bootstrap 這三個工具都是四處可以找到其他可靠的來源下載,倘若能放在 OCGIO 的伺服器之上,根本就可以簡單消除這漏洞。

而其中一個 ajax-form.js,這個很可能是 app 開發者最希望使用到的工具,而其他的工具就正是因為這個 ajax-form.js 需要用到,才一併加入。我們發現 ajax-form.js 只是一個不多於 50 行的 Contact Form 聯絡我們輔助代碼,如果是直接抄過來《居安抗疫》,可能有版權問題,但 50 行的代碼,由開發者親自操刀也不是難事。
:^(


結語

希望政府盡快更新有關網站表格,由於表格不是依附在 app 之中,照道理無需經過 App Store 和 Play Store 審查已經可以直接更新,並更新有關網絡安全的要求,好讓香港的科技發展不會淪為別國的笑柄。

:^(
Eatsleeprecycle 2020-3-26 21:33:00 有無諗過佢都係中國人
:^(
瞓唔著覺 2020-3-26 21:34:10 好勁,咁都發現到

利申:唔識
多paid 2020-3-26 21:34:38 特登整個漏洞出黎方便監控,咪踢爆人
君子以口德載物 2020-3-26 21:36:32 推1
IT小狗 2020-3-26 21:36:58 唔出奇
:^(
:^(


呢個漏洞都算係好低手,我都唔明點解會咁做
:^(
:^(
:^(
:^(
灪爨癵籱麣 2020-3-26 21:37:26 大把港共app監視緊
:^(
地拖味咖啡 2020-3-26 21:37:35

Ads

暫緩人治 2020-3-26 21:37:35 Push
七進七出心齋橋 2020-3-26 21:38:28
:^(
:^(
:^(
:^(
:^(
IT小狗 2020-3-26 21:39:27 呢個漏洞算好易搵,話唔定仲有更多漏洞未知

外國有一啲 bug bounty program,鼓勵+獎勵啲 developers/hackers 去 report 呢啲咁嘅錯誤。如果香港有,應該唔輪到我搵到。我真係見到今朝個手帶 post 先忽發奇想拆黎睇下
:^(
IT小狗 2020-3-26 21:39:49
:^(
:^(
:^(

用咗大家嘅錢去做咁低手嘅 app
100%滅蚊專家 2020-3-26 21:40:09 創科局500億
魚翅航空無女 2020-3-26 21:40:56 IT狗又立下大功
灪爨癵籱麣 2020-3-26 21:42:05 你用咩app拆?
IT小狗 2020-3-26 21:43:24 google "decompile android" 已經有一大堆網上嘅工具隨時可拆 apk
:^(


:^(
光明會主席 2020-3-26 21:45:11 如果填假資料會點?
IT小狗 2020-3-26 21:47:50 呢個問返衞生署
:^(

Ads

檸茶走檸 2020-3-26 21:48:07 好似好勁咁
:^(
Google_IT_dog 2020-3-26 21:48:39 題外話,反編譯係大陸叫法,香港,台灣係叫反組譯
迷擬Q 2020-3-26 21:51:13 一開始重以為係改歌詞,一路認邊首歌一路入,入到嚟發現認真post
:^(
Hawk 2020-3-26 21:51:26 咁撚小事都要3rd party痴撚線
HK NO IT