假设您受到攻击时, 你的第一反应应该是拔掉网线(如果不会影响到商业事务), 切断同互联网的物理连接. 在第一层禁用网络, 隔绝攻击者, 这是唯一正确选择(Phillip Hofmeister 的忠告).
但是,一些 rootkits 或后门能够监测到这种活动, 并对其做出反应. 当您断开网络连接,体会一下 rm -rf /, 就不觉得那么好玩了. 如果您不想冒险, 并且确定系统受到了威胁, 您应当拔掉所有电源(如果不止一个)然后祈祷. 这也许有点极端, 实际上, 将会避免入侵者可能编制的任何一个逻辑炸弹. 这种情况下, 受到威胁的系统不应当重起. 要么将硬盘挂接到别的系统上分析, 要么使用别的介质(如光盘)引导系统, 进行分析. 您不应当使用 Debian 的救援盘进行引导系统, 但是您可以使用安装盘提供的 shell(记住, 您可以使用 Alt+F2 切换)来分析这个系统. [45]
推荐的方法是使用光盘上的带有各种访问受损系统所需要的工具(和内核模块)的 Live
系统来恢复一个受损的系统. 您可以使用 mkinitrd-cd
软件包来构建一张这种光盘 [46]. 您也许发现 FIRE
(以前叫做
Biatchux)光盘此时非常有用.
因为它也是一个带有在此情况下非常有用的判断工具的live 光盘. 现在(仍然)没有基于
Debian 的类似工具, 也没有使用您选择的 Debian 软件包和 mkinitrd-cd
构建光盘的方法(所以您不得不阅读它提供的文档来构建您自己的光盘).
如果您确实想快速修复一个受损的系统, 应当从您的网络中移除受损的主机,
然后重装操作系统. 当然, 这也许不是很有效, 因为您无法从中学到入侵者如何获取的
root. 这中情况下您必须全面检查: 防火墙, 文件的完整性, 日志主机, 日志文件,
等等. 关于被入侵之后怎么办 的更多信息, 参见 Sans 的 Incident Handling
Guide
或 CERT 的 Steps for
Recovering from a UNIX or NT System Compromise
.
一些关于如何处理一个受损的 Debian GNU/Linux 系统的常见问题列表可以参见 我的系统存在漏洞!(您确认吗?), 第 11.2 节.
记住, 如果您确认系统受损, 就不能再信任安装的软件, 以及任何其反馈的信息了. 应用程序可能被安装了木马, 内核模块可能被改动, 等等.
在从一个安全的介质启动后, 最好对系统做一个完整的备份(使用 dd
).
Debian GNU/Linux 光盘做这个得心应手, 因为安装开始后其在 控制台2 提供了一个
shell(使用 Alt+F2 和回车进入). 如果可能, 使用这个 shell
将资料备份到其他主机(可以是来自 NFS/FTP 的网络文件服务器).
然后对受损的系统进行分析, 或者断开网络后进行重装.
如果您确认只是被安装了木马内核模块, 则可以以救援模式从 Debian 光盘运行内核影像. 然后确认以单用户模式启动, 这样木马进程就不会在内核之后运行了.
CERT (计算机应急响应小组)是可以帮助您恢复受损系统的一个组织. 全世界有很多 CERT, [47] 当安全问题发生导致系统受损时, 您应当同您当地的 CERT 联系. 当地 CERT 的人员会帮助您恢复系统.
向您当地的 CERT(或 CERT 协调中心)提供关于受损系统的信息, 即使您不寻求帮助,
这样也可以帮助其他人, 因为事故报告的集中信息可以用于分析某个漏洞是否广泛存在,
是否是一个新的蠕虫, 是否使用了新的攻击工具. 这类信息可以用于为互联网社区提供
有关 当前安全事件活动情况
的信息,
张贴 事故注意事项
, 甚至
公告
.
更加详细的信息请阅读 CERT的事故报告指南中
的如何(为什么)报告事故.
如果您需要从受损系统中恢复, 或者想讨论事故信息, 也可以使用不正规的机制. 这包括
事故邮件列表
, 和
入侵邮件列表
.
如果您希望收集更多信息, tct
(The Coroner's Toolkit from Dan Farmer
and Wietse Venema) 软件包包含了能完成对系统"尸检"的工具,
tct
允许用户收集被删除文件, 运行进程, 等的信息,
根多信息参见软件包提供的文档. 您也可以使用 Brian Carrier 提供的类似的 Sleuthkit and Autopsy
软件包.
在 Debian 的发行版中也提供了一些其他的工具用于事故分析:
Fenris
.
Strace
.
Ltrace
.
这些软件包都可用于分析欺骗性程序(譬如后门), 来确定它们是如何工作的,
以及他们对系统做了什么. 其他一些通用工具包括 ldd
(在
libc6
中).
如果您要对后门或者源自受损系统的可疑程序进行事故分析,
则应该在一个安全的环境里进行(例如在一个 bochs
或
flex86
影像里, 或使用低权限用户 chroot
一个环境).
否则您自己的系统也可能被开后门或泄漏 root 权限!
并且,记住, 应当在数据的备份拷贝上完成事故分析, 不要在数据本身上进行. 因为在此过程中数据是改变的, 会造成证据丢失.
FIXME: 希望将来本段增加更多有关在 Debian 系统中事故分析的信息.
FIXME: 讨论关于如何在 CD 上一个带有 MD5sums 的 stable 系统中完成一个 debsums 和在一个独立的分区中恢复文件系统
FIXME 添加事故分析的关键知识点 (如 Honeynet 的 reverse challenge 或 David Dittirch's
papers
.
Securing Debian Manual
v3.2, Mon, 20 Jun 2005 08:01:11 +0000jfs@debian.org
etony@tom.com