Tiger使用手册

Tiger使用手册_第1张图片
Tiger

0x00 Tiger简介

一款开源的安全审计&入侵检测工具

我们的小老虎是一款可以用于安全审计和入侵检测系统的安全工具。它支持多种UNIX平台,且他是开源的。小老虎完全使用脚本语言来编写,且只需要POSIX工具来进行相关审计检测操作。

特点

  1. 易于扩展的模块化设计
  2. 多用途,可以用于审计和主机入侵检测

优点

从目前来说,市面上有很多入侵检测工具,主要检测的方面如下

  1. 网络层IDS,例如Snort
  2. 内核层IDS,例如LIDSSNARESystrace
  3. 文件完整性检查,例如aide, integrit samhain, tripwire
  4. 日志检查,如Log Analysis

但是很少有完全关注主机端入侵检测的工具,小老虎将这些个工具结合在一起,并形成了一个能使他们在一起工作的框架。小老虎不是一个日志检查器也不关注完整性分析,它做其他的事,它会检查系统的配置和状态,也可以检查哪一台网络服务器正在尝试运行一个已经删除的文件(例如服务器在升级过程中修补了库,但是服务器未重新启动服务,导致服务器只能持续尝试运行因为升级而已经删除的系统文件)等,这对系统管理员和安全管理员来说是一个很有帮助的安全监测工具。

0x01 Tiger安装方法

要下载tiger的源码可以通过Savannah页面来获得,而Debian系统的安装包可以通过Debian Tiger页面来获得,通过寻找特定的平台来找到对应你系统架构的deb安装包。双击安装即可。

当前Tiger的稳定版本是3.2.3

0x02 命令选项

tiger [-vthqGSH] \
        [-B dir] \
        [-l dir|@host] \
        [-w dir] \
        [-b dir] \
        [-e|-E] \
        [-c config] \
        [-A arch] \
        [-O os] \
        [-R release]

描述

Tiger是一款由shell脚本,C代码和用于检查UNIX系统安全问题的数据文件构成的包,它能够扫描系统配置文件,文件系统以及用户配置文件,用以查明可能存在的安全问题,并将他们上报。指令tigexp可以解释tiger上报的问题。

我们可以通过调整@tiger-config-dir@/tigerrc配置文件中的Tiger_变量来配置小老虎。对于可以用的模块,我们的配置文件里有响应的变量来决定是否启用该模块。在配置文件里用Tiger_check_打头来命名变量,当变量值为Y时代表启用,N代表跳过。其他配置变量会修改某些模块的行为,应基于OS来调整。

@tiger-config-dir@/tiger.ignore配置文件定义了一系列消息,如果任何模块生成了这些消息之后呢将不会在report上显示。如果存在该文件,每行都是一个实体,一个实体用ERE正则表达式来比对消息。

选项

  • -B tigerdir
    • 指定tiger的安装目录,默认是/usr/lib/tiger(Ubuntu版本)
  • -l logdir|@logserver
    • 指定tiger生成安全报告的目录名,默认是/var/log/tiger(Ubuntu版本),格式是security.report.hostname.date.time。如果该变量是@打头,那么变量将被识别为日志服务器,远程日志服务器需开放tcp 5353端口,tiger会将报告通过telnet发送给服务器。
  • -w workdir
    • 指定用于创建临时文件的目录,默认是/var/lib/tiger/work(Ubuntu版本)
  • -b bindir
    • 用于指定C模块产生的二进制可执行文件所在的目录。若系统目录中包含所有的二进制文件,这些文件将从该系统目录直接使用;若没包含全,且bindir里包含二进制文件,这些二进制文件将被采用。若系统目录和bindir里都没有二进制文件,小老虎将会尝试编译C程序并将二进制放到bindir中。
  • -c tigerrc
    • 指定tigerrc控制文件的名字,默认是/etc/tiger/tigerrc(Ubuntu版本)
  • -e
    • 该选项将会在安全报告的每条消息后面插入解释语句,这会大大增加报告大小,因为某些解释语句是重复的。
  • -E
    • 该选项将会让小老虎生成一份独立的解释报告,其中每种消息的解释只出现一次。解释文件命名格式为explain.report.hostname.date.time
  • -G
    • 生成系统二进制文件的签名,包括MD5值和文件权限。
  • -H
    • 将报告以HTML的方式生成
  • -S
    • 需要同时对由该机器服务的无磁盘客户端的配置文件进行表层检查。检查不会太深入,因为深入的检查由客户机自己完成。
  • -q
    • 静默扫描,仅仅显示紧要的安全信息
  • -A arch
    • 该选项会覆盖由内部配置引擎获取的当前架构信息
  • -O os
    • 该选项会覆盖由内部配置引擎获取的当前操作系统信息
  • -R release
    • 该选项会覆盖由内部配置引擎获取的当前操作系统版本信息

            注意随便修改架构,操作系统和版本信息会出现难以意料的错误,慎!
      

