【问题标题】:Determining the country of origin for an exe/dll file确定 exe/dll 文件的来源国
【发布时间】:2015-02-06 02:05:16
【问题描述】:
我有疑问,如何得出 exe/dll 来自特定国家的结论? PE 结构中是否有保存此信息的字段?
我知道此类信息(时间戳等)可能会被覆盖,并且无法 100% 确定,但仍然......在大多数恶意样本分析报告中总会有这样的声明,例如“这样本似乎来自 xyz 国家”。
我想要一个没有工具作为解决方案的答案。
【问题讨论】:
标签:
windows
security
reverse-engineering
portable-executable
malware-detection
【解决方案1】:
PE/COFF 格式中没有任何字段或元数据会泄露节目来源国的任何指示。 PE 规范可在此处获得:http://msdn.microsoft.com/en-us/windows/hardware/gg463119.aspx - 它确实包含应由编译器设置的时间戳字段,但这很容易伪造。
我了解(尽管不确定)恶意软件的来源国是通过与生物流行病学相同的方式确定的:通过将感染追溯到源头,并且考虑到互联网的运作方式,这非常困难。通常,通过 HTTP 传播的感染(例如)可以通过具有源 IP 地址的网络服务器日志文件进行检查,然后可以对其进行地理定位。
其他时候恶意软件包含关于其来源的直接线索 - 对于老式恶意软件(想想:ILOVEYOU),作者的狂妄自大是他们的垮台,在 ILOVEYOU 案例中,作者实际上输入了“by: spyder / ispyder@mail.com / @GRAMMERSoft Group / Manila,Philippines" 直接在编写病毒的 VBScript 源代码中。
对于表面上是在中国或朝鲜编写的病毒(您可能在暗示 - 考虑到索尼影业最近的攻击消息),他们可能会根据程序中包含的字符串做出有根据的猜测,这些字符串是中文或韩文/字符。
...依赖这些启发式方法的问题在于,很容易“框定”一个国家并让某人离开你的踪迹。如果我缺乏道德部门,我可以通过编写包含外文字符串的病毒并使用 Tor 或其他网络从另一个国家/地区发起攻击,从而不留下任何暗示真正的起源。
简而言之,我不相信任何人都可以真正知道 - 大多数情况下是基于目标的猜测以及谁最讨厌目标 - 或者实体无意中透露他们编写了它的情况(例如以色列和 Stuxnet) .
【解决方案2】:
了解可执行文件的原产国的一种可能方法是检查字符串部分,看看您是否可以找到返回某个主机服务器的任何链接。这可能表明用户正在尝试使用您的 exe 将一些信息/数据发送回其自己的服务器。
Dai 建议的另一种解决方案是搜索字符串以查找字符串并检查其可能指示原产国的语言。
但是对于这两种解决方案,可能会更改语言以使您偏离正轨,或者由于各种原因在某些不同的国家/地区选择了服务器。因此,对于 exe/dll 文件的来源国并没有明确的方法,但您可以做出合乎逻辑的猜测。