IT资讯/综合软件下载站!┆ 最新软件 最新文章 最新手机 UFO外星人 网站分类

您当前的位置→图文中心安全防范WEB版IDS抵御WEB攻击

WEB版IDS抵御WEB攻击


2009/4/11 9:41:56 编辑:佚名 来源:本站整理 
今天给大家分享WEB版IDS抵御WEB攻击安全防范文章。喜欢WEB版IDS抵御WEB攻击的可以分享WEB版IDS抵御WEB攻击给你的好友。

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注入经常使用的恶意的联合查询。 部分代码如下: 


    Code highlighting produced by Actipro CodeHighlighter (freeware) 
    http://www.CodeHighlighter.com/ 

    -->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核心的日志功能, 它能准确的将每次精确匹配报警后的信息存入日志, 代码如下: 


    Code highlighting produced by Actipro CodeHighlighter (freeware) 
    http://www.CodeHighlighter.com/ 

    -->if (!empty($fail)) 

    fputs(fopen($log_file,’a+’),"||$db_string||$error\r\n"); 
    die("Hacking Detect 
    http://www.80sec.com"); 

    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函数处理。  

    Code highlighting produced by Actipro CodeHighlighter (freeware) 
    http://www.CodeHighlighter.com/ 

    -->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安全概念。  

      MysqlIds下载: 

      http://www.ixpub.net/thread-900711-1-1.html
     

    12下一页

    相关文章
  • teamviewer如何刺穿内网
  • spring boot 1.5.4 web容器定制(端口号等修改)方法
  • ASP 、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。...
  • Kanye West:「我是一个外星变形人,我被派遣到地球拯救人类」
  • WPS表格中如何使用WEEKDAY/WEEKNUM函数
  • Deep Web: 暗网中的「白帽黑客」是这样的!
  • DEEP WEB 外星人文件揭露 |Area 51 指南(1-4)合集
  • WinASO EasyTweak(系统优化工具集)V3.2.1 绿色特别版
  • 相关推荐
  • Weeback微备份(电脑数据系统备份工具) v1.0.1.008 官方版
  • Web大马爆破工具(web大马爆破工具下载) v1.0 官方版
  • 腾讯wegame平台(腾讯游戏平台TGP) 体验版 v3.1.0.4772 官方版
  • D5Power游戏引擎(网页游戏引擎软件下载) v2.5.2 最新版
  • 极品飞车19高清Sweetfx画质补丁 最新版
  • WebOffice控件(office文档控件) v2017 官方版
  • wwe nba人物mod v1.0 最新版
  • web视频教程(Web教程视频) 完整版 最新版
  • 发表评论
    栏目列表
    阅读排行
    网站帮助 - 广告合作 - 下载声明 - 网站地图