一次性进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:16004488
微信公众号:计算机与网络安全
ID:Computer-network
一、准备阶段的执行操作
(一)主机和网络设备安全初始化快照
这里先列出对主机、网络设备、数据库、安全加固及系统备份等初始化快照的清单,然后分别加以具体介绍。
1、Windows安全初始化快照
(1)生成账号快照;
(2)生成进程快照;
(3)生成服务快照;
(4)生成自启动快照;
(5)生成文件签名快照;
(6)生成网络连接快照;
(7)生成共享快照;
(8)生成定时作业快照;
(9)生成注册表快照;
(10)保存所有快照到光盘内。
2、Unix安全初始化快照
(1)获得所有setuid和setgid的文件列表;
(2)获得所有的隐藏文件列表;
(3)获得初始化进程列表;
(4)获得开放的端口列表
(5)获得开放的服务列表;
(6)获得初始化passwd文件信息;
(7)获得初始化shadow文件信息;
(8)获得初始化的不能ftp登录的用户信息;
(9)获得初始化的用户组信息;
(10)获得初始化的 /etc/hosts文件信息;
(11)获得初始化的/etc/default/login文件信息;
(12)获得/var/log目录下的初始化文件列表信息;
(13)获得/var/adm目录下的初始化文件列表信息;
(14)获得初始化计划任务列表文件;
(15)获得初始化加载的内核模块列表;
(16)获得初始化日志配置文件/etc/syslog.conf信息;
(17)获得初始化MD5校验和信息;
(18)保存所有快照到光盘内。
3、网络设备安全初始化快照
(1)获取用户访问线路列表;
(2)获取用户权限信息列表;
(3)获取开放端口列表;
(4)获取路由表;
(5)获取访问控制列表;
(6)获取路由器CPU状态;
(7)保存所有信息到光盘内。
4、数据库安全初始化快照
(1)获取Oracle 数据库用户信息;
(2)获取DEFAULT概要文件信息;
(3)获取数据库参数信息;
(4)获取Oracle 其他初始化参数信息;
(5)保存所有信息到光盘内。
5、安全加固及系统备份
略。
下面对上述五大部分分别介绍。
1、Windows安全初始化快照
(1)获取账号信息
说明:Windows Server缺省安装后有5个账号,其中2个账号是IIS账号,一个是安装了终端服务的终端用户账号,如果系统维护人员自己创建了账号,也要记录在案。
操作方法:使用net user 命令(Windows系统自带)可以列举出系统当前账号。
附加信息:Windows Server缺省安装后的5个账号名称如下。
Administrator:默认系统维护人员账号
Guest:来宾用户账号
IUSR_机器名:IIS来宾账号
IWAM_机器名:启动IIS的进程账号
TsInternetUser:终端用户账号
(2)获取进程列表
说明:系统维护人员应在系统安装配置完成后对系统进程做快照。
操作方法:通过使用pslist命令(第三方工具),能够列举当前进程建立快照。使用Widnows任务管理器(Windows系统自带)也可以列举出当前进程,但推荐使用pslist工具。
(3)获取服务列表
说明:系统维护人员应在系统安装配置完成后对系统服务做服务快照。
操作方法:使用sc query state= all命令格式(Windows资源工具箱中的工具)可以列举出系统当前服务信息。
(4)获取自启动程序信息
说明:Windows Server缺省安装后并无自启动项目。如果系统维护人员自己安装了某些软件,如Office、打印机等,缺省情况下将被添加到自启动目录中。
操作方法:检查各用户目录下的“「开始」菜单\程序\启动”目录。
(5)获取系统关键文件签名
说明:Windows Server缺省安装后,系统维护人员应利用md5sum工具,对系统重要文件生成系统MD5快照,然后将这些签名信息保存在安全的服务器上,以后可做文件对比。
操作方法:使用md5sum.exe 命令(第三方工具)可对系统文件进行MD5快照。
使用方法:md5sum [FILE]…(后面可跟多个文件)。
附加信息:建议用户对以下二进制文件和动态链接库文件进行MD5SUM快照。
#windir\EXPLORER.EXE
#windir\REGEDIT.EXE
#windir\NOTEPAD.EXE
#windir\TASKMAN.EXE
#windir\system32\cmd.exe
#windir\system32\net.exe
#windir\system32\ftp.exe
#windir\system32\tftp.exe
#windir\system32\at.exe
#windir\system32\netstat.exe
#windir\system32\ipconfig.exe
#windir\system32\arp.exe
#windir\system32\KRNL386.EXE
#windir\system32\WINLOGON.EXE
#windir\system32\TASKMGR.EXE
#windir\system32\runonce.exe
#windir\system32\rundll32.exe
#windir\system32\regedt32.exe
#windir\system32\notepad.exe
#windir\system32\CMD.EXE
#windir\system\COMMDLG.DLL
#windir\system32\HAL.DLL
#windir\system32\MSGINA.DLL
#windir\system32\WSHTCPIP.DLL
#windir\system32\TCPCFG.DLL
#windir\system32\EVENTLOG.DLL
#windir\system32\COMMDLG.DLL
#windir\system32\COMDLG32.DLL
#windir\system32\COMCTL32.DLL
(6)获取网络连接信息
说明:Windows Server缺省情况下系统开放 135/139/445/1025 TCP 端口,开放 137/138/445UDP端口。如果安装了MS SQL 服务器,还将开放TCP1433/UDP1434端口,如果安装了IIS服务器还将开放TCP80端口。
操作方法:使用netstat –an 命令可以列举出当前系统开放的TCP/UDP端口。
附加信息:建议使用netstat –an 命令(Windows系统自带)快照出系统开放端口和正常连接。
(7)获取共享信息
说明:Windows Server缺省情况下开放各磁盘共享,如C$,远程管理共享(admin$)和远程IPC共享(IPC$),如果用户另外打开了其他目录文件的共享,请记录在案。
操作方法:使用net share 命令(Windows系统自带)建立共享快照。
附加信息: Windows Server缺省共享。
共享名资源注释:
D$ D:\ 默认共享
ADMIN$ D:\WINNT 远程管理
C$ C:\ 默认共享
IPC$ 远程 IPC
(8)获取定时作业信息
说明:Windows Server缺省安装后并无定时作业。如果系统维护人员自己设置了某些软件,请记录在案。建议系统维护人员使用at命令建立定时作业快照。
操作方法:使用at 命令(Windows系统自带)建立定时作业快照。
附加信息:无
(9)获取注册表信息
说明:在对Windows Server安装了必要的软件后,可对注册表关键键值进行快照,供以后在检测时进行注册表对比。
操作方法:使用regdmp 命令(Windows资源工具箱)可以对注册表进行快照。
附加信息:进行注册表快照有多种方法,如使用第三方软件,如 Regshot、Regsnap 等。在Windows注册表编辑器中也可以对注册表进行备份和快照。另外,微软的资源工具箱中的regdmp命令也可以用来进行注册表快照工作。直接在命令下运行该命令及需要备份的键值即可。
如:C:\tools\MS>regdmp
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN
建议系统维护人员对下面的关键键值进行快照。
HKEY_LOCAL_MACHINES\System\CurrentControlSet\Control\SessionManager\KnownDLLs
HKEY_LOCAL_MACHINES\System\ControlSet001\Control\SessionManager\ KnownDLLs
HKEY_LOCAL_MACHINES\Software\Micrsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINES\Software\Micrsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINES\Software\Micrsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINES\Software\Micrsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINES\Software\Micrsoft\WindowsNT\CurrentVersion\Window(s“run=”line)
HKEY_LOCAL_MACHINES\sam\sam
HKEY_CURRENT_USER\Software\Micrsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER \Software\Micrsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER \Software\Micrsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER \Software\Micrsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Micrsoft\WindowsNT\CurrentVersion\Windows(“run=”line)
2、Unix安全初始化快照
(1)Solaris 安全初始化快照
以Solaris8为例
1)获取所有setuid和setgid的文件列表
命令: # find / -type f \( -perm -04000 -o -perm -02000 \) –print
查找系统中所有的带有suid位和sgid位的文件
2)获取所有的隐藏文件列表
命令: # find / -name ".*" –print
查找所有以“.”开头的文件并打印出路径
3)获取初始化进程列表
命令: # ps –ef
说明:
UID 进程所有者的用户ID
PID 进程ID
PPID 父进程的进程ID
C CPU占用率
STIME 以小时、分和秒表示的进程启动时间
TIME 进程自从启动以后占用CPU的全部时间
CMD 生成进程的命令名
4)获取开放的端口列表
命令: #netstat–an
5)获取开放的服务列表
命令: #cat/etc/inetd.conf
6)获取初始化passwd文件信息
命令: # cat /etc/passwd
说明: 如果发现一些系统账号(如bin, sys)加上了shell部分,就说明有问题,下面是正常的passwd文件,bin、sys、adm等系统账号没有shell。
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
7)获取初始化shadow文件信息
命令: # cat /etc/shadow
说明: 如果发现一些系统账号的密码被更改,或者不可登录的用户有密码了, 就说明该账号可能有问题。
sys: CVLoXsQvCgK62:6445::::::
adm: CVLoXsQvCgK62:6445::::::
8)获取初始化的不能ftp登录的用户信息
命令: # cat ftpusers
说明: 在这个列表里边的用户名是不允许 ftp 登录的。如果列表改变了,有可能是被入侵者改动过。
root
daemon
bin
sys
adm
lp
uucp
nuucp
listen
nobody
noaccess
nobody4
9)获取初始化的用户组信息
命令: # cat /etc/group
说明: 这是系统用户的分组情况
root::0:root
other::1:
bin::2:root,bin,daemon
sys::3:root,bin,sys,adm
adm::4:root,adm,daemon
uucp::5:root,uucp
mail::6:root
tty::7:root,tty,adm
lp::8:root,lp,adm
nuucp::9:root,nuucp
staff::10:
daemon::12:root,daemon
sysadmin::14:
nobody::60001:
noaccess::60002:
nogroup::65534:
10)获取初始化的 /etc/hosts文件信息
命令: # cat hosts
#
# Internet host table
#
127.0.0.1 localhost
192.168.0.180 Solaris8x86 loghost
11)获取初始化的/etc/default/login文件信息
命令: # cat /etc/default/login
说明: 这里是用户登录的配置文件的一部分,如控制root能否从控制台以外的地方登录#ident "@(#)login.dfl 1.10 99/08/04 SMI" /* SVr4.0 1.1.1.1 */
# Set the TZ environment variable of the shell.
#
#TIMEZONE=EST5EDT
# ULIMIT sets the file size limit for the login. Units are disk blocks.
# The default of zero means no limit.
#
#ULIMIT=0
# If CONSOLE is set, root can only login on that device.
# Comment this line out to allow remote login by root.
#
CONSOLE=/dev/console #现在root是不能远程登录的
# PASSREQ determines if login requires a password.
#
PASSREQ=YES
12)获取/var/log目录下的初始化文件列表信息
命令: # ls -la /var/log
说明: 这些日志是和/etc/syslog.conf配置文件中的日志相对应的
total 8
drwxr-xr-x 2 root sys 512 Jan 12 03:54.
drwxr-xr-x 28 root sys 512 Jan 12 04:28..
-rw------- 1 root sys 0 Jan 12 03:46 authlog
-rw-r--r-- 1 root other 424 Jan 12 04:28 sysidconfig.log
-rw-r--r-- 1 root sys 766 Jan 12 04:57 syslog
13)获取/var/adm目录下的初始化文件列表信息
命令: # ls -la /、var/adm
说明: 这些日志是和/etc/syslog.conf配置文件中的日志相对应的
total 114
drwxrwxr-x 6 root sys 512 Jan 12 05:11.
drwxr-xr-x 28 root sys 512 Jan 12 04:28..
-rw------- 1 uucp bin 0 Jan 12 03:46 aculog
-r--r--r-- 1 root other 2828 Jan 12 05:08 lastlog
drwxr-xr-x 2 adm adm 512 Jan 12 03:46 log
-rw-r--r-- 1 root root 25859 Jan 12 04:57 messages
drwxr-xr-x 2 adm adm 512 Jan 12 03:46 passwd
drwxr-xr-x 2 root sys 512 Jan 12 03:55 sm.bin
-rw-rw-rw- 1 root bin 0 Jan 12 03:46 spellhist
drwxr-xr-x 2 root sys 512 Jan 12 03:46 streams
-rw------- 1 root root 99 Jan 12 05:13 sulog
-rw-r--r-- 1 root bin 3348 Jan 12 05:08 utmpx
-rw-r--r-- 1 root root 244 Jan 12 04:57 vold.log
-rw-r--r-- 1 adm adm 15996 Jan 12 05:08 wtmpx
14)获取初始化计划任务列表文件
命令: /var/spool/cron/crontabs/root
说明: 这个文件是root用户的定时执行程序列表
# cat /var/spool/cron/crontabs/root
#ident "@(#)root 1.19 98/07/06 SMI" /*SVr4.0 1.1.3.1 */
#
# The root crontab should be used to perform accounting data collection.
#
# The rtc command is run to adjust the real time clock if and when
# daylight savings time changes.
#
10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0 /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
15)获取初始化加载的内核模块列表
命令: # /usr/sbin/modinfo
说明:不正常的内核模块常常说明系统被入侵者植入了内核后门
16)获取初始化日志配置文件/etc/syslog.conf信息
说明: 此配置文件定义了各种日志对应的文件名和日志所要记录的东西
# cat /etc/syslog.conf
#ident "@(#)syslog.conf 1.5 98/12/14 SMI" /*SunOS 5.0*/
#
# Copyright (c) 1991-1998 by Sun Microsystems, Inc.
# All rights reserved.
#
# syslog configuration file.
#
# This file is processed by m4 so be careful to quote (`') names
# that match m4 reserved words. Also, within ifdef's, arguments
# containing commas must be quoted.
#
*.err;kern.notice;auth.notice /dev/sysmsg
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages
*.alert;kern.err;daemon.err operator
*.alert root
*.emerg *
# if a non-loghost machine chooses to have authentication messages
# sent to the loghost machine, un-comment out the following line:
#auth.notice ifdef(`LOGHOST',/var/log/authlog,@loghost)
mail.debug ifdef(`LOGHOST',/var/log/syslog,@loghost)
#
# non-loghost machines will use the following lines to cause "user"
# log messages to be logged locally.
#
ifdef('LOGHOST', ,
user.err /dev/sysmsg
user.err /var/adm/messages
user.alert `root,operator'
17)获取初始化md5校验和信息
例子:计算/usr/bin/cat 的校验和
命令:#md5 /usr/bin/cat
说明:如果同一文件前后两次的md5校验和不相同的话,说明文件有可能被入侵者替换了。
MD5 (/usr/bin/cat) = db2d19bdebb690eb1870d2c49fd98d2f
需要做快照的文件列表如下。
/usr/bin/*
/usr/sbin/*
/usr/local/bin/*
/etc/passwd
/etc/shadow
/etc/inetd.conf
/etc/services
/etc/inittab
/etc/syslog.conf
/etc/default/login
/etc/default/passwd
(2)文件签名检测补充方法
Solaris指纹数据库(Fingerprint Database)是验证Solaris操作环境下系统文件(如/bin/su可执行文件),系统补丁和SPARCcompilers等非系统捆绑产品完整性的重要安全解决方案。作为安全技术人员或Solaris用户,可以使用指纹数据库去验证使用的二进制文件是否被篡改过。Solaris指纹数据库(Fingerprint Database)是以一个Web接口的形式对用户提供服务的,即简单地拷贝和粘贴一个或更多的MD5文件签名到Sun公司提供Web页(http://sunsolve.sun. com/pub-cgi/fileFingerprints.pl),然后点击“submit(提交)”键。指纹数据库将会将产生的MD5数字签名和存储在sfpDB (Solaris Fingerprint Database)中的可信签名值进行对比,稍等片刻将可以看到提交的MD5值是否和数据库中的可信值匹配,是否被篡改过。
1)目前提供支持的操作系统
Solaris SPARC - 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.5.1, 2.6, Solaris 7 and Solaris 8
Solaris x86 - 2.1, 2.4, 2.5, 2.5.1, 2.6, Solaris 7 and Solaris 8
Solaris PPC - 2.5.1
Trusted Solaris SPARC - 2.5, 2.5.1 and 7
Trusted Solaris 7 x86
Most CDs bundled with Solaris 2.6 and later.
2)支持的补丁
几乎所有已发布的Solaris补丁,包括所有SunSolve CD 中提供的补丁。
所有Solaris 维护升级补丁。
所有SunSolve 中的可用补丁。
支持的非系统捆绑产品(Unbundled Products)。
3)数据库概要
实例:
①获得文件的MD5值。
获得文件的MD5值的方法如图1所示。
图1 获得文件MD5值
将文件的MD5值粘贴到页面http://sunsolve.sun.com/pub-cgi/fileFingerprints.pl。
note:在本实验中将/bin/ls的MD5值做了改动也提交了一份,如图2所示。
图2 MD5值作改动并提交
②按下“submit”键,稍等片刻获得结果。
Note:MD5值错误或经过篡改过的文件显示为“0 mathch(es)”,即在sfpDB库中不存在,其显示结果如图3所示。
图3 显示结果
3、网络设备安全初始化快照
(1)路由器安全初始化快照
1)路由器安全快照的目的
对路由器系统的相关配置做安全快照的主要目的是为了在路由器工作不正常或遭到入侵时,通过对其一些关键的配置与快照进行对比,发现其中发生变化的部分,以能确定事情的初步原因。
2)路由器安全快照的内容
路由器的安全初始化不同厂商及不同型号的设备、其初始化的内容也不一样,但其配置方面做安全快照,内容基本相同,主要有以下内容:
①用户访问线路列表;
②用户权限信息列表;
③开放端口列表;
④路由表;
⑤访问控制列表;
⑥路由器CPU状态。
3)路由器安全快照的方法(以CISCO路由器为例)
①用户访问线路列表快照的方法
全局模式下:show line
②用户权限信息列表快照的方法
全局模式下:show privilege
③开放端口列表快照的方法
检测路由器的端口开放情况最好的方法是用nmap(Unix系统应急处理工作包)进行TCP和UDP的全端口远程扫描,命令如下。
在你的工作机上,进入到nmap程序目录下,运行以下命令。
TCP全端口远程扫描:nmap –sS –P 1-65535 X..X..X.X(路由IP地址)
UDP全端口远程扫描:nmap –sU –P 1-65535 X..X..X.X(路由IP地址)
④路由表快照的方法
全局模式下:show ip route
⑤访问控制列表快照的方法
全局模式下:show ip access-list
⑥路由器CPU状态快照的方法
全局模式下:show process cpu
4)路由器安全快照的保存
路由器的安全快照的保存主要有两部分:
通过show config可以显示的配置;
用nmap进行端口扫描的结果。
建议路由器的安全快照刻录到应急响应光盘上。
4、数据库安全初始化快照
(1)Oracle 快照的目的
在Oracle安装配置完成后,可以对Oracle做一次初始安全状态快照。这样,如果以后在对该服务器做安全检测时,通过将初始化快照做的结果与安全检测时做的结果比较,就能够发现Oracle的改动或异常。
下面以Windows下的Oracle为例进行介绍(Unix下的命令和Windows平台下相同)。
(2)Oracle所开启的服务
在系统的服务里面取得如图4所示信息。
图4 系统的服务信息
3)Oracle 所有用户及所具有的角色及权限
显示所有的账号:
Select * from all_users;
或用Oracle企业管理器查看,如图5所示。
图5 账号显示
Oracle 用户所具有的角色及权限:
Select * from user_role_privs;
或以图6所示方式进行查看。
图6 用户角色显示
4)Oracle角色的快照
显示所有的角色:
Select * from dba_roles;
或以图7所示方式进行查看。
图7 角色查看
显示角色的构成:
select * from dba_role_privs;
或以图8所示方式进行查看。
图8 角色构成
5)DEFAULT概要文件快照
select * from dba_profiles;
或以图9所示方式进行查看。
图9 DEFAULT概要文件
6)数据库参数的快照
显示SGA的参数
show sga;
显示情况见图10。
图10 内存参数显示
显示共享池大小
show parameter shared;
显示数据缓冲池大小
show parameter db_cache;
显示日志缓冲池大小
show parameter log;
显示数据块大小
show parameter db;
7)Oracle 所有初始化参数
select * from v$parameter;
或以图11所示方式进行查看。
图11 Oracle所有初始化参数
5、安全加固及系统备份
在准备阶段,必须对主机、网络设备和数据库系统进行安全加固工作;防范因补丁问题而带来的溢出攻击和因协议问题而带来的DoS攻击;在安全加固时请按照加固手册的标准流程操作避免因加固动作带来的风险。
在准备阶段,必须做好系统的备份工作;对已上了备份系统的主机应该利用系统备份软件进行系统的备份;没有系统备份措施的主机,应该对系统的环境文件、数据库数据、数据库环境文件及应用的环境文件进行备份,所有备份的内容应该保证系统在遭到入侵后,能够利用备份进行系统恢复。
安全加固和系统备份工作在做安全快照开始前必须完成。
(二)应急响应标准工作包的准备
Windows系统应急工具包:将下面的“Windows系统应急处理包”的一些系统的基本命令和第三方检测工具刻录在光盘上,附上说明指南和简单的列表。另外,前面阶段所做的系统镜像也刻录上来,保管在一起,以供应急时统一使用。
Solaris系统应急工具包:将下面的“Solaris系统应急处理包”分类明确地收集并刻录在光盘上,同时应提供一个列表和简单的使用说明指南。前面所做的系统镜像也可以和应急工具包存放在一起,以供检测时对比使用。在利用应急工具包处理突发事件时,应先用 MD5工具对系统的库文件进行对比检测,如果发现不正常的库文件,首先需要进行这些可疑库文件的替换和备份,再进行其他二进制文件的检测和对比。
Oracle 数据库的应急处理工具包:用 Oracle 工具包把数据检测后存放到光盘上。在利用应急工具包处理突发事件时,应先对系统的库文件利用MD5工具进行对比检测,如果发现不正常的库文件,首先需要进行这些可疑库文件的替换和备份,再进行其他二进制文件的检测和对比。
1、Windows系统应急处理工作包
(1)系统基本命令
Windows系统中的基本命令及其描述如表1所示。
表1 Windows系统的基本命令
(2)其他工具软件
系统中其他工具软件及其描述如表2所示。
表2 系统中的其他工具
2、Unix系统应急处理工作包
(1)系统基本命令
特别注意:有些工具在使用时会占用大量的系统资源,这些工具应该明确其使用的时间或条件,如Unix下的find。如果要在工作期间使用find,应该使用命令优先级命令(nice)让其降到最低,在系统比较闲的时候执行。
Unix系统中的基本命令及其描述如表3所示。
表3 Unix系统的基本命令
(2)其他工具软件
系统中的其他工具软件及其描述如表4所示。
表4 Unix系统的其他工具软件
3、Oracle 数据库应急处理工具包
SQLPlus
日志分析工作:LogMiner3、Oracle企业管理器(Enterprise Manager)
数据库管理(Database Administration)
移植工具(Migration Utilities)
网络管理(Network Administration)
DOS窗口下实用程序
SVRMGRL Oracle服务器管理:Oracle Server Manager
E:\Oracle\Ora81\BIN\SVRMGRL.EXE
SQL*Plus DOS窗口下使用的SQL*Plus
E:\Oracle\Ora81\BIN\SQLPLUS.EXE
LSNRCTL 监听器管理程序
E:\Oracle\Ora81\BIN\LSNRCTL.EXE
EXP/IMP 逻辑备份、恢复工具
E:\Oracle\Ora81\BIN\EXP.EXE、E:\Oracle\Ora81\BIN\IMP.EXE
SQL*Loader 大量数据插入工具
E:\Oracle\Ora81\BIN\SQLLDR.EXE
ORAPWD 修改sys或internal密码工具
E:\Oracle\Ora81\BIN\ORAPWD.EXE
OCOPY Oracle拷贝工具
E:\Oracle\Ora81\BIN\OCOPY.EXE
二、检测阶段的执行操作
(一)系统安全事件初步检测方法
1、Windows系统检测技术规范
(1)Windows服务器检测技术规范
详细描述Windows服务器入侵检测技术规范和操作流程,共11项检测内容。
1)日志检查
目标:从系统日志中检测出未授权访问或非法登录事件;从IIS/FTP日志中检测非正常访问行为或攻击行为。
说明:检查事件查看器中的系统和安全日志信息,如:安全日志中异常登录时间,未知用户名登录。
检查%WinDir%\System32\LogFiles目录下的WWW日志和ftp日志,如WWW日志中的对cmd.asp文件的成功访问。
2)账号检查
目标:检查系统非正常账号,隐藏账号。
说明:使用net user,net group,net local group命令检查账号和组的情况,使用计算机管理查看本地用户和组。利用这些获得的信息和前面准备阶段做的账号快照工作进行对比。
3)进程检查
目标:检查是否存在未被授权的应用程序或服务。
说明:使用任务管理器检查或使用微软件工具包进程察看工具 pulist。利用这些获得的信息和前面准备阶段做的进程快照工作进行对比。
4)服务检查
目标:检查系统是否存在非法服务。
说明:使用“管理工具”中的“服务”查看非法服务或使用sc工具查看当前服务情况,利用这些获得的信息和准备阶段做的服务快照工作进行对比。
5)自启动检查
目标:检查未授权自启动程序。
说明:检查系统各用户“启动”目录下是否存在未授权程序。
6)文件检查
目标:检查病毒、木马、蠕虫。
说明:使用防病毒软件检查文件,扫描硬盘上所有的文件。
7)网络连接检查
目标:检查非正常网络连接和开放的端口。
说明:使用ipconfig, netstat –an或其他第三方工具查看所有连接,检查服务端口开放情况,利用这些获得的信息和准备阶段做的网络连接快照工作进行对比。
8)共享检查
目标:检查非法共享目录
说明:使用net share检测当前开放的共享,使用$是隐藏目录共享,利用这些获得的信息和前面准备阶段做的共享快照工作进行对比。
9)定时作业检查
目标:检查是否存在不明定时执行作业。
说明:使用at命令,检查当前定时作业情况,利用这些获得的信息和前面准备阶段做的定时作业快照工作进行对比。
10)注册表检查
目标:检查注册表中是否存在非正常程序。
说明:检查以下注册表项,并和前面做的注册表快照工作进行对比。
HKEY_LOCAL_MACHINES\System\CurrentControlSet\Control\SessionManager\KnownDLLs
HKEY_LOCAL_MACHINES\System\ControlSet001\ Control\SessionManager\ KnownDLLs
HKEY_LOCAL_MACHINES\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINES\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINES\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINES\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINES\Software\Microsoft\WindowsNT\CurrentVersion\Windows
(“run=”line)
HKEY_LOCAL_MACHINES\sam\sam
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows(“run=”line)
11)资源使用检查
目标:检查CPU/内存等系统资源使用情况是否正常。
说明:利用Windows任务管理器检测系统CPU,内存系统资源占用情况,利用Windows资源管理器检查系统硬盘使用情况,利用netstat命令检测当前系统网络连接状态是否正常。
(2)Windows检测典型案例
1)情况描述
国家××局Windows服务器主页页面被删除,服务器被黑客非法安装多个后门的入侵检测事件。根据Windows初级检测技术,分析该系统服务、账号、进程等情况,查找出攻击者在系统中留下的后门及一些操作。
2)入侵分析
3)账号检测
使用net user 命令,发现存在缺省用户之外的用户test,经过与安全快照对比,系统维护人员确认,此用户不是系统维护人员增加,为黑客留下的后门账号。
4)进程检测
使用任务管理器,发现 telnet 进程,经过与安全快照对比,系统维护人员并没打开该服务,而系统缺省情况下telnet服务也是关闭的。
5)服务检测
打开“管理工具”中的“服务”,经过与安全快照对比,发现telnet服务被启动并被设置到自动启动模式,同时新增加 VNC 服务,该服务提供一个远程图形界面的控制台,是国内黑客常用的后门程序。
6)网络连接检测
利用netstat–an 命令,发现TCP23(telnet程序开放的端口)、TCP5800,5900(VNC后门程序开放的端口)端口开放,经过与安全快照对比,为黑客所为。
2、Unix系统检测技术规范
(1)Solaris 系统检测技术规范
1)日志检查
目标:检查日志和用户历史记录文件,检查是否存在入侵行为。
说明:/var/log,/var/adm./etc/syslog.conf,/.sh_history,/.bash_history 和其他用户目录的历史记录文件。如
cd /var/log
strings syslog
cd /var/adm
strings messages
2)账号检查
目标:检查非正常账号。
说明:检查/etc/passwd,/etc/shadow文件,通过和初始化的快照对比发现是否被更改,如果发现了新的超级用户或者是发现了新的shell账户等, 就可能存在入侵行为。
3)进程检查
目标:检查系统是否运行未被授权的应用程序或服务。
说明:利用ps –ef或ps –aux 命令检测非法进程,通过和快照进行对比,查看是否有异常的进程。
4)服务检查
目标:检查系统是否存在未被授权服务。
说明:检查/etc/inetd.conf文件中的服务进程是否已被替换;
检查/etc/rc*.d目录下的所有启动服务脚本文件是否被更改。
5)文件和目录检查
目标:检查系统非正常隐藏文件或可疑文件。
说明:检查带setuid和setgid位文件:find /( \ -perm –2000 –o –perm –4000 \) –type f –exec ls –la{} \;
检查无用户或组的文件:find / -nouser –o –nogroup –print
检查/etc/hosts.equiv, /etc/hosts.lpd 和所有目录下的.rhosts文件:find / -name .rhosts –exec–-ls –la {} \;
检查隐藏目录或文件 find / -name “.*” –print –mdev
6)网络连接检查
目标:检查非正常网络连接和服务端口开放情况。
说明:使用netstat –an查看所有连接,检查当前网络连接和服务端口开放情况。
7)定时作业检查
目标:检查所有cron和at定时调用执行作业中是否存在非法作业。
说明:检查如下文件或目录:/etc/default/cron /etc/cron.d/ /var/cron/log/var/spool/cron/*。
(2)Unix检测典型案例
情况描述:
某省电信Solaris8主机被入侵者安装上rootkit的入侵检测事件。现场分析主要依据是规范里的一些命令,并分析输出和快照进行对比,查找出攻击行为。
入侵分析:
1)日志检测
cd /var/log时出错,很可能是入侵者删除了一些目录。
通过strings lastlog 和 strings messages和其他一些文件,没有发现明显的不正常记录。如图12所示。
图12 日志检测
查看shell的历史记录文件时,发现.sh_history文件被link到了/dev/null,系统默认是记录历史命令的文件,可能是入侵者为了隐藏自己的行为,做了这个设置。
2)账号检测
通过与快照对比,发现了一个uid为0的sysop账号。
3)进程检测
进程检测如图13所示。
图13 进程检测
通过进程的快照对比,没有发现可疑进程,继续检测。
4)服务检测
服务检测如图14所示。
图14 服务检测
查看/etc/inetd.conf,与快照对比,发现一个新增的telnetd服务。
为了确认其监听端口,在命令行输入more /etc/services命令,发现一个在2766端口对应的服务是telnetd。
5)文件和目录检测
查找隐藏文件与快照对比,发现了/usr/bin/.login,通过上面的检测结果与快照对比,发现系统新增了telnetd服务和一些隐藏文件,发现这些情况后,如果系统维护人员不能确认其原因,应该立即通报给安全技术人员来处理。
下面是安全技术人员继续检测的过程,查看strings /usr/bin/.login。结果如图15所示。
图15 Strings/usr/bin/.login F的查看结果
在 结 果 中 发 现 /sbin/xlogin 这 个 不 正 常 的 字 串,strings /sbin/xlogin 发 现/usr/lib/libX.a/bin/netstat。进入/usr/lib/libX.a/目录,看看有什么异常,结果如图16所示。
图16 /usr/lib/libx.a/目录下的查看结果
看到wipe — 日志清除工具
看到syn — 拒绝服务工具
这2个工具是入侵者常用的工具,安全技术人员应该掌握。
在./bin下面还发现了更改后的strings ps netstat 等文件,这些是用来隐藏自己的,到这里,可以确认此台机器已经被入侵并被安装了后门。
(二)系统安全事件高级检测方法
1、Windows系统高级检测技术规范
(1)Windows高级检测技术规范
这里介绍的攻击技术所造成的问题就是一般性检测技术比较难以发现,下面是对一些高级攻击方法进行检测的操作介绍。
1)系统日志的检测
检测系统日志文件。
系统在受到溢出攻击后,会在日志留下记录,因为服务一旦被溢出后就会停止。
检查 Web、ftp 和 smtp 等服务日志,溢出攻击一般会在日志中留下记录,日志通常在%systemroot%\system32\logfiles目录下面。
2)查找是否有隐藏的账号
打开regedit,打开其中的sam键和快照对比,看其中是否有被修改的痕迹。
打开计算机管理器,查看guest账号是否被激活,看看netshowservies、IUSR_machine、IWAM_machine、TsInternetUser 等账号是否存在,如果存在的话请检测他们有没有被修改密码,对于IUSR_machine、IWAM_machine这2个账号而言,要保证这两个账号不是administrators组的,而仅是Guests组的成员。
3)查看应用程序的日志
查看应用程序的账号登录等相关信息,看看有没有人非法使用账号。
查看应用程序日志是否被修改。
4)查看有没有非法的Web脚本程序
利用find str “cmd” c:\*.* 查看所有硬盘上的文件有没有非法的Web脚本后门,如果含有cmd关键字的动态脚本,那么就一定要注意这个脚本的功能,有可能是用来穿透防火墙的Web后门。
(2)Windows高级检测技术案例
国内某著名网站受到攻击。
检测方法:
检测系统日志文件,界面如图17所示。
图17 系统日志文件检测界面
发现无数的账号登录失败的记录,从时间来看在1 min内不可能登录系统这么多次。
查找是否有隐藏的账号:
安全人员接下来查看了所有用户,发现了一个可疑的用户
D:\>net localgroup administrators
别名 administrators
注释管理员对计算机/域有不受限制的完全访问权
成员
Administrator
IWAM_CNNS
这个命令是查看administrators管理员组里有哪些用户,发现iwam_cnns是administrator权限,经与快照对比确认,iwam_cnns是非法新增用户。
接下来net user 查看所有用户
D:\>net user
\\SECURITY 的用户账户
-------------------------------------------------------------------------------
Administrator bobo Guest
IUSR_CNNS IWAM_CNNS TsInternetUser
然后在计算机组件里查看所有用户,界面如图18所示。
图18 用户查看界面
发现计算机组件里有一个ipc$,用net user是看不到这个ipc$账号的,这是个非正常现象,系统维护人员确定了这个账号是被黑客创建的隐藏的账号。
2、Unix系统高级检测技术规范
(1)Solaris高级检测技术规范
针对Solaris高级攻击技术和隐藏技术进行检测。
1)检测缓冲区溢出攻击
检测core文件,(find / -name “core”–print);
系统在受到缓冲区溢出攻击后,多会留下core 文件。分析core 文件可以得到一些线索,如图19所示。
图19 Core文件分析
检查系统日志,溢出攻击一般会在日志中留下记录。
检查是否有可能存在溢出的服务,如匿名ftp服务、telnet服务等。检查它们是否有当掉等,有些rpc服务会在被溢出后当掉。
2)检测rootkit(内核后门)
①使用chkrootkit工具检测已知的rootkit、worm等
检测界面如图20所示。
图20 使用chkrootkit工具的检测界面
②查找没有属主的文件(find / -nouser –o –nogroup –print)
③查找隐藏文件( find / -name ‘.*’–print)
与系统快照进行对比, 检测文件是否改变;
使用lsof检测文件和进程关联;
其查找界面如图21所示。
图21 隐藏文件查找界面
④检测可加载内核模块后门
/usr/sbin/modinfo, 与系统快照进行对比。
查找不正常的内核模块,如ID不正常,出现不连续的模块ID等。其检测界面如图22所示。
图22 可加载内核后门检测界面
⑤检测login后门
使用MD5检测/usr/bin/login并与快照进行对比;
使用strings查看可疑字串。
其检测界面如图23所示。
图23 login后门检测界面
⑥检测su后门
使用MD5检测su并与快照进行对比;
使用strings查看可疑字串。
其检测界面如图24所示。
图24 su后门检测界面
(2)Unix高级检测技术案例
针对Unix高级攻击技术和隐藏技术进行检测的案例。
1)情况描述
这是某省信息港Solaris 8 Sparc主机被人植入rootkit,系统文件被替换的情形。通过基本的检测没有发现不正常现象。因此要采取一些高级的检测方式检测。
2)案例分析
缓冲区溢出攻击的检测,其检测界面如图25所示。
图25 缓冲区溢出攻击的检测界面
通过检查core文件,没有发现什么;
检查rootkit;
通过chkrootkit检查,没有发现异常。
查找没有属主的文件;
查找隐藏文件,查找界面如图26所示,未发现异常;
图26 隐藏文件查找界面
与系统快照进行对比, 检测文件是否改变;
使用lsof检测文件和进程关联,其界面如图27所示。
图27 lsof检测界面
这里是lsof | grep *: 的输出结果。在最下面一行标记,发现名为sendmail的进程,监听TCP:2457端口,正常情况Sendmail不会开这么高的端口。
继续检测telnet localhost 2457,其检测界面如图28所示。发现是SSH服务端,并且改了个sendmail的名字,确认为被入侵并被安装了rootkit后门。
图28 telnet localhost 2457检测
3)总结
在基本检测中,没有发现它的可见rootkit隐藏了端口和进程(通过替换netstat和ps文件)。这里查出了rootkit。其实可以用干净的备份系统命令做一下验证。
图29是从应急响应盘拷贝过来的netstat的输出,可以看到2457端口在监听。
图29 netstat的输出
检测可加载内核模块后门;
通过与快照对比检测,没有发现什么异常;
检测sendmail配置后门;
没有发现异常;
检测/usr/bin/login,通过与快照对比检测,发现文件被替换了;
检测/usr/bin/su,通过与快照对比检测,没有发现什么异常。
(三)网络攻击事件检测方法
1、拒绝服务事件检测方法
(1)利用系统漏洞的拒绝服务攻击检测方法
检测方法:
利用操作系统漏洞,能够对系统进行拒绝服务攻击,受攻击的系统将会出现系统不能正常运行、死机、CPU占用率过高、内存占用率过高等种种现象。
对于此类攻击方式,可通过以下方法检测。
使用资源管理器(Solaris使用ps –aux命令)检查当前内存、CPU等资源占用情况。
检测系统进程和快照对比,找出非法进程。
检测网络连接和快照对比,找出可疑的网络连接。
(2)利用网络协议的拒绝服务攻击检测方法
攻击者利用网络协议某些特性可能对系统发动拒绝服务攻击,如常用的SYN-FLOOD就是利用TCP协议3次握手的特点发起的攻击。
对于SYN-FLOOD攻击,可通过利用netstat –an 命令(适用于Windows/Unix系统),能发现当前活动连接的状态中存在大量的 SYN_RECEIVED 状态包,这表明系统正受到SYN-FLOOD拒绝服务攻击。
通过使用SNIFFER,如果发现大量非正常网络连接,或协议的非正常分布(如icmp或UDP协议数据超过总流量的20%),表明系统正在受到拒绝服务攻击。
2、网络欺骗安全事件检测方法
(1)DNS欺骗检测
防范DNS欺骗只要防范ARP欺骗就可以了。通过利用ARP欺骗手段,能够实现交换环境下的网络监听。发起arpspoof的主机向目标主机发送伪造的ARP应答包,骗取目标系统更新ARP表,将目标系统的网关的mac地址修改为发起arpspoof的主机mac地址,使数据分组都经由发起arpspoof的主机,这样即使系统连接在交换机上,也不会影响对数据分组的攫取,由此就轻松地通过交换机实现了网络监听。
检测方法:
1)借助检测IP地址和mac地址对应的工具,如arpwatch,安装了arpwatch的系统在发生mac地址变化时会在系统的日志文件中看到图30所示的提示。
图30 日志文件
从提示中可以看出arpwatch检测到了网关mac地址发生了改变。
2)借助于一些入侵检测系统,如snort,也可以起到的一定的检测作用。在snort的配置文件中打开arpspoof的preprocessor开关并进行配置即可。
3)使用antisniff工具,也可以远程检测出交换环境下处于SNIFFER状态的机器。
(2)Web欺骗检测
防范Web欺骗也只要防范ARP欺骗即可,检测方法与DNS欺骗检测相同。
(3)电子邮件欺骗检测规范及案例
利用电子信息技术进行欺诈与盗取的现象呈现上升趋势,电子邮件假冒和欺骗是一个很大的安全漏洞,形式很多。
检测方法:
根据使用邮件客户端软件的不同,需要做一些操作来显示头文件。在大部分程序中,只要单击“文件/属性”,就可以看到头文件。
大部分人不会需要看到邮件的头文件,所以电子邮件软件开发商就将其设计到不明显的地方。以微软的Outlook Express为例,如图31所示,在Outlook Express中只要单击“文件(File)”然后选择“属性(Properties)”再点“详细信息”最后点“邮件来源”,就可以在一个对话框中看到头文件的信息。
图31 Outlook Express中的邮件来源界面
这个页面显示了邮件的一些基本信息,例如邮件的标题、发送者和发送接收的日期和时间。其中发信地址和回信地址都是可以伪造的地址。大部分重要的痕迹就是在这里发现的。在这个例子中,第二行显示了邮件最初是从哪台机器发送的,但pc的名字“cnns”是可以轻易修改的(修改发信者主机的主机名);其后的IP地址有可能是邮件服务器的IP,也有可能是代理的IP或匿名转发邮件服务器的IP。
通过DNS查找邮件服务器的IP和邮件基本信息里的IP地址是否一致。
有些主机名可能就是黑客在网上使用的昵称,所以有时通过邮件头查找主机名在网上查相关的黑客昵称也是可以查到黑客的,这也是确定邮件欺骗的一种方法。
3、网络窃听安全事件检测方法
(1)共享环境下SNIFFER检测规范及案例
1)描述及原理
当局域网内的主机都通过交换机等方式连接时,一般都称为共享式的连接,这种共享式的连接有一个很明显的特点就是交换机会将接收到的所有数据向盗抢机上的每个端口转发,也就是说当主机根据mac地址进行数据分组发送时,尽管发送端主机告知了目标主机的地址,但这并不意味着在一个网络内的其他主机听不到发送端和接收端之间的通信,只是在正常状况下其他主机会忽略这些通信报文而已。如果这些主机不愿意忽略这些报文,网卡被设置为promiscuous状态的话,那么,对于这台主机的网络接口而言,任何在这个局域网内传输的信息都是可以被听到的。
2)检测方法
对发生在局域网的其他主机上的监听,一直以来都缺乏很好的检测方法。这是由于产生网络监听行为的主机在工作时总是不做声的收集数据分组,几乎不会主动发出任何信息。但目前网上已经有了一些解决这个问题的思路和产品。
①利用ARP数据分组进行监测
除了使用PING进行监测外,目前比较成熟的有利用ARP方式进行监测的。这种模式是上述PING方式的一种变体,它使用ARP数据分组替代了上述的icmp数据分组。向局域网内的主机发送非广播方式的ARP包,如果局域网内的某个主机响应了这个ARP请求,那么就可以判断它很可能就是处于网络监听模式了,这是目前相对而言比较好的监测模式。这种方式在neped和PromiScan这2个产品中有所体现。
②观测DNS
许多的网络监听软件都会尝试进行地址反向解析,在怀疑有网络监听发生时可以在DNS系统上观测有没有明显增多的解析请求。
③利用PING模式进行监测
当一台主机进入混杂模式时,以太网的网卡会将所有不属于它的数据照单全收。按照这个思路,就可以这样来操作:假设怀疑的主机的硬件地址是 00:30:6E:00:9B:B9,它的 IP 地址是 192.168.1.1,那么现在伪造出这样的一种 icmp 数据分组:硬件地址是不与局域网内任何一台主机相同的00:30:6E:00:9B:9B,目的地址是192.168.1.1不变,可以设想一下这种数据分组在局域网内传输会发生什么现象:任何正常的主机会检查这个数据分组,比较数据分组的硬件地址,和自己的不同,于是不会理会这个数据分组,而处于网络监听模式的主机呢?由于它的网卡现在是在混杂模式的,所以它不会去对比这个数据分组的硬件地址,而是将这个数据分组直接传到上层,上层检查数据分组的IP地址,符合自己的IP,于是会对这个PING的包做出回应。这样,一台处于网络监听模式的主机就被发现了。这种方法在10pht这个黑客组织的antisniff产品中有很好的体现。
(2)交换环境下SNIFFER检测规范及案例
1)描述及原理
通过利用ARP欺骗手段,能够实现交换环境下的网络监听,发起arpspoof的主机向目标主机发送伪造的ARP应答包,骗取目标系统更新ARP表,将目标系统的网关的mac地址修改为发起 arpspoof的主机 mac地址,使数据分组都经由发起 arpspoof的主机,这样即使系统连接在交换机上,也不会影响对数据分组的攫取,由此就轻松地通过交换机实现了网络监听。
2)检测方法
①借助检测IP地址和mac地址对应的工具,如arpwatch,安装了arpwatch的系统在发生mac地址变化时会在系统的日志文件中看到如图32所示的提示。
图32 日志文件
从提示中可以看出arpwatch检测到了网关mac地址发生了改变。
②借助于一些入侵检测系统,如snort,也可以起到的一定的检测作用。在snort的配置文件中打开arpspoof的preprocessor开关并进行配置即可。
③使用antisniff工具,也可以远程检测出交换环境下处于SNIFFER状态的机器。
4、口令猜测安全事件检测方法
口令猜测和暴力破解是黑客最常用的,也是最简单直接的攻击方式。为防止并记录这种攻击行为,需要事先做好安全设置和日志记录。通过检查系统的日志记录,可以检测出是否遭到口令猜测和暴力破解攻击。
(1)Windows系统检测
Windows系统默认设置是不会记录错误登录尝试的,因此需要手工进行安全审计的设置。
开始→设置→控制面板→管理工具→本地安全设置→本地策略→审核策略
双击审核登录事件,将“失败”选中(也可将“成功”也选中),确定(设置需要重启才会有效),如图33所示。
图33 Windows系统中的安全策略设置界面
设置生效后,错误的登录尝试都将被记录下来。查看日志文件位置如下。
开始→设置→控制面板→管理工具→事件查看器→安全日志
(2)UNIX系统检测
Solaris系统默认设置是不会记录错误登录尝试的,因此我们需要手工创建日志文件。
日志记录设置步骤:
#touch /var/adm/loginlog
#chmod 600 /var/adm/loginlog
#chown root /var/adm/loginlog
系统默认是只有连续5次错误尝试登录才会记录。用户可通过编辑文件/etc/default/login中“RETRIES=5”来更改缺省次数。
查看日志:
将该日志文件创建完毕后,如出现连续的错误尝试登录,系统将会自动记录到文件/var/adm/loginlog中。用户可通过下面指令进行查看
#cat /var/adm/loginlog
(3)CISCO路由器检测
默认方式下路由器不会记录任何扫描和登录,可以把日志信息存在路由器上,或者发送到控制台。
router(config)# logging buffered
router(config)# logging console
最好使用额外的一台服务器来存放路由器的日志信息,下面使用 UNIX 服务器来放置router.log文件的配置。
在CISCO路由器上:
router(config)# logging faclity syslog
router(config)# logging trap informational
router(config)# logging [服务器名]
在log server上:
在/etc/syslog.conf中加入一行
*.info /var/log/router.log
生成文件日志文件
touch /var/log/router.log
重起syslogd进程
kill -HUP `cat /var/run/syslogd.pid`
在log server上查看日志
5、网络异常流量特征检测
(1)网络异常流量特征分类
网络的异常流量特征主要是指在网络中出现的数据分组的大小异常、协议数据分组分布的异常、网络连接状态的异常及网络流量大小的异常、网络数据分组数目异常5种情况。
1)数据分组大小异常
TCP/IP网络上的正常数据分组的大小为64~1 524 B,如果在sniffer软件或别的监控软件上发现大量小于或大于上面范围的数据分组,就可以确定为数据分组大小异常。
2)协议数据分布的异常
一般在正常的网络环境应用下,ICMP协议数据占整个协议流量数据的2%左右,如果超出这个范围,就可以确定为异常;一些特殊的应用如 Web 应用环境,却发现大量的 FTP 协议数据,也可以确定为异常;针对协议数据分布的异常检测,系统维护人员应该根据自己的实际应用环境,做一个协议数据分布的安全快照或基线,在检测时,如果超出这个范围,就可以确定为异常。
3)网络连接状态异常
网络连接状态异常主要是指网络上出现大量的非正常网络连接,如大量的syn不完全连接、连续端口的扫描行为连接。
4)网络流量大小异常
主要指出现网络流量的剧增,造成应用的中断,网络流量的剧增主要是由于网络上出现了蠕虫或遭到DoS攻击,一般流量的剧增都表现在前面3种形式上。
5)网络数据分组数目异常
数据分组数目的异常主要是指网络发生异常时(蠕虫或病毒爆发,或遭到DoS攻击时),网络上突然出现大量的数据分组大小一样的数据封包。
(2)检测工具或方法
在网络流量出现异常的时候,sniffer是一种非常好的检测工具,一般的sniffer软件都可以对上面5种异常进行检测。具体的用法请阅读相关sniffer的使用手册。
(四)数据库安全事件检测方法
1、数据库常见攻击方法检测
对数据库的常见攻击主要是口令猜测和溢出攻击(没打补丁),此类攻击可以通过与准备阶段的快照进行对比,发现异常,确定事件的发生原因。
(1)快照对比
(2)日志分析
select * from sys.aud$;
或以图34所示方式打开。
图34 归档日志分析界面
2、脚本安全事件检测
(1)SQL注入攻击检测方法
1)SQL注入的原理
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,如典型的攻击类型是在newsid变量后加后SQL语句:
exec xp_cmdshell 'net user'--
这样就执行了一个加用户的命令。
2)SQL注入的检测方法
①安装ids
在ids过滤规则当中定义上'xp_cmdshell'、'net user'。当ids发现web数据中有xp_cmdshell等字样时就会产生报警。那么这就是sql注入攻击了。
②安装sniffer
在过滤规则中定义上'xp_cmdshell'、'net user'。当 sniffer 数据中发现 Web 数据中有xp_cmdshell等字样时,那么这就是SQL注入攻击了。
③检测Web日志
在Web日志中如果存在xp_cmdshell,那么就说明有SQL注入攻击,但值得注意的是如果黑客是post请求方式进行注入的话,那么日志中就不会有注入的记录。
(2)SQL注入攻击案例
某网管自己的网站数据库被删除了,他请来了一位安全专家进行检测,这位安全专家是这样做的。
利用各种扫描器扫描后并没有发现什么漏洞,主机系统打的补丁很新很全,但是很快发现一个ASP程序的ID变量完全没有过滤机字符处理,安全专家很快意识到了问题,他打开了Web日志发现
http://www.x.x.x.x.x./news.asp?news=111;exec master.dbo.xp_cmdshell ‘dir’
http://www.x.x.x.x.x./news.asp?news=111;exec master.dbo.xp_cmdshell ‘dir d:\’
200 http://www.x.x.x.x.x./news.asp?news=111;exec master.dbo.xp_cmdshell ‘dir c:\’
有人在url后的变量后追加了SQL语句,这很明显就是一起SQL注入事件。
(五)事件驱动方式的安全检测方法
1、日常例行检查中发现安全事件的安全检测方法
(1)特点
从操作的角度讲,事件响应过程中的所有动作依赖于检测。没有检测,就没有真正意义上的事件响应,检测触发了事件响应。
(2)人工检测被入侵的前兆
1)用不活跃的账号或缺省账号登录(如Unix的SMTP账户,Windows的TsInternetuser账户)。
2)在非工作时间活动出现了不是由系统维护人员创建的账号(如test账号)。
3)出现了不熟悉的文件或程序(这些文件通常起了个不容易发现的名字,如/tmp/user、/etc/inet.d/bootd,甚至是…这样的目录文件和目录的权限被异常修改,无法解释(文件修改时间、大小发生变化,通常是攻击程序造成)无法解释的权限异常提升,或超级用户权限的使用。
4)WWW主页被篡改(这是被攻击最明显的信号)。
5)系统中出现色情图片。
6)用户异常使用命令(如SMTP用户去编译程序)。
7)出现了黑客工具(通常意味着攻击者已经获得了一定控制权,并植入黑客工具来提升权限或者攻击其他主机)。
8)系统日志出现一段空白(这是系统被攻破的一个重要指示)。
9)Web目录、FTP目录被篡改或者放置了新的文件(通常是攻击者要下载的数据)。
10)DNS表、防火墙或路由器规则中出现无法说明的变化。
11)系统性能异常变慢。
12)系统崩溃(拒绝服务攻击,或者由于取得系统控制的黑客不小心的操作引起)。
13)被安装了服务(非系统维护人员所为,如snake的Socks5 services,代理跳板)。
(3)检测的流程
1)动作和响应
当安全事件发生了,重要的是不要惊慌失措,不要引起其他人恐慌。很多用户急于恢复网络,让其正常工作,因此可能会关机、修改一些网络的配置文件以及改变一些安全规则等,但一般情况下不要这么做。其实可先将系统日志、网络配置文件、安全规则的配置等做一个备份,然后再做改变,从而让网络正常工作。在发现了入侵后,一定要保留现场,包括当时屏幕上显示的是一些什么东西,系统处于什么样子,特别是系统日志或者安全审计工具的日志系统,一定不能破坏或改变。收集证据并认真考虑下一步行动。并花时间分析所有异常现象,激活审计功能,增加审计信息量。并且收集一份受影响的文件/恶意代码,以便分析。
2)估计事件的范围
检测到事件发生以后,迅速判断事件影响的范围非常重要。这不仅有助于决定下一步阶段该做什么,还能帮助管理人员为这一事件指定一个优先级,以下是需要考虑的事项。
①影响了多少主机?不同的范围需要不同的干预方法。
②涉及多少网络?
③攻击者侵入到网络内部有多远多深?
④攻击者取得了什么样的权限?
⑤对单位业务和操作的影响有多大?关键应用和数据处于高风险吗?
⑥使用了多少种攻击方法?
⑦有谁知道了这一事件?范围有多大?
⑧攻击者利用的漏洞普遍性大不大?是不是其他机器有这样相同的脆弱性?
3)报告过程
确定了事件的发生后,第一时间通知合适的机构和人员,是检测阶段的重要组成部分,这样可以让相关的组织和人员在整个事件响应的基础设施中履行他们的职责。现实中人们通常不会把信息尽可能地让需要的人知道。解决办法是,在组织的网络安全策略中建立并实施强制性的报告制度。
规定至少应该包括:
①报告信息的种类;
②这些信息向谁报告;
③报告的速度要有多快;
④报告所使用的方式种类(如电子邮件、书面报告等);
⑤违法安全制度的后果。
4)需要通知的机构和人员
①CIO或者CISO;
②安全技术职员;
③事件响应机构(安全服务商或CNCERT);
④公共事务部门;
⑤政府的信息安全负责人/保密部门的相关领导;
⑥公安网监执法部门。
5)要报告的信息
①关于事件的基本信息
a.攻击类型;
b.攻击者表现的目的;
c.受害操作系统类型和版本;
d.涉及的网络/子网;
e.攻击者输入的命令;
f.被攻破的账号;
g.攻击者或恶意程序的标识和特征。
②关于攻击源的信息
发起攻击的主机;到受害主机的连接类型;攻击所跨越的已知网络路径。
③攻击的结果
攻击者是否已取得超级用户特权;具体哪些数据已被非法访问;系统的完整性是否被改变等。
④威胁
攻击传播的范围怎样;被攻破的系统和数据敏感程度如何;这一破坏或损失扩大的可能性有多大。
⑤状态
事件当前的状态;事件何时能得到解决。
⑥紧急时刻关键人员的联系方式。
⑦其他的信息
如相关漏洞信息/安全公告;审计数据。
⑧建立一个包括以上各项的表格并在一定范围内分发,可以确保需要的信息得以报告。
2、事件驱动的病毒安全检测方法
(1)特点
由于 Internet 技术及信息技术的普及和发展,最具威胁性的是网络传播型的蠕虫病毒,它不仅具有传播性、隐蔽性,而且还破坏网络造成拒绝服务,并与黑客技术相结合,蠕虫可以在短短的时间内蔓延整个网络,造成网络瘫痪。一个和 Internet 相连的企业,最主要的病毒入口就是Internet,主要的传染方式是群件系统;控制Internet 入口处的病毒侵入,抑制最主要的病毒源。要求网管非常警觉,病毒特征码升级要快速及时,将病毒的传染域隔离到孤立的某一台机器,这样病毒的破坏就会控制到最小范围。要对整个网络进行规范化的网络病毒防范,了解最新的技术,结合网络的病毒入口点分析,很好地将这些技术应用到网络中去,形成一个协同作战、统一管理的局面,建立完整的、现代化的网络病毒防御体系。
(2)病毒检测流程
1)断开网络
当遭遇病毒入侵之后,先分析所有的异常状况,在确定严重的情况启动安全事件应急流程,通知相关负责人,得到许可后当机立断断开中病毒服务器的网络连接,以避免病毒的进一步扩散。
2)文件备份
删除带毒的邮件,再运行杀毒软件进行清除,但为了防止杀毒软件误杀或删除还没有处理完的文档和重要的邮件,应该首先将它们转移备份到其他储存媒体上。
有些长文件名的文件和未处理的邮件要求在 Windows 下备份,所以建议先不要退出Windows,因为病毒一旦发作,也许就不能进入Windows了。不管这些文件是否带毒,都应该备份,因为有些病毒是专门针对某个杀毒软件设计的,一运行就会破坏其他的文件,所以先备份是以防万一的措施。等清除完硬盘内的病毒后,再来慢慢分析处理这些额外备份的文件较为妥善。另外重要文件也要做备份,最好是备份到其他移动存储设备上,如USB盘、移动硬盘、刻录盘等,尽量不要使用本地硬盘,以确保数据的安全。
3)借助杀毒软件
做好前面的准备工作后,这时就应该关闭计算机后再启动机器,然后用一张干净的DOS启动盘来引导系统。另外,由于中毒后,Windows已经被破坏了部分关键文件,会频繁地进行非法操作,所以Windows下的杀毒软件可能会无法运行,所以应该准备一个DOS下的杀毒软件以防万一。
即使能在Windows下运行杀毒软件的,也尽量用2种以上的工具软件来交叉清理。在多数情况下Windows可能要重装,因为病毒会破坏掉一部分文件让系统变慢或出现频繁的非法操作。由于杀毒软件在开发时侧重点不同、使用的杀毒引擎不同,各种杀毒软件都有自己的长处和短处,交叉使用效果较理想。
现在流行的杀毒软件在技术上都有所提高,并能及时更新病毒库,因此一般情况下所碰到的病毒应该是在杀毒软件的围剿范围内的。
4)安全处理
包括登录网络的用户名、密码、邮箱和数据库密码等,防止黑客已经在上次入侵过程中知道密码。另外因为很多蠕虫病毒发作后会向外随机发送信息,所以适当地更改是必要的。
5)报告病毒事件过程
把全部过程形成书面报告,包括时间、中病毒的服务器、病毒类型、解决方法、采取的措施等。
(3)防御计算机病毒措施
1)客户端。不管客户端使用什么操作系统,都必须具有相应的防病毒软件进行安装防范。
2)邮件服务器。电子邮件目前已经成为病毒传播的重要途径。对邮件服务器进行集中邮件病毒防范是非常有意义的。一个好的邮件或群件病毒防范系统可以很好地和服务器的邮件传输机制结合在一起,完成在服务器上对病毒的清除工作。另外,由于目前邮件病毒的传输方式已经从以前的单纯附件携带方式扩展为内容携带方式,所以一个好的邮件防病毒系统应该具有清除邮件正文中病毒的能力。
3)其他服务器。网络中除了邮件服务器外,还存在大量的其他服务器,如文件服务器、应用服务器等。用户在日常工作时会经常同这些服务器进行文件传输等工作,也就形成了另外一种病毒的传播途径。这些服务器也需要安装相应的防病毒软件。
4)网关。网关是隔离内部网络和外部网络的设备,如防火墙、代理服务器等。在网关级别进行病毒防范可以起到对外部网络中病毒进行隔离的作用。
3、事件驱动的入侵检测安全检测方法
(1)特征
IDS(Intrusion Detection System)通过抓取网络上的所有报文,分析处理后,报告异常和重要的数据模式和行为模式,使安全技术人员清楚地了解网络上发生的事件,并能够采取行动阻止可能的破坏。入侵检测是防火墙的合理补充,帮助系统对付网络攻击,扩展了系统维护人员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了网络安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息,看看网络中是否有违反安全策略的行为和遭到袭击的迹象。
IDS执行以下任务以实现上述功能。
1)异常监测。
2)通过采集和统计发现网络或系统中的异常行为。
3)存在误报,管理复杂。
4)入侵检测。
5)通过对采集的信息按已知的知识进行分析,发现正在或已经发生的入侵行为。
6)不能发现新问题。
7)攻击告警。
根据检测结果和本地的安全政策决定是否有入侵事件发生,并相应报警。
(2)入侵检测系统分为网络型和主机型
网络型入侵检测系统主要用于实时监控网络关键路径的信息,如同大楼内无处不在的闭路电视录像监控系统,它采用旁路方式全面侦听网上信息流,动态监视网络上流过的所有数据分组,通过检测和实时分析,及时甚至提前发现非法或异常行为,并进行响应。通过采取告警、阻断和在线帮助等事件响应方式,以最快的速度阻止入侵事件的发生。网络型入侵检测系统能够全天候进行日志记录和管理,进行离线分析,对特殊事件进行智能判断和回放。
主机型入侵检测系统是基于对主机系统信息和针对该主机的网络访问进行监测,及时发现外来入侵和系统级用户的非法操作行为。它可以用来实时监视可疑的连接、系统日志检查、非法访问的闯入等,并且提供对典型应用的监视,如Web 服务器、邮件服务器等。
主机型入侵检测的主要优点是不受交换环境、加密环境影响,监测系统内部入侵和违规操作,可以对本机进行防护和阻断。
(3)入侵检测流程
1)入侵检测系统的几种监控方法
①协议分析事件是指网络中发生各种连接、登录以及命令所产生的事件。
②攻击行为事件的产生是在协议分析的基础上,结合攻击特征模式匹配技术和异常统计技术,分析出在数据分组中包含的恶意攻击行为,这些攻击行为一般风险级别比较高,需要引起重视和注意。
③流量分析包括对流量状况的监测和异常流量变化的发现。通过流量状况的监测可以看到当前网络流量总量及分类信息。通过流量分析,可以起到辅助发现网络异常行为:如拒绝服务、新型蠕虫等。
2)根据监控的行为类型做出响应流程
①记录安全事件。
②产生报警信息,包括声音告警、邮件告警、消息以及外挂的手机告警公安部门等。
③记录附加日志, 日志分析功能是对存放在数据库中的历史日志数据进行分析,发现攻击趋势变化并进行事件统计,从而对安全策略进行调整。
④隔离入侵者IP,在确定了入侵行为和入侵者后,可以在入侵检测系统上设置隔离其IP地址。
⑤禁止被攻击对象的特定端口和服务,如果情况严重,并一时无法控制,在通告安全事件负责人后,可采取暂时断开服务,以免入侵事件扩大。
⑥隔离被攻击对象。
⑦警告攻击者。
⑧跟踪攻击者,收集证据形成结果跟踪入侵者。
⑨断开危险连接(可通过和防火墙联动来做)。
⑩根据安全事件的类型和紧急情况,写安全报告给安全事件负责人和审计部门。
4、事件驱动的防火墙安全检测方法
(1)特点
防火墙的配置需要充分了解具体单位的网络结构和应用,针对每个细节做评估,配置安全可靠的策略,当然攻击手段和应用总是在变化,但防火墙的配置不是一成不变的,所以也需要根据实际而调整防火墙配置。安全事件检测主要是对日志的分析和策略审计自动报警,有一定滞后性。在防火墙的管理权限必须做到分权管理,否则在配置中很容易有疏忽和错误的地方。对于硬件防火墙的配置,有WebGUI界面、串口配置模块和/或控制台控制界面。管理主机和防火墙之间的通信一般经过加密,尽量采用身份认证技术。
(2)防火墙安全检测流程
1)合理配置/调整审计策略
在防火墙结合网络配置和安全策略对相关数据分析完成以后,就要做出接受、拒绝、丢弃或加密等决定。如果某个访问违反安全规定,审计和报警机制开始起作用,并作记录、报告。日志进行统计、分析,按照特征存储在数据库中,详细分析日志的所有记录。报警机制是在通信违反相关策略以后,以多种方式(如声音、邮件、电话、手机短信息)及时报告给管理人员。
2)合理配置日志服务器系统
为防止黑客入侵网络后利用网络的安全缺陷攻击或避绕防火墙,然后进行关键主机攻击,并将防火墙上记录的通信日志进行破坏或删改,最好的办法就是使用远程的日志审计服务器来存储防火墙的监控日志,因为远程日志审计服务器的位置对于黑客来说是不透明的,防火墙的远程日志服务器就有效地记录了黑客的攻击行为,可以为日后跟踪和找到发动攻击行为的黑客提供有力的数据。
3)在分析到日志有入侵事件或接收到防火墙自动发的报警信息时,根据事件做出如下反映
①入侵行为已经发生
锁定入侵者IP分析日志得出入侵者的入侵行为,并严格检测被入侵过的网内服务器。
②流量异常
流量控制可以分为基于IP地址的控制和基于用户的控制。防止某些应用或用户占用过多的资源。并且通过流量控制可以保证重要用户和重要接口的连接。流量统计是建立在流量控制基础之上的。防火墙通过对基于IP、服务、时间、协议等进行统计,并可以与管理界面实现挂接,实时或者以统计报表的形式输出结果。根据结果调整流量控制,在重要的网络接口处应该有双机热备和高可用性来处理网络不间断高需求。
③DoS(DDoS)攻击
主要是提高防火墙本身的健壮性(如增加缓冲区大小),通过为每一个 Syn 建立一个缓冲(Cookie)来分辨可信请求和不可信请求。另外对于ICMP攻击,可以通过关闭ICMP 回应来实现。
④IP假冒(IP Spoofing)
在防火墙上丢弃所有来自网络外部但却有内部地址的数据分组。并将内网的实际地址隐蔽起来,外网很难知道内部的IP地址,攻击难度加大。
⑤特洛伊木马
在代理层启用文件类型检测,禁止可执行文件的下载,禁用ActiveX JAVE等。
⑥口令字攻击
口令字攻击既可能来自外部,也可能来自内部。来自外部的攻击即用穷举的办法猜测防火墙管理的口令字,这个很容易解决,只要不把管理部分提供给外部接口即可。内部的口令字攻击主要是穷举和嗅探,其中以嗅探危害最大。建议一次性口令和禁止直接登录防火墙的措施来防止对口令字的攻击。
⑦邮件诈骗
防火墙本身防止邮件诈骗非常简单,不接收任何邮件就可以了。然而像木马攻击一样,内网主机仍可收发邮件,邮件诈骗的危险仍然存在,解决办法是在防火墙上做过滤。
根据所有发生的事件,手动调整防火墙配置,当然现在也有些防火墙可以动态调整。
把报警信息、日志信息备份,然后输入到防火墙安全报告文档,把调整后的防火墙状态记录好,以备以后查询。
三、抑制和根除阶段的执行操作
(一)拒绝服务类攻击抑制
1、SYN和ICMP拒绝服务攻击抑制和根除
(1)SYN(UDP)-FLOOD拒绝服务攻击抑制及根除
Syn-Flood拒绝服务攻击抑制
Syn-Flood 攻击一般都为恶意的攻击,攻击目标可能是服务器,也可能是网段。以下是在运行CISCO IOS软件的边界路由器上,通过访问列表进行抑制、TCP截获进行抑制的方法内容。
1)通过访问列表进行抑制方法
定义访问控制列表号为 106 的 ACL,允许其他任意 IP 地址的 TCP 数据分组达到192.168.0.0网段的机器,其余没有在这条件内的数据全部丢弃,从而使网络中只有在定义范围内容的数据分组,避免多余数据分组占用了路由器的负载。然后把所定义好的 ACL 绑定到做要syn-flood抑制端口上(如例子中的外接设备端口eth0/2)。
Router(Config)# no access-list 106
Router(Config)# access-list 106 permit tcp any 192.168.0.0 0.0.0.255 established
Router(Config)# access-list 106 deny ip any any log
Router(Config)# interface eth 0/2
Router(Config-if)# description “external Ethernet”
Router(Config-if)# ip address 192.168.1.254 255.255.255.0
Router(Config-if)# ip access-group 106 in
2)通过TCP截获进行抑制方法(此方式会占用路由器一定负载)
TCP截取特性通过截取和验证TCP连接请求的合法性来防止Syn-Flood攻击。在定义截取107列表中,只允许TCP数据从任意地址到达192.168.0.0网络的机器,以及禁止所有符合范围内的所有数据分组。最后把列表绑定到网络接口eth0上。
Router(Config)# ip tcp intercept list 107
Router(Config)# access-list 107 permit tcp any 192.168.0.0 0.0.0.255
Router(Config)# access-list 107 deny ip any any log
Router(Config)# interface eth0
Router(Config)# ip access-group 107 in
Syn-Flood拒绝服务攻击根除
对于SYN(UDP)-FLOOD攻击,没有根本的解决方法,只能抑制其攻击效果。
(2) ICMP-FLOOD拒绝服务攻击抑制及根除
ICMP-Flood拒绝服务攻击抑制
以下是禁止ICMP协议中类、限制ICMP数据分组流量速率方法内容。
1)方法1
对于进入ICMP数据分组,禁止ICMP协议当中的ECHO、Redirect、Maskrequest。对于流出的ICMP数据分组,允许不中ECHO、ParameterProblem、Packettoobig。
! outbound ICMP Control
Router(Config)# access-list 110 deny icmp any any echo log
Router(Config)# access-list 110 deny icmp any any redirect log
Router(Config)# access-list 110 deny icmp any any mask-request log
Router(Config)# access-list 110 permit icmp any any
! Inbound ICMP Control
Router(Config)# access-list 111 permit icmp any any echo
Router(Config)# access-list 111 permit icmp any any Parameter-problem
Router(Config)# access-list 111 permit icmp any any packet-too-big
Router(Config)# access-list 111 permit icmp any any source-quench
Router(Config)# access-list 111 deny icmp any any log
2)方法2
使用CAR(ControlAccessRate)限制ICMP数据分组流量速率。
例子:interface s1/1
rate-limit output access-group 2020 128000 8000 9000 conform-action transmit exceed-action drop access-list 2020 permit icmp any any echo-reply
通过对 ICMP 数据分组的流量限制,达到对 ICMP-FLOOD 控制。命令中提及的有限制带宽为128 000 bit/s,对于一个连接普通突发速率8 000 B/s(即64 000 bit/s),最大突发9 000 B/(s 即72 000 bit/s)如在这个范围内,进行的操作是transmi(t 传输),如果超出(Exceed-action),进行的操作是drop(丢弃),最主要参数是128 000 bit/s,限制带宽,后2个数值是限制每个连接的突发带宽,保证不会导致整个链路性能下降很多。
ICMP-Flood拒绝服务攻击根除
对于ICMP-FLOOD拒绝服务攻击的根除,可以在边界路由上禁止ICMP。
2、系统漏洞拒绝服务抑制
(1)WIN系统漏洞拒绝服务攻击抑制及根除
Windows系统漏洞拒绝服务攻击抑制
下面给出如何在Windows环境下修改注册表,抑制DoS攻击。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
同时打开的TCP连接数,这里可以根据情况进行控制。"TcpNumConnections"=该参数控制TCP报头表的大小限制。在有大量RAM的机器上,增加该设置可以提高SYN攻击期间的响应性能。
"TcpMaxSendFree"=
Windows系统漏洞拒绝服务攻击根除
对于Windows操作系统方面的拒绝服务漏洞,只需把相关补丁打上就可以根除该种攻击了。
(2)UNIX系统漏洞拒绝服务攻击抑制及根除
Unix系统漏洞拒绝服务攻击抑制
关闭不必要的系统服务,在/etc/inetd.conf中注释掉所有不必要的服务。
堆栈缓冲溢出攻击防护设置
在/etc/system里加上如下语句,禁止缓冲溢出:
echo "set noexec_user_stack=1" >> /etc/system
echo "set noexec_user_stack_log=1" >> /etc/system
Unix系统漏洞拒绝服务攻击根除
对于Unix操作系统方面的拒绝服务漏洞,只需把相关补丁打上就可以根除该种攻击了。
(3)网络设备IOS系统漏洞拒绝服务攻击抑制
Cisco IOS IPv4报文处理拒绝服务攻击漏洞
1)详细描述
Cisco IOS是一种网络操作系统,它运用于大多数的Cisco网络设备中,发现IOS 12.3以下版本中存在一个拒绝服务攻击漏洞,该漏洞影响所有运行了 IOS 12.3 以下版本并且处理IPv4报文的Cisco设备。Cisco路由器缺省配置为允许接收和处理IPv4报文,当按照一个特殊顺序往路由器某接口上发送 IPv4 的报文时,会导致路由器错误地将该接口的输入队列标识为已满状态,这样该接口会停止接收处理一切数据分组,包括路由协议报文和 ARP 报文。不同于以往的DoS攻击,这个攻击不会触发任何警报,路由器也不会自动重载,必须手动重启路由器才能恢复正常功能。如果攻击者重复对路由器所有的端口进行攻击,将导致整个路由器瘫痪。
2)解决方案
可以按照CISCO的建议升级IOS。或者采用下面临时解决办法。
在路由器上通过访问控制列表(ACL)过滤协议为53,55,77的流量。
定义 ACL
access-list 101 deny 53 any any
access-list 101 deny 55 any any
access-list 101 deny 77 any any
access-list 101 permit ip any any
然后在所有的接口上使用上述ACL
interface eth 0
ip access-group 101 in
(二)利用系统漏洞类攻击抑制
1、系统配置漏洞类攻击抑制
简单口令攻击类抑制的方法:
对正在进行口令猜测的机器的IP(外部IP)在网关上进行过滤;
对正在进行口令猜测的机器的IP(内部IP)在网络入侵检测系统上进行阻断或拔掉其网线。
2、系统程序漏洞类攻击抑制
(1)缓冲溢出攻击类抑制
WIN系统溢出攻击类抑制
黑客利用的溢出漏洞、各种脚本的操作文件的组件无非都是调用的 cmd.exe 获取得到shell的,所以我们只要对cmd.exe、tftp.exe等命令进行巧妙的权限设置就可以防范某些攻击了(即使做了上面操作,也要打补丁),更深远的意义是可以防范一些未知的溢出漏洞以及不公开的类似于fso之类的组件安全隐患了。下面是设置方法,以Windows系统为例。
cacls %systemroot%/system32/tftp.exe /E /D IUSR_machine
cacls %systemroot%/system32/ftp.exe /E /D IUSR_machine
注:cacls是Windows系统自带的命令,在这里说明一下上面的命令的含义。
cacls后面是一个程序的路径,/E 是编辑的意思,/d是拒绝的意思,iusr_machine是安装iis后系统自建的一个Web账号。这条命令完整的意思就是拒绝指定的IUSR_machine账号访问指定的程序。在这里再附上cacls更详细的使用说明。
CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]] [/P user:perm [...]] [/D user [...]]
filename 显示 ACL。
/T 更改当前目录及其所有子目录中指定文件的 ACL。
/E 编辑 ACL 而不替换。
/C 在出现拒绝访问错误时继续。
/G user:perm 赋予指定用户访问权限。
Perm 可以是:R 读取
W 写入
C 更改(写入)
F 完全控制
/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
/P user:perm 替换指定用户的访问权限。
Perm 可以是:N 无
R 读取
W 写入
C 更改(写入)
F 完全控制
/D user 拒绝指定用户的访问。
在命令中可以使用通配符指定多个文件,也可以在命令中指定多个用户。
以上方法对缓冲溢出攻击起到一定的抑制作用。
(2)缓冲溢出攻击类根除
对缓冲溢出攻击,其都是利用系统的漏洞,要做到这种漏洞的根除,必须打上相应的补丁程序。
(三)网络欺骗类攻击抑制与根除
1、DNS欺骗攻击抑制与根除
DNS欺骗攻击并没有很好的抑制与根除的办法,这只是一种协议上的设计缺陷,是没有补丁以及方法完全解除的。只能采取一些检测措施加以防范。
2、电子邮件欺骗攻击抑制与根除
电子邮件欺骗攻击抑制
电子邮件欺骗的抑制应该首先是断网线,然后是做outlook的安全设置。
OE 的系统的默认设置,没有考虑到这些安全问题,而我们修改系统的安全设置并不会影响OE的其他功能,同时还能给系统加以保护,现在检查一下OE的安全设置。
1)设置IE的安全区域
①OE的设置方法
启动 OE→选择“工具”→“选项”→选择“安全”选项卡,系统默认的“安全区域”是Internet区域,将区域设置为“受限制站点区域”。
②Outlook 的设置方法
启动 OE→选择“工具”→“选项”→选择“安全”选项卡,在“安全区域”的下拉选项里,选择“限制的网站”。
2)关闭“受限制站点区域”执行Active Script(活动脚本)的功能(一定要对此项功能进行设定,否则对OE的安全设置将失去意义)
取消了执行Script的功能后,所有电子邮件中的VBScript、JavaScript等都将无法运行,这就减少了感染脚本(Script)类E-mail病毒的机会,在一定程度上提高了计算机的安全性。
OE或Outlook都是与IE共用安全设置的,所以可以使用下面的方法更改安全设置。
①OE的设置方法
选择“开始”选单→“设置”→“控制面板”→“Internet选项”→选择“安全”选项卡。
选择“受限站点”→选择“自定义级别按”→找到“脚本”→“活动脚本”,选择“禁止”,按“确定”。
②Outlook 的设置方法
启动Outlook →选择“工具”→“选项”→“安全”选项卡→“安全区域”→选择“受限站点”→“区域设定值”→“自定义级别”。
选择“脚本”的“活动脚本”选项,选择“禁止”,按“确定”。
完成上述两项设置后,那些垃圾邮件再也无法自动打开您的浏览器。
3)建议禁止OE的自动收发邮件功能
当禁止了邮件的自动收发功能后,只有在按下“接收/传送”按钮时,OE 才开始接收或者发送邮件,这就避免了邮件的自动发送。虽然此项设置只对一部分E-mail病毒有效,但毕竟在一定程度上避免了E-mail病毒的扩散。
①OE的设置方法
选择“工具”→“选项”→选择“发送”选项卡,取消“立即发送邮件”选项。
选择“常规”选项卡,取消“启动时发送和接收邮件(S)”选项和“每XX分钟检查一次新邮件”选项。
②Outlook 的设置方法
选择“工具”→“选项”→选择“邮件发送”选项卡,取消“连线时立即发送邮件”选项,并取消“自动检查新邮件”功能。
4)其他建议
要尽量防止被E-mail病毒的侵入,必须对E-mail有真切的使用观念以及防护观念。
①经得住诱惑,尽量不要打开来历不明的邮件附件。
②保持较高的警惕性,最好利用杀毒软件对计算机进行经常或定期的检测。
3.电子邮件欺骗攻击根除
邮件欺骗并没有彻底根除方法,只能结合一定的技能检测以及提高自己的安全意识,不要轻信陌生邮件的内容。
(四)网络窃听类攻击抑制及根除
1、共享环境下Sniffer攻击抑制及根除
(1)共享环境下Sniffer攻击抑制:
1)将被装有Sniffer的机器从网络上断开并将Sniffer停掉;
2)检测其Sniffer到的内容或日志,根据Sniffer记录修改或加强被Sniffer到的敏感信息。
(2)共享环境下Sniffer攻击根除
对于共享环境下的Sniffer攻击,可以联合采取下面的措施,能够做到较好的防护。
1)确保以太网的整体安全性,因为 Sniffer 行为要想发生,一个最重要的前提条件就是以太网内部的一台有漏洞的主机被攻破,只有利用被攻破的主机,才能进行Sniffer,去收集以太网内敏感的数据信息。
2)采用加密手段也是一个很好的办法,因为如果 Sniffer 抓取到的数据都是以密文传输的,那对入侵者即使抓取到了传输的数据信息,意义也是不大的。如作为Telnet,ftp等安全替代产品,目前采用SSH2还是安全的。这是目前相对而言使用较多的手段之一,在实际应用中往往是指替换掉不安全的采用明文传输数据的服务,如在server端用SSH,OpenSSH等替换Unix系统自带的Telnet,FTP,rsh,在Client端使用securecrt,sshtransfer替代Telnet, FTP等。
3)使用交换机。不同于工作在第一层的 HUB,交换机是工作在二层,也就是说数据链路层的。以CISCO的交换机为例,交换机在工作时维护着一张ARP的数据库,在这个库中记录着交换机每个端口绑定的MAC地址,当有数据报发送到交换机上时,交换机会将数据报的目的MAC地址与自己维护的数据库内的端口对照,然后将数据报发送到“相应的”端口上,注意,不同于HUB的报文广播方式,交换机转发的报文是一一对应的。对二层设备而言,仅有两种情况会发送广播报文,一是数据报的目的MAC地址不在交换机维护的数据库中,此时报文向所有端口转发,二是报文本身就是广播报文。由此,可以看到,这在很大程度上解决了网络监听的困扰。但是有一点要注意,随着dsniff、ettercap等软件的出现,交换机的安全性已经面临着严峻的考验。
对安全性要求比较高的公司可以考虑kerberos。kerberos是一种为网络通信提供可信第三方服务的面向开放系统的认证机制,它提供了一种强加密机制,使client端和server即使在非安全的网络连接环境中也能确认彼此的身份,而且在双方通过身份认证后,后续的所有通信也是被加密的。在实现中即建立可信的第三方服务器,保留与之通信的系统的密钥数据库,仅kerberos和与之通信的系统本身拥有私钥(Private Key),然后通过private key以及认证时创建的session key来实现可信的网络通信连接。
2、交换环境下Sniffer攻击抑制和根除
(1)交换环境下Sniffer攻击抑制
1)将被装有Sniffer的机器从网络上断开并将Sniffer停掉。
2)检测其Sniffer到的内容或日志,根据Sniffer记录修改或加强被Sniffer到的敏感信息。
(2)交换环境下Sniffer攻击根除
对于交换环境下的Sniffer攻击,可以联合采取下面的措施,能够做到较好的防护。
1)尽可能地让局域网内的传输的数据都是加密的,这个是相对最理想的防范方法,但实施起来可能有一点困难。有一点要注意,ssh1 是不安全的,上文提到的 dsniff 和 ettercap都可以对ssh1实施中间人的监听。
2)指定静态ARP,如大多数Unix系统支持ARP读取指定的IP和mac地址对应文件。首先编辑内容为IP和mac地址对照的文件,然后使用命令:ARP -f /path/to/ipandmacmapfile读取文件,这样就指定了静态的ARP地址,即使接收到ARP reply,也不会更新自己的ARP缓存,从而使arpspoof丧失作用。Windows系统没有-f这个参数,但有-s参数,用命令行指定IP和mac地址对照关系,如ARP-s 192.168.1.33 00-90-6d-f2-24-00,可惜除了XP外,其他版本的Window平台即使这样做,当接收到伪造的ARP reply后,依然会更新自己的ARP缓存,用新的mac地址替换掉老的mac地址,所以无法对抗arpspoof。如果网络很大的话采用静态ARP工作量会非常的大。
(五)数据库SQL注入类攻击抑制与根除
要防止 SQL注入式攻击闯入并不是一件特别困难的事情,只要在利用表单输入的内容构造 SQL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容可以按多种方式进行。
1、对于动态构造SQL查询的场合,可以使用下面的技术
替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令的含义。再来看前面的例子,“SELECT * from Users WHERE login = ''' or ''1''=''1' AND password =''' or ''1''=''1'”显然会得到与“SELECT * from Users WHERE login = '' or '1'='1' AND password ='' or '1'='1'”不同的结果。
删除用户输入内容中的所有连字符,防止攻击者构造出类如“SELECT * from Users WHERE login = 'mas' -- AND password =''”之类的查询,因为这类查询的后半部分已经被注释掉,不再有效,攻击者只要知道一个合法的用户登录名称,根本不需要知道用户的密码就可以顺利获得访问权限。
对于用来执行查询的数据库账户,限制其权限。用不同的用户账户执行查询、插入、更新、删除操作。由于隔离了不同账户可执行的操作,因而也就防止了原本用于执行SELECT命令的地方却被用于执行INSERT、UPDATE或DELETE命令。
2、用存储过程来执行所有的查询
SQL参数的传递方式将防止攻击者利用单引号和连字符实施攻击。此外,它还使数据库权限可以限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难再发生注入式攻击了。
3、限制表单或查询字符串输入的长度
如果用户的登录名字最多只有10个字符,那么不要认可表单中输入的10个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。
4、检查用户输入的合法性,确信输入的内容只包含合法的数据
数据检查应当在客户端和服务器端都执行,之所以要执行服务器端验证,是为了弥补客户端验证机制脆弱的安全性。在客户端,攻击者完全有可能获得网页的源代码,修改验证合法性的脚本(或者直接删除脚本),然后将非法内容通过修改后的表单提交给服务器。因此,要保证验证操作确实已经执行,唯一的办法就是在服务器端也执行验证。可以使用许多内建的验证对象,如RegularExpressionValidator,它们能够自动生成验证用的客户端脚本,当然也可以插入服务器端的方法调用。如果找不到现成的验证对象,可以通过CustomValidator自己创建一个。
5、将用户登录名称、密码等数据加密保存
加密用户输入的数据,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就防止了攻击者注入 SQL 命令。System.Web.Security.FormsAuthentication 类有一个 HashPassword ForStoringInConfigFile,非常适合于对输入数据进行消毒处理。
6、检查提取数据的查询所返回的记录数量
如果程序只要求返回一个记录,但实际返回的记录却超过一行,那就当作出错处理。
7、SQL注入并没有根除办法
许多著名大网站到现在也没有完全杜绝注入的漏洞,只能做的就是发现并检测出来,然后修复它。防止注入并没有一劳永逸的方法。
(六)恶意代码攻击抑制和根除
1、恶意代码介绍
恶意代码分为蠕虫和病毒。蠕虫和普通病毒不同的一个特征是蠕虫病毒往往能够利用漏洞,这里的漏洞或者说是缺陷分为2种,软件上的缺陷和人为上的缺陷。软件上的缺陷,如远程溢出、微软IE和outlook的自动执行漏洞等,需要软件厂商和用户共同配合,不断地升级软件。而人为的缺陷主要是指的是计算机用户的疏忽。这就是所谓的社会工程学(Social Engineering),当收到一封邮件带着病毒的求职邮件时,大多数人都会报着好奇去点击。对于企业用户来说,威胁主要集中在服务器和大型应用软件的安全上,而个人用户主要是防范第二种缺陷。
2、恶意代码抑制和根除
(1)恶意代码抑制方法
抑制蠕虫病毒的时候需要考虑几个问题。
1)必须了解感染的是何种病毒,通过何种途径传播。可以参阅杀毒厂商所提供病毒特征。只有了解病毒的特征及传播方式,才能进一步清除病毒。
2)蠕虫如果通过漏洞进行大规范的传播,首先需要将中毒主机进行隔离,然后在路由器上进行安全策略的配置。
3)在因特网接入口处安装防火墙式防杀计算机病毒产品,将蠕虫病毒隔离在局域网之外。
4)通知全域系统维护人员,共同针对服务器进行安全监控,防止蠕虫病毒进行传播。
5)建立局域网内部的升级系统,包括各种操作系统的补丁升级,各种常用的应用软件升级,各种杀毒软件病毒库的升级等。
(2)恶意代码根除方法
根除蠕虫病毒的方法:
1)利用杀毒软件针对本机内存及所有文件进行查杀;
2)杀毒完成之后需要安装蠕虫病毒所利用漏洞的安全补丁;
3)利用IPSec关闭Windows默认开放端口。
微信公众号:计算机与网络安全
ID:Computer-network