安全与密码学2017usenix.org
神经网络可以从二进制文件中学习函数类型签名
Neural Nets Can Learn Function Type Signatures from Binaries
进阶 · 约 60 分钟读完前置知识:二进制反汇编基础、循环神经网络、编译器调用约定
导读
这篇论文提出 EKLAVYA,用循环神经网络从反汇编的二进制代码中恢复函数参数数量和类型签名,且不依赖目标指令集语义的先验知识。作者在 clang/gcc 编译的 Linux x86/x64 二进制上评估,参数数量恢复准确率约 84%,类型恢复约 81%,并称模型自动学到了编译器约定、栈帧设置等线索。
HN 关注点:机器学习用于反编译/逆向工程的前景:能否从二进制中恢复编译时丢失的高级信息。
HN 评论精选
这几条评论里:支持 1 补充 2
补充概括论文方法、自动学到的线索与准确率。
TLDR:论文提出 EKLAVYA,训练循环神经网络从反汇编二进制代码中恢复函数类型签名,并且不假设了解目标指令集的语义。分析模型发现,它自动学到了指令之间的关系、编译器约定、栈帧设置指令、写前使用模式以及和类型识别相关的操作。在 clang 和 gcc 编译的 Linux x86/x64 二进制上,参数数量恢复和类型恢复的准确率分别约为 84% 和 81%。
dmix查看英文原文
TLDR: > In this paper, we present a new system called EKLAVYA which trains a recurrent neural network to recover function type signatures from disassembled binary code. EKLAVYA assumes no knowledge of the target instruction set semantics to make such inference. > [..] we find by analyzing its model that it auto-learns relationships between instructions, compiler conventions, stack frame setup instructions, use-before-write patterns, and operations relevant to identifying types directly from binaries. > In our evaluation on Linux binaries compiled with clang and gcc, for two different architectures (x86 and x64), EKLAVYA exhibits accuracy of around 84% and 81% for function argument count and type recovery tasks respectively.
支持认为 ML 反编译可行,训练数据易得且可恢复变量名等信息。
我很久以来就有个想法:用机器学习构建反编译器(把二进制映射回源码的程序)。反编译的难点在于编译源码时会丢失信息;机器学习甚至可能帮助恢复最可能的变量名。而且有大量训练数据可以很容易地生成。
ma2rten查看英文原文
I've long had this idea to build a decompiler (a program that maps binaries back to source code) using machine learning. The problem in decompilation is that you loose information when you compile source code. Machine learning could help even recover things like most likely variable names. There is also tons of training data that can be easily generated.
补充延伸讨论学习理论极限并求相关文献。
我常思考神经网络从样例中学习的理论极限,这似乎是个很有意义、影响广泛的话题。快速搜索后我找到这篇论文:https://experts.illinois.edu/en/publications/computational-limitations-on-learning-from-examples ,已经很有意思。还有其他好的资料推荐吗?
placebo查看英文原文
I've often wondered about the theoretical limit of a neural net to learn from examples - seems like a fascinating subject with a lots of implications. From a quick search, I found this paper: https://experts.illinois.edu/en/publications/computational-limitations-on-learning-from-examples which is already very interesting. Are there any other good pointers on this?
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2017Hacker News 讨论帖213 分 · 43 评
同领域还值得读
如何入侵一台已关机的电脑:在 Intel ME 中运行未签名代码
How to hack a turned-off computer, or running unsigned code in Intel ME
这篇 Black Hat 2017 白皮书讨论 Intel Management Engine(ME)的安全问题:如何在 ME 中运行未签名代码,以及攻破处于关机状态的电脑的相关…
安全与密码学2017 · 543 分 · 107 评专业 · 约 40 分钟编辑精选比特币:一种点对点的电子现金系统(2008)
Bitcoin: A Peer-to-Peer Electronic Cash System (2008)
中本聪 2008 年发表的比特币白皮书,提出了无需可信第三方的点对点电子现金系统。
安全与密码学2017 · 536 分 · 394 评入门 · 约 45 分钟编辑精选GPRS 加密算法 GEA-1 的密码分析表明存在故意弱点
Cryptanalysis of GPRS Encryption Algorithms GEA-1 suggest intentional weakness
首次公开了对 GPRS 加密算法 GEA-1 和 GEA-2 的密码分析攻击。
安全与密码学2021 · 487 分 · 107 评专业 · 约 90 分钟编辑精选Signal 消息协议的形式化安全分析
A Formal Security Analysis of the Signal Messaging Protocol
用形式化方法分析 Signal 消息协议(TextSecure)的安全性:作者在多阶段密钥交换模型下,借助自动化证明工具对协议的密钥协商与 Double Ratchet 密钥更新…
安全与密码学2016 · 353 分 · 230 评专业 · 约 120 分钟编辑精选A2:模拟恶意硬件
A2: Analog Malicious Hardware
论文研究如何在芯片设计阶段植入模拟电路形式的恶意硬件后门,使其难以被常规检测发现。
安全与密码学2016 · 315 分 · 94 评专业 · 约 75 分钟编辑精选