意识到!在您居住的地方创建间谍软件、计算机病毒和类似的恶意软件可能是非法的,并且几乎每个人都认为这是极其不道德的。尽管如此,我还是需要提出这个问题,以提高人们对创建一个是多么容易的认识。在 W32/Induc-A 被一个想出一种令人讨厌的方式来传播它的人介绍给这个世界之后,我问这个问题。所以我想知道病毒是如何制造出来的,这样我将来就能识别它们!
最近发现了一种新病毒,它通过替换开发人员的库代码副本进行自我传播。实际上,通过 Delphi 4 到 7 的源代码。发生的事情是,有一种病毒在野外搜索计算机中名为 SYSCONST.PAS 的文件,它会将自己作为源代码添加到该文件中。该文件恰好是 Delphi 运行时库的源文件。(此运行时源代码可供 Delphi 开发人员使用。)因此,在被感染后,程序员会在不知情的情况下创建该病毒的许多新版本。由于病毒扫描程序有时会产生误报,因此许多开发人员可能会决定忽略扫描程序的警告,甚至可能在构建项目时禁用扫描程序。更糟糕的是,他们的项目甚至可能触发客户的扫描仪,所以这些程序员很可能会赢。t 检查他们的源代码,但会试图以某种方式欺骗扫描仪。也就是说,如果病毒扫描程序甚至能够识别病毒,这不太可能。因此,我们软件开发人员可能会在没有意识到我们在做什么的情况下制造病毒!
那么,如何制造病毒呢?很简单:让你的源代码被病毒感染,你就完成了!
好的,所以Delphi 4到7的源代码可能被感染了。所有 Delphi 开发人员,请检查您的源文件!该案例只是一个概念验证,显然它可以非常成功。此外,大多数病毒扫描程序不会检查源代码,而只关注可执行文件。这种病毒可能会在很长一段时间内未被发现。
该病毒之所以成功,也是因为它滥用了源代码。Delphi 是一个商业项目,源代码可用。但是谁能确定这些黑客不会以类似的方式攻击开源项目呢?那里有很多开源项目,谁来检查它们以确保它们都表现得体面?如果有人在检查代码,他能识别出是否是恶意代码吗?
因此,为了确保我们能够识别恶意源代码,我不得不问:如何创建病毒?如何识别会产生病毒的代码?大多数恶意软件想要做什么?
关于 Delphi 运行时源代码有一些讨论,关于该代码是否开源。从他们开始使用 Kylix 支持 Linux 的那一刻起,Borland 就为其源代码使用双重许可证。结果,源代码声明了一个“GPL”符号,指示库是否编译为 GPL 代码。作为 GPL,源代码将是开源的。这也恰好是被病毒攻击的源版本。无论如何,为了避免在这里讨论,我在这里问了这个问题所以我们可以更多地关注病毒问题而不是德尔福。基本上,我们谈论的是一种攻击源代码的病毒。从技术上讲,所有源代码都可能存在风险,但开源代码是一个可能的候选者,因为黑客知道它的结构并且可以针对那些很少修改、因此很少检查的文件。(而且如果他们可以侵入 CVS 系统,他们甚至可以抹去修改的痕迹,这样就不会有人注意到修改了!)
