行动应用APP资安篇

针对我们所谓的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後端的服务器是否有风险漏洞等等。

若有要补充也都欢迎留言


<<:  IT 铁人赛 k8s 入门30天 -- day21 k8s Task Deploying PHP Guestbook application with Redis

>>:  [DAY 30] 感想

DAY7 Ngrok运行原理&安装Ngrok

Ngrok运行原理 其实ngrok有客户端ngrok和服务端ngrokd,在用户客户端发起请求时,就...

[知识篇]WebRTC - ICE(STUN/TURN)

新手入门,如有错误,欢迎指正~~~ 系列文章同步更新於部落格 在整个 RTCPeerConnecti...

Day 6 | 讯息提示元件

Toast 讯息显示後会於数秒内消失,是最常用的提示讯息,使用makeText()产生 Toast....

Day0 前言+碎念(可跳过

嗨~大家好!! 我是饿麟,你们也可以叫我小饿 今天是铁人赛开赛的第1天 身为一个小白,我正思考着也许...

PyTorch 安装 -- GPU 卡支援

前言 PyTorch 是与TensorFlow 并驾齐驱的深度学习框架,功能各有所长,因此,两个套件...