当前位置:文档之家› 8 网站攻击与防护

8 网站攻击与防护


网站安全漏洞扫描
和电脑安全漏洞扫描一样,网站也需要安全漏洞 扫描。 网站安全漏洞扫描工具是根据内置规则,模拟 黑客攻击行为,用以发现网站安全漏洞的工具。许多 大型网站的安全团队都有自己开发的漏洞扫描工具, 不定期的对网站的服务器进行扫描,查漏补缺。 目前市场上也有很多商用的网站安全漏洞扫描平 台。
其他攻击和漏洞
Error Code:也称作错误回显,许多Web服务器默认是 打开异常信息输出的,即服务器端未处理的异常堆栈 信息会直接输出到客户端浏览器,这种方式虽然对程 序调试和错误报告有好处,但同时也给黑客造成可乘 之机。通过故意制造非法输入,使系统运行时出错, 获得异常信息,从而寻找系统漏洞进行攻击。防御手 段也很简单,通过配置Web服务器参数,跳转500页 面(http响应码500表示服务器内部错误)到专门的 错误页面即可,这个功能Web应用常用的MVC框架也 可以做到。
单向散列加密
对称加密
非对称加密
密钥安全管理
信息过滤与反垃圾
文本过滤 分类算法
黑名单
文本匹配
分类算法
贝叶斯分类算法
贝叶斯算法解决概率论中的一个典型问题:一号 箱子放有红色球和白色球各20个,二号箱子放有白色 球10个,红色球30个,现在随机挑选一个箱子,取出 来一个球的颜色是红色的,请问这个球来自一号箱子 的概率是多少。 利用贝叶斯算法进行垃圾邮件的识别基于同样原 理,根据已分类的样本信息获得一组特征值的概率( 如“茶叶”这个词出现在垃圾邮件中的概率和非垃圾 邮件中的概率),就得到分类模型,然后对待处理信 息提取特征值,结合分类模型,判断其分类。
验证码:相对说来,验证码则更加简单有效,即请求提 交时,需要用户输入验证码,以避免在用户不知情的 情况下被攻击者伪造请求。但是输入验证码是一个糟 糕的用户体验,所以必要的时候才使用,如支付交易 等关键页面。
Referer check:http请求头的referer域中记录着请求来 源,可通过检查请求来源,验证其是否合法。但是该 方法有一定局限性,referer也并不一定总能得到。
注入攻击
获取数据库表结构信息的手段
开源:如果网站采用开源软件搭建,如用Discuz!搭建论 坛网站,那么网站数据库结构就是公开的,攻击者可 以直接获得。 错误回显:如果网站开启错误回显,攻击者故意构造非 法参数,服务端异常信息会输出到浏览器端,为攻击 猜测数据库表结构提供了便利。 盲注:网站关闭错误回显,攻击者根据页面变化情况判 断SQL语句的执行情况,据此猜测数据库表结构,此 种方式攻击难度较大。
XSS攻击
XSS攻击防御手段
消毒:XSS攻击者一般都是通过在请求中嵌入恶意脚 本达到攻击目的,这些脚本是一般用户输入中不使 用的,如果进行过滤和消毒处理,即对某些html危 险字符转义,如“>”转义为“&gt”、“<”转义为 “&lt”等,就可以防止大部分攻击。为了避免对不 必要的内容错误转义,如“3<5”中的“<”,需要进 行文本匹配后再转义,如“<img src=”这样的上下 文中“<”才转义。事实上,消毒几乎是所有网站最 必备的XSS防攻击手段。
路径遍历:攻击者在请求的URL中使用相对路径,遍历 系统未开放的目录和文件。防御方法主要是将JS、 CSS等资源文件独立服务器、独立域名,其他文件不 使用静态URL访问,动态参数不包含文件路径信息。
Web应用防火墙
ModSecurity是一个开源的Web应用防火墙,探测攻击并保 护Web应用程序,既可以嵌入到Web应用服务器中,也可 以作为一个独立的应用程序启动。ModSecurity最早只是 Apache的一个模块,现在已经有Java、.NET多个版本,并 支持Nginx。 ModSecurity采用处理逻辑与规则集合分离的架构模式。处 理逻辑负责请求和响应的拦截过滤,规则加载执行等功能 。而规则集合则负责对具体的攻击的规则定义、模式识别 、防御策略等功能。处理逻辑比较稳定,规则集合需要不 断针对漏洞进行升级,这是一种可扩展的架构设计。
电子商务具有多种形式,B2B,B2C,C2C每种交易的场景都 不相同,风险也各有特点,大致可分为以下几种: 账户风险:包括账户被黑客盗用,恶意注册账号等几种情形 。 买家风险:买家恶意下单占用库存进行不正当竞争;黄牛利 用促销抢购低价商品;此外还有良品拒收,欺诈退款以及 常见于B2B交易的虚假询盘等。 卖家风险:不良卖家进行恶意欺诈的行为,例如货不对板, 虚假发货,炒作信用等,此外还有发布违禁商品、侵权产 品等。 交易风险:信用卡盗刷,支付欺诈,洗钱套现等
黑名单
电子商务风险控制
电子商务网站在给人们代理购物交易的极大便利的同时 ,也将风险带给了对网络安全一无所知的人们。由于 买卖双方的信息不对等,交易本来就存在风险,而当 交易在网上发生的时候,买卖双方彼此一无所知,交 易风险也就更加难以控制。如果一个电商网站骗子横 行,诚信的交易者屡屡被骗,那么网站就到了最危险 的时候,可以说,交易安全是电子商务网站的底线。
HttpOnly:最早由微软提出,即浏览器禁止页面 Javascript访问带有HttpOnly属性的Cookie。 HttpOnly并不是直接对抗XSS攻击的,而是防止XSS 攻击者窃取Cookie。对于存放敏感信息的Cookie, 如用户认证信息等,可通过对该Cookie添加 HttpOnly属性,避免被攻击脚本窃取。
大型网站在运营过程中,结合业界的最新发现,会总结 出数以千计的此类高风险交易规则。一种方案是在业 务逻辑中通过编程方式使用if…else…代码实现这些规 则,可以想见,这些代码会非常庞大,而且由于运营 过程中不断发现新的交易风险类型,需要不断调整规 则,代码也需要不断修改。。。
统计模型
规则引擎虽然技术简单,但是随着规则的逐渐增加,出 现规则冲突,难以维护等情况,而且规则越多,性能 也越差。大型网站更倾向于使用统计模型进行风控。 风控领域使用的统计模型也使用前面提到的分类算法 或者更复杂的机器学习算法进行智能统计。
信息加密技术及密钥安全管理
2011年12月被曝的CSDN密码泄露事故中,网站安 全措施不力,导致用户数据库被黑客“拖库”并不稀 奇,令人错愕的是数据库中的用户密码居然是明文保 存,导致密码泄露,成为地下黑市交易的商品。通常 ,为了保护网站的敏感数据,应用需要对这些信息进 行加密处理,信息加密技术可分为三类:单项散列加 密,对称加密,非对称加密。
这个世界没有绝对的安全,正如没有绝对的自 由。网站的相对安全是通过提高攻击门槛达到的。让 攻击者为了获得有限的利益必须付出更大的代价,致 使其得不偿失,望而却步。同时,攻击与防护技术作 为一对矛盾共同体,彼此不断此消彼长,今天的高枕 无忧,明天可能就成了致命的漏洞。也许网站经过一 番大的重构和优化,在某一段时间不需要再处理高可 用或高性能的问题,但是修补漏洞,改善安全却是每 天都需要面对的课题,永远不能停歇。所以,遗憾的 ,这个世界没有固若金汤的网站安全架构,架构师只 能每一天都打起全部精神,预防可能的漏洞或者攻击 。
CSRF攻击
CSRF攻击防御手段
表单Token:CSRF是一个伪造用户请求的操作,所以需 要构造用户请求的所有参数才可以。表单Token就是 阻止攻击者获得所有请求参数的可能,在页面表单中 增加一个随机数Token,每次请求的Token都不相同 ,请求提交后检查Token的值是否正确以确定请求提 交者是否合法。
注入攻击防御手段
消毒:和防XSS攻击一样,请求参数消毒是一种比较简 单粗暴又有效的手段。通过正则匹配,过滤请求数据 中可能注入的SQL文,如“drop table”、 “\b(?:update\b.*?\bset|delete\b\W*?\bfrom)\b”等 。
参数绑定:使用预编译手段,绑定参数是最好的防SQL 注入方法。目前许多数据访问层框架,如ibatis, hibernate等,都实现SQL预编译和参数绑定,攻击者 的恶意SQL会被当做SQL的参数,而不是SQL命令被 执行。
互联网产品的安全架构设计
网站攻击与防护
2011年6月28日,许多微博用户发现自己“中毒”, 自动关注一个叫hellosamy的用户,并发布含有病毒 的微博,粉丝点击后微博再度扩散,短时间内大量 用户中招,数小时后新浪微博修复漏洞。 2011年12月,网上有人发布消息称CSDN网站600万用 户资料和密码被泄露,很快该消息得到CSDN官方承 认,紧接着,天涯社区,人人网等多个重要网站被 报告泄露用户数据。
HTML注释:为了程序调试方便或其他不恰当的原因, 有的时候程序开发人员会在PHP、JSP等服务器页面 程序中使用HTML注释语法进行程序注释,这些 HTML注释就会显示在客户端浏览器,给黑客造成攻 击便利。程序最终发布前需要进行代码review或自动 扫描,避免HTML注释漏洞。
文件上传:一般网站都会有文件上传功能,设置头像、 分享视频、上传附件等。如果上传的是可执行的程序 ,并通过该程序获得服务器端命令执行能力,那么攻 击者几乎可以在服务器上为所欲为,并以此为跳板攻 击集群环境的其他机器。最有效的防御手段是设置上 传文件白名单,只允许上传可靠的文件类型。此外还 可以修改文件名、使用专门的存储等手段,保护服务 器免受上传文件攻击。
高手定律
这个世界只有遇不到的问题,没有解决不了的问 题,高手之所以成为高手,是因为他们,QQ多高并发业务的高 手,原因大抵如此。一个100万用户的网站,不会遇 到1亿用户同时在线的问题;一个100万件商品网站的 工程师,可能无法理解一个10亿件商品网站的架构。
大型电商网站都配备有专门的风控团队进行风险控制, 风控的手段也包括自动和人工两种方式。机器自动识 别为高风险的交易和信息会发送给风控审核人员进行 人工审核,机器自动风控的技术和方法也不断通过人 工发现的新风险类型进行逐步完善。 机器自动风控的技术手段主要有规则引擎和统计模型
规则引擎
当交易的某些指标满足一定条件的时候,就会被认为具 有高风险的欺诈可能性。比如用户来自欺诈高发地区 ;交易金额超过某个数值;和上次登录的地址距离差 距很大;用户登录地与收货地不符;用户第一次交易 等等。
相关主题