系统安全性设计可以划分为如下几个层次:
程序设计安全性
程序部署及操作系统安全性
数据库安全性
网络安全性
物理安全性
就程序设计的安全性,针对现在大多系统的分布式结构,因为同时要面向不同地理位置,不同网络地址,不同级别,不同权限的用户提供服务,稍不留神就可能产生潜在的安全隐患,
如下是最常见的由设计不当产生的安全漏洞分类:
1、输入验证漏洞:嵌入到查询字符串、表单字段、cookie 和 HTTP 头中的恶意字符串的攻击。这些攻击包括命令执行、跨站点脚本(XSS)、SQL 注入和缓冲区溢出攻击。
2、身份验证漏洞:标识欺骗、密码破解、特权提升和未经授权的访问。
3、授权漏洞:非法用户访问保密数据或受限数据、篡改数据以及执行未经授权的操作。
4、敏感数据保护漏洞:泄露保密信息以及篡改数据。
5、日志记录漏洞:不能发现入侵迹象、不能验证用户操作,以及在诊断问题时出现困难。
对于以上的漏洞,可用的防范措施有:
1、针对输入验证漏洞,在后台代码中必须验证输入信息安全后,才能向服务层提交由用户输入产生的操作。
2、针对身份验证漏洞,程序设计中,用户身份信息必须由服务器内部的会话系统提供,避免通过表单提交和页面参数的形式获取用户身份。
3、针对授权漏洞,在访问保密数据或受限数据时,一定要根据用户身份和相应的权限配置来判断操作是否允许。
4、针对敏感数据漏洞,在储存敏感数据时,一定要采用合适的加密算法来对数据进行加密。
5、针对日志记录漏洞,程序设计中,对改变系统状态的操作,一定要记录下尽可能详细的操作信息,以便操作记录可溯源。
就程序部署及操作系统安全性而言,可用以下的防范措施:
1、无论部署于何种操作系统,需要保证操作系统在部署前,安装了全部的安全升级补丁,关闭了所有不需要的系统服务,只对外开放必须的端口
2、定期查看所部署服务器系统安全通告,及时安装安全补丁。
3、定期检查系统日志,对可疑操作进行分析汇报。
4、应用服务器程序在服务器中文件系统中的目录结构位置应该尽量清晰。目录命名需要尽可能的有意义。
5、应用服务器程序不能以具有系统管理员权限的操作系统用户运行。最好能建立专门的操作系统用户来运行应用服务器。
就数据库安全性而言,可用以下的防范措施:
1、数据库监听地址要有限制,只对需要访问的网络地址进行监听。
2、定数据库备份制度。定期备份库中的数据。
3、数据库操作授权限制,对表一级及其以上级别的数据库操作授权不应对应用服务器开放。
就网络安全性而言,可用以下的防范措施:
1、选用企业级防火墙。
2、根据具体网络环境,制定尽可能周密的防火墙规则。
3、需要在外网中传输的数据,应选用合适的加密算法进行加密。
就物理安全性而言,可用以下的防范措施:
1、服务器应部署于专业的数据机房,做好机房管理工作。
2、对于支持热插拔的各种接口,需要在部署前在系统BIOS中关闭。服务器在运行过程中,应该做好各种防护措施。