首页 > 编程知识 正文

安全基础资源应用平台,应用安全

时间:2023-05-03 05:12:29 阅读:278121 作者:3769


信息系统安全性概述

       在进行软件安全性检测之前,首先我们应该具备一定的信息系统安全性的知识,在我们对整体范围的信息系统安全性保障有一定认识的前提下,才能决定我们能更好的保障该环境下的软件应用安全性。 
       计算机信息系统是由计算机及其相关的和配套的设备、设施(含网络)构成的,按照一定的应用目标和规则对信息进行采集、加工、存储、传输、检索等处理的人机系统。从而我们可以得知计算机信息系统的安全性是一个相当复杂且广的课题,通常情况下,计算机信息系统都是以应用性为主题,以实现不同用户群的相应需求实现。而应用性的实现通常是采用应用软件而达成。典型的计算机信息系统,包括了机房环境,主机设备,网络交换设备,传输通信媒介,软件系统以及其他相关硬软件,而由于当前信息系统网络的连通性,给安全性问题带来了更大的挑战。 
       在当今的时代,Internet(因特网)已经成为一个非常重要的基础平台,很多企业都将应用架设在该平台上,为客户提供更为方便、快捷的服务支持。这些应用在功能和性能上,都在不断的完善和提高,然而在非常重要的安全性上,却没有得到足够的重视。由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对 Web 应用的攻击上。根据 Gartner 的最新调查,信息安全攻击有 75% 都是发生在 Web 应用而非网络层面上。同时,数据也显示,三分之二的 Web 站点都相当脆弱,易受攻击。然而现实确是,绝大多数企业将大量的投资花费在网络和服务器的安全上,没有从真正意义上保证 Web 应用本身的安全,给黑客以可乘之机。

Web安全性测试要点

        通常,我们为客户提供的一系列解决方案中,WEB应用是属于自我研发的,该层次的安全性常常处于一种不被认知的状态中。并且由于应用系统的特殊性与针对性,商业化的安全保护产品很难考虑到这些特有的应用功能。所以,我们为客户实现的整个解决方案的信息系统环境中,无论客户采用了多么强大的防火墙,以及多么昂贵的IDS(入侵诊断系统)/IPS(入侵防御系统)等,但都无法防止对看似合法渠道的应用漏洞攻击,因为无论封闭的再怎么严实的信息系统都需要开发一些服务的端口以便能为合法用户提供服务,而攻击者就会通过从这些合法的入口中,寻找隐藏的应用系统漏洞,而通过应用系统漏洞的入侵,是其他安全保障软件以及硬件所难以察觉的,而这类窃取和破坏往往又是难以察觉和致命的。 
       为什么说一般的安全工具往往很难捕捉应用层次的安全问题呢? 
        网络脆弱性扫描工具,由于它仅仅用来分析网络层面的漏洞,不了解应用本身,所
以不能彻底提高 Web 应用安全性;  
         防火墙可以阻止对重要端口的访问,但是提供服务的端口始终要开放,我们无法判
断这些服务端口中通讯数据是善意的访问还是恶意的攻击;  
        SSL 可以加密数据,但是它仅仅保护了在传输过程中数据的安全性,并没有保护 
Web 应用本身;  
         阶段性的渗透测试,无法满足处于不断变更之中的应用。

Web 应用安全威胁 
Web Application Security Consortium(WASC),是一个由安全专家、行业顾问和诸多组织的代表组成的国际团体。他们负责为 WWW 制定被广为接受的应用安全标准。WASC 组织的关键项目之一是“Web 安全威胁分类”,也就是将 Web 应用所受到的威胁、攻击进行说明并归纳成具有共同特征的分类。该项目的目的是针对 Web 应用的安全隐患,制定和推广行业标准术语。WASC 将 Web 应用安全威胁分为如下六类: 
 Authentication(验证)用来确认某用户、服务或是应用身份的攻击手段。 

  Authorization(授权) 用来决定是否某用户、服务或是应用具有执行请求动作必
要权限的攻击手段。  
 Client-Side Attacks(客户侧攻击) 用来扰乱或是探测 Web 站点用户的攻击手段。 

 Command Execution(命令执行) 在 Web 站点上执行远程命令的攻击手段。 

  Information Disclosure(信息暴露) 用来获取 Web 站点具体系统信息的攻击手段。 

  Logical Attacks(逻辑性攻击) 用来扰乱或是探测 Web 应用逻辑流程的攻击手段。 

如何保障Web应用安全性 

        如何构建安全的Web应用系统,这不仅仅是软件测试人员对应用系统进行安全检测通过后所能保证的。 
       有一定安全保证的Web应用系统,应是从系统的需求分析和设计阶段开始着手考虑,系统的安全性需求应被纳入需求中,且应描述在较为明确的范围内;在系统的设计阶段,应准确的将安全性的需求转化为安全性保证的设计,从设计的角度考量不同的安全技术对于系统安全的保证所达到的预期层度,并不能因为单纯的加入登陆的身份验证功能而能保障系统对身份鉴别的安全性,系统的安全保证设计应从较为全面的角度入手,遵守安全设计原则。 
       同时,到了开发阶段,对安全设计的实现也需要遵从安全性编码的规范,如SQL注入攻击,并非需求设计上没有加入身份验证功能,而是由于该功能的实现存在了攻击漏洞,这是因为在编码实现时没有遵从安全性编码的规范。 
       在测试阶段,测试人员不仅仅要对安全的需求设计进行确认,确保安全保证模块的功能正确性,还应引入较成熟的软件安全性自动化扫描工具,对系统的实体进行全面的扫描,通过自动化工具大量成熟的测试策略以及自动生成的大量测试用例,去检测应用系统中的安全隐患。


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。