您应该努力保持系统安全,方法是监控其使用情况以及可能影响它的漏洞,并在补丁可用时立即修补它们。即使您最初安装了一个非常安全的系统,您也必须记住,系统中的安全性会随着时间的推移而降低,可能会发现暴露的系统服务的安全漏洞,并且用户可能会由于缺乏理解(例如,使用明文协议远程访问系统或使用容易猜测的密码)或因为他们正在积极尝试破坏系统的安全性(例如,在其帐户上本地安装其他服务)而暴露系统安全。
尽管大多数管理员在看到可用的补丁时都意识到影响其系统的安全漏洞,但您可以通过检测系统何时易受攻击来努力领先于攻击并引入针对安全漏洞的临时对策。当运行暴露的系统(即连接到互联网)并提供服务时,情况尤其如此。在这种情况下,系统管理员应注意监控已知的信息来源,以便在检测到可能影响关键服务的漏洞时第一时间知晓。
这通常包括订阅公告邮件列表、项目网站或特定代码的软件开发人员提供的错误跟踪系统。例如,Apache 用户应定期查看 Apache 的 安全漏洞列表
并订阅 Apache 服务器公告
邮件列表。
为了跟踪影响 Debian 发行版的已知漏洞,Debian 测试安全团队提供了一个 安全跟踪器
,其中列出了 Debian 软件包中尚未修复的所有已知漏洞。该跟踪器中的信息通过不同的公共渠道获得,包括通过安全漏洞数据库或 Debian 的错误跟踪系统
获得的已知漏洞。管理员可以搜索为 stable
、oldstable
、testing
或 unstable
版本跟踪的已知安全问题。
该跟踪器具有可搜索的界面(按 CVE
名称和软件包名称)和一些工具(例如 debsecan
,请参阅 使用 debsecan 自动检查安全问题,10.1.2.4 节)使用该数据库来提供有关影响给定系统但尚未解决的漏洞的信息(即那些正在等待修复的漏洞)。
有意识的管理员可以使用该信息来确定哪些安全漏洞可能影响他们管理的系统,确定漏洞的严重性,并在补丁可用之前应用(如果可用)临时对策来修复此问题。
Debian 安全团队支持的版本跟踪的安全问题最终应通过 Debian 安全公告 (DSA) 处理,并将对所有用户可用(请参阅 持续更新系统,10.1.2 节)。一旦安全问题通过公告修复,它们将不会在跟踪器中可用,但您可以使用 安全交叉引用表
搜索安全漏洞(按 CVE 名称),该表可用于已发布的 DSA。
但是请注意,Debian 测试安全团队跟踪的信息仅涉及已披露的漏洞(即那些已公开的漏洞)。在某些情况下,Debian 安全团队可能会处理和准备基于提供给他们的未公开信息(例如,通过封闭的供应商邮件列表或软件的上游维护人员)的软件包的 DSA。因此,如果发现某些安全问题仅显示为公告,但从未在安全跟踪器中显示,请不要感到惊讶。
您应该经常进行安全更新。正如 Bill Arbaugh 的论文
(在 2001 年 IEEE 安全与隐私研讨会上发表)所解释的那样,绝大多数漏洞利用都是由于已知漏洞没有及时修补造成的。更新在 执行安全更新,4.2 节 中描述。
Debian 确实有一个特定的工具来检查系统是否需要更新,但许多用户只想手动检查他们的系统是否有任何安全更新可用。
如果您已按照 执行安全更新,4.2 节 中的描述配置了系统,您只需执行
# apt-get update # apt-get upgrade -s [ ... review packages to be upgraded ... ] # apt-get upgrade # checkrestart [ ... restart services that need to be restarted ... ]
并重启任何库已更新的服务(如果有)。注意:阅读 执行安全更新,4.2 节 以获取有关库(和内核)升级的更多信息。
第一行将从您配置的软件包源下载可用软件包的列表。-s 将执行模拟运行,也就是说,它不会下载或安装软件包,而是告诉您应该下载/安装哪些软件包。从输出中,您可以推断出哪些软件包已由 Debian 修复并作为安全更新提供。示例
# apt-get upgrade -s Reading Package Lists... Done Building Dependency Tree... Done 2 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Inst cvs (1.11.1p1debian-8.1 Debian-Security:3.0/stable) Inst libcupsys2 (1.1.14-4.4 Debian-Security:3.0/stable) Conf cvs (1.11.1p1debian-8.1 Debian-Security:3.0/stable) Conf libcupsys2 (1.1.14-4.4 Debian-Security:3.0/stable)
在此示例中,您可以看到系统需要使用新的 cvs
和 cupsys
软件包进行更新,这些软件包是从 woody 的安全更新归档中检索的。如果您想了解为什么需要这些软件包,您应该访问 http://security.debian.org
并检查最近发布了哪些与这些软件包相关的 Debian 安全公告。在本例中,相关的 DSA 是 DSA-233
(针对 cvs
)和 DSA-232
(针对 cupsys
)。
请注意,如果进行了内核升级,您将需要重启系统。
自 Debian 4.0 lenny 以来,Debian 在默认安装中提供并安装了 update-notifier
。这是一个 GNOME 应用程序,当您进入桌面时启动,可用于跟踪系统可用的更新并安装它们。它为此使用了 update-manager
。
在稳定系统中,只有在安全补丁可用或在 point release 时才提供更新。因此,如果系统已正确配置为接收安全更新,如 执行安全更新,4.2 节 中所述,并且您有一个 cron 任务正在运行以更新软件包信息,您将通过桌面通知区域中的图标收到通知。
通知不会打扰用户,并且用户不会被迫安装更新。桌面用户(使用管理员密码)可以从通知图标访问一个简单的 GUI,以显示可用的更新并安装它们。
此应用程序的工作原理是检查软件包数据库并将系统与其内容进行比较。如果软件包数据库通过 cron
任务定期更新,则数据库的内容将比系统中安装的软件包更新,并且应用程序将通知您。
Apt
安装了这样一个任务 (/etc/cron.d/apt
),它将根据 Apt 的配置(更具体地说是 APT::Periodic)运行。在 GNOME 环境中,可以通过转到 系统 > 管理 > 软件源 > 更新,或运行 /usr/bin/software-properties
来调整此配置值。
如果系统设置为每天下载软件包列表但不下载软件包本身,则您的 /etc/apt/apt.conf.d/10periodic
应如下所示
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "0";
您可以使用不同的 cron 任务,例如 cron-apt
安装的任务(请参阅 使用 cron-apt 自动检查更新,10.1.2.3 节)。您也可以只使用此应用程序手动检查升级。
KDE 桌面环境的用户可能更喜欢安装 adept
和 adept-notifier
,它们提供类似的功能,但不是标准安装的一部分。
自动安全更新的另一种方法是使用 cron-apt
。此软件包提供了一个工具,可以定期(使用 cron 作业)更新系统,并且还可以配置为使用本地邮件传输代理向系统管理员发送邮件。默认情况下,它只会更新软件包列表并下载新软件包,但可以配置为自动安装新更新。
请注意,如果您打算自动更新系统(即使只是下载软件包),您可能需要检查发行版版本,如 按发行版版本检查,7.5.3 节 中所述。否则,您无法确定下载的软件包是否真的来自受信任的来源。
更多信息请访问 Debian 管理站点
。
debsecan
程序通过报告缺少的安全更新和安全漏洞来评估安全状态。与仅提供与可用安全更新相关信息的 cron-apt
不同,此工具从 Debian 安全团队维护的安全漏洞数据库中获取信息,该数据库还包括有关尚未通过安全更新修复的漏洞的信息。因此,它在帮助管理员跟踪安全漏洞方面更加有效(如 跟踪安全漏洞,10.1.1 节 中所述)。
安装 Debian 软件包 debsecan
后,如果管理员同意,它将生成一个 cron 任务,使其在发现易受攻击的软件包时运行并将输出发送给特定用户。它还会从互联网下载信息。安全数据库的位置也是安装时提出的问题的一部分,稍后在 /etc/default/debsecan
中定义,对于无法访问互联网的系统,可以轻松调整它,以便它们都从本地镜像中提取,从而有一个单点访问漏洞数据库。
但是请注意,安全团队跟踪许多漏洞,包括可能无法通过安全更新修复的低风险问题,以及最初报告为影响 Debian 的某些漏洞,稍后可能会在调查后被驳回。Debsecan
将报告所有漏洞,这使其比上述其他工具更冗长。
更多信息请访问 作者的站点
。
还有 apticron
,它与 cron-apt
类似,将检查更新并向管理员发送邮件。有关 apticron 的更多信息,请访问 Debian 管理站点
。
您可能还想看看 secpack
,这是一个非官方程序,用于从 security.debian.org 进行安全更新,并带有 Fruhwirth Clemens 编写的签名检查。或者 Dean Wilson 编写的 Nagios 插件 check_debian_updates.sh
。
除非您想在出现漏洞时花时间自己修补软件包,否则您不应将 Debian 的 unstable 分支用于生产级系统。主要原因是 unstable 没有安全更新(请参阅 如何处理 testing 和 unstable 的安全性?,12.3.8 节)。
事实是,某些安全问题可能会出现在 unstable 中,而不会出现在 stable 发行版中。这是由于不断向其中提供的应用程序添加新功能,以及包含可能尚未经过全面测试的新应用程序。
为了在 unstable 分支中进行安全升级,您可能必须对新版本进行完整升级(这可能会更新的内容远不止受影响的软件包)。尽管有一些例外,但安全补丁通常仅向后移植到 stable 分支。主要思想是在更新之间,不应添加新代码,只需修复重要问题。
但是请注意,您可以使用安全跟踪器(如 跟踪安全漏洞,10.1.1 节 中所述)来跟踪影响此分支的已知安全漏洞。
如果您正在使用 testing 分支,则必须考虑有关安全更新可用性的一些问题
当准备好安全修复程序时,安全团队会将补丁向后移植到 stable(因为 stable 通常落后一些次要或主要版本)。软件包维护人员负责准备 unstable 分支的软件包,通常基于新的上游版本。有时更改几乎同时发生,有时其中一个版本会先获得安全修复程序。stable 发行版的软件包比 unstable 经过更彻底的测试,因为后者在大多数情况下会提供最新的上游版本(其中可能包括新的、未知的错误)。
unstable 分支的安全更新通常在软件包维护人员制作新软件包时可用,而 stable 分支的安全更新在安全团队进行新上传并发布 DSA 时可用。请注意,这些都不会更改 testing 分支。
如果在软件包的 unstable 版本中未检测到(新)错误,则它会在几天后移动到 testing。这通常需要十天的时间,但这取决于更改的上传优先级以及软件包是否因其依赖关系而被阻止进入 testing。请注意,如果软件包被阻止进入 testing,则上传优先级不会改变进入所需的时间。
此行为可能会根据发行版的发布状态而改变。当发布即将到来时,安全团队或软件包维护人员可能会直接向 testing 提供更新。
此外,Debian 测试安全团队
可以在 testing 分支中发布 Debian Testing Security Advisories (DTSA),如果需要立即修复该分支中的安全问题,并且无法等待正常程序(或正常程序被其他软件包阻止)。
愿意利用此支持的用户应将以下行添加到他们的 /etc/apt/sources.list
(而不是 执行安全更新,4.2 节 中描述的行)
deb http://security.debian.org testing/updates main contrib non-free # This line makes it possible to donwload source packages too deb-src http://security.debian.org testing/updates main contrib non-free
有关此支持的更多信息,请阅读 公告
。此支持于 2005 年 9 月
在一个单独的存储库中正式启动,后来集成到主安全归档中。
首先,不完全推荐自动更新,因为管理员应查看 DSA 并了解任何给定安全更新的影响。
如果您想自动更新系统,您应该
配置 apt
,以便您不想更新的软件包保持在其当前版本,可以使用 apt
的 pinning 功能或使用 dpkg
或 dselect
将它们标记为 hold。
要固定给定版本下的软件包,您必须编辑 /etc/apt/preferences
(参见 apt_preferences(5)
)并添加
Package: * Pin: release a=stable Pin-Priority: 100
FIXME:验证此配置是否正常。
可以使用 cron-apt
,如 使用 cron-apt 自动检查更新,10.1.2.3 节 中所述,并启用它来安装下载的软件包,或者自己添加一个 cron
条目,以便每天运行更新,例如
apt-get update && apt-get -y upgrade
-y 选项将使 apt
对更新期间可能出现的所有提示都假定为“yes”。在某些情况下,您可能希望使用 --trivial-only 选项而不是 --assume-yes(等效于 -y)。[66]
配置 debconf
,以便在升级期间不会提出任何问题,以便可以非交互方式完成升级。[67]
检查 cron
执行的结果,该结果将通过邮件发送给超级用户(除非使用脚本中的 MAILTO 环境变量更改)。
更安全的替代方案可能是使用 -d(或 --download-only)选项,该选项将下载但不安装必要的软件包。然后,如果 cron
执行显示系统需要更新,则可以手动完成。
为了完成这些任务中的任何一项,系统必须正确配置为下载安全更新,如 执行安全更新,4.2 节 中所述。
但是,对于 unstable,如果不进行仔细分析,则不建议这样做,因为如果某些严重错误潜入重要软件包并安装到您的系统中,您可能会使系统进入无法使用的状态。Testing 在此问题上稍微安全一些,因为严重错误更有可能在软件包移动到 testing 分支之前被检测到(尽管,您可能没有任何可用的安全更新)。
如果您有一个混合发行版,即 stable 安装,其中某些软件包已更新为 testing 或 unstable,您可以调整 pinning 首选项以及 apt-get
中的 --target-release 选项,以仅更新您已更新的软件包。[68]
根据您在安装后生成的基线信息(即 拍摄系统快照,4.18 节 中描述的快照),您应该能够不时进行完整性检查。完整性检查将能够检测到入侵者所做的或由于系统管理员的错误而导致的文件系统修改。
如果可能,完整性检查应离线完成。[69] 也就是说,不使用系统的操作系统进行检查,以避免由例如已安装的 rootkit 产生的虚假安全感(即假阴性)。用于检查系统的完整性数据库也应从只读介质中使用。
如果无法使系统脱机,您可以考虑使用任何可用的文件系统完整性工具(在 检查文件系统完整性,4.16.3 节 中描述)在线进行完整性检查。但是,应采取预防措施以使用只读完整性数据库,并确保完整性检查工具(和操作系统内核)未被篡改。
完整性工具部分中提到的一些工具,例如 aide
、integrit
或 samhain
已经准备好进行定期检查(在前两种情况下通过 crontab,在 samhain
中通过独立守护程序),并且可以在文件系统更改时通过不同的渠道(通常是电子邮件,但 samhain
也可以发送页面、SNMP traps 或 syslog 警报)警告管理员。
当然,如果您执行系统的安全更新,则应重新拍摄为系统拍摄的快照,以适应安全更新所做的更改。
Debian GNU/Linux 包含用于入侵检测的工具,入侵检测是在本地系统或专用网络中的其他系统上检测不适当或恶意活动的做法。如果系统非常关键或者您真的非常偏执,那么这种防御非常重要。最常见的入侵检测方法是统计异常检测和模式匹配检测。
始终要注意,为了通过引入任何这些工具真正提高系统的安全性,您需要建立警报+响应机制。如果您不打算提醒任何人,则入侵检测是在浪费时间。
当检测到特定攻击时,大多数入侵检测工具会将事件记录到 syslogd
或向 root 用户发送电子邮件(邮件接收者通常是可配置的)。管理员必须正确配置工具,以便误报不会触发警报。警报也可能表明正在进行的攻击,并且可能在一天后无用,因为攻击可能已经成功。因此,请确保制定适当的警报处理策略,并确保实施此策略的技术机制到位。
一个有趣的信息来源是 CERT 的入侵检测清单
基于网络的入侵检测工具监控网络段上的流量,并将此信息用作数据源。具体来说,检查网络上的数据包,并检查它们是否与特定签名匹配。
snort
是一个灵活的数据包嗅探器或记录器,它使用攻击签名字典检测攻击。它可以检测各种攻击和探测,例如缓冲区溢出、隐形端口扫描、CGI 攻击、SMB 探测等等。snort
还具有实时警报功能。您可以将 snort
用于网络上的各种主机以及您自己的主机。这是一个应该安装在每个路由器上的工具,以密切关注您的网络。只需使用 apt-get install snort 安装它,按照问题操作,然后观看它记录。对于更广泛的安全框架,请参阅 Prelude
。
Debian 的 snort
软件包默认启用了许多安全检查。但是,您应该自定义设置以考虑您在系统上运行的特定服务。您可能还希望寻求特定于这些服务的其他检查。
还有其他更简单的工具可用于检测网络攻击。portsentry
是一个有趣的软件包,可以提醒您注意针对主机的端口扫描。诸如 ippl
或 iplogger
之类的其他工具也可以检测到某些 IP(TCP 和 ICMP)攻击,即使它们没有提供 snort
所做的那种高级技术。
您可以使用 Debian 软件包 idswakeup
测试任何这些工具,这是一个生成误报的 shell 脚本,并包含许多常见的攻击签名。
基于主机的入侵检测涉及在要监控的系统上加载软件,该软件使用日志文件和/或系统审计程序作为数据源。它查找可疑进程,监控主机访问,甚至可能监控对关键系统文件的更改。
tiger
是一个较旧的入侵检测工具,自 Woody 分支以来已移植到 Debian。tiger
提供了与安全入侵相关的常见问题的检查,例如密码强度、文件系统问题、通信进程以及 root 可能被破坏的其他方式。此软件包包括新的 Debian 特定安全检查,包括:已安装文件的 MD5sums 检查、不属于软件包的文件位置以及本地监听进程的分析。默认安装将 tiger
设置为每天运行,生成一份报告,发送给超级用户,关于系统可能存在的漏洞。
日志分析工具(例如 logcheck
)也可用于检测入侵尝试。请参阅 使用和自定义 logcheck
,4.12.1 节。
此外,监控文件系统完整性的软件包(请参阅 检查文件系统完整性,4.16.3 节)在检测安全环境中的异常情况方面非常有用。最有可能的是,有效的入侵将修改本地文件系统中的某些文件,以规避本地安全策略、安装木马或创建用户。可以使用文件系统完整性检查器检测到此类事件。
可加载内核模块是包含动态可加载内核组件的文件,用于扩展内核的功能。使用模块的主要好处是能够添加额外的设备,例如以太网卡或声卡,而无需修补内核源代码并重新编译整个内核。但是,破解者现在正在使用 LKM 作为 rootkit(knark 和 adore),从而在 GNU/Linux 系统中打开后门。
LKM 后门比传统的 rootkit 更复杂且更难以检测。它们可以隐藏进程、文件、目录甚至连接,而无需修改二进制文件的源代码。例如,恶意 LKM 可以强制内核从 procfs
中隐藏特定进程,这样即使是二进制文件 ps
的已知良好副本也不会列出有关系统上当前进程的准确信息。
有两种方法可以防御系统免受 LKM rootkit 的攻击,一种是主动防御,另一种是被动防御。检测工作可能很简单且轻松,也可能很困难且令人疲惫,具体取决于所采取的方法。
这种防御的优点是它可以首先防止系统受到损害。一种这样的策略是抢先一步,即加载一个 LKM,旨在保护系统免受其他恶意 LKM 的侵害。第二种策略是从内核本身删除功能。例如,您可以完全删除可加载内核模块的功能。但是请注意,即使在这种情况下,也有一些 rootkit 可能会起作用,有些 rootkit 会直接篡改 /dev/kmem
(内核内存)以使自己无法检测到。
Debian GNU/Linux 有一些软件包可以用于建立主动防御
lcap
- 一个用户友好的界面,用于删除内核中的capabilities(基于内核的访问控制),使系统更安全。例如,执行 lcap CAP_SYS_MODULE [70] 将删除模块加载功能(即使对于 root 用户也是如此)。[71] 在 Jon Corbet 的 内核开发
LWN 部分(日期为 1999 年 12 月)中,有一些关于 capabilities 的(旧)信息。
如果您在 GNU/Linux 系统上确实不需要许多内核功能,您可能希望在内核配置期间禁用可加载模块支持。要禁用可加载模块支持,只需在构建内核的配置阶段或在 .config
文件中设置 CONFIG_MODULES=n 即可。这将防止 LKM rootkit,但您会失去 Linux 内核的这一强大功能。此外,禁用可加载模块有时可能会使内核过载,从而使可加载支持成为必要。
被动防御的优点是它不会使系统资源过载。它的工作原理是将系统调用表与磁盘文件 System.map
中的已知干净副本进行比较。当然,被动防御只会在系统已经被破坏后通知系统管理员。
可以使用 chkrootkit
软件包完成对 Debian 中某些 rootkit 的检测。Chkrootkit
程序检查目标系统上几个已知 rootkit 的迹象,但不是最终测试。
这可能是最不稳定和有趣的章节,因为我希望一些“呃,这听起来太疯狂了”的想法可能会实现。以下是一些为了增强安全性的想法——或许是天才之举,或许是偏执狂想,或许是疯狂之语,又或许是灵感迸发,这取决于你的观点。
玩转可插拔身份验证模块(PAM)。正如 Phrack 56 PAM 文章中所引用的那样,PAM 的妙处在于“你的想象力是唯一的限制”。这是真的。想象一下,只有通过指纹或眼球扫描或加密卡才能进行 root 登录(为什么我使用了“或”而不是“与”连接?)。
法西斯式日志记录。我会将之前所有关于日志记录的讨论称为“软日志记录”。如果你想执行真正的日志记录,请准备一台带折叠纸的打印机,并将所有日志发送到打印机。听起来很滑稽,但这很可靠,而且无法篡改或删除。
CD 分发。这个想法非常容易实现,并且提供了相当好的安全性。创建一个强化的 Debian 发行版,并配置适当的防火墙规则。将其转换为可引导的 ISO 镜像,并刻录到 CD-ROM 上。现在你拥有了一个只读发行版,大约有 600MB 的空间用于服务。只需确保所有需要写入的数据都通过网络完成。入侵者不可能获得对此系统的读/写访问权限,并且入侵者所做的任何更改都可以通过重启系统来禁用。
关闭模块功能。正如之前讨论的那样,当你在内核编译时禁用内核模块的使用时,许多基于内核的后门程序都无法实现,因为大多数后门程序都基于安装修改后的内核模块。
通过串行电缆进行日志记录(由 Gaby Schilders 贡献)。只要服务器仍然有串行端口,想象一下为一个或多个服务器配备一个专用的日志记录系统。日志记录系统与网络断开连接,并通过串行端口多路复用器(Cyclades 或类似设备)连接到服务器。现在让你的所有服务器都将其日志写入串行端口,仅写入。日志机器只接受纯文本作为串行端口的输入,并且只写入日志文件。连接一个 CD/DVD 刻录机,并在日志文件达到介质容量时将其传输到刻录机。如果他们能制造带有自动更换器的 CD 刻录机就好了……虽然不如直接日志记录到打印机那样是硬拷贝,但这种方法可以处理更大的容量,并且 CD-ROM 使用更少的存储空间。
使用 chattr
更改文件属性(摘自 Jim Dennis 编写的 Tips-HOWTO)。在全新安装和初始配置之后,使用带有 +i 属性的 chattr
程序使文件不可修改(文件不能被删除、重命名、链接或写入)。考虑在 /bin
、/sbin/
、/usr/bin
、/usr/sbin
、/usr/lib
中的所有文件以及 root 目录中的内核文件上设置此属性。你还可以使用 tar
或类似工具复制 /etc/
中的所有文件,并将该归档标记为不可更改。
此策略将有助于限制以 root 身份登录时可能造成的损害。你不会因为误用重定向运算符而覆盖文件,也不会因为在 rm -fr
命令中误加一个空格而使系统无法使用(你可能仍然会对你的数据造成大量损害——但你的库和二进制文件会更安全)。
此策略还使各种安全漏洞和拒绝服务(DoS)攻击变得不可能或更困难(因为它们中的许多都依赖于通过某些 SETUID 程序的操作来覆盖文件,而这些程序没有提供任意 shell 命令)。
这种策略的一个不便是,在构建和安装各种系统二进制文件期间会出现。另一方面,它可以防止 make install
覆盖文件。当你忘记阅读 Makefile 并 chattr -i
要覆盖的文件(以及你要向其中添加文件的目录)时,make 命令会失败,你只需使用 chattr
命令并重新运行它。你也可以借此机会将旧的 bin 和 lib 移开,放入 .old/ 目录或 tar 归档中,例如。
请注意,此策略还会阻止你升级系统的软件包,因为更新的软件包提供的文件无法被覆盖。你可能需要一个脚本或其他机制,在执行 apt-get update
之前禁用所有二进制文件上的不可变标志。
尝试使用 UTP 电缆,切断 2 根或 4 根线,使电缆只能单向传输流量。然后使用 UDP 数据包将信息发送到目标机器,该机器可以充当安全日志服务器或信用卡存储系统。
蜜罐是一个旨在教会系统管理员黑客如何探测和利用系统的系统。它是一个系统设置,其预期和目标是该系统将被探测、攻击和可能被利用。通过学习黑客使用的工具和方法,系统管理员可以学会更好地保护自己的系统和网络。
如果你投入时间来实施和监控,Debian GNU/Linux 系统可以很容易地用于设置蜜网。你可以轻松设置虚假的蜜罐服务器以及控制蜜网的防火墙[72] 和某种网络入侵检测器,将其放在互联网上,然后等待。请注意,如果系统被利用,你需要及时收到警报(参见 第 4.12 节 日志和警报的重要性),以便你可以采取适当的措施并在你看到足够信息后终止入侵。以下是一些在设置蜜罐时需要考虑的软件包和问题
你将使用的防火墙技术(由 Linux 内核提供)。
syslog-ng
,用于将来自蜜罐的日志发送到远程 syslog 服务器。
snort
,用于设置捕获所有到蜜罐的传入网络流量并检测攻击。
osh
,一个 SETUID root、安全增强、受限的 shell,带有日志记录功能(参见 Lance Spitzner 的文章,如下)。
当然,还有你将用于虚假服务器蜜罐的所有守护进程。根据你要分析的攻击者类型,你将会或不会强化蜜罐并使其保持最新的安全补丁。
完整性检查器(参见 第 4.16.3 节 检查文件系统完整性)和 The Coroner's Toolkit (tct
) 用于执行攻击后审计。
honeyd
和 farpd
用于设置蜜罐,该蜜罐将侦听与未使用 IP 地址的连接并将它们转发到模拟实时服务的脚本。另请查看 iisemulator
。
tinyhoneypot
用于设置具有虚假服务的简单蜜罐服务器。
如果你不能使用备用系统来构建蜜罐以及保护和控制它的网络系统,你可以使用 xen
或 uml
(User-Mode-Linux) 中提供的虚拟化技术。如果你选择这条路线,你将需要使用 kernel-patch-xen
或 kernel-patch-uml
补丁你的内核。
你可以在 Lanze Spitzner 的优秀文章 构建蜜罐
(来自“了解你的敌人”系列)中阅读更多关于构建蜜罐的信息。此外,蜜罐项目
提供了关于构建蜜罐和审计对它们进行的攻击的宝贵信息。
Debian 安全手册
版本:3.13,Sun, 08 Apr 2012 02:48:09 +0000jfs@debian.org