精彩回顾 | Web安全防护实践探讨: ——如何预防SQL注入跨站脚本web页面防篡改等攻击技术?

Posted twt企业IT社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了精彩回顾 | Web安全防护实践探讨: ——如何预防SQL注入跨站脚本web页面防篡改等攻击技术?相关的知识,希望对你有一定的参考价值。

随着互联网的广泛普及,Web应用平台已经逐渐成为互联网信息交互的中心,随之而来的是Web应用面临的越来越严重的安全威胁,如何保障Web应用安全已经成为一个重要的研究课题。 很多资深安全高手提出了针对Web攻击新的解决思路,如:

Ø  利用WAF+Web入侵检测系统应对普通Web攻击及逻辑漏洞攻击
Ø  上线前必须过安全测试
Ø  把安全活动嵌入到开发周期中,尽量前置
Ø  代码安全规范
Ø  借助自动安全测试软件对Web/Mobile应用程序进行漏洞评估,扫描和检测等

为了帮助大家更好地了解学习新技术及新方法,AIX专家俱乐部近期组织了一场针对企业安全负责人的同行线上交流活动。 在本期微信中,我们将精彩内容进行了整合,供大家参考!

1
如何在运维阶段防范WEB页面防篡改?
dengtingxun安全工程师, 银河证券:
1. 通过部署的网页防篡改产品监控日志信息查看系统受攻击情况,然后及时调整监控和阻断策略,防止网页被篡改
2. 对于一些正常放行的数据包,如果包含攻击信息,可在应用程序后台,查看有无攻击信息,如果有的话,可在防火墙进行阻断

whitesonny安全工程师, 光大:
1. 将正常的程序文件数量、名称记录下来,并保存每一个正常文件的MD5散列做成数字签名存入数据库;如果当遇到黑客攻击修改主页、挂马、提交webshell的时候,由于这些文件被修改过或者是新提交的,没有在数据库中存在,则将其删除或者恢复以达到防护效果
2. 检测和防护SQL注入攻击,通过过滤SQL危险字符如:“’、select、where、insert、,、;”等等将其进行无害化编码或者转码,从源头遏止;对提交到web服务器的数据报进行过滤检测是否含有“eval、wscript.shell、iframe”等等
3. 检测和防护DNS攻击解析,不断在本地通过nslookup解析域名以监视域名的指向是否合法
4. 检测和防护ARP攻击;绑定MAC地址,检测ARP攻击并过滤掉危险的ARP数据报
5. 过滤对WEB服务器的请求,设置访问控制列表,设置IP黑名单和白名单过滤掉非法访问后台的IP;对web服务器文件的请求进行文件预解析,对比解析的文件与原文件差异,存在差异的取源文件返回请求
6. 做好数据库加密,切断数据库篡改的源头

2
如何在开发阶段预防跨站脚本攻击?
whitesonny安全工程师, 光大:
1. 首先应该把精力放到对所有用户提交内容进行可靠的输入验证上。这些提交内容包括URL、查询关键字、http头、post数据等。只接受在所规定长度范围内、采用适当格式、所希望的字符。阻塞、过滤或者忽略其它的 任何东西
2. 保护所有敏感的功能,以防被bots自动化或者被第三方网站所执行。实现session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查
3. web应用必须支持用户提供的html,那么应用的安全性将受到灾难性的下滑。但是你还是可以做一些事来保护web站点:确认你接收的HTML内容被妥善地格式化,仅包含最小化的、安全的tag(绝对没有javascript),去掉任何对远程内容的引用(尤其是样式表和JavaScript)。为了更多的安全,请使用httpOnly的cookie

zhangjian85技术经理, 泰康:
以下几点供参考:
1. 在HTML/XML中显示“用户可控数据”前,应该进行html escape转义
2. 在javascript内容中输出的“用户可控数据”,需要做javascript escape转义
3. 对输出到富文本中的“用户可控数据”,做富文本安全过滤(允许用户输出HTML的情况)
4. 输出在url中的数据,做url安全输出
5. 在给用户设置认证COOKIE时,加入HTTPONLY
6. 在style内容中输出的“用户可控数据”,需要做CSS escape转义

zhangjian85技术经理, 泰康:
1,制定开发安全编码规范(针对自己开发和外包)
2,安全开发培训
3,引入开发安全框架

dengtingxun安全工程师, 银河证券:
建议程序中对于一些特殊符号和关键字进行阻塞和过滤。

3
如何在开发阶段预防SQL注入?
whitesonny安全工程师, 光大:
1. 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等
2. 永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取
3. 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接
4. 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息
5. 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

zhangjian85技术经理, 泰康:
1. 制定开发安全编码规范(针对自己开发和外包)
2. 安全开发培训
3. 引入开发安全框架

zhangjian85技术经理, 泰康:
使用预处理执行SQL语句,对所有传入SQL语句中的变量,做绑定。这样,用户拼接进来的变量,无论内容是什么,都会被当做替代符号“?”所替代的值,数据库也不会把恶意用户拼接进来的数据,当做部分SQL语句去解析。

4
上线前检测除了基本的漏扫,基线核查还应该包括哪些方面?
dengtingxun安全工程师, 银河证券:
安全基线检查包括交换机、服务器操作系统、应用程序、中间件等的基线,系统上线前,均需做个检查。第三方公司渗透测试,一般各公司都有自己的标准,范围应该广泛些,包括不限于注入类、跨站类、文件上传类、应用程序版本类、信息泄露类、未授权访问类、弱口令类、命令执行类、后门类、溢出类等等。内容越多越细越好。

zhangjian85技术经理, 泰康:
安全测试标准可以参考:
1. OWASP测试指南
2. GB/T20984-2007信息安全技术 信息安全风险评估规范
3. GB/T18336-2001 信息技术-安全技术-信息技术安全性评估准则

5
企业防病毒、系统补丁在分公司和总公司数据中心如何部署才能更为高效?
malvin安全工程师, IBM:
这个问题取决于如下几个要素:
1. 分公司机器的规模
2. 总公司和分公司之前的网络状况(是使用光纤,专线还是VPN?)
3.  防病毒和系统补丁两个功能对以上要求还有些细微的差别
一般来讲我们建议,防病毒的管理(策略的分配,调度扫描的制定)直接食用总公司统一管理,只需要在管理控制台上建立不同的分组来方便管理。而病毒定义的升级则建议在分公司搭建自己的病毒定义服务器。客户端直接从这个服务器上升级,如果客户端上Internet方便,也可设置病毒定义第二优先级从Internet升级。
而补丁管理,则建议在分公司设置分发服务器。其实现在很多补丁管理的软件,不一定需要在分公司要专门设置一台服务器来管理补丁,可任意指定几台客户端为补丁提供设备。

liur安全工程师, 宏源证券:
总公司统一进行防病毒管理和病毒库升级,如果分公司规模不大的话不需要搭建病毒定义服务器。挑选一些分支点作为测试组,先对这些分支点进行病毒定义分发。测试组收到病毒定义48小时之内无程序误杀的情况下,再将病毒库分发到其他分支点。

dengtingxun安全工程师, 银河证券:
1. 由于我司规模较大,且业务网、办公网等网络进行了隔离,我们部署了几套防病毒服务器和补丁分发系统,供不同网段的设备进行升级和下载。
2. 为减轻系统升级压力,在一些规模较大的分支机构,部署了二级防病毒服务器和补丁分发系统。
3. 为避免交易时间段,系统升级对网络带宽造成影响,设置了脚本,关闭交易时间段防病毒软件和补丁分发系统的自动升级工作。

6
企业核心代码安全应从哪些方面保障安全?
malvin安全工程师, IBM:
我的理解应该是三个大方面:
1. 代码的机密性:即防止代码外泄
2. 代码的安全性:防止代码的漏洞,导致应用出现漏洞,使用过程中产生风险
3. 代码的完整性:即代码在存储,编写过程中。都可以审计谁修改过,谁调用过等等对代码进行的操作

7
AppScan能否采用动态测试技术进行App漏洞挖掘?
malvin安全工程师, IBM:
在漏洞检测能力方面,ASE能够覆盖WASC和OWASP两大web安全标准组织定义的、目前主流的各种攻击技术和手段,包括但不限于BruteForce、Insufficient Authentication、Credential/Session Prediction、InsufficientAuthorization、Insufficient Session Expiration、Session Fixation、Content Spoofing、Cross-site Scripting、Buffer Overflow、Format String Attack、LDAP Injection、OS Commanding、SQL Injection、SSI Injection、XPath Injection、Directory Indexing、Information Leakage、Path Traversal、Predictable Resource Location、Abuse of Functionality、Denial of Service、Insufficient Process Validation等攻击技术和方法。其中,对于Cross Site Scripting,AppScan能够检测至少20种变种;而对SQL Injection至少有40种不同的变种。
同时,漏洞规则库支持方便的管理和升级。ASE支持漏洞规则库的灵活管理,包括在线/手动升级、规则导入/导出、规则自定义等功能,能够确保及时使用最新的、最全面的、最准确的漏洞攻击技术和方法来抵御各种攻击。

点击“阅读原文”,直达活动现场了解更多内容!


以上是关于精彩回顾 | Web安全防护实践探讨: ——如何预防SQL注入跨站脚本web页面防篡改等攻击技术?的主要内容,如果未能解决你的问题,请参考以下文章

Exp9 Web安全基础实践

20145317彭垚《网络对抗》Exp9 Web安全基础实践

20145235李涛《网络对抗》Exp9 Web安全基础实践

web资源预加载-生产环境实践

Exp9 Web安全基础

# 20155337《网络对抗》Exp9 Web安全基础