Submitted by 海东青 on 2009, February 25, 2:56 PM
网络罪犯最近翻新分散式阻断服务(DDOS)攻击的手法,开始用形同互联网黄页的域名系统服务器来发动攻击,扰乱在线商务。
VeriSign上周表示,今年初发现该公司系统承受的攻击规模甚于以往,而且来源不是被绑架的“殭尸”(bot)电脑,而是出自于域名系统(DNS)服务器。
安全研究员Dan Kaminsky说:“DNS已成为DDOS重要的一环。门槛已降低了。人们现在可凭更少的资源,发动可能极具破坏力的攻击。”
一旦成为DDOS攻击的箭靶,目标系统不论是网页服务器、域名服务器或电子邮件服务器,都会被网络上四面八方的系统所传来的巨量信息给淹没。黑客的用意是借大量垃圾信息妨碍系统正常的信息处理,借此切断攻击目标对外的连线。
以往,这类攻击是青少年闲得无聊时的杰作,图得只是看网站挂掉的那种快感。但如今,DDOS攻击常被歹徒拿来当作勒索网络公司的武器,赌博网站和成人娱乐网站尤其首当其冲。
不同于被绑架的殭尸电脑,DNS服务器是合法的网络良民,其作用是把文字型域名名称(例如www.aaa.com)转换成相对应的数字型互联网协定(IP)位址,以引导使用者上他们想到的网站。
现在,黑客常用殭尸电脑连成的网络(botnet),把大量的查询要求传至开放的DNS服务器。这些查询信息会假造得像是被巨量信息攻击的目标所传出的,因此DNS服务器会把回应信息传到那个网址。
黑客用DNS服务器来发动攻击有多重好处,可隐匿自己的系统,让受害者难以追查攻击的原始来源,更可让攻击效果加倍。Baylor大学信息系教授Randal Vaughn说,单一的DNS查询,可启动比原始查询大73倍的回应。
DNS发明人兼Nominum公司首席科学家Paul Mockapetris打个比方说,若你企图让垃圾邮件塞爆某人的信箱,基本的方法就是寄很多信到该地址,但你必须费很多时间写信,而且发信来源追查得出来。
Mockapetris说:“更好的方法,是寄出杂志里常见的那种广告回函卡,勾选各种想索取的信息,然后把回信地址填上目标信箱,就会让那个信箱爆掉,同时消除与你有关的链接。”他说,用DNS服务器发动DDOS攻击,就是运用这种原理。
但如果拦阻一台DNS服务器对外的连线,可能造成合法使用者无法传电子邮件或浏览某网站。问题出在所谓的“递回域名服务” (recursive name service)服务器,是开放给网络上任何人查询的DNS服务器,估计数量从60万台到560万台不等。
Mockapetris说:“使用这些开放服务器的人士,必须好自为之。不论知不知情,或是否怠惰,他们现在已成为这类攻击的帮凶。他们是互联网上的伤寒玛丽。”
专家建议,要保护自家系统,企业可解除DNS服务器中允许人人查询网址的递回(recursive)功能,转而调整服务器设定,只对内部人士开放递回功能。目前使用DNS服务器者包括互联网服务供应商(ISP)以及企业和个人。
网络安全 | 评论:0
| Trackbacks:0
| 阅读:77
Submitted by 海东青 on 2009, February 25, 2:56 PM
正如我们前言所说尽管Apache服务器应用最为广泛,设计上非常安全的程序。但是同其它应用程序一样,Apache也存在安全缺陷。毕竟它是完全源代码,Apache服务器的安全缺陷主要是使用HTTP协议进行的拒绝服务攻击(denial of service)、缓冲区溢出攻击以及被攻击者获得root权限三缺陷和最新的恶意的攻击者进行“拒绝服务”(DoS)攻击。合理的网络配置能够保护Apache服务器免遭多种攻击。我们来介绍一下主要的安全缺陷。
主要安全缺陷
(1)使用HTTP协议进行的拒绝服务攻击(denial of service)的安全缺陷
这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求的剧增,最终造成Apache系统变慢甚至完全瘫痪。
(2)缓冲区溢出的安全缺陷
该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。
(3)被攻击者获得root权限的安全缺陷
该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。
(4)恶意的攻击者进行“拒绝服务”(DoS)攻击的安全缺陷
这个最新在6月17日发现的漏洞,它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。 所有说使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。
正确维护和配置Apache服务器
虽然Apache服务器的开发者非常注重安全性,由于Apache服务器其庞大的项目, 难免会存在安全隐患。正确维护和配置Apache WEB服务器就很重要了。我们应注意的一些问题:
(1)Apache服务器配置文件
Apache Web服务器主要有三个配置文件,位于/usr/local/apache/conf目录下。 这三个文件是:
httpd.conf----->主配置文件
srm.conf------>填加资源文件
access.conf--->设置文件的访问权限
(2)Apache服务器的目录安全认证
在Apache Server中是允许使用 .htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。在保护的目录放置一个档案,档名为.htaccss。
AuthName "会员专区"
AuthType "Basic"
AuthUserFile "/var/tmp/xxx.pw" ----->把password放在网站外 require valid-user 到apache/bin目录,建password档 % ./htpasswd -c /var/tmp/xxx.pw username1 ----->第一次建档要用参数"-c" % /htpasswd /var/tmp/xxx.pw username2 这样就可以保护目录内的内容,进入要用合法的用户。
注:采用了Apache内附的模组。
也可以采用在httpd.conf中加入:
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
(3)Apache服务器访问控制
我们就要看三个配置文件中的第三个文件了,即access.conf文件,它包含一些指令控制允许什么用户访问Apache目录。应该把deny from all设为初始化指令,再使用allow from指令打开访问权限。
order deny,allow
deny from all
allow from safechina.net
设置允许来自某个域、IP地址或者IP段的访问。
(4)Apache服务器的密码保护问题
我们再使用.htaccess文件把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者rm.conf文件中使用 AccessFileName指令打开目录的访问控制。如:
AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require Phoenix
# htpasswd -c /path/to/httpd/users Phoenix
设置Apache服务器的WEB和文件服务器
我们在Apache服务器上存放WEB服务器的文件,供用户访问,并设置/home/ftp/pub目录为文件存放区域,用http://download.your.com/pub/来访问。在防火墙上设置apache反向代理技术,由防火墙代理访问。
(1)Apache服务器的设置
Apache服务器采用默认配置。主目录为/home/httpd/html,主机域名为Phoenix.your.com, 且别名到www.your.com中, 并且设置srm.conf加一行别名定义如下:
Alias /pub /home/ftp/pub/
更改默认应用程序类型定义如下:
DefaultType application/octet-stream
最后在/etc/httpd/conf/access.conf中增加一项定义
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
注:Options Indexes允许在找不到index.html文件的情况下允许列出目录/文件列表。AllowOverride AuthConfig允许做基本的用户名和口令验证。这样的话,需要在/home/ftp/pub目录下放入.htaccess,内容如下:
[root@ pub]# more .htaccess
AuthName Branch Office Public Software Download Area
AuthType Basic
AuthUserFile /etc/.usrpasswd
require valid-user
用# htpasswd -c /etc/.usrpasswd user1 分别创建不同的允许访问/pub下文件服务的外部用户名和口令。
(2)在防火墙上配置反向代理技术.
在/etc/httpd/conf/httpd.conf 中加入 NameVirtualHost xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx ----->是防火墙外部在互联网上永久IP地址:
servername www.your.com
errorlog /var/log/httpd/error_log
transferlog /var/log/httpd/access_log
rewriteengine on
proxyrequests off
usecanonicalname off
rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 Apache服务器的IP地址。
servername http://download.your.com/pub/
errorlog /var/log/httpd/download/error_log
transferlog /var/log/httpd/download/access_log
rewriteengine on
proxyrequests off
usecanonicalname off
rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 同上Apache服务器的IP地址。
设置防火墙上的DNS,让download.your.com和www.your.com 都指向防火墙的外部网地址xxx.xxx.xxx.xxx。
用http://www.your.com访问主页,用http://download.your.com/pub/访问公共文件的下载区。
注:还需要在apache服务器主机上建立目录/var/log/httpd/download/,否则会出错。另外,也可以设置防火墙主机上的/home/httpd/html/index.html的属性为750来阻止访问,这是防外部用户能访问到防火墙上的Apache服务器的http://www.your.com中。
总结:Apache Server是一个非常优秀,非常棒的服务器,只要你正确配置和维护好Apache服务器,你就会感受到Apache Server 所带来的好处,同样希望你能够通过阅读本文达到理论和实践双丰收的目的。
验证你的Apache来源途径
不要以为在Google上能够搜索到合适的Apache版本。如果你需要下载最新版本的Apache,那么你最好通过一个权威的镜像站点来下载。然而,即使这样也可能有问题,事实上,曾经就有黑客入侵过apache.org官方网站。所以,采用类似PGP的工具来验证Apache的数字签名就显得尤为重要。
保持更新Apache的补丁程序
如果你安装了Apache,你就必须及时更新安全补丁。如果没有及时的更新,那你的系统很容易受到网络上那些高危病毒的攻击。幸好,有几个简便方法可以更新Apache的补丁。参考我们关于保持更新Apache补丁的文章了解更多关于Apache服务器公告列表、Linux包管理系统和RedHat操作系统更新服务的信息。
避免使用.htaccess文件(分布式配置文件)
很多情况下需要几个管理员和内容管理者共同管理Apache服务器。一个常用的共享管理办法就是使用.htaccess文件,这样可以很灵活地对管理员以外的用户提供不同的配置控制权限。然而,这些文件也使得在集中安全管理之外还有相当多的安全控制权限——这些文件允许安全专业人士以外的其他用户改变服务器的访问控制许可配置。那些对粒度访问控制根本不熟悉的用户修改的配置可能在无意中会危害到你的系统安全。所以,除非必须使用,否则我们应该尽可能地避免使用这种访问控制系统。
监视系统日志
Apache为管理员提供了很全面的日志管理工具来对服务器的活动进行事后分析。Apache提供了多种不同的记录日志,但是对安全专业人士最重要的是访问日志。这个灵活的工具还具有了相当多的自定义功能,你可以按照你的需要很方便地记录尽可能多或者少的日志,以保证有效的分析。至少,你应该记录那些失败的认证企图和系统产生的错误。使用像AWStats一样的免费工具可以很轻松地完成分析任务。但是必须明确的一点是:监视日志只是一种事后分析手段。你可以利用它回顾和判断对服务器的攻击(和攻击企图),但是希望及时查看日志来对紧急情况做出快速反应是不可能的。如果需要进行预判反应,你应该考虑使用入侵预防系统如信息安全杂志评选的2003年度最新兴技术奖得主:Lucid Security公司的ipAngel系统。
管理文件系统
我们已经讨论了使用(或不使用).htaccess文件对管理文件访问权限的重要性。禁止通过文件系统许可对Apache服务器进行非授权修改也是很重要的。特别值得一提的是,你应该保证只有根用户才能修改存储在“/usr/local/apache ”目录的文件(或者你选择的任何Apache服务器的根目录)。确保只有根用户才能修改日志文件也很关键,这样可以防止用户掩盖他们的操作。
Apache 服务器日常配置
1、如何设 置请求等待时间
在httpd.conf里面设置:
TimeOut n
其中n为整数,单位是秒。
设置这个TimeOut适用于三种情况:
2、如何接收一个get请求的总时间
接收一个post和put请求的TCP包之间的时间
TCP包传输中的响应(ack)时间间隔
3、如何使得apache监听在特定的端口
修改httpd.conf里面关于Listen的选项,例如:
Listen 8000
是使apache监听在8000端口
而如果要同时指定监听端口和监听地址,可以使用:
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。
当然也可以在httpd.conf里面设置:
Port 80
这样来实现类似的效果。
4、如何设置apache的最大空闲进程数
修改httpd.conf,在里面设置:
MaxSpareServers n
其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。
同时也可以设置:
MinSpareServers n
来限制最少空闲进程数目来加
网络安全 | 评论:0
| Trackbacks:0
| 阅读:84
Submitted by 海东青 on 2009, February 25, 2:56 PM
转眼春节长假快到了,忙碌了一年的人们终于可以放松紧绷的神经痛快地玩几天了。而计算机病毒并不会因为过年就放松对网络的攻击,病毒作者往往就是利用人们节假日对于网络安全疏于防范的空隙兴风作浪的,典型的“震荡波”病毒就是在2004年“五一”长假期间感染了千万人的电脑,导致电脑频繁重启,许多大型局域网瘫痪的。那么,春节期间如何保障网络安全呢?日前,记者采访了几位网络管理员,他们对如何保障节日期间的网络安全谈了自己的见解。
设置好路由从网络边界保护网络安全
一位网名为“玲”的网络管理员认为,切断网络毒害的源头就要从边界做起。只要在边界做好了,就可以有效隔离大部分病毒。说到边界,就是整个公司网络的一个出口处,所有的数据都会从这里流进流出,建议有实力的公司购买专业的路由器来保障网络安全,但是专业的路由器价格昂贵,因此一般的小企业不会考虑,建议小企业采用软路由进行安全防范。
像微软的ISA或者ROUTER OS是一个基于Linux内核的专业路由软件,安装简单,而且很小,包括安装程序只有16M,可以说是非常mini的一个好东西。装好并设置好以后,除了一般的防火墙的功能外,我们还可以通过他观察整个网络的流量,并且可以制作规则来限制,例如某些关键字就进行拦截之类的。可以说是非常好的一个软路由,建议小企业用户安装使用。此外,微软的ISA除了是一个优秀的企业级防火墙之外,也是一个优秀的软路由。其基于MSSQL的日志让我们可以很轻松的进行第三方的日志报表的制作,当然,它本身提供的报表功能也是非常强悍的。可以很直观的看出哪个工作站在哪个时间段内流量特别大,这样就可以根据需要对服务器进行负载调整。
安装网络版杀毒软件远程防范病毒
某大学网络安全研究室工作人员毕先生介绍,放假期间由于网管员都回家过年了,但是对于公司的网络防病毒工作也不能放任不管,因此他推荐一款具有远程控制功能的江民杀毒软件KV网络版。这样当过年期间,网管员也可以通过远程管理登陆到服务器,对服务器及所有节日内需要运行的电脑进行全网杀毒,全网升级,也可以对单独的机器进行查杀病毒,对整个网络的病毒日志进行察看等,从而保障节日期间的网络免遭病毒攻击。
安装SUS软件自动分发安装操作系统补丁程序
网络管理员“玲”认为,过年期间,最害怕的就是新病毒通过微软操作系统的新漏洞对服务器发动攻击。平时网管员的一个头疼的问题就是windows的补丁升级的问题,网络不大,手动升级下就OK了,大一点的话工作量就太大了。她建议个人用户可以使用杀毒软件(如江民杀毒软件KV2006)自带的漏洞检查功能,对系统进行漏洞扫描,并利用杀毒软件自动提供的补丁下载地址下载补丁,建议企业用户最好使用微软的局域网补丁升级方案SUS,SUS安装完毕后,需要在客户端上进行一些设置,如果有域的话,可以做一个域策略就可以轻松解决了。如果没有,记得装完系统的时候就进行设置,或者导出成一个模板,具体的操作细节可以在微软的TechNet或者在Google上搜关键词“如何配置SUS”找到。
安装完以后,可以使用微软提供的MBSA(Microsoft Baseline Security Analyzer)评估安全漏洞并自动使用SUS进行升级。
以上主要是针对企业用户的安全防范措施,对于个人用户过年期间的网络安全,江民反病毒专家严绍文特别提醒应注意以下几个方面:
务必安装并及时升级正版杀毒软件,上网时开启病毒实时监控功能。务必在进行电子商务活动或进行网上交易前,采用杀毒软件来对电脑进行全盘查杀。网上交易过程中要特别留意浏览网页的变化,对于怀疑为假网站或假链接等情况应及时联系网络银行或者相关专业人士,养成修改网上银行密码的习惯。时常关注反病毒公司的最新病毒信息,对于来自QQ,MSN,邮件附件等不明文件不管它们的标题多么诱人,都不能随意点击执行。务必养成打开或者执行文件前采用杀病毒软件查杀的习惯。
网络安全 | 评论:0
| Trackbacks:0
| 阅读:77
Submitted by 海东青 on 2009, February 25, 2:56 PM
Linux系统中的日志子系统对于系统安全来说非常重要,它记录了系统每天发生的各种各样的事情,包括那些用户曾经或者正在使用系统,可以通过日志来检查错误发生的原因,更重要的是在系统受到黑客攻击后,日志可以记录下攻击者留下的痕迹,通过查看这些痕迹,系统管理员可以发现黑客攻击的某些手段以及特点,从而能够进行处理工作,为抵御下一次攻击做好准备。
在Linux系统中,有三类主要的日志子系统:
● 连接时间日志: 由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
● 进程统计: 由系统内核执行,当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。
● 错误日志: 由syslogd(8)守护程序执行,各种系统守护进程、用户程序和内核通过syslogd(3)守护程序向文件/var/log/messages报告值得注意的事件。另外有许多Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。
Linux下日志的使用
1.基本日志命令的使用
utmp、wtmp日志文件是多数Linux日志子系统的关键,它保存了用户登录进入和退出的记录。有关当前登录用户的信息记录在文件utmp中; 登录进入和退出记录在文件wtmp中; 数据交换、关机以及重启的机器信息也都记录在wtmp文件中。所有的记录都包含时间戳。时间戳对于日志来说非常重要,因为很多攻击行为分析都是与时间有极大关系的。这些文件在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改,这些脚本重新命名并循环使用wtmp文件。
utmp文件被各种命令文件使用,包括who、w、users和finger。而wtmp文件被程序last和ac使用。 但它们都是二进制文件,不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。具体用法如下:
who命令: who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其进行审计和处理。例如: 运行who命令显示如下:
[root@working]# who
root pts/0 May 9 21:11 (10.0.2.128)
root pts/1 May 9 21:16 (10.0.2.129)
lhwen pts/7 May 9 22:03 (10.0.2.27)
如果指明了wtmp文件名,则who命令查询所有以前的记录。例如命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。
日志使用注意事项
系统管理人员应该提高警惕,随时注意各种可疑状况,并且按时和随机地检查各种系统日志文件,包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时,要注意是否有不合常理的时间记载。例如:
■ 用户在非常规的时间登录;
■ 不正常的日志记录,比如日志的残缺不全或者是诸如wtmp这样的日志文件无故地缺少了中间的记录文件;
■ 用户登录系统的IP地址和以往的不一样;
■ 用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录;
■ 非法使用或不正当使用超级用户权限su的指令;
■ 无故或者非法重新启动各项网络服务的记录。
另外, 尤其提醒管理人员注意的是: 日志并不是完全可靠的。高明的黑客在入侵系统后,经常会打扫现场。所以需要综合运用以上的系统命令,全面、综合地进行审查和检测,切忌断章取义,否则很难发现入侵或者做出错误的判断。
users命令: users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。运行该命令将如下所示:
[root@working]# users
root root //只登录了一个Root权限的用户
last命令: last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。系统管理员可以周期性地对这些用户的登录情况进行审计和考核,从而发现其中存在的问题,确定不法用户,并进行处理。运行该命令,如下所示:
[root@working]# last
devin pts/1 10.0.2.221 Mon Jul 21 15:08-down (8 17:46)
devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11)
changyi pts/2 10.0.2.141 Mon Jul 21 14:12 - 14:12 (00:00)
devin pts/1 10.0.2.221 Mon Jul 21 12:51 - 14:40 (01:49)
reboot system boot 2.4.18 Fri Jul 18 15:42 (11 17:13)
reboot system boot 2.4.18 Fri Jul 18 15:34 (00:04)
reboot system boot 2.4.18 Fri Jul 18 15:02 (00:36)
读者可以看到,使用上述命令显示的信息太多,区分度很小。所以,可以通过指明用户来显示其登录信息即可。例如: 使用last devin来显示devin的历史登录信息,则如下所示:
[root@working]# last devin
devin pts/1 10.0.2.221 Mon Jul 21 15:08 - down (8 17:46)
devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11)
ac命令:ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连接的时间(小时),如果不使用标志,则报告总的时间。另外,可以加一些参数,例如,last -t 7表示显示上一周的报告。
lastlog命令 lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示“**Never logged**”。注意需要以root身份运行该命令。运行该命令如下所示:
[root@working]# lastlog
Username Port From Latest
root pts/1 10.0.2.129 二 5月 10 10:13:26 0800 2005
opal pts/1 10.0.2.129 二 5月 10 10:13:26 0800 2005
2.使用Syslog设备
Syslog已被许多日志函数采纳,被用在许多保护措施中,任何程序都可以通过syslog 记录事件。Syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。
Syslog设备核心包括一个守护进程(/etc/syslogd守护进程)和一个配置文件(/etc/syslog.conf配置文件)。通常情况下,多数syslog信息被写到/var/adm或/var/log目录下的信息文件中(messages.*)。一个典型的syslog记录包括生成程序的名字和一个文本信息。它还包括一个设备和一个优先级范围。
系统管理员通过使用syslog.conf文件,可以对生成的日志的位置及其相关信息进行灵活配置,满足应用的需要。例如,如果想把所有邮件消息记录到一个文件中,则做如下操作:
#Log all the mail messages in one place
mail.* /var/log/maillog
其他设备也有自己的日志。UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志(/var/log/spooler)中并把级别限为\"err\"或更高。例如:
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
当一个紧急消息到来时,可能想让所有的用户都得到。也可能想让自己的日志接收并保存。
#Everybody gets emergency messages, plus log them on anther machine
*.emerg *
*.emerg @linuxaid.com.cn
用户可以在一行中指明所有的设备。下面的例子把info或更高级别的消息送到/var/log/messages,除了mail以外。级别\"none\"禁止一个设备:
#Log anything(except mail)of level info or higher
#Don\’t log private authentication messages!
*.info:mail.none;autHPriv.none /var/log/messages
在有些情况下,可以把日志送到打印机,这样网络入侵者怎么修改日志都不能清除入侵的痕迹。因此,syslog设备是一个攻击者的显著目标,破坏了它将会使用户很难发现入侵以及入侵的痕迹,因此要特别注意保护其守护进程以及配置文件。
3.程序日志的使用
许多程序通过维护日志来反映系统的安全状态。su命令允许用户获得另一个用户的权限,所以它的安全很重要,它的文件为sulog,同样的还有sudolog。另外,诸如Apache等Http的服务器都有两个日志: access_log(客户端访问日志)以及error_log(服务出错日志)。 FTP服务的日志记录在xferlog文件当中,Linux下邮件传送服务(sendmail)的日志一般存放在maillog文件当中。
程序日志的创建和使用在很大程度上依赖于用户的良好编程习惯。对于一个优秀的程序员来说,任何与系统安全或者网络安全相关的程序的编写,都应该包含日志功能,这样不但便于程序的调试和纠错,而且更重要的是能够给程序的使用方提供日志的分析功能,从而使系统管理员能够较好地掌握程序乃至系统的运行状况和用户的行为,及时采取行动,排除和阻断意外以及恶意的入侵行为。
网络安全 | 评论:0
| Trackbacks:0
| 阅读:76
Submitted by 海东青 on 2009, February 25, 2:56 PM
入侵检测的研究可以追溯到JamesP.Anderson在1980年的工作,他首次提出了“威胁”等术语,这里所指的“威胁”与入侵的含义基本相同,将入侵尝试或威胁定义为:潜在的、有预谋的、未经授权的访问企图,致使系统不可靠或无法使用。1987年DorothyE. Denning首次给出一个入侵检测的抽象模型,并将入侵检测作为一个新的安全防御措施提出。1988年,Morris蠕虫事件加快了对入侵检测系统(IDS :Intrusion Detection System)的开发研究。在过去的20年里,网络技术在不断发展,攻击者水平在不断提高,攻击工具与攻击手法日趋复杂多样,特别是以黑客为代表的攻击者对网络的威胁日益突出,他们正不遗余力地与所有安全产品进行着斗争。攻击技术和手段的不断发展促使IDS等网络安全产品不断更新换代,使得IDS产品从一个简单机械的产品发展成为智能化的产品。一、目前IDS存在的缺陷入侵检测系统作为网络安全防护的重要手段,有很多地方值得我们进一步深入研究。目前的IDS还存在很多问题,有待于我们进一步完善。1.高误警(误报)率误警的传统定义是将良性流量误认为恶性的。广义上讲,误警还包括对IDS用户不关心事件的告警。因此,导致IDS产品高误警率的原因是IDS检测精度过低以及用户对误警概念的拓展。2.产品适应能力低 传统的IDS产品在开发时没有考虑特定网络环境的需求,千篇一律。网络技术在发展,网络设备变得复杂化、多样化,这就需要入侵检测产品能动态调整,以适应不同环境的需求。3.大型网络的管理问题很多企业规模在不断扩大,对IDS产品的部署从单点发展到跨区域全球部署,这就将公司对产品管理的问题提上日程。首先,要确保新的产品体系结构能够支持数以百计的IDS传感器;其次,要能够处理传感器产生的告警事件;此外,还要解决攻击特征库的建立,配置以及更新问题。4.缺少防御功能检测,作为一种被动且功能有限的技术,缺乏主动防御功能。因此,需要在下一代IDS产品中嵌入防御功能,才能变被动为主动。5.评价IDS产品没有统一标准对入侵检测系统的评价目前还没有客观的标准,标准的不统一使得入侵检测系统之间不易互联。随着技术的发展和对新攻击识别的增加,入侵检测系统需要不断升级才能保证网络的安全性。6.处理速度上的瓶颈随着高速网络技术如ATM、千兆以太网等的相继出现,如何实现高速网络下的实时入侵检测是急需解决的问题。目前的百兆、千兆IDS产品的性能指标与实际要求还存在很大的差距。二、下一代IDS系统采用的技术为了降低误警率、合理部署多级传感器、有效控制跨区域的传感器,下一代入侵检测产品需要包含以下关键技术。1.智能关联智能关联是将企业相关系统的信息(如主机特征信息)与网络IDS检测结构相融合,从而减少误警。如系统的脆弱性信息需要包括特定的操作系统(OS)以及主机上运行的服务。当IDS使用智能关联时,它可以参考目标主机上存在的、与脆弱性相关的所有告警信息。如果目标主机不存在某个攻击可以利用的漏洞,IDS将抑制告警的产生。智能关联包括主动关联和被动关联。主动关联是通过扫描确定主机漏洞;被动关联是借助操作系统的指纹识别技术,即通过分析IP、TCP报头信息识别主机上的操作系统。下面将详细介绍指纹识别技术。(1)IDS有时会出现误报(主机系统本身并不存在某种漏洞,而IDS报告系统存在该漏洞)造成这种现象的原因是当IDS检测系统是否受到基于某种漏洞的攻击时,没有考虑主机的脆弱性信息。以针对Windows操作系统的RPC攻击为例,当网络中存在RPC攻击时,即使该网络中只有基于Linux的机器,IDS也会产生告警,这就是一种误报现象。为了解决这个问题,需要给IDS提供一种基于主机信息的报警机制。因此新一代IDS产品利用被动指纹识别技术构造一个主机信息库,该技术通过对TCP、IP报头中相关字段进行识别来确定操作系统(OS)类型。(2)被动指纹识别技术的工作原理被动指纹识别技术的实质是匹配分析法。匹配双方一个是来自源主机数据流中的TCP、IP报头信息,另一个是特征数据库中的目标主机信息,通过将两者做匹配来识别源主机发送的数据流中是否含有恶意信息。通常比较的报头信息包括窗口大小(Windowsize)、数据报存活期(TTL)、DF(don'tfragment)标志以及数据报长(Totallength)。窗口大小(wsize)指输入数据缓冲区大小,它在TCP会话的初始阶段由OS设定。多数UNIX操作系统在TCP会话期间不改变它的值,而在Windows操作系统中有可能改变。数据报存活期指数据报在被丢弃前经过的跳数(hop);不同的TTL值代表不同的OS,TTL=64,OS=UNIX;TTL=12,OS=Windows。DF字段通常设为默认值,而OpenBSD不对它进行设置。数据报长是IP报头和负载(Payload)长度之和。在SYN和SYNACK数据报中,不同的数据报长代表不同的操作系统,60代表Linux、44代表Solaris、48代表Windows2000。IDS将上述参数合理组合作为主机特征库中的特征(称为指纹)来识别不同的操作系统。如TTL=64,初步判断OS=Linux/OpenBSD;如果再给定wsize的值就可以区分是Linux还是OpenBSD。因此,(TTL,wsize)就可以作为特征库中的一个特征信息。(3)被动指纹识别技术工作流程具有指纹识别技术的IDS系统通过收集目标主机信息,判断主机是否易受到针对某种漏洞的攻击,从而降低误报率。它的工作流程如图1所示。<1>指纹识别引擎检查SYN报头,提取特定标识符;<2>从特征库中提取目标主机上的操作系统信息;<3>更新主机信息表;<4>传感器检测到带有恶意信息的数据报,在发出警告前先与主机信息表中的内容进行比较;<5>传感器发现该恶意数据报是针对Windows服务器的,而目标主机是Linux服务器,所以IDS将抑制该告警的产生。
因此,当IDS检测到攻击数据包时,首先查看主机信息表,判断目标主机是否存在该攻击可利用的漏洞;如果不存在该漏洞,IDS将抑制告警的产生,但要记录关于该漏洞的告警信息作为追究法律责任的证据。这种做法能够使安全管理员专心处理由于系统漏洞产生的告警。一些IDS经销商已经把OS指纹识别的概念扩展到应用程序指纹识别,甚至到更广泛的用途上。2.告警泛滥抑制IDS产品使用告警泛滥抑制技术可以降低误警率。在利用漏洞的攻击势头逐渐变强之时,IDS短时间内会产生大量的告警信息;而IDS传感器却要对同一攻击重复记录,尤其是蠕虫在网络中自我繁殖的过程中,这种现象最为严重。NFR(一家网络安全公司)称这种现象为“告警饱和”。所谓“告警泛滥”是指短时间内产生的关于同一攻击的告警。下一代IDS产品利用一些规则(规则的制定需要考虑传感器)筛选产生的告警信息来抑制告警泛滥;IDS可根据用户需求减少或抑制短时间内同一传感器针对某个流量产生的重复告警。这样,网管人员可以专注于公司网络的安全状况,不至于为泛滥的告警信息大伤脑筋。告警泛滥抑制技术是将一些规则或参数(包括警告类型、源IP、目的IP以及时间窗大小)融入到IDS传感器中,使传感器能够识别告警饱和现象并实施抑制操作。有了这种技术,传感器可以在告警前对警报进行预处理,抑制重复告警。例如,可以对传感器进行适当配置,使它忽略在30秒内产生的针对同一主机的告警信息;IDS在抑制告警的同时可以记录这些重复警告用于事后的统计分析。3.告警融合该技术是将不同传感器产生的、具有相关性的低级别告警融合成更高级别的警告信息,这有助于解决误报和漏报问题。当与低级别警告有关的条件或规则满足时,安全管理员在IDS上定义的元告警相关性规则就会促使高级别警告产生。如扫描主机事件,如果单独考虑每次扫描,可能认为每次扫描都是独立的事件,而且对系统的影响可以忽略不计;但是,如果把在短时间内产生的一系列事件整合考虑,会有不同的结论。IDS在10min内检测到来自于同一IP的扫描事件,而且扫描强度在不断升级,安全管理人员可以认为是攻击前的渗透操作,应该作为高级别告警对待。这个例子告诉我们告警融合技术可以发出早期攻击警告,如果没有这种技术,需要安全管理员来判断一系列低级别告警是否是随后更高级别攻击的先兆;而通过设置元警告相关性规则,安全管理员可以把精力都集中在高级别警告的处理上。元警告相关性规则中定义的参数包括时间窗、事件数量、事件类型IP地址、端口号、事件顺序。4.可信任防御模型改进的IDS中应该包含可信任防御模型的概念。事实上,2004年多数传统的IDS供应商已经逐渐地把防御功能加入到IDS产品中。与此同时,IPS(入侵防御系统)产品的使用率在增长,但是安全人士仍然为IDS产品预留了实现防御功能的空间。IDS产品供应商之所以这样做,部分原因在于他们认识到防御功能能否有效地实施关键在于检测功能的准确性和有效性。没有精确的检测就谈不上建立可信任的防御模型;所以,开发出好的内嵌防御功能的IDS产品关键在于提高检测的精确度。下一代IDS产品中,融入可信任防御模型后,将会对第一代IPS产品遇到的问题(误报导致合法数据被阻塞、丢弃;自身原因造成的拒绝服务攻击泛滥;应用级防御)有个圆满的解决。
网络安全 | 评论:0
| Trackbacks:0
| 阅读:78
Submitted by 海东青 on 2009, February 25, 2:55 PM
“溢出”一直以来都是很多黑帽子黑客最常用(或者说是最喜欢用)的手段之一,随安全文化的逐步普及,大量的公开shellcode(“溢出”代码)与溢出攻击原理都可以随意在各大的网络安全网站中找得到,由此衍生了一系列的安全隐患...小黑黑使用它们来进行非法的攻击、恶意程序员使用它们来制造蠕虫等等...而网络_blank">防火墙作为人们最喜欢的网络安全“设施”之一,它又能如何“拦截”这一类型的攻击呢?这就是今天小神与大伙一起讨论的问题了。
写这篇烂文时小神粗略地翻了一下CIW SP的教科书,5、6章节详细的介绍了_blank">防火墙的种类、作用、优略点等,但没有提出关于使用_blank">防火墙来进行溢出防御的文章,这是为什么呢?大概是因为这样吧:目前大多的防火墙系统都是针对包过滤规则进行安全防御的,这类型的_blank">防火墙再高也只能工作在传输层,而溢出程序的she llcode是放在应用层的,因此对这类攻击就无能为力了。打个比方:前段时间比较火热的IIS WEBDAV溢出漏洞,若黑客攻击成功能直接得到ROOTSHELL(命令行管理员控制台),它是在正常提供HTTP服务的情况下产生的溢出漏洞,若在不打补丁与手工处理的情况下一台_blank">防火墙又能做到什么呢?相信你除了把访问该服务器TCP80端口(提供正常地HTTP服务的情况下)的包过滤掉以外就什么都不会去做了,当然,这样也会使你的HTTP服务无法正常地开放(等于没有提供服务...)。下面就让小神以这个漏洞为“论点&&题材”,说说自己的解决方案吧。
1)对希望保护的主机实行“单独开放端口”访问控制策略所谓“单独开放端口”就是指只开放需要提供的端口,对于不需要提供服务的端口实行过滤策略。打个比方,现在我们需要保护一台存在WebDAV缺陷的WEB服务器,如何能令它不被骇客入侵呢?答案是:在这台WEB服务器的前端_blank">防火墙中加入一个“只允许其他机器访问此机的TCP80端口”的包过滤规则(至于阁下的_blank">防火墙能否
实现这样的规则就另当别论了)。加上这个规则又会有怎样的效果呢?经常做入侵渗透测试的朋友应该比我还清楚远程溢出的攻击实施流程了吧?
①使用缺陷扫描器找到存在远程溢出漏洞的主机-》②确认其版本号(如果有需要的话)-》③使用exploit(攻击程序)发送shellcode-》④确认远程溢出成功后使用NC或TELNET等程序连接被溢出主机的端口-》⑤得到SHELL
使用“单独开放端口”策略的解决方案对整个远程溢出过程所发生的前三步都是无能为力的,但来到第四步这个策略能有效地阻止骇客连上有缺陷主机的被溢出端口,从而切断了骇客的恶意攻击手段。
优点:操作简单,一般的网络/系统管理员就能完成相关的操作。
缺点:对溢出后使用端口复用进行控制的EXPLOITS就无能为力了;对现实中的溢出后得到反向连接控制的EP LOITS也是无能为力;不能阻止D.o.S方面的溢出攻击。
2)使用应用层_blank">防火墙系统
这里所谓的应用层并不是想特别指明该_blank">防火墙工作在应用层,而是想指明它能在应用层对数据进行处理。由于应用层的协议/服务种类比较多,因此针对应用层形式的_blank">防火墙就有一定的市场局限性了。就楼上所提到的案例而言我们可以使用处理HTTP协议的应用层_blank">防火墙对存在WebDAV缺陷的服务器订制保护规则,保证服务器不收此类攻击的影响。应用层中的HTTP协议_blank">防火墙系统不多,其中比较出名的有EEYE公司的SecureIIS,其使用方式就可谓是“弱智型”了,说说它的基本防御原理与特点吧。当服务端接受到一个发送至TCP80端口的数据包时首先就会将该包转移至SecureIIS,SecureIIS就会对该包进行分析并解码该包的应用层数据,将得到的数据与你本身定制的规则进行数据配对,一旦发现条件相符饿数值就会执行规则所指定的相应操作。
优点:能有效地切断一些来自应用层的攻击(如溢出、SQL注入等)。
缺点:因为需要安装在服务器上,所以会占用一定的系统资源;(eeye公司本身并无开发该软件的中文版本,所以一旦它受到POST行为发出的中文数据时就会自动认为是高位攻击代码,自动将其隔离,并进行相关的处理操作)。
楼上的两种解决方法我比较推崇第二种,但其实还是有第三种解决方案的(大家不要或我为某产品卖广告就好:)。
网络安全 | 评论:0
| Trackbacks:0
| 阅读:79
Submitted by 海东青 on 2009, February 25, 2:55 PM
本文通过介绍一些技巧介绍了针对PHP木马攻击的防御之道,通过这些方面你可以更好的防范木马程序。
1、防止跳出web目录 首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行: php_admin_value open_basedir /usr/local/apache/htdocs 这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误: Warning: open_basedir restriction in effect. File is in wrong directory in /usr/local/apache/htdocs/open.php on line 4 等等。
2、防止php木马执行webshell 打开safe_mode, 在,php.ini中设置 disable_functions= passthru,exec,shell_exec,system 二者选一即可,也可都选。
网络安全 | 评论:0
| Trackbacks:0
| 阅读:81
Submitted by 海东青 on 2009, February 25, 2:55 PM
首先,服务器上用的是私有的操作系统和数据库,所谓私有,并不是完全自己写,而是说,全部都是进行私有化改造过的,一般使用开源的操作系统和数据库进行改造,比如说操作系统使用free bsd的改,数据库使用mysql的改,网站服务器数量上百时开始实施这个工程的网站比较多,费用是很重要的一方面原因,但更重要的是安全因素。防火墙不仅昂贵,而且会严重降低效率,所以他们一般不会考虑。
改造操作系统的时候,除通信所需的一些命令文件保持原名外,很多命令文件连文件名都换掉(有人认为这是小花样,呵呵),大量功能被重写,黑客即使拿到权限坐在服务器面前,也取不到数据。
有网站首席安全官认为放一扇门让别人一个劲砸,不如给人两条路让人选择正确的或者不正确的,所有使用错误帐号和密码去试系统的人,都会被允许以匿名身份登录到一个shell里,那个shell跟真的系统很象,嗯,只是很象,但其实是个空壳,所有的指令,都会被以最小代价运行,调用假的信息界面出来。有的甚至里面放了陷阱,欺骗性引导黑客自动送上身份资料或其他一些敏感信息,毕竟黑客可能通过境外跳板过来,如果不是黑客主动送上,网站方很难获得黑客身份资料的。
使用自己的安全策略,对已有的攻击手段都有相应的防护措施。比如说对syn flood这样的,就是临时降低服务质量,降低半连接等待时间,这样连接的成功率会降低,但是不会造成服务被停。
网络空闲时间经常有欺骗性数据流在办公网络和服务器之间流动,使用强度不高的加密方式加密,让黑客有事做。
网站内部工作人员使用业务系统登录网站服务器时,界面上和一般服务器一样,所有的一般命令都可以通过业务系统转换为私有操作系统的专用命令而得到执行,网站内部工作人员也只有很少的知道转换的对照,而且一般都经过分权,做操作系统开发的,不负责服务器的维护,并且不知道安装某个内部版本号操作系统的服务器被部署到什么地方。
帐号及密码按规定必须通过安全的消息平台传递。
有自己部署在不同城市的DNS服务器,所有部署出去的应用都有不在同一机房的备用系统,应急机制设置在自己的DNS服务器这一环节,使用承载其他服务的服务器做交叉的安全状态监测,比如说A1服务器是A服务器的备用系统,使用CDEFGH等服务器来做A服务器安全状态监测,定时通信,并向A1服务器传递通信成功的信号,当失败率超过某个值的时候,A1自动分担A的部分压力,A1服务器上原本承担的非及时服务(不面向客户的,比如说索引服务)被降低优先级。所有服务器之间这么相互监测,通过某个机制保证监测是及时有效的。这样的情况下,即使某家DNS服务商被攻击,自己的网站都还能被大部分用户访问,因为不同地区的DNS还没被刷,用户还是可以使用那些DNS连接到网站的。
一般而言,使用了这些手段,网站的安全性不能说万无一失,也是大大提高的。
网络安全 | 评论:0
| Trackbacks:0
| 阅读:79