/logo_100x100.png

Android 组件逻辑漏洞漫谈

随着社会越来越重视安全性,各种防御性编程或者漏洞缓解措施逐渐被加到了操作系统中,比如代码签名、指针签名、地址随机化、隔离堆等等,许多常见的内存破坏漏洞在这些缓解措施之下往往很难进行稳定的利用。因此,攻击者们的目光也逐渐更多地投入到逻辑漏洞上。逻辑漏洞通常具有很好的稳定性,不用受到风水的影响;但同时也隐藏得较深、混迹在大量业务代码中难以发现。而且由于形式各异,不太具有通用性,从投入产出比的角度来看可能不是一个高优先级的研究方向。但无论如何,这都始终是一个值得关注的攻击面。因此,本文就以 Android 平台为目标介绍一些常见的逻辑漏洞。

ptmalloc cheatsheet

最近公司被要求参加某网络安全比赛,所以借此机会又重新阅读了 glibc malloc 的最新代码,发现了许多之前未曾深究的细节。故整理成此文,也算是对从前文章的补充了。

终端应用安全之网络流量分析

在日常对客户端应用进行安全审计或者漏洞挖掘的时候,或多或少都会涉及到网络协议的分析。而对于业务风控安全而言,APP 的网络请求往往也代表着终端安全防御水平的上限,因为客户端是掌控在攻击者手中的,服务端的业务逻辑才是安全的核心兜底保障。

本文是笔者在分析众多 Android 应用协议的过程中所尝试总结的一些经验,大部分情况下也可以适用于其他平台的终端应用,如 iOS、macOS、Windows 等,尽管各个操作系统中会存在一些特有的小技巧。

深入浅出 SSL/TLS 协议

有没有那么一个人,几乎每天都在你身边,但某天发生一些事情后你会突然发现,自己完全不了解对方。对于笔者而言,这个人就是 TLS,虽然每天都会用到,却并不十分清楚其中的猫腻。因此在碰壁多次后,终于决定认真学习一下 TLS,同时还是奉行 Learning by Teaching 的原则,因此也就有了这篇稍显啰嗦的文章。

阿里味儿的代码审计随想

笔者几年前曾就职于阿里,虽然现在已经不在,但仍对其中的一些企业文化印象深刻。“阿里味儿” 是对于阿里企业文化的统称,其中最有味儿的话之一是 点线面体局势,大致是对应不同层级的员工要求。比如 P6 是点,在某些技能上实现专精;P7 是线,会懂得横向规划和发展,……诸如此类。

但是本文不谈阿里,也不谈企业文化,只是借此为引申谈谈最近在代码审计过程中的一些额外感想。

Frida Internal - Part 3: Java Bridge 与 ART hook

前面的文章中介绍了 frida 的基础组件 frida-core,用于实现进程注入、通信和管理等功能。加上 frida-gum 和 gum-js 的核心能力,我们已经可以很方便地使用 JavaScript 脚本来进行代码劫持、动态跟踪等进程分析操作。

不过 frida 并不满足于此,而是又实现了针对高级语言的支持,比如 JavaObjective-CSwift 等。这些额外支持实际上是在 gum-js 的基础上针对对应高级语言的 Runtime 进行 hack 而实现的,统一称为对应语言的 bridge。例如,针对 Java 语言的封装称为 frida-java-bridge,不仅实现了 Oracle JVM 的封装、还支持 Android 中的 Dalvik 虚拟机和 ART 虚拟机。本文就以 ART 为例来看看 frida 中的具体实现。