爱悠闲 > 软件公司安全测试基线

软件公司安全测试基线

分类: 软件测试  |  作者: zj0910 相关  |  发布日期 : 2013-03-28  |  热度 : 1554°
安全架构  
 
     
安全层 描述  
总的描述 一个业务系统往往都包括很多部分和层面,每一个部分和层面都可能存在安全漏洞从而成为被攻击的对象,每个层面和部分应该提供相应的安全方案来保护业务系统的安全,根据产品的分层思想,安全技术可以分为四个主要的层次:应用层安全、系统层安全、网络层安全、物理层安全(暂略),同时加上贯穿所有层次的重要安全因素-安全管理(包括技术和非技术的方法),组成了分层的安全架构模型。  
管理层安全 安全管理是指对所有计算机网络应用体系中各个方面的安全技术和产品进行统一的管理和协调,进而从整体上提高计算机系统的安全保护能力。
安全管理包括两个方面的内容,一是从技术上建立高效的管理平台,协调各个安全技术和产品的统一管理,为实现安全策略和度量安全效果提供便利;另一方面是非技术方面,如人员管理、制度管理和安全策略规范等方面的内容,以这些措施来提高产品的安全能力。
 
应用层安全 应用层安全既是信息系统安全设计的起点,又是信息系统安全设计的终点。起点指的是信息系统的安全需求来源于应用的安全需求,终点指的是信息系统安全的最终目的是确保业务应用的安全运行和业务信息的安全保护。
1. 应用安全设计:在各个安全平台和典型应用安全所提供的安全支持的基础上,通过实现应用系统的身份认证、访问控制、权限管理、加密解密、审计跟踪、稳私保护等多种机制,确保应用数据的安全传输、安全交换、安全存储、安全处理,以及实现数据传输、存储、处理过程中的完整性、保密性、可用性保护,确保应用系统的安全运行。
2. 应用编码安全:安全编码技术是指为了消除或降低软件的安全风险而在编程时所遵循的原则以及所采用的技术手段。只有少量或者没有安全经验的编程人员参加软件开发是很常见的,因此,发布代码时往往只经过很少的安全性测试,实现时也很少或根本没有可靠的安全编程指导,这直接导致了大量的软件安全漏洞。安全编程包括对不同开发语言的安全编程(如 C、C++、JAVA、JSP 等)、不同操作系统平台上应用软件的安全编程(如 Unix/Linux、Windows 等)以及 Setuid 程序安全编程、Socket 安全编程、CGI 安全编程等各方面。软件编码安全可从两方面保证:安全编程和安全测试,安全编程实现软件功能的同时保证代码的质量和安全性,安全测试则尽量在程序测试阶段发现和消除在软件设计和编写中产生的安全隐患。
 
系统层安全 系统层安全主要是指为业务系统提供运行支持的操作系统、数据库系统、中间件系统及 LDAP、Web、FTP 等应用服务器的安全保护。
系统层安全的保护包括最小化安装、最小服务限制、帐户管理、口令策略、安全审计、认证与授权保护、内核参数安全调整、配置安全工具(如 SSH、lsof 等)、补丁管理、病毒保护、备份恢复等多方面的内容。
 
网络层安全 网络层安全就是通过采用一系列安全措施,使得网络系统得到应有的安全保护,为在该网络平台上运行的业务系统提供应用的支持,包括一切访问网络资源或使用网络服务相关的安全保护。
网络层安全技术包括网络拓扑安全设计、网络设备保护、网络隔离、网络边界保护(如防火墙)、网络安全检测(如 IDS)、网络数据加密(如 VPN)、网络安全扫描和网络安全管理等多个方面。
网络拓扑安全设计包括从网络结构、网络协议、安全设备部署等方面来设计安全的网络系统;网络设备保护则通过对网络设备自身的加固配置优化来达到抗攻击的目的;网络隔离可以通过网段隔离、交换网络、VLAN等技术手段来实现;网络边界保护则通过包过滤、应用网关、状态检测等防火墙技术来实现;网络安全检测包括采用入侵检测系统、网络集中日志审计等手段来及时发现非法网络行为;网络数据加密包括链路层加密(L2F,PPTP,L2TP)、网络层加密(IPSec)、传输层加密(SSL,TLS,SSH,Socks)和应用层加密(SHTTP,SMIME,PGP 等);网络安全扫描则是一种较为主动的安全防护机制,包括基于主机、基于网络和基于应用三种。