
<chapt id="after-compromise">攻陷之后(事件响应)

<sect>常见方法

<p>假设您受到攻击时, 你的第一反应应该是拔掉网线(如果不会影响到商业事务), 
切断同互联网的物理连接. 在第一层禁用网络, 隔绝攻击者, 这是唯一正确选择(Phillip Hofmeister 的忠告).

<p>但是，一些 rootkits 或后门能够监测到这种活动, 并对其做出反应. 
当您断开网络连接,体会一下 <tt>rm -rf /</tt>, 就不觉得那么好玩了. 
如果您不想冒险, 并且确定系统受到了威胁, 您应当<em>拔掉所有电源</em>(如果不止一个)然后祈祷. 
这也许有点极端, 实际上, 将会避免入侵者可能编制的任何一个逻辑炸弹. 
这种情况下, 受到威胁的系统<em>不应当重起</em>. 要么将硬盘挂接到别的系统上分析, 
要么使用别的介质(如光盘)引导系统, 进行分析. 您<em>不</em>应当使用 Debian 的救援盘进行引导系统, 
但是您<em>可以</em>使用安装盘提供的 shell(记住, 您可以使用 Alt+F2 切换)来分析这个系统.

<footnote>
如果喜欢冒险, 您可以登入系统, 并保存所有正在运行进程的信息(大部分可以从 /proc/nnn/ 获取).从内存中获取所有正在运行的代码也是可能的, 甚至入侵者从硬盘上删除的文件. 然后关掉电源.</footnote>

<p>推荐的方法是使用光盘上的带有各种访问受损系统所需要的工具(和内核模块)的 Live 系统来恢复一个受损的系统.
您可以使用 <package>mkinitrd-cd</package> 软件包来构建一张这种光盘
<footnote>事实上, 这是 <url id="http://www.gibraltar.at/" name="Gibraltar"> 项目(一个基于 Debian 的构建在CDROM上的防火墙.)用来构建CDROMs的工具.</footnote>. 您也许发现 <url
id="http://biatchux.dmzs.com/" name="FIRE">(以前叫做  Biatchux)光盘此时非常有用. 
因为它也是一个带有在此情况下非常有用的判断工具的live 光盘. 现在(仍然)没有基于 Debian 的类似工具, 
也没有使用您选择的 Debian 软件包和 <package>mkinitrd-cd</package>
构建光盘的方法(所以您不得不阅读它提供的文档来构建您自己的光盘).

<p>如果您确实想快速修复一个受损的系统, 应当从您的网络中移除受损的主机, 然后重装操作系统. 
当然, 这也许不是很有效, 因为您无法从中学到入侵者如何获取的 root. 这中情况下您必须全面检查: 
防火墙, 文件的完整性, 日志主机, 日志文件, 等等. 关于被入侵之后怎么办 的更多信息, 参见
<url name="Sans 的 Incident Handling Guide"
id="http://www.sans.org/y2k/DDoS.htm"> 或 <url
id="http://www.cert.org/tech_tips/root_compromise.html" name="CERT 的
Steps for Recovering from a UNIX or NT System Compromise">.

<p>一些关于如何处理一个受损的 Debian GNU/Linux 系统的常见问题列表可以参见 <ref id="vulnerable-system">.

<sect>备份系统

<p>记住, 如果您确认系统受损, 就不能再信任安装的软件, 以及任何其反馈的信息了. 
应用程序可能被安装了木马, 内核模块可能被改动, 等等.

<p>在从一个安全的介质启动后, 最好对系统做一个完整的备份(使用 <prgn>dd</prgn>). 
Debian GNU/Linux 光盘做这个得心应手, 因为安装开始后其在 控制台2 提供了一个 shell(使用 Alt+F2 和回车进入). 
如果可能, 使用这个 shell 将资料备份到其他主机(可以是来自 NFS/FTP 的网络文件服务器). 
然后对受损的系统进行分析, 或者断开网络后进行重装.

<p>如果您确认只是被安装了木马内核模块, 则可以以<em>救援</em>模式从 Debian 光盘运行内核影像. 
然后确认以<em>单用户</em>模式启动, 这样木马进程就不会在内核之后运行了.

