第 12 天:安全研究员的自我修养¶
脑洞¶
非常简单地,可以让 CPU 的使用率达到 100%。
假设你是个病毒,你想让其他人帮你挖矿。很明显,万一宿主用了个 top,你的挖矿程序就会暴露。那有什么办法呢?
改程序?拿衣服!改 top!
系统调用 Syscall¶
系统调用(Syscall)相当于用户程序和操作系统间的接口,给用户空间的程序提供对操作系统内核请求服务的途径,比如 IO 操作或者进程间通信。
事实上,有一些库函数就是直接对系统调用的封装。
上面两行代码其实是完全一样的。
攻防演化¶
你 4 我 8 他 12,最后围巾 252。
随着时代的发展,软件保护技术会发展;为了对抗它,攻击技术又会发展;为了对抗它,保护技术又会发展……左脚踩右脚上天了。
攻击的复杂性和隐蔽性一直在增加,并且控制能力越来越小。
而防护的地方要从软件覆盖到硬件,并且往往有很大的滞后性。
一开始,我们有代码注入。
后来 .text 段不能写了,我们就开始代码重用,比如 ROP。
后来能用的东西越来越少,检查的东西越来越多了,我们就开始对数据展开攻击。
安卓的层¶
- 应用层
- 框架层
- 硬件抽象层
- Linux 内核、驱动
鸿蒙 HarmonyOS¶
分布式软总线(万物互联):
- L0 到 L2:物联网设备、运动手表等轻设备
- L3 到 L5:手机、平板、智能手表等富设备
鸿蒙拥有和安卓设备相似的层:
- 应用层
- 框架层
- 硬件抽象层
- 内核抽象层
- Linux 内核、LiteOS、……
当前的鸿蒙¶
是鸿蒙 Framework + 安卓 AOSP 的产物,目前是闭源的。
毕竟现在还是需要安卓生态的。
OpenHarmony¶
2021 年 3 月 31 日开始,3.1 版本上线,终于开始面向富设备领域。
终端(手机)上的安全¶
- 远程任意代码执行(Remote Code Execution,RCE)
- 空口类(没有物理接触):蓝牙、WiFi、NFC、基带
- 应用层:浏览器、微信 / 钉钉 / TG、短信 / 彩信 / iMessage
- 权限提升(Local Privilege Escalation,LPE)
- 框架层:System Server、各类高权限 service
- 内核层:kernel、driver、GPU
- 芯片安全
- TEE
- 安全启动链
木桶效应:现代操作系统到底能有多不安全?¶
终端(手机)上的浏览器技术¶
浏览器:
- Chrome,Chromium
- 华为浏览器,小米浏览器,……
- 对安全性有充分考虑,有沙箱
- 有 Patch Gap(补丁裂隙):上游发布了补丁,用户没来得及打上,攻击者却掌握了漏洞的具体信息。
系统的 WebView:
- 安全性和浏览器差不多
- Patch Gap 比较弱
应用自维护渲染引擎:
- 在 APK 包里面一人夹一个 VebView
- 并且没有沙箱,安全性差。神经病。
Chrome 的结构¶
浏览器自己有一个浏览器进程。
根据内容,会有渲染进程、GPU 进程等进程生成。
根据插件,会生成插件进程。
每一个标签页有一个渲染进程。这顺便实现了不同网页之间的隔离。
浏览器安全¶
- RCE
- 沙箱逃逸