加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

谁动了我的网页?

(2008-10-06 15:31:07)
标签:

网站

防挂马

趋势科技

防挂马系统

spiderman

antihijack

杂谈

分类: 安全信息

AV们不久前收到几张免费品尝西点的券券,于是兴致勃勃地按照券上的网址,想上网查查有什么可以免费品尝的。谁料正垂涎三尺之时,office scan提示将一链接阻挡——发现病毒!小AV们毕竟是专业人士,一点也没慌张,右击网页,选择查看源代码,思索了两秒钟不到,发现老朋友<iframe>http://www.{BLOCKED}d.com/ngg.js),大家异口同声“吼吼,挂马咯”(http://www.trendmicro.com/vinfo/virusencyclo/default5.asp?VName=HTML_BADSRC.C

 

大家讨论了一下,鉴于这家西点还是挺有名的,上网光顾该店网页的食客应该不在少数,为了不让更多的人受“网马之害”,小AV们决定打电话给这家西点公司(看,这就是AV们的职业素质哇)。接电话的应该是前台,小AV们报了来历之后,就说“贵公司的网站有病毒,应该是被别人挂马了”,前台听到病毒二字,立马大惊失色。不过还好在小AV们的帮助下,前台弄清楚了怎么回事,然后通知他们的技术人员,终于该网站成功消灭了小马。

 

类似这样的事情,在互联网上每天都有很多起发生。现在病毒除了通过U盘传播,很大一部分都是通过网络传播。通过网络传播的途径主要有两种:1·本身携带病毒网站;2·原本健康的网站被恶意挂马。

 

如果因前者而中毒,那大多是因为用户本身的安全意识不足造成的。那如果是后者,用户和网站持有者就只能一肚子苦水了。尤其是网站持有者,看着网站日访问量持续低迷,只能糊里糊涂地蹲墙角画圈圈(汗~)。

 

所以本文将就网站持有者谈谈防止网页挂马的基本方法。(本文适合人群为大众网站编写者,非资深的安全和开发人员,旨在普及网站安全)

 

网站被挂马的原因无非有二:(1)网站程序有漏洞,服务器被侵入,黑客手动挂马;(2)网站服务器感染病毒,病毒具有自动挂马的特征。

1针对手动挂马

1.1入侵网站最常用的手段就是SQL注入。因此为了防止sql注入,

1)将与数据库交互的代码 和 网站本身的逻辑代码剥离,即尽量使用存储过程。目前大多数的数据库程序的存储过程都有过滤sql注入的功能。

2)当然,有时候将sql语句写在网页里面,会大大提供开发速度,所以这时候对 postget提交的数据进行充分的过滤就显得十分重要。比如,经典的sql注入代码”’ or 1=1 ‘”,你就可以选择 将匹配到“ or”的字符串删除,或者将orascii码代替。

3)程序写得再好,也难免有漏洞,就连MSWindows也常有漏洞报出,所以,我们也要做好网站被入侵的最坏打算,因此,将数据库服务器和网站服务器分离便是一个很好的方法。就算黑客通过sql注入获得了数据库的管理员权限,那他也没办法登陆网站服务器实施挂马。

 

1.2手动挂马最常用的第二种手段是利用上传漏洞。如果你的网站里包含上传功能,那这时候你就要小心了。

1)首先确保你的程序做足了上传文件的识别功能。请注意,不能只靠文件后缀名来识别文件类型,而要通过文件头来判断。很多asp木马都会伪装成图片来躲过这一关。

2)正如前文所述,程序写得再好也难免有漏洞。因此这时,对服务器的设置的好坏就起了关键作用。将您的服务器的图片上传目录设为可写,但只可运行HTML,就算黑客上传了网页木马,但由于该目录不允许asp等扩展运行,所以小马等于是白白上传了。

 

1.3 手动挂马的第三种方法是,网站使用了第三方的开源程序。

1)如果你的网站使用了一些网络上流传的一些开源程序,请一定要注意这些程序是没有上传漏洞和sql注入漏洞的,你可以在搜索引擎上利用“程序名+上传漏洞+sql注入”来搜索,看看这些程序是否有此类漏洞,并且要保持更新这些程序至最新版本。

2)请及时更改这些第三方程序默认的路径名、数据库路径名、数据库文件名。请注意不要将数据库的文件格式设为可下载的,这样容易被黑客猜到后下载,然后获得管理员的口令。

 

1.4其他一些小方法。

1)因为很多网马都是利用iframe来达到“悄悄”被访问的,因此我们在编写网页程序的时候,就可以对iframe进行一个关键字的识别。例如,可以利用cssexpression功能,在网页里加入以下代码:

<style type="text/CSS">

iframe{v:expression_r(this.src='about:blank',this.outerHTML='');}

</style>

这个方法,你可以在网络搜索到。这只是一个思路,小AV觉得,随着挂马方式的多样化,这种利用程序屏蔽的方法也会日渐增多。这个思路值得大家去效仿。

2)当然,网页发布出去,是用来被访问和交互的。那其实很大部分文件是固定不变的,只有一些“数据”是在变化的。因此,我们可以将固定不变的文件的文件夹设为只读。对于经常更新的文件所在的文件夹设为可写。这样可以很大程度上防止被挂马。

3)还有一些其他基本的rule,比如访问数据库的用户权限应该符合“需要什么,给予什么,绝不多给”,千万不可以sa全包……还有给予网站程序所在的文件夹的权限也应该是“能只读,就只读;需要可写再可写”。

4)对于有条件的,可以买硬件防火墙,在路由器端再做一层防护。那是再好不过的了。

 

 

2 针对自动挂马。

自动挂马的原因就是服务器中了病毒,这些病毒还具有“识别网页文件,并自动加上一段挂马代码”的功能。鼎鼎大名的熊猫烧香就具有这样的功能跟。小AV在没做AV的时候,曾中过一次招,后来不得不重装系统,装好系统后,浏览了一次网页,发现又中招……几次反复以后,才发现原来是小AV手下的一台网站服务器中了熊猫烧香,访问这个网站当然就中招咯。

对于这种情况,那防毒自然是第一手要做的。选择好的杀毒软件、及时更新病毒码、及时打上系统补丁,这些都是最基本的。另外,限制服务器的使用,严格管理各个用户的权限,可以大大减少服务器中毒的几率。(如果能禁用U盘,限制网络访问的话,那就再好不过啦。汗~)

由于这部分其实侧重于防毒,小AV在这里就不多谈了。

 

3 事后处理

以上谈的都是如何预防被挂马,那万一没防住,小马被挂上了,应该怎么找出小马并及时消灭呢?

3.1 因为如果被挂马了,但是不去访问被挂马的网页,那其实这个小马还是属于沉睡状态,所以为了能够在小马苏醒之前,就将其消灭是十分重要的。因此,定时查看哪些只读文件被修改了,就十分重要。你可以对只读文件夹的文件按时间排序,看看哪些可疑。当然你也可以利用操作系统的“事件查看器”。另外,网络上也有类似字符串超找的工具,你可以用它们来查找关键字<iframe><script>,看看哪些iframescript不是你自己创建的,如果找到了,那肯定是可疑的。如果是病毒自动挂马,就找到关键字符串,批量删除就可以了。

 

3.2 当然,定期查看很麻烦,而且时间不好掌握。趋势目前就研发出了一种防挂马的工具,不但可以检查网站是否被挂马,而且可以检查是否有病毒。可以按需扫描,也可以定期扫描。如果有兴趣的话,可以联系小AV(汗~不会当作广告吧)

 

本文制作了范范的介绍,有些知识讲的不深,但通常需要注意到的,都有提及。目的是让普遍的网站爱好者了解个大概,如果你感兴趣,可以针对其中一点做透做深。我们的口号是:我们的网站没有三氯氰胺J

 

 

Jason Zhou

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有