模块

小老虎由一系列模块组成。每个模块检查特定的安全问题。小老虎框架允许同时提供通用模块和专用模块。这些模块可以通过计划任务独立执行,也可以通过tiger执行。

当然我们也可以自定义模块,想自己写,看看README.writemodules

现在小老虎有这些模块。

模块名 用途
check_accounts 检查系统账户,查找禁用的cron rhosts .forward valid_shell账户
check_aliases 检查邮件名和不正确的配置
check_anonftp 检查匿名FTP服务是否正确配置
check_cron 证实计划任务项
check_embedded 确定嵌套路径名是否正确配置
check_exports 分析NFS导出文件系统的配置文件,确定访问权限是否得到正确限制
check_group 检查用户组,查找冲突和错误项
check_inetd 检查inetd配置文件,比较服务定义,正确的目录路径,不存在的二进制文件以及活动服务
check_known 查找一直的入侵痕迹:后门和邮件临时目录
check_netrc 检查netrc文件是否不安全配置
check_nisplus 查找NIS+实体的错误配置
check_passwd 查找系统用户的冲突以及错误项
check_path 比对系统PATH环境变量和脚本中的PATH,查找不正确的定义
check_perms 检查文件权限和不一致之处
check_printcap 分析打印机控制文件的配置
check_rhosts 检查rhosts文件,防止系统易遭受攻击
check_sendmail 检查sendmail的配置文件
check_signature 将二进制文件签名和数据库里的信息比较
check_system 调用操作系统专用模块/usr/lib/tiger/systems
check_apache 检查apache配置文件,并上报会引入漏洞的问题
check_devices 检查设备权限,当设备拥有world permission时提出告警
check_exrc 分析不在用户主目录的.exrc文件,因为vi/ex会在当前目录查找这个文件,并运行其中的指令危害系统
check_findeleted 检查当前系统中是否有进程使用被删除的文件。这是入侵的表现,或者没启用打了补丁的服务器
check_ftpusers 分析/etc/ftpusers,确定是否存在有管理员权限的用户
check_issue 检查/etc/issue /etc/issue.net文件,确定是否包含合适的内容,定义在ISSUEFILEISSUENETFILE
check_logfiles 检查日志文件(wtmp btmp lastlog utmp)的存在,以及正确的umask设置
check_lilo 分析lilo和grub bootloader的配置文件
check_listeningprocs 检查监听TCP/IP套接字的进程/服务器,当未授权用户运行服务器或服务器监听所有接口时会告警
check_passwdformat 检查/etc/passwd的格式确定其中不一致的点
check_patches 检查系统是否有可用补丁
check_root 检查是否有远程root账户登录
check_rootdir 检查root目录的权限
check_rootkit 检查rootkit
check_single 检查系统是否正确配置禁止单用户访问
check_release 分析OS版本,确定是否过期
check_runproc 检查tigerrc中配置的进程是否在系统中运行,轻量级软件看门狗
check_services /etc/services里配置的服务和某service文件中应配置的服务对比
check_tcpd 测试TCP Wrapper防火墙以及其配置文件的修改,确定穿过防火墙的服务
check_umask 检查umask设置
check_xinetd 检查哪个xinetd服务被启用,那个被禁用
crack_run 安装密码破解程序确定当前用户是否使用弱口令
tripwire_run aide_run integrit_run 运行各种完整性校验程序
deb_checkadvisories 对比Debian Security Advisories列表查看系统中安装的软件包是否有漏洞
deb_checkmd5sums 比对二进制文件的MD5值
deb_nopackfiles 查找系统目录中不是由Debian包提供的文件

相关文件

@tiger-config-dir@/tigerrc Tiger配置文件

@tiger-config-dir@/cronrc Tigercron配置文件

@tiger-log-dir@ 日志目录

@tiger-work-dir@ TIger脚本创建临时文件的工作目录

@tiger-config-dir@/tiger.ignore 定义会被Tiger忽视,不会在最终报告中出现的消息的配置文件

0x03 tiger初体验

在运行tiger之前得先确保存在tigerrc这个配置文件,如果你想定制你的扫描功能,可以尝试修改该配置文件。

然后呢,如果只是试用tiger的话,你其实不必和上文说的那样,安装整个tiger,只需运行源码目录下的./tiger就可以生成一份审计简报了。如下。

这是在tiger源码目录中试用tiger。

