注:本文为湖南底网安全团队原创文章(官网:www.bttmsec.com,聚焦车联网安全/物联网安全/工控安全),转发请注明出处
注2:该文已同步在今日头条"湖南底网安全"主页发布(原"电子技术论"主页),链接如下:https://www.toutiao.com/article/7197968863081284133/
前言
固件分析和固件检测的技术“深”不可测,其范畴包括但不限于CPU架构类型、指令集、应用程序、文件系统、操作系统、驱动、内核、boot、die晶圆、集成晶体管电路等等,越往底层越深不可测,其“段位”也越高,“固件分析”和“固件检测”如何差异化理解对于客户需求理解、甲方固件安全类产品设计、乙方固件安全类产品应用理念同样非常重要。
固件检测
重点指检测平台采用“模板”式方式对固件“特定”内容进行自动化、高效率匹配检测,如元信息提取、指定文件分析、开源或已知组件漏洞关联检测等功能,其特点是“呆板式”、高自动化、高效率检测,换而言之,平台“模板”以外、固件“特定”内容以外的固件无法检测,当然没有绝对的固件“检测”,很多厂商提供的固件检测产品定会附带部分固件分析功能,侧重点不同而已。
固件分析:
行业内人士最先想到的是IDAPro,这只是固件分析的有力工具之一,最重要的是有“目的”的会用活用这类工具。重点指平台具备对固件所有内容或部分内容进行反汇编逆向解析的能力,平台逆向解析的能力包括且不限于:函数调用关系图(非函数对应关系图)、反汇编指令及对应地址的解析呈现、内存数据及对应地址的解析呈现、指令的拓展解析(伪代码、寄存器映射、指令功能注释等)、指令/RAM的内存分布解析、动静态模拟逆向仿真等能力,特点是强调平台反汇编逆向解析能力、人工分析的结果。不少国际顶尖安全团队时不时爆出某某设备或系统的固件高危漏洞或隐患,不仅仅单独依托固件自动化检测平台检测出来,而主要是靠人工分析、摸索、测试、挖掘、验证出来。
关键点
固件检测、固件分析的结果能否真正打动客户、撬动客户内心尤其是引起客户高层重视甚至震撼业界,是争取客户、打动客户并赢得口碑的关键。这需要团队各方面的努力,固件分析服务前期、中期、末期各阶段都不容忽视,也就说所谓的“全生命周期、闭环理念”。
固件分析工作如何开展?
1.首先要能够通过各种途径获取到分析对象--固件,固件提取/固件截获监听/uboot内存导出、root权限下载、厂商索要等都是可以尝试的方式。
2.明确或尝试明确固件对应设备/应用功能特点、通信接口、业务功能、技术参数等信息,初步总结出固件分析的最终达到目的。避开设备/应用信息不谈的固件分析是“不负责任”或“情不得已”的固件分析。
3.确定固件对应处理器的内核种类、指令集,明确该固件是应用处理器的固件还是微控制器的固件,因为这是两个固件分析/检测的方向,这一步相对容易。
4.熟悉固件对应芯片型号,深入分析芯片datasheet,想办法确定其内存分布空间、代码运行机制、代码加载/运行地址等细节,这一步较难、很抽象,需要有较深的相关技术背景和基础学科沉淀。
5.固件逆向分析,这一步是最难、最核心一步,对技术基础学科、技术功底、技术面、心理素质、逻辑思维等方面要求极高,尤其对硬件底层综合技术和固件编程正反向技术开发能力兼备的要求极高(这里涉及的技术点太多太广,不展开论述),这也是最容易失败、遭遇挫折的一步,分析的方法没有固定也不会固定,主要靠个人或团队经验,不同的设备,采取的固件分析方法、思路都不同。千变万化、变幻莫测。
6.“固件分析”相关的工作开展,除了讲究技术策略、技术功底外,还有什么很重要?
答曰:发散思维,最忌讳墨守成规,鼓励“自主创新”、“天马行空”、“头脑风暴”式的探索、挖掘、验证,其实这和IOT设备渗透测试、模糊测试的思维类似,这句话表面看似好理解,真正能融会贯通、深入理解运用到实际工作中却很难,包括我们安全团队自己也需要不断学习摸索。另外需持续不断学习“新”的技术知识,还要不断巩固夯实“旧”的技术基础。
7.“固件分析”与“固件攻击”两者您能联想到什么?
两者应紧密结合起来考虑,“固件攻击”是“固件分析”的升华版,以攻促防是“固件攻击”的核心出发点,也是我们安全团队的职业道德准则,只做固件分析,不考虑固件攻击,会有点“亏”,因为具备了固件分析的能力,固件攻击也近在咫尺,固件分析是服务,固件攻击是固件分析的“反”面教材,直接演示效果,很有“观赏性”、“警示性”,是最能直接拨动客户高层内心“琴弦”的”说客“,也是树立口碑、品牌推广最有效、花费成本最低的捷径之一。
关联技术不可忽略
国内或国际顶级固件分析、硬件底层、网络底层安全研究团队,我们坚信他们用到的技术绝非单一、孤成一体,而是灵活多变、有的放矢、借助其它外部关联技术、工具相辅相成、环环相扣、循序渐进的开展,包括且不限于KPI密钥管理体系、嵌入式正向开发编程、ARM硬件体系架构、汇编指令、证书文件编码格式、加解密算法特征掌握、动态协议分析验证、标准和非标准安全/非安全协议(TLS、telnet、ssh、UDS、私有CA认证协议等)熟悉、TCP/IP、CAN、UART、I2C、SPI、USB等各常用总线协议的理论知识和实践应用甚至具备开发级能力……太多太多(这是个漫长的过程,需要个人及团队不断沉淀积累,非一朝一夕之功)。
我们在分析固件时,其对应的设备种类、功能千变万化,没有上述关联技术支撑,很难有重大突破,当然即便有关联技术支撑,固件分析整个过程也很艰辛,尤其是越来越多的芯片厂商逐渐重视固件的防护,矛和盾之间的彼此竞争赛跑,谁落后就得“挨打”。
这里着重强调下TCP/IP底层网络攻击,所谓底层网络攻击,主要是相对于上层应用来区分的,典型的上层TCP/IP网络攻击包括且不限于:HTTPS截获篡改攻击、SQL注入、跨站脚本攻击(XSS)、DNS欺骗、钓鱼网站诱导等等都是TCP/IP应用层攻击,那么TCP/IP底层协议攻击包括哪些?又如何理解这些攻击背后的防护理念和技术竞争力?
答曰:包括且不限于DHCP攻击、ARP欺骗、DOS攻击、TCP半连接攻击、SYN洪流攻击、IP欺骗、IP报文攻击(如TTL值篡改)、路由表攻击、MAC欺骗、ICMP协议攻击(重定向、IPtrace嗅探)等等,运用上述攻击方法理论知识并同时具备TCP/IP驱动层编程能力(类似LINUX或WIN系统内核级TCP/IP编程),就可实现针对任意普通局域网内(相比军事网络、特定安全防御网络而言)任何上网设备,如台式机PC、笔记本电脑、手机、工控机、其它IOT智能联网设备,均可远程无接触、无需授权即可篡改这些设备的IP配置信息,如IP地址、DNS、网关等关键配置,并可获取该网络里所有或指定设备里各应用程序与外网通讯的所有TCP/IP数据流(具体可详见湖南底网安全官网另一篇文章:模拟黑客攻击视频),当然,也可进一步配合架设外部DNS欺骗服务器,实现典型的DNS欺骗攻击、网页欺骗攻击等。
结束语
上述内容均聚焦于固件分析、硬件底层、网络底层安全分析、攻防及检测三大块,这三大块是系统最脆弱、最易被攻击的地方,虽然现在很多安全公司宣称有很多安全防护技术,如沙箱隔离防护技术、零信任认证体系等,但这些都是基于上层的防御,对于硬件底层攻击毫无抵抗之力。固件分析、硬件底层、网络底层这三大块每一块都是个重要领域、一门专业,很多公司甚至是设专人专岗,独成一体甚至独成一团队,但三者又是相辅相成,你离不开我,我离不开你,我们坚信,顶级的硬件底层安全研究团队,分工明确,看问题、看需求、做事情能大胆创新、融会贯通、灵活有效运用不同技术方法、技术策略、技术验证等手段达成目标。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!