Web应用安全
Web应用是由动态脚本、编译过的代码等组合而成。它通常架设在Web服务器上,用户在Web浏览器上发送请求,这些请求使用HTTP协议,经过因特网和企业的Web应用交互,由Web应用和企业后台的数据库及其他动态内容通信。
尽管不同的企业会有不同的 Web 环境搭建方式,一个典型的 Web 应用通常是标准的三层架构模型。
由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对Web应用的攻击上。根据Gartner的最新调查,信息安全攻击有75%都是发生在Web应用而非网络层面上。同时,数据也显示,三分之二的Web站点都相当脆弱,易受攻击。然而现实确是,绝大多数企业将大量的投资花费在网络和服务器的安全上,没有从真正意义上保证Web应用本身的安全,给黑客以可乘之机。
Web应用程序安全问题
随着互联网网络的发展,Web安全性越来越重要,Web产品本身具备自身的特点及弱点,不可避免的存在一定的风险,在风险控制环节安全问题尤为重要,以下常见的Web应用程序安全问题:
据国外研究机构统计其中跨站脚本漏洞、注入类问题、任意文件执行、不安全的对象直接引用分别占安全性攻击的25%、15%、10%、8%;
序号 |
内容 |
说明 |
1 |
跨站脚本漏洞 | Web应用程序直接将来自使用者的执行请求送回浏览器执行,使得攻击者可获取使用者的Cookie或Session信息而直接以使用者身份登陆 |
2 |
注入类问题 | Web应用程序执行在将用户输入变为命令或查询语句的一部分时没有做过滤,SQL 注入, 命令注入等攻击包括在内 |
3 |
任意文件执行 | Web应用程序引入来自外部的恶意文件并执行 |
4 |
不安全的对象直接引用 | 攻击者利用Web应用程序本身的文件操作功能读取系统上任意文件或重要资料 |
5 |
跨站请求截断攻击 | 已登入Web应用程序的合法使用者执行恶意的HTTP指令,但Web应用程式却当成合法需求处理,使得恶意指令被正常执行 |
6 |
信息泄露 | Web应用程序的执行错误信息中包含敏感资料,可能包括系统文件路径,内部IP地址等 |
7 |
用户验证和Session管理缺陷 | Web应用程序中自行撰写的身份验证相关功能有缺陷 |
8 |
不安全的加密存储 | Web应用程序没有对敏感性资料使用加密、使用较弱的加密演算法或将密钥储存于容易被获取之处 |
9 |
不安全的通信 | Web应用经常在需要传输敏感信息时没有使用加密协议 |
10 |
没有对URL路径进行限制 | 某些网页因为没有权限控制,使得攻击者可透过网址直接存取 |
1、认证和口令管理:这主要是一种一次性的活动而且仅仅是作为项目的一部分而完成的。有人可能会问一些与认证和口令管理有关的问题:
口令策略:这个问题非常重要的原因在于避免与用户凭据有关的字典攻击。
口令哈希算法:确保通过适当的加密算法来加密口令也非常重要。
口令重置机制:为了避免黑客修改或截获口令,重置机制非常关键。
2、认证和角色管理:在分析项目的安全问题时,要确认所有的关键功能,并确认哪些人可以获得授权访问这些功能。这样做有助于确认各种不同的角色,并可以使访问控制到位。
3、审计日志记录。询问并确认所有与已经发生的攻击有关的所有关键业务是很重要的,这是因为这些攻击对企业的会产生重大影响。企业应当能够分析与这些业务有关的审计日志记录。
4、第三方组件分析。询问并分析一下企业是否必须使用第三方的组件也是一个重要问题。在此基础上,企业分析与这些组件有关的已知漏洞,并做出恰当的建议。
5、输入数据验证和净化。询问并理解和分析输入数据的属性,并为数据的验证和净化做好计划是很重要的。这种操作主要与解决跨站脚本攻击这类漏洞有关。数据验证和净化还有助于避免SQL注入的大规模发生。
6、加密和密钥管理。这是为了分析是否存在需要保证其安全的业务,并且这些业务是否需要握手机制(在处理业务之前,可使用多种与公钥或私钥的交换有关的多种技术来实施这种机制)。
7、源代码的完整性:这是一种一次性的活动,并且要求在项目的开始阶段完成。这样做有助于如下两个方面:
源代码应当存放在一个有良好安全保障的控制仓库中,并且在遵循“最少特权”的原则前提下,有强健的认证和基于角色的访问控制。你还应当关注关于源代码库和相关工具的问题。
此外,在代码的开发及传输过程中,你还可以分析关于源代码容器的工具问题以及代码的保护问题。
8、源代码的管理。讨论源代码的审查策略是一个关键问题,因为这种做法会要求自动化的和人工的代码检查问题,并且在一定程度上会影响总体的项目时间(要求进行代码检查时间和针对检查意见的修复时间)。这是一种一次性的活动,因而应当在项目的开始阶段完成。
代码签名证书是保护开发者的劳动成果,给自己开发的软件签名的证书,保证代码在签名之后不被恶意篡改。用户可通过对代码的数字签名来标识软件来源,辨别软件开发者的真实身份。GDCA的代码签名证书支持多种代码签名,已通过WEBTRUST国际认证。