僵尸网络是受感染计算机的集合,每台计算机都被称为“机器人”,连接到 Internet。当计算机受到攻击者的入侵时,恶意软件中通常会有代码命令它成为僵尸网络的一部分。“botmaster”或“bot herder”通过基于标准的网络协议(如 IRC 和 http)控制这些受感染的计算机。
有没有办法检测您的计算机正被用于基于僵尸网络的 DDoS 攻击?
是否有一些工具(例如软件)可以检测到奇怪的流量并利用我的计算机上的活动?
僵尸网络是受感染计算机的集合,每台计算机都被称为“机器人”,连接到 Internet。当计算机受到攻击者的入侵时,恶意软件中通常会有代码命令它成为僵尸网络的一部分。“botmaster”或“bot herder”通过基于标准的网络协议(如 IRC 和 http)控制这些受感染的计算机。
有没有办法检测您的计算机正被用于基于僵尸网络的 DDoS 攻击?
是否有一些工具(例如软件)可以检测到奇怪的流量并利用我的计算机上的活动?
没有简单的方法可以检测您的机器是否是僵尸网络的一部分。相反,最好的防御是预防:首先避免被感染。
关于如何避免安全漏洞的文章很多,这里就不多说了。作为初学者,您可以阅读例如面向非技术用户的安全指南、Windows 强化、强化 Linux 服务器或安全 Linux 桌面。快乐阅读!
在运行之前分析内核和可执行文件通常是一种安全的做法,但最好与强大的操作系统访问控制模型(例如 SELinux)结合使用。
虽然很难在自修改或自检代码中找到后门,但自修改或自检代码本身的存在通常是恶意软件的一个指标。例如,MANDIANT Red Curtain 工具可以帮助恶意软件分析师检测代码部分中的高熵,或这些部分中的奇怪名称/模式。
此外,还存在许多其他实践(并非全部都记录在案),例如跟踪、仿真等。将所有这些方法结合到一个工具或技术中并不常见,因为恶意软件分析人员通常会从静态分析转向动态分析,然后很快又返回(以便获得洞察力)。但是,使用最少的工具集的分阶段方法可以在很短的时间内完成很多工作。例如,我经常在 PE 可执行文件上使用pescanner.py,然后在沙箱中运行它,同时使用 PE 进程内存转储器和用于跟踪的工具,例如PIN。
最近的一些文献在这个研究领域越来越好。
首先,您不能信任受感染的计算机,因为所有实用程序的输出都可能被伪造以隐藏恶意活动的存在。
我通常不会期望任何具有强大安全实践的计算机成为僵尸网络的一部分。一个您只安装来自受信任来源的代码、具有强密码(未在其他地方使用)等的地方。除非我的 ISP 说他们从我的 IP 地址收到异常活动的报告,表明潜在的机器人,或者用户告诉我他们被诱骗安装了与宣传不符的软件,现在他们意识到这很可能是一个特洛伊木马。
在这些情况下,我会开始测试潜在机器人的迹象:
监控网络活动。运行netstat
——所有连接或多或少都有意义吗?(忽略本地连接;在我不认识的外国 IP 上运行 whois)。请记住netstat
的输出可能是伪造的,因此您还可以从我本地网络上的另一台计算机(假定安全)运行 wireshark(网络分析器),并检查是否有任何异常流量进出奇怪的非本地 IP 地址(那不是我的路由器/网络打印机等的日常工作)?
启动到同一发行版的live cd(因此您信任实用程序),并在重要实用程序(/bin
、/sbin/
、/usr/bin/
等)上运行校验和 (md5) 并与具有相同操作系统/版本的安全计算机的已知校验和进行比较(或进行全新安装并运行所有更新,然后生成校验和以进行比较)。(如果校验和不匹配,可能是由于实用程序的更新;因此请检查版本并进一步调查)。我假设这个答案是 linux/unix 系统,但如果你知道要检查什么,大概你可以对 windows 做同样的事情。
如果您发现了机器人的证据,我会备份我的数据(即非可执行文件),将硬盘擦干净,然后使用不同的密码从安全的来源重新安装操作系统。我会非常小心地从受感染的计算机中打开可能包含宏(例如,doc、pdf)的文档(确保在再次查看这些文件之前禁用相关程序中的宏,而不是以管理员/root 身份登录,并安装病毒扫描程序)。
一个非常好的机器人会将自己隐藏在内核之外。
检测它的唯一方法是使用外部已知良好的机器嗅探机器和互联网之间的流量。即使那样,也无法知道机器人在您寻找它时是否只是处于休眠状态。
另一种选择是从已知良好(最好是只读)媒体(例如 CD 或 DVD)引导机器,并对机器进行取证分析以寻找感染痕迹。