iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
Security

過關斬將,資安面試300題系列 第 21

行動應用APP資安篇

  • 分享至 

  • xImage
  •  

針對我們所謂的Mobile Security(移動裝置安全、行動裝置安全)。
經常會聯想到智慧型手機,的確手機是大宗,
不過會被稱為Mobile Device,當然是因為也包含了像是平板、筆電等等。
當然要說可以移動的裝置、設備還有很多,
可是通常提到Mobile Security,最常見的還是在說手機與平板。

而如果從「手機」這個角度來去看「手機」的資安,
我自己會將其分為三個類別來去看,
第一個是作業系統、第二個是裝置本身(不同廠牌 )、第三個是APP。

第一個作業系統目前就兩個大流派,分別是Android與iOS,
也就是說可以去研究與分析Android與iOS是否有存在漏洞,
或是Android與iOS的相關安全風險與議題。

而第二個所謂的裝置本身,
則是針對不同的手機廠牌或是型號,
本身是否有自己特有的風險漏洞,
因為各家品牌,例如三星、HTC、Google、小米等等,
各家的手機平板一定都會有一些自己的技術與機制,
可以從其下手去了解是否該技術或是型號有存在安全漏洞。

第三個則才是今天要講的重點,
就是手機平板裡面安裝的APP,
這些APP由不同的廠商或人員所開發,
如果APP有存在一些設計上的缺陷,
則可能就會有安全性漏洞。

而對於APP的安全性,
台灣其實有個叫做行動應用資安聯盟的單位。
許多資安服務都有APP資安檢測實驗室,
可以提供對於APP的檢測,
這個檢測實驗室,還有檢測規範,
就是與行動應用資安聯盟息息相關。

那... 關於這個行動應用資安聯盟
APP檢測的基準規範..
到底是好是壞,是正確還是怎麼樣的,
哪家廠商APP檢測比較優秀甚麼的,
就... 都不在討論範圍內XDDDD

只是今天的許多內容會圍繞在APP檢測,
還有行動應用資安聯盟的檢測基準中。

以下附上連結
行動應用資安聯盟
https://www.mas.org.tw/main.php

行動應用App基本資安檢測基準V3.1
https://www.mas.org.tw/spaw2/uploads/images/AppV/20191016/AppV3.1.pdf

照慣例,每篇文章都會附上第一篇的文章,讓大家了解一下這系列文章說明
https://ithelp.ithome.com.tw/articles/10264252

1.OWASP Mobile Top 10為哪些?

M1: Improper Platform Usage
M2: Insecure Data Storage
M3: Insecure Communication
M4: Insecure Authentication
M5: Insufficient Cryptography
M6: Insecure Authorization
M7: Client Code Quality
M8: Code Tampering
M9: Reverse Engineering
M10: Extraneous Functionality

這個問答其實不是那麼恰當啦~
不過我想表達的是,應該要知道OWASP Mobile Top 10

2.有使用過甚麼工具來輔助進行APP的安全檢測?

ADB,MobSF
ADB是手動進行檢測經常會用的工具
MobSF則是可以自動化進行靜態與動態分析的強大工具

3.ADB常用的指令有哪些?

adb tcpip
adb connect
adb devices
adb kill-server
adb -s 'device-ip-port' shell
adb shell
等等

4.Android當中的AndroidManifest.xml是做甚麼用的?裡面會有甚麼資訊?

AndroidManifest.xml記錄了整個APP內的設定、架構、用到了那些東西、需要用哪個權限等等。

5.甚麼是ROOT跟JB?兩個有甚麼不同嗎?

ROOT/JB是指破解手機預設的權限,取得最高的管理員權限。
Android -> ROOT
iOS -> Jailbreak

6.如果你要ROOT?需要甚麼樣的資訊與工具?ROOT流程如何?

需要知道Firmware版本

這個其實我很不熟XDDD

然後這個倒也是挺特別的一個東西
因為不少人,其實也都沒有甚麼資安,甚至資訊背景,
也都有在玩ROOT/JB之類。

像是小魯我自己本身其實沒有任何ROOT經驗,
可是我朋友文組der,不會寫程式,工作與理工無關,
他說他的每一台手機,他還是都會ROOT

7.冗餘檔案和非冗餘檔案要如何去區分判定?

要判斷是不是冗餘檔案,可以直接刪除這個檔案,來看看app是否可以繼續正常使用或是功能上有改變來區分。

8.甚麼是憑證綁定?憑證綁定是否有可能被繞過?

憑證綁定是防止中間人攻擊的一種安全機制。是,看實作的方式,是有可能被繞過的。

有興趣研究APP檢測或是APP PT的人
憑證綁定(Pinning),絕對是很值得學習的一塊知識

9.APP的檢測分類有區分為L1~L3,可以說明一下區別為何嗎?

L1:沒有身分認證機制的APP
L2:含有身任認證機制的APP
L3:具有交易行為的APP

10.甚麼是WebView?為什麼要有WebView?WebView會有甚麼樣的安全性問題?

WebView是將Web顯示遷入到APP當中的技術~ 你用FACEBOOK的APP的時候,點開一個外部的網站連接,可是沒有跳出來FACEBOOK的APP,由你的瀏覽器開啟網頁,而是從FACEBOOK的APP查看這個網頁,這個就是WebView。

11.就你的了解,iOS與Android在安全性上有甚麼差異?針對兩個不同作業系統做APP的安全檢測時,會有甚麼區別?

iOS自己本身就很嚴謹QQ
Android的APP,要逆向比較容易。


最後提一下關於APP的安全,
目前如果在業界聽到的APP檢測,
應該沒有意外多數都是照這個行動應用聯盟的檢測基準,
當然,即使有這個基準在,
這個基準並沒有教你如何去做測試,
不同的廠商、公司、人員之間,都可能會利用不同的方法測試。

而除了APP檢測基準外,OWASP也有大名鼎鼎的
OWASP Mobile Security Testing Guide
https://owasp.org/www-project-mobile-security-testing-guide/

Mobile App Security Checklist
https://github.com/OWASP/owasp-mstg/tree/master/Checklists

另外,APP檢測通常來說,是與APP PT不同的,
如同剛剛所提,通常檢測是聯盟的APP檢測基準,
APP檢測基準主要的方向偏向針對的是這個「APP本身」,
而APP PT則會看這個APP後端的伺服器是否有風險漏洞等等。

若有要補充也都歡迎留言


上一篇
資安事件回應篇
下一篇
資安設備與產品篇
系列文
過關斬將,資安面試300題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言