<sect>联系您当地的 CERT
<p>CERT (计算机应急响应小组)是可以帮助您恢复受损系统的一个组织. 
全世界有很多 CERT, 
<footnote>
这是一些 CERTS 的列表, 更见完整的列表查看 
<url id="http://www.first.org/about/organization/teams/index.html" name="FIRST Member Team
information"> (FIRST 是事件响应和安全小组的论坛):
<url id="http://www.auscert.org.au" name="AusCERT"> (澳大利亚),
<url id="http://www.unam-cert.unam.mx/" name="UNAM-CERT"> (墨西哥)
<url id="http://www.cert.funet.fi" name="CERT-Funet"> (芬兰),
<url id="http://ww.dfn-cert.de" name="DFN-CERT"> (德国), 
<url id="http://cert.uni-stuttgart.de/" name="RUS-CERT"> (德国),
<url id="http://idea.sec.dsi.unim.it" name="CERT-IT"> (意大利),
<url id="http://www.jpcert.or.jp/" name="JPCERT/CC"> (日本),
<url id="http://cert.uninett.no" name="UNINETT CERT"> (挪威),
<url id="http://www.cert.hr" name="HR-CERT"> (克罗地亚)
<url id="http://www.cert.pl" name="CERT Polskay"> (波兰),
<url id="http://www.cert.ru" name="RU-CERT"> (俄罗斯),
<url id="http://www.arnes.si/si-cert/" name="Sl-CERT"> (斯洛文尼亚)
<url id="http://www.rediris.es/cert/" name="IRIS-CERT"> (西班牙),
<url id="http://www.switch.ch/cert/" name="SWITCH-CERT"> (瑞士),
<url id="http://www.cert.org.tw" name="TWCERT/CC"> (台湾), 
and
<url id="http://ww.cert.org" name="CERT/CC"> (美国).
</footnote>
当安全问题发生导致系统受损时, 您应当同您当地的 CERT 联系. 当地 CERT 的人员会帮助您恢复系统.

<p>向您当地的 CERT(或 CERT 协调中心)提供关于受损系统的信息, 即使您不寻求帮助, 
这样也可以帮助其他人, 因为事故报告的集中信息可以用于分析某个漏洞是否广泛存在, 
是否是一个新的蠕虫, 是否使用了新的攻击工具. 这类信息可以用于为互联网社区提供
有关 <url id="http://www.cert.org/current/" name="当前安全事件活动情况"> 的信息, 张贴 <url id="http://www.cert.org/incident_notes/" name="事故注意事项">, 
甚至 <url id="http://www.cert.org/advisories/" name="公告">. 更加详细的信息请阅读 <url id="http://www.cert.org/tech_tips/incident_reporting.html"
name="CERT的事故报告指南中"> 的如何(为什么)报告事故.

<p>如果您需要从受损系统中恢复, 或者想讨论事故信息, 也可以使用不正规的机制. 这包括
<url id="http://marc.theaimsgroup.com/?l=incidents" name="事故邮件列表">, 
和 <url id="http://marc.theaimsgroup.com/?l=intrusions" name="入侵邮件列表">.


<sect>事故分析

<p>如果您希望收集更多信息,  <package>tct</package>
(The Coroner's Toolkit from Dan Farmer and Wietse Venema) 软件包包含了能完成对系统"尸检"的工具, <package>tct</package> 允许用户收集被删除文件, 运行进程, 等的信息, 根多信息参见软件包提供的文档.
您也可以使用 Brian Carrier 提供的类似的 <url name="Sleuthkit and Autopsy" id="http://www.sleuthkit.org/">软件包.

<p>在 Debian 的发行版中也提供了一些其他的工具用于事故分析:

<list>
<item><package>Fenris</package>.
<item><package>Strace</package>.
<item><package>Ltrace</package>.
</list>

<p>这些软件包都可用于分析欺骗性程序(譬如后门), 来确定它们是如何工作的, 
以及他们对系统做了什么. 其他一些通用工具包括 <prgn>ldd</prgn>(在 <package>libc6</package> 中).

<p>如果您要对后门或者源自受损系统的可疑程序进行事故分析, 
则应该在一个安全的环境里进行(例如在一个 <package>bochs</package> 或 <package>flex86</package> 影像里, 
或使用低权限用户 <prgn>chroot</prgn> 一个环境). 否则您自己的系统也可能被开后门或泄漏 root 权限!

<p>并且，记住, 应当在数据的备份拷贝上完成事故分析, <em>不要</em>在数据本身上进行. 
因为在此过程中数据是改变的, 会造成证据丢失.

<p>FIXME: 希望将来本段增加更多有关在 Debian 系统中事故分析的信息.

<p>FIXME: 讨论关于如何在 CD 上一个带有 MD5sums 的 stable 系统中完成一个 debsums 
和在一个独立的分区中恢复文件系统

<p>FIXME 添加事故分析的关键知识点 (如 Honeynet 的
reverse challenge 或 <url id="http://staff.washington.edu/dittrich/"
name="David Dittirch's papers">.
