提前检测
提前检测是指你使用黑客的策略和手法来对付他们,而不是简单地停止攻击。一个有效的检测策略通常包括审计,但你必须同时使它能够简单地检测系统问题和自动提供解决方案。
扫描检测和jails
有些入侵监测程序,例如Network Associates’ Sting,允许你建立虚假账号甚至是虚假的网络来引起攻击者的兴趣。这种目标使攻击者把时间花费在不存在的资源上,另外提醒网络管理员网络中存在可疑的活动。
反击的系统通常包括建立一台服务器作为目标。它们可以包括下列内容:
? 混杂模式扫描
? 虚假的数据库
? 虚假的账号文件
? 虚假文件
? 虚假的管理员账号
? 自动将攻击者引入虚假网络中的防火墙配置
? 报警或惩罚黑客行为的Tripwire账号
? 物理线路追踪(试图确定黑客使用的端口或电话线路)
? 数据包追踪(试图了解包的起源)
检测工作在混杂模式的网卡
你可以实施远程扫描来确定一块网卡是否工作在混杂模式。象AntiSniff这样的程序使用三种主要的方法来检测网卡是否工作于混杂模式:
Ø 检测网卡电子方面的变化来确定网卡的工作模式。
Ø 发送各种包(ARP请求,ICMP包,DNS请求,TCP SYN floods,等等)。如果从某台主机返回的包等待了一段不正常的时间,而且没有被主机处理过的迹象,则程序便推断出该主机的网卡可能出于混杂模式。
Ø 将错误的ICMP请求包含在无效的以太网地址头中。所有没有工作在混杂模式的系统将忽略这些请求,而那些回复错误的ICMP请求的主机将有可能出于混杂模式。
像AntiSniff这样的程序通过推论来判断网卡是否工作在混杂模式。由于这些程序只是根据有限的数据来下结论,所以容易出现误报。通常明智的做法是定时进行混杂模式检测的扫描。例如,L0pht包含其自身的调度。使用WindwosNT Scheduler或UNIX的cron程序,你可以自动实施所有扫描。想获得更多的有关如何检测网卡的混杂模式的信息,请访问L0pht的站点www.l0pht.com/antisniff/。L0pht还提供的UNIX版本的AntiSniff。然而你需要编译它,并且只能运行在FreeBSD和Solaris操作系统下。
在Linux下阻止你的系统响应任何从外部/内部来的ping请求
既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性。你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行。
echo 1
/proc/sys/net/ipv4/icmp_echo_ignore_all
不要显示出操作系统和版本信息
如果你希望某个人远程登录到你的服务器时不要显示操作系统和版本信息,你能改变
/etc/inetd.conf中的一行象下面这样:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
加-h标志在最后使得telnet后台不要显示系统信息,而仅仅显示login:
在Linux下对于linux single的保护
The /etc/lilo.conf file
a) Add: restricted
加这一行到每一个引导映像下面,就这表明如果你引导时用(linux single),则需要一个password.
b) Add: password=some_password
当与restricted联合用,且正常引导时,需要用户输入密码,你也要确保lilo.conf文件不能被不属于root的用户可读,也免看到密码明文。下面是例子:
编辑/etc/lilo.conf加:
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
Default=linux
restricted ?add this line.
password=some_password ?add this line.
image=/boot/vmlinuz-2.2.12-20
label=linux
initrd=/boot/initrd-2.2.12-10.img
root=/dev/sda6
read-only
[root@deep]# chmod 600 /etc/lilo.conf (不再能被其他用户可读).
[root@deep]# /sbin/lilo -v (更新lilo配置).
[root@deep]# chattr +i /etc/lilo.conf(阻止该文件被修改)
禁止 Control-Alt-Delete 重启动机器命令
[root@deep]# vi /etc/inittab
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
To
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
[root@deep]# /sbin/init q
资源限制
对你的系统上所有的用户设置资源限制可以防止DoS类型攻击(denial of service attacks)如最大进程数,内存数量等。例如,对所有用户的限制象下面这样:
编辑/etc/security/limits.con加入:
* hard core 0
* hard rss 5000
* hard nproc 20
你也必须编辑/etc/pam.d/login文件加/检查这一行的存在。
session required /lib/security/pam_limits.so
上面的命令禁止core files“core 0”,限制进程数为“nproc 50“,且限制内存使用为5M“rss 5000”。
Samba 远程创建文件漏洞
Samba是一个Unix/Linux下的免费的文件和打印共享服务程序。允许在Unix和Microsoft平台之间使用文件和打印共享。由于smb守护进程没有正确检查NetBIOS名字,一个本地用户可以从远程在Samba服务器上往任意文件中写入数据。如果用户可以在本地建立符号链接,用户可以提升自己的权限。
远程用户也可能发动拒绝服务攻击。
问题发生在smbd在创建SMB会话的日志文件(*.log)时。在受影响的平台上,缺省情况下,每个SMB会话被记录到/var/log/samba/.log文件中。如果攻击者的NetBIOS名字是'FOOBAR',日志文件将会是/var/log/samba/fooboar.log.然而,smbd没有检查NetBIOS名字是否包含"../",因此,如果攻击者将NetBIOS名字设置为"../../../nsfocus",那么将会创建/nsfocus.log文件。
如果smb.conf文件中存在下列设置:
log file = /var/log/samba/%m.log
那么,这个系统就是受影响的。
在某些平台下(例如FreeBSD)下,配置如下:
log file = /usr/local/samba/var/log.%m
这种配置将不受此问题影响。
smbd在创建log文件时也忘记检查该文件是不是链接文件,因此攻击者可以利用符号链接将任意数据添加到任意文件中。如果将某些数据写到某些敏感文件中(例如/etc/passwd,rc启
动脚本等等),本地用户就可能获取root权限。
测试程序:
--------------------------------------------------------------------------------
$ ln -s /etc/passwd /tmp/x.log
$ smbclient //NIMUE/"`perl -e '{print "\ntoor::0:0::/:/bin/sh\n"}'`" -n ../../../tmp/x -N
$ su toor
#
--------------------------------------------------------------------------------
建议:
临时解决方法:
修改smb.conf,将log file行改变成如下配置:
log file = /usr/local/samba/var/log.%m
或者将%m删除。
厂商补丁:
Samba 2.2.0a和Samba 2.0.10 已经解决了这个问题,您可以在下列地址下载:
Samba upgrade Samba 2.2.0a
http://us1.samba.org/samba/ftp/samba-2.2.0a.tar.gz
Samba upgrade Samba 2.0.10
http://us1.samba.org/samba/ftp/samba-2.0.10.tar.gz
很多Linux厂商也提供了升级版本,详细下载地址请参考相应的安全公告。
RedHat 为此发布了一个安全公告(RHSA-2001:086-06):
RHSA-2001:086-06: New Samba packages available for Red Hat Linux 5.2, 6.2, 7 and 7.1
公告链接:http://www.redhat.com/support/errata/RHSA-2001-086.html
SuSE Linux 为此发布了一个安全公告(SuSE-SA:2001:021):
SuSE-SA:2001:021: samba
公告链接:http://www.suse.com/de/support/security/2001_021_samba_txt.txt
Immunix Linux 为此发布了一个安全公告(IMNX-2001-70-027-01):
IMNX-2001-70-027-01: samba update -- Immunix OS 6.2, 7.0-beta, 7.0
公告链接:http://download.immunix.org/ImmunixOS/7.0/updates/IMNX-2001-70-027-01
Debian Linux 为此发布了一个安全公告(DSA-065-1):
DSA-065-1: samba remote file append/creation problem
公告链接:htt