Tiger使用手册_第2张图片

这是生成的简报。

Tiger使用手册_第3张图片

要是你只是想对特定的项目进行扫描而不想等太久,可以独立运行脚本,这些脚本在./script目录中,现在我们就来试一试。安全简报会输出到stdout上,你也可以重定向到文件里。

试试其中的exports检查吧。

sudo /usr/lib/tiger/script/check_exports

如图是检查exports,将检查结果输出到stdout中。

Tiger使用手册_第4张图片

接下来是:

sudo ./scripts/check_accounts > ~/2.txt 

这个脚本用于检查accounts,并将报告输出至文件2.txt

Tiger使用手册_第5张图片

如果你想讲报告以HTML的格式输出,请使用-H选项,这会生成一个HTML文本,会有超链接到消息文本。让我们来试试吧。

sudo tiger -H
Tiger使用手册_第6张图片

Tiger使用手册_第7张图片

让我们看看他的HTML文件。

Tiger使用手册_第8张图片

基本上可以看到Tiger输出的HTML格式报告了。

如果你想获得更多关于tiger报告中的信息,有三种方法可供你选择。

执行命令

tigexp msgid

msgid就是报错中你可以看到的[]中的编码。如下获得详情。

WARN [fsys013w]cannot access ~/workspace/src/justniffer-0.5.12/m4/ltsugar.m4 is a dangling symlink.

tigexp fsys013w

即可获知:

Tiger使用手册_第9张图片

往报告里添加解释

通过在命令里添加-e选项可以在报告中添加解释语句。

sudo tiger -e

产生的报告如下所示。

Tiger使用手册_第10张图片

随后你可以将报告里的信息输出到stdout中。

sudo tigexp -F report-file

如下是将上图中的解释文本输出至stdout。

Tiger使用手册_第11张图片

独立生成解释文件

要是觉得报告太大,那就将解释文件中的解释语句独立输出至stdout,且不重复输出解释信息。这么做:

sudo tigexp -f report-file

结果如下:

Tiger使用手册_第12张图片

通常运行Tiger

其一是不通过计划任务运行tiger:

sudo tiger

其二是将tiger作为计划任务运行。

sudo tigercron

计划任务会在运行完毕后发送email到一个特定的用户(在tigerrc中指定),这个报告中仅包含发生变化的信息,即change关键字。

我们也可以将tiger作为HIDS来使用。

0x04 Tiger HIDS

Tiger能够被当做两种工具来使用:审计工具&HIDS。

Tiger的工作流程如下:

  1. 特定时间运行特定模块
  2. 过滤掉忽略的信息
  3. 模块中的消息与特定规则中的消息对比 只有没报告过的或者不在规则中的信息会被检查
  4. 全部消息或差别会通过email发送给相关人员

Tiger能够以计划任务周期性运行,tigercron就是用来运行tiger的计划任务的,他会读取cronrc配置文件(一般在目录/etc/tiger/usr/local/etc/tiger中)。该文件会指定tiger该进行的检查条目以及检查时间。

当运行一个模块时,tigercron程序在tigerrc中会进行相应的检查:

  • 若设置Tiger_Cron_Template为Y,他会对是否存在称述期待结果的模板进行检查
  • 若设置Tiger_Cron_CheckPrev为Y,他会对其检查的模块是否之前运行过进行检查

报告之间的差异可以让我们轻松的检测到存在入侵。如果有新的入侵行为,tiger会侦测到某些运行的东西发生了改变,如文件修改,新进程,新用户,随后将新的安全报告邮件给管理员。

然而作为一个HIDS,最好和其他安全工具配合使用:

  • 完整性校验工具:Tripwire和Aide
  • 日志检查器:logcheck
  • 检测rootkit的工具:chkrootkit
  • 网络IDS:Snort
  • 端口扫描检测器:portsentry、scanlogd、scandetd或psad

tripwire_run模块可以通过Tiger来运行tripwire,系统管理员可以以这种方式自己再自定义一些工具扫描模块。

0x05 Tiger优缺点

优势

  1. 开源
  2. 模块化设计易于扩展
  3. 多用途,可用于审计和入侵检测
  4. 将多个工具进行整合形成了框架
  5. 能够发现多种配置上的错误,侦测主机对已删除的文件的使用行为

劣势

  1. 对安全事件的检查无法面面俱到,会有漏报
  2. agent和log server之间的通信信道未进行加密,仅仅是通过邮件
  3. Tiger Server无法在单一位置接收全部告警,并将其相关联
  4. 若tiger运行在一台危险的主机上时,其产生的报告也将变得不可信

你可能感兴趣的:(Tiger使用手册)