您的位置:首页 > 编程语言 > Java开发

【Java安全技术探索之路系列:Java基础安全服务】之一:基础安全服务开篇

2015-06-10 17:08 706 查看
作者:郭嘉

邮箱:allenwells@163.com

博客:http://blog.csdn.net/allenwells

github:https://github.com/AllenWell

【Java安全技术探索之路系列:Java基础安全服务]章节列表

【Java安全技术探索之路系列:Java基础安全服务】之一:Java基础安全服务开篇

本文是介绍Java基础安全服务的开篇文章,主要讨论两个问题:1 从哪些角度去考虑安全问题。2 如何构建健壮的安全策略。

一 常见的应用安全漏洞及解决方法

1.1确乏输入验证

接受请求后,没有对输入参数进行验证,解决方法:进行输入验证,输入验证是一种数据验证机制,包括对数据类型、格式、长度、范围的验证、对空值的处理、对字符集、地区、模式、上下文环境、值的合法性和有效性的校验。

1.2 缺乏输出净化

再次显示用户输入是一项潜在的安全威胁,解决方法:对生成输出中的所有已知值进行审计,删除任何未知值,同时删除输出响应中的注释和标识符。

1.3 数据注入漏洞

数据注入漏洞通常出现在:支持弹出式窗口的浏览器和直接组装外部数据SQL语句中,在窗口注入漏洞中,用户同时在两个不同的浏览器窗口打开可以的Web站点和恶意的Web站点,如果可信的Web站点弹出一个带名称的弹出窗口,而恶意Web站点知道该窗口的名称,那么攻击者就可以劫持这个带名称的Web浏览器窗口解决方法:要避免数据注入漏洞,就必须进行彻底的输入验证,验证所有的输入值、查询字符串、表单字段、Cookie和客户端脚本,确保它保护已知的和有效地值,否则拒绝它们。

1.4 缓冲区溢出

当应用或进程将数据存储到内存缓冲区中,如果要存储的数据超出了内存缓冲区的固定长度或能处理的最大容量,多余的信息会溢出到相邻的缓冲区中,使得相邻缓冲区的数据遭到破坏,导致应用程序崩溃。攻击者可以利用恶意输入来设计这类攻击,最常见的是拒绝服务攻击。

1.5 网站脚本恶意代码

1.6 不恰当的错误处理

1.7 不安全的数据传输和存储

1.8 弱回话标识符

1.9 弱安全令牌

1.10 对弱密码的破解

1.11 弱加密

1.12 会话盗用

1.13 不安全的配置数据

1.14 认证失败

1.15 访问控制失败

1.16 策略失败

1.17 审计和日志失败

1.18 拒绝服务和分布式拒绝服务

1.19 中间人攻击

1.20 多次登录问题

1.21 部署问题

1.22 编码问题

二 从哪些角度去考虑安全问题

2.1 要保护哪些应用

网络应用

网络边界

业务数据或消息

所需的用户特定的操作和事务

所需的管理任务

2.2 保护这些应用时应该防范哪些人

Internet公众用户

非授权用户

2.3 应该在哪里保护它们

保护的内容涵盖应用及其相关资源的方方面面,包括各个层、组件、用户、主机和网络设施基础。

2.4 为什么要保护它

业务应用的系统安全会给组织机构或客户带来巨大损失,认识安全攻击的潜在损失有助于安全架构师和开发人员妥善地保护业务应用和资源的安全。因此,必须首先了解安全威胁程度和潜在威胁漏洞,然后针对所有潜在的故障规划并制定服务恢复和持续计划。

3 如何构建健壮的安全策略

3.1 安全设计统一过程

统一过程(Unified Process)是软件应用开发过程的事实标准,它阐述了应用开发生命周期(从需求收集到产品部署)的所有指导原则。此外它还提供了一套支持原则,如配置管理、项目管理、环境操作盒支持。

2.2 设计模式

设计模式是针对重复出现的设计问题而提出的可重用的解决方案,通常,设计模式被视为解决常见软件设计问题的成功策略和最佳实践。

2.3 最佳实践

最佳实践是源自实践经验的指导方针和原则,行业专家将其视为普适性做法。最佳实践的通常表现形式是做什么和不做什么

2.4 可行性检查

可行性检查是一组用于检验特定应用行为的审核内容,可以协助分析应用的设计原则是否在所有要求的环境中都是可行和行之有效的。

2.5 主动评估

主动评估是运用现有的安全知识和经验来防止相同的问题再次出现的过程,它还能预测如果不采取预防性措施可能出现的饿问题。

2.6 剖析

安全剖析和优化是主动评估的补充策略,通过运用一些功能强大的工具的安全剖析和优化来动态的识别风险和漏洞,并验证是否符合强制性犯规的要求。

2.7 防御性策略

防御性策略是指指定恢复和持续性计划以支持故障恢复和业务持续性。

四 安全的需求和目标

安全是一个涉及面很广的话题,在软件系统的各个环节都很重要,它通常指:应用、数据、网络、通信、用户和主机系统等。具体表现在以下几个方面.

4.1 机密性

机密性是指保护敏感数据不被未授权实体查看

4.2 完整性

完整性是指数据在传输或存储过程中不被未知实体修改。

4.3 认证

认证是指用户的身份与其声称的一致。

4.4 授权

授权是指决定用户获得系统访问权后可以进行哪些操作。

4.5 不可抵赖性

不可抵赖性是指如果用户对数据执行了操作,则该操作就必须以一种用户无法否认的方式绑定到用户。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: