“通过ATFuzzer打开潘多拉魔盒:针对安卓智能手机AT接口的动态分析”已入选第35届年度计算机安全应用会议(ACSAC 2019)。 https://syed-rafiul-hussain.github.io/wp-content/uploads/2019/11/atfuzz.pdf
本文旨在检查蜂窝基带处理器通过蓝牙和USB暴露的AT命令接口的正确性和健壮性。设备的应用处理器使用该接口向基带处理器发出高级命令(即AT命令),以执行蜂窝网络操作(例如拨打电话)。该接口中的漏洞可能被恶意蓝牙外围设备利用,发起包括拒绝服务攻击和隐私攻击在内的多种攻击。为了识别此类漏洞,我们提出了ATFuzzer,它采用一种语法引导的进化模糊测试方法,对AT命令语法的产生式规则进行变异,而不是对具体的AT命令进行变异。使用ATFuzzer对来自5家供应商的8款安卓智能手机进行的实证评估发现,蓝牙接口存在4个无效的AT命令语法,USB接口存在13个无效的AT命令语法,其影响范围涉及拒绝服务、蜂窝协议版本降级以及严重的隐私泄露。
Python 2.7.15。请不要使用Python 3,因为存在库不兼容问题。所需的库已列在文件requirements.txt中,可以通过执行以下命令进行安装:
pip install -r requirements.txt
注意:适用于Python 2.7的模块pybluez与Windows不兼容。要在Windows上安装pybluez,需要下载一个旧版本。在pybluez下载PyBluez‑0.22‑cp27,并使用以下命令安装:
pip install <pybluez file.whl>
要运行ATFuzzer,请执行以下命令:
sudo python executeFuzzer.py <list_of_grammars> <device_name> <port (可选)>
或者,也可以使用多个随机选择的语法来执行ATFuzzer,命令如下:
sudo python executeFuzzer.py multi <device_name> <port (可选)>
程序随后会要求从4个选项中选择一个:
这些选项允许用户选择要运行的ATFuzzer类型。这对于测试和评估我们的模糊测试器的有效性至关重要。
最后,ATFuzzer需要指定用于AT命令传输的通道。可以从以下三个选项中选择一个:
如果选择了蓝牙选项,程序会询问目标设备的蓝牙地址。用户应以特定格式输入设备的蓝牙MAC地址:XX:XX:XX:XX:XX:XX(例如,1A:2B:3C:4D:5E:6F)。
测试执行使用虚假的评估参数运行ATFuzzer,并且不向设备提交任何命令。此选项仅用于测试目的,因此不要用它来对真实的智能手机进行模糊测试。
注意:如果在Linux上运行蓝牙ATFuzzer,可能需要使用sudo执行程序,具体取决于系统配置。
下面我们介绍ATFuzzer实现的结构。
commandGrammar.json:包含80多条AT命令的语法集的JSON文件。这些语法按照特定结构定义,使程序能够高效地读取它们。
executeFuzzer.py:主程序,允许用户运行ATFuzzer。它提供了不同的执行选项(参见如何运行)。
grammarFuzzer.py:实现实际的模糊测试。它读取用户提交的AT命令的语法,并执行模糊测试循环:输入生成 - 输入提交 - 语法评估 - 语法演化。
multiGrammarFuzzer.py:实现实际的模糊测试。它读取随机选择的AT命令的语法,并执行模糊测试循环:输入生成 - 输入提交 - 语法评估 - 语法演化。
grammarModifier.py:实现演化阶段的函数。这些函数包括语法交叉和语法变异。
inputGen.py:根据给定的输入语法生成一个随机的AT命令实例。
atCmdInterface.py:实现与目标设备AT接口交互所需的函数。它负责建立与设备的通信、提交AT命令实例,最后收集和评估响应。
afl_fuzzer.py:实现用于在AT命令上下文中执行AFL模糊测试器的函数。
utilityFunctions.py:实现支持主程序执行的函数。
results:目录,包含每次ATFuzzer执行的结果。
https://www.youtube.com/watch?v=qR4Pq5i0IRE
如果您的研究使用了SAVIOR的一个或多个组件,请引用以下论文:
@inproceedings{karim2019opening,
title={Opening Pandora's box through ATFuzzer: dynamic analysis of AT interface for Android smartphones},
author={Karim, Imtiaz and Cicala, Fabrizio and Hussain, Syed Rafiul and Chowdhury, Omar and Bertino, Elisa},
booktitle={Proceedings of the 35th Annual Computer Security Applications Conference},
pages={529--543},
year={2019}
}