加密通信协议的一种逆向分析方法

0 引言

同类对比

  1. Discoverer
    采用递归聚类技术将具有相似格式的消息组合在一起, 分析速度快, 自动化程度高。但其缺乏对协议中语义信息的解析,存在准确性不高、不 能 处 理 加 密 通 信 等 局 限。
  2. Polyglot
    采 用 了 一 种shadowing方法来监视应用程序对协议数据的处理过程,并通过分析应用程序对协议数据进行处理时的二进制信息来提取协议格式,准确性更高,也能解析出更多的协议信息。
    但 Polyglot也无法解析加密通信协议。
  3. AutoFormat的关键思想是同一条协议消息中不同协议字段被处理时的执行上下文一般不同。因此通过对每个消息字节的执行上下文信息进行聚类即可推断出协议字段组成。
    但 AutoFormat 不能处理经过混淆的恶意代码,对加密通信数据也无法处理。
  4. Reformat通过统计函数片段中算术和逻辑指令所占的比例来定位协议解密过程,进而定位协议明文数据。
    但 Reformat 只考虑了简单软件的通信实现
    情况,对于协议数据经过分段加密、多重加密等情况未予考虑

1 本文思想简介

基于动态污点分析的加密通信协议逆向分析方法,利用动态二进制插桩平台 Pin[6] 将目标程序通信过程中的程序轨迹记录成二进制文件,并以这些文件作为分析基础,采用数据流分析构建指令级和函数级的污点传播图还原程序的函数调用和函数的参数信息,再利用提取的解密过程的特征定位协议数据的解密函数, 进而定位解密的明文, 最后对协议明文的格式进行解析


插桩:探针,进行信息采集的代码段
轨迹文件:程序运行时的指令序列
污点分析:通过对带污点标记的数据的传播实施分析来达到保护数据完整性和保密性的目的

2 思路

2.1 动态执行轨迹记录

定义一 . 协议逆向分析
对于一条协议消息 M, 对它进行逆向分析是指将 M 还原成符合协议规范的 n 个字段
Fieldi = { rangei,valuei,typei}={偏移范围,取值,类型}
定义二 . 加密协议逆向分析
对于一条加密协议消息M* ,对 它 进 行 逆 向 分 析 是 指 找 到 消 息 明 文 M
M =D( M* )
定义三。执行轨迹
执行轨迹是指程序运行时的指令序列,记做 Trace〈I, N〉
定义四。污点源
指污点分析需要关注的关键数据,在协议分析中污点源指程序收到的数据包, 记为
TS〈Addr,Length〉

方法
编写了基于动态分析平台 Pin 的指令轨迹记录插件,记录目标程序在网络通信过程中的运行轨迹信息,每条指令信息包括指令地址、字节码、线程号以及访问的寄存器和内存...

2.2 污点分析

1 中间语言
将复杂指令简单统一化
2 污点传播规则
当污点内容从一个位置传递到另一个位置时,则认为发生了污点传播
3 污点传播结果表示

a) 标记接收到的数据包的所有字节为初始污点,分析,构建函数级污点传播流图
b) 函数级污点传播流图用于按时间顺序存储污点数据处理相关的所有函数 TaintedFunc〈Addr,MemSet〉, 是对程序源码的一个近似化还原,从函数角度反映程序的执行轨迹, 对程序的
抽象理解很有帮助
c)统计每个函数的访问内存情况,把每个函数读取的内存地址和第一次读取的值作为函数的输入,把函数写入的内存地址和最后一次写入的值作为函数的输出,将相邻的内存地址当做一个整体, 作为函数最终的输入和输出参数。同时记录各个参数的污点状态,最终构成函数级的污点传播流图

2.3 解密过程识别

软件的加密通信过程如图 3 所示, 可以看出, 以接收到的数据包为起点,沿着程序执行轨迹向前跟踪, 理论上就可以找到数据包的解密过程,进而得到数据包在软件内的明文数据


image.png

根据污点传播图,逆向退出协议数据在程序中的传播轨迹,还原出函数之间的调用关系以及函数参数信息

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容