跳转至

第 12 天:安全研究员的自我修养

脑洞

1
2
3
4
while (1)
{
    sum++;
}

非常简单地,可以让 CPU 的使用率达到 100%。

假设你是个病毒,你想让其他人帮你挖矿。很明显,万一宿主用了个 top,你的挖矿程序就会暴露。那有什么办法呢?

改程序?拿衣服!改 top!

1
2
3
...
sudo vim /etc/ld.so.preload
...

系统调用 Syscall

系统调用(Syscall)相当于用户程序和操作系统间的接口,给用户空间的程序提供对操作系统内核请求服务的途径,比如 IO 操作或者进程间通信。

事实上,有一些库函数就是直接对系统调用的封装。

printf("Hello, World!");
write(1, "Hello, World!", 13);

上面两行代码其实是完全一样的。

攻防演化

你 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
  • 沙箱逃逸