首页 > 安全 > 关键词  > web最新资讯  > 正文

用脚本类IDS抵御针对WEB的攻击

2009-06-22 10:25 · 稿源:赛迪网

IDS是英文“Intrusion Detection Systems”的缩写,中文意思是“入侵检测系统”。传统的IDS是一个监听设备,这个设备通过网络链路挂接在服务器和客户端所有流量都必须流经的链路上,IDS就是通过特有IDS规则匹配黑客恶意攻击入侵行为的流量,进行即时的监测和报警。

在历年来开源的Web程序中,被披露最多最严重的安全漏洞一直是SQL注射,为了减少SQL注射漏洞对各大网站造成的安全威胁,Web安全研究组织80SEC在2008年编写了国内第一个脚本类IDS - MysqlIds,使用MysqlIds可以更好的、更有效率的帮助网站管理员和程序员抵御和检测SQL注射漏洞。

现在流行的技术大部分是旁路监听,一般不会因为IDS的性能影响网站正常的访问流量,而Mysqlids也是按照类似的思路同样不会影响程序的性能。Mysqlids存在于应用程序和数据库操作之间的一个环节,完全以数据库的语法来分析执行的SQL语句,而不是采用传统的关键字检测的方法,对于一些非正常的SQL语句能进行阻止并且记录相关的信息,这样就可以很快地定位程序中存在注射漏洞的地方,为漏洞的及时修复提供必要的信息。

MysqlIds原理

MysqlIds是由PHP编写的,通过一个封装的安全函数,监测程序中运行的SQL查询语句,针对黑客经常使用的union查询、select子查询、不常用的SQL注释符、文件操作和benchmark等危险函数行为进行报警,这个IDS是无缝封装在程序里的数据库操作流程里的,也就是黑客通过程序漏洞进行恶意的SQL注射都能被非常详细的监测到,程序员或者网站站长甚至能使用IDS发现自己网站程序中未被察觉的0DAY漏洞。下面我就分析MysqlIds的部分代码,使大家可以从原理上更容易的理解MysqlIds,我们看看MysqlIds如何监测黑客SQL注入经常使用的恶意的联合查询。部分代码如下:

if (strpos($clean, 'union') !== false && preg_match('~(^ [^a-z])union($ [^[a-z])~s', $clean) != 0){
$fail = true;
$error="union detect";
}

MysqlIds使用了PHP中strpos函数来判断程序执行的SQL语句是否存在恶意的SQL注射,这个函数可以高效率的查找指定字符串返回一个布尔值,当程序执行SQL语句中使用联合查询,规则条件就开始生效,启用preg_match函数调用IDS规则来匹配恶意的联合查询语句,这个IDS规则是精心构造的正则表达式,类似于大家使用的传统IDS规则,由于MysqlIds是在程序的数据库操作层来检测,所有能抓取到有效且实实在在的安全问题,且更有效更具有针对性。MysqlIds还针对程序运行的SQL语句出现的异常情况进行了监控,如SQL语句中出现异常的注释符,一般黑客进行SQL注射攻击,很多情况下需要注释符完成SQL注射攻击的SQL语句,同时黑客还有可能使用一些比较危险的MYSQL函数和功能,如sleep、benchmark、load_file和into outfile功能等,这些黑客在程序中使用SQL注射的恶意动作都能被MysqlIds监测到。

MysqlIds与传统Web安全防御措施的区别

传统的Web安全防御措施都非常滞后,在Web程序里未知的漏洞被攻击的情况下,管理员往往要排查很多东西才能找到问题的关键点,有的时候可能是使用的程序中存在一个未知的SQL注射漏洞被黑客利用,却无法确定黑客是如何攻击,而导致整个网站一而再,再而三的沦陷。合理地部署Mysqlids后,就可以帮助管理员第一时间准确的定位网站的Web程序漏洞,关键在于MysqlIds核心的日志功能,它能准确的将每次精确匹配报警后的信息存入日志,代码如下:


if (!empty($fail))
{

fputs(fopen($log_file,'a+'),"  $db_string  $error\r\n");
die("Hacking Detect[url]https://www.80sec.com[/url]");
}

else {
return $db_string;
}
}

当程序的SQL语句被监测到恶意行为后,会打开相应条件语句里的fail开关,也就是触发监测后根据信息会留下一条精确的日志信息。管理员排查日志就能精确定位程序中的SQL注射漏洞。

如何部署MysqlIds

MysqlIds暂时只支持PHP+MYSQL架构的Web程序,作为开源程序和其原理的灵活性,大家可以很方便将MysqlIds和自己程序无缝结合。比如国内站长采用比较广泛的一款PHP建站程序DeDecms,在DeDecms历史版本中被披露过很多安全问题,其中SQL注射是其安全问题中危害最大也最多的问题。为了解决SQL注射问题,DedeCms在其发布的最新版中的数据库类中封装了80sec的Mysqlids,以用来抵御和检测Sql注射漏洞。我们可以参考DeDecms的MYSQL数据库类,将MysqlIds部署在程序中:

\include\dedesql.class.php

DeDecms的MYSQL数据库类161行的ExecuteNoneQuery函数封装了MysqlIds,程序运行的SQL语句在进入MYSQL查询之前都会使用MysqlIds的CheckSql函数处理。

if($this->safeCheck) CheckSql($this->queryString,'update');
return mysql_query($this->queryString,$this->linkID);

脚本类IDS展望

近年来大家对安全越来越重视,Web程序的开发也越来越多的考虑程序的安全性,脚本类IDS作为一种花销很小当最有效的安全措施值得大力推广,也许以后的WEB程序在开发之初就会将这类脚本IDS的概念设计在自己的程序中,那么大家只需要打开程序中的一个设置开关就能被实时保护,并能最准确的定位安全问题。目前MysqlIds在80SEC的官方网站上仍然是1.0版,希望他们以后能提供功能更强大脚本IDS,同时感谢80SEC给我们带来的全新WEB安全概念。

举报

  • 相关推荐
  • 已创办16年 杂志《爱格》官宣停刊:没能抵御现实的风暴

    快科技10月9日消息,据爱格官方微博公告,已经创办16年的杂志《爱格》将于11月起停刊。据悉,《爱格》是2007年山东出版集团出版的杂志,天使文化旗下爱格杂志社编辑发行,半月刊,分别为《爱格》A、B版及《爱格言情》,2014年出了《爱格时尚》。与此同时,官方也发布了停刊公告,具体为以下内容:因为种种不可抗力,我们在此遗憾地告知大家:《爱格》将从2023年11月起停�

  • UP主发明用脚玩《英雄联盟》的电脑 被赞“第166位英雄”

    10月16日消息,B站游戏区UP主墨轩TG”业余时间喜欢鼓捣一些无用的发明。今年年初,他给电脑外接了两个踏板,想体验一下用脚打游戏的感觉。一次无心的整活,却意外发展成为壮举,造福一群陌生人。这无意间上传的整活视频,引起了一位因车祸失去右臂、爱好英雄联盟的重庆大叔的注意,也开启了墨轩与残障玩家群体的缘分。了解大叔的情况后,墨轩为大叔定制了踏板,�

  • 开启Web3.0新纪元 第三届元宇宙共享大会成功举办

    “趋势与未来”第三届元宇宙共享大会暨Web3.0链改——绿色积分资产化实践项目签约发布会,及汇来购全生态3.0启动盛典于2023年9月26日在广东金海湾成功举办。该活动由中国移动通信联合会元宇宙产业工作委员会,中国通信工业协会区块链专业委员会联合主办;亚洲区块链综合管理机构,汇来购经济服务平台共同承办。为推动社会走向数字文明新时代,共建元宇宙技术创新生态体系,推动元宇宙可持续健康发展。

  • 巨量引擎推出智能短视频脚本工具、智能成片等AIGC产品

    字节跳动旗下巨量引擎推出了一款智能短视频脚本工具,免费供抖音商家使用,可以帮助商家快速生成符合抖音标准的带货短视频,系统将为商家智能分析视频,锁定高光帧和拆解黄金公式,仅需20秒即可根据内容公式或自定义功能,自动生成爆款带货短视频脚本,商家使用智能短视频脚本工具后GMV提升了58%。巨量引擎还推出了一款名为智能成片的AIGC产品,这是一款AI智能混剪

  • 英伟达提出爆火智能体研究Humanoid Agents 逼真还原人情感

    英伟达、华盛顿大学等机构联合研究的HumanoidAgents在模拟人类行为方面取得重大突破。这种智能体能够逼真地反映人类的情感和基本需求,使其行为更接近人类。这项研究的结果表明,HumanoidAgents能够逼真地模拟人类行为和情感,为深入理解人类行为提供了宝贵工具,同时也为未来的智能体研究提供了新的方向。

  • Web3时代加速到来 欧科云链持续推动科技创新应用落地

    世界正处于从商业文明转向价值文明的时代,作为人类历史上最伟大的发明之一,互联网也面临着变革和发展,价值互联网被称为人类社会网络系统进化的最高形式Web3则被认为是最接近价值互联网的产业形态。在元宇宙、NFT等热潮涌起之下,Web3看似并不遥远,作为下一代互联网存在方式的最大可能性,Web3已经构建了完整的模式概念,最为大众所熟知的是其强调用户在互联网拥有自主权,用户与建设者共建共享,以此完成数据资产权属的回归。随着Web3时代的加速来临,区块链多链生态逐步发展,像欧科云链这样的拥有核心优势且不断深耕探索的区块链大数据企业必将迎来属于自己的黄金时代。

  • 第三届元宇宙共享大会|甘华鸣:高屋建瓴地认识Web3.0/元宇宙和区块链积分

    2023年9月26日,“趋势与未来”第三届元宇宙共享大会暨Web3.0链改——绿色积分资产化实践项目签约发布会及汇来购全生态3.0启动盛典在广东惠州金海湾成功举办。该活动由中国移动通信联合会元宇宙产业工作委员会、中国通信工业协会区块链专业委员会联合主办,亚洲区块链综合管理机构、汇来购经济服务平台共同承办,物链芯工程技术研究院,央链直播联合协办。为推动社会走向数字文明新时代,共建元宇宙技术创新生态体系,推动元宇宙可持续健康发展。

  • 开源论文查询工具DocsGPT登顶GitHub热榜 支持多种文档

    DocsGPT是一款开源文档助手,旨在改变项目文档查找信息的方式。无需耗费时间进行手动搜索,DocsGPT可以帮助您快速找到所需的信息。开发环境支持:DocsGPT提供了开发环境设置,以便开发人员可以轻松进行本地开发和测试。

  • 谷歌宣布推出适用于 Android 和 iOS 的「Bard 助手」

    在MadebyGoogle活动中,谷歌首次推出了Pixel8和PixelWatch2硬件,并宣布推出了搭载Bard的助手,该助手利用生成式AI为用户提供个性化的帮助。谷歌公司表示,这个新的AI增强助手可以帮助您规划下一次旅行,找到电子邮件收件箱中的详细信息,甚至创建购物清单。谷歌将在不久后将其提供给早期测试者,然后在「未来几个月内」推出Android和iOS版本。

  • 免费使用,媲美Midjourney!微软在Bing Chat等提供—DALL-E 3

    微软在官网宣布,将OpenAI最新模型DALL-E3集成在BingChat和BingImageCreate中,并免费提供给用户使用。DALL-E3是一款类Midjourney产品,通过文本就能生成二次元、3D、朋克、涂鸦、素描、黑白、极简、印象派、位面像素等几十种类型图片。需要注意的是,用户在创建图片的过程中,提供的文本细节越多、描述越丰富,最终生成的图片也就越精准。