7.5 监控及日志记录

题图:云雾中的东灵山 2018

# 第七章 Kali Linux 安全加固及监控

《Kali Linux解密》不完全翻译手册

## 7.5 监控及日志记录

数据的机密性及保护是信息安全的一个重要方面,但是同等重要还有服务的可用性。作为管理员和安全从业者,你必要保证所有事情都按照预期运转,同时及时发现行为及服务异常也是你的职责之一。监控和日志记录软件在信息安全的这个方面扮演着重要的角色,它能提供系统及网络上正在发生的事件记录。

在本节中,我们将介绍几个工具用来监控 Kali Linux 的一些情况。

### 7.5.1 监控日志的 logcheck

logcheck 软件默认每个小时监控一次日志文件并且将异常日志信息以邮件的形式发给管理员做进一步分析。

监控的日志列表存储在 /etc/logcheck/logcheck.logfiles 。如果 /etc/rsyslog.conf 文件没有被修改过的话,默认的设置就可以很好的工作了。

logcheck 支持多种详细级别的报告:paranoid 托尔斯泰、服务器以及工作站。paranoid 级别是最为仔细的,最好能够将它限制在某个服务上,比如,防火墙。服务器级别是默认模式,对于大多数服务器型的用户推荐使用。工作站级别的信息比较简洁,相比其他方式过滤掉了更多的信息。

在以上三种情况下,logcheck 最好能排除检查一些额外的信息(取决于已安装的服务),除非你真的想每个小时都收到无用却又很长的邮件。由于信息的选择的机制非常复杂,所以 /usr/share/doc/logcheck-database/README.logcheck-database.gz 是需要必读的。

logcheck 的规则可以拆分成几个类型:

被确定为是攻击行为的日志(存储在 /etc/logcheck/cracking.d/ 目录);

忽略的攻击行为( /etc/logcheck/cracking.ignore.d/ );

归类为安全警告的日志( /etc/logcheck/violations.d/ );

互联的安全告警( /etc/logcheck/violations.ignore.d/ );

剩余的信息日志(被视为系统事件);

除非 /etc/logcheck/ignore.d./ 目录下的任意规则声明系统事件需要被忽略,否则它始终会被记录。当然,唯一要考虑的是那些相关信息量大于等于所选操作的目录。

### 7.5.2 实时监控系统活动

top 是一个可以显示当前运行进程的交互式工具。默认情况下,命令是基于当前进程对 CPU 的使用率来排序显示的,也可以通过按 P 键来指定此排序。其他的排序方式包括按照内存使用大小( M 键)、CPU 占用总时长( T 键)以及进程 ID ( N 键)。k 键可以通过输入进程 ID 来结束某个进程,r 键可以改变进程的优先级。

当系统出现过载的情况时,top 是一个很好用的工具,用它可以查看哪个进程在竞争 CPU 时间或消耗了过多的内存。一般而言,人们最关心的是 CPU 消耗的资源是否是服务预期所能提供的。一个以 “www-data” 用户运行的未知进程肯定要做下检查,那很可能是由于 web 应用程序漏洞而被安装到系统上的软件所运行的实例。

top 是一个非常灵活的工具,通过它的用户手册可以查询到一些更详细的用法,也可以依据个人需要和习惯定制工具的输出形式和内容。

图形化的 gnome-system-monitor 工具和 top 比较类似,也提供了大体相同的功能。

### 7.5.3 变化监测

一旦系统安装且配置完成,大多数的系统文件如果不是升级,几乎不会改变。因此,最好能够对系统文件的改动进行监控,有些未知的变化可能会引起报警,需要进一步调查。这一节将会介绍一些常用的系统监控工具以及如何配置,以便将消息通知到管理员。

#### 7.5.3.1 使用 dpkg --verify 来对软件进行审计

dpkg --verify (或 dpkg -V)可以显示被修改过的系统文件(很可能是被攻击者修改的),但是这个输出需要加盐处理 托尔斯泰。为了能实现对比,dpkg 需要依赖于各软件( package )存储在硬盘数据库( /var/lib/dpkg/info/ package .md5sums )里的文件校验和。经验丰富的攻击者会同时修改这几个文件,让文件的校验和变成修改后,更高级的攻击者还可能会修改 Debian 镜像上的软件包。为了防御这种类型的攻击,可以使用 APT 数字签名验证系统( 详见章节 8.3.6 - 验证软件包的真实性)来对软件包进行校验。

文件指纹是什么?

---------------------------------------

注:指纹是一个值,一般来说是一个数字(尽管是十六进制的),它是一种对文件内容的签名。这种签名是通过一个算法( 例如比较出名的 MD5 或 SHA1 算法)得到的,算法几乎可以保证即使文件内容较小的改动也会导致最终指纹的变化,这种现象被称之为“雪崩效应”。如此,一个简单的数字化指纹就可以像石蕊试纸一样检测出文件内容是否被改动过。这些算法是不可逆的,换句话说,对绝大多数算法而言,仅知道指纹值是不能够得到相关改动的。最近数学届的研究似乎减弱了这些原则的绝对性,但它们的运用目前为止还不足以构成问题,因为创建不同的内容而得到相同的指纹似乎还是一件非常难的事情。

运行 dpkg -V 将会检查所有已安装的软件,对于验证失败的软件会直接单行显示出来。每行开头第一个字段的每个字母都代表着一个针对 meta-data 的测试,不过对大多数测试而言 dpkg 都没有保存对应的 meta-data ,因此,很多位置显示的都是问号( ?)。当前只有校验值测试会在第三位上显示一个数字 5 (如果校验失败的话)。

# dpkg -V

??5?????? /lib/systemd/system/ssh.service

??5?????? c /etc/libvirt/qemu/networks/default.xml

??5?????? c /etc/lvm/lvm.conf

??5?????? c /etc/salt/roster

在上面的例子中,dpkg 检查到管理员没有使用常规的 /etc/systemd/system/ssh.service 覆盖方式对 SSH 服务文件进行修改(正常情况下,任何配置文件的修改都会放在 /etc 下)。同时还显示了几个合法修改的配置文件(在第二个字段用字母 “c” 标识)。

#### 7.5.3.2 文件监控:AIDE

Advanced Intrusion Detection Environment (AIDE) 高级入侵检测环境工具可以审查文件的完整性,能够检测出与上次系统可用镜像记录不同的任何改变。镜像记录以数据库形式存储在 /var/lib/aide/aide.db ,其包含了系统所有文件的相关信息(指纹、权限、时间戳等等)。

我们可以在运行 apt update 之后运行 apt install aide 来安装 AIDE 。第一次启动需要运行 aideinit 来初始化数据库,之后它会每天( 通过 /etc/cron.daily/aide 脚本)去检查是否有相关内容被修改。如果发现了改动,AIDE 会将改动记录到日志文件里( /var/log/aide/*.log ),并且给管理员发送邮件。

保护数据库

---------------------------------------

由于 AIDE 使用本地数据库来对文件状态做对比,因此结果的有效性直接和数据库的有效性相关。如果一个攻击者获取了主机的 root 权限,那么他就能替换这个数据库并且掩盖其痕迹。有一种方式可以避免这种情况,那就是将相关数据存储在只读的介质上。

你可以通过 /etc/default/aide 里的选项来修改 AIDE 的行为。AIDE 的配置存储在 /etc/aide/aide.conf 和 /etc/aide/aide.conf.d/ 里(实际上,这些文件是 update-aide.conf 用来生成 /var/lib/aide/aide.conf.autogenerated 的)。配置文件指明了哪些文件需要检查。例如,日志文件的内容会经常性的变化,只要这些文件的权限没有变化,那么就可以忽视文件内容的变化,但是可执行文件的内容和权限是要持续检查的。尽管配置不是很复杂,但是配置语法不能凭直觉理解,建议去查看下 man 手册 aide.conf(5) 以便了解更详细的信息。

AIDE 每天都会生成一个新版本的数据库( /var/lib/aide/aide.db.new ),如果监控内容的所有更改都是合法的,那么就会更新数据库中相应的记录。

Tripwire 是和 AIDE 很像的一个工具,甚至连配置文件的语法都几乎一样。相比之下,Tripwire 能够对配置文件提供一种签名机制,使得攻击者不能让它指向一个不同版本的数据库。

Samhain 也提供了类似的功能来检测 rootkit 。它也可以部署到整个网络上,这样就可以在中心服务器上(通过签名)记录所有行为踪迹。

checksecurity 和 chkrootkit/rkhunter 软件

---------------------------------------

checksecurity 包含了一些系统基础检查的小脚本(搜寻空密码、新增的 setuid 文件等等),在检测到风险的时候会进行告警。尽管脚本名称意义很明确,但还是不要完全依赖它能够保证 Linux 系统的安全。

chkrootkit 和 rkhunter 工具可以检查系统上潜藏安装的某些特定 rootkis 。需要注意的是,这些程序片段设计的目的就是在被攻陷的电脑上毫无察觉的控制系统。工具检查虽然不是百分百可靠,但是它却可以发现一些潜在的问题。

关于《Kali Linux 解密》

---------------------------------------

不管你是信息安全的新手,还是安全老手,这本Kali Linux 官方出品的指导手册都可以给你一些惊喜。古语云“柢固则生长,根深则视久”,这句话也适用于信息安全领域。如果你想要拥有使用 Kali Linux 的专家级能力,你必须熟知各种渗透测试姿势的内在原理。而这就是本书所要向你讲述的内容 —- 如何让你成为一个 Kali Linux 资深玩家。

为了能够让大家边学习边实践,达到一起读书的目的,公众号将尽量保持一周两到三篇的速度更新,欢迎大家持续关注。

破阵子

醉里挑灯看剑

梦回吹角连营

八百里分麾下炙

五十弦翻塞外声

猎客

·

公元

公众号:NetHunterPark

关注移动安全及渗透测试

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190213G0D6B100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券