姜鹏 赵正利
摘 要:文章研究了分布式部署的多节点系统的软件层安全构架的规划设计与实现。通过对数据加密、证书互信、多因子认证、权限控制等技术的综合应用,保障了数据的传输和存储安全,而且针对常见针对服务的网络攻击手段进行了前置防御处理。本安全構架的应用可以有效保护分布式系统的服务安全,同时也对类似多节点系统的建设提供了安全构架方面的参考。
关键词:分布式部署;网络安全;信息安全;数据加密;多因子认证
现今有一些重要网络信息系统具有分布式部署的特征,通过各种类型的程序提供网络服务。但这些长期运行在互联网上的多节点系统较易受到网络恶意攻击。在系统设计初期通过详尽研究实际网络运行环境、交互的数据类型、后台存储方式和认证机制等情况,结合多种网络安全技术设计了软件层的安全总体构架。通过数字加密技术保证核心数据传输和存储的安全;结合安全证书等技术建立可信通道;采用多因子认证技术增强身份认证的安全性;通过动态编程和数据库技术对常见攻击流量进行过滤;通过细粒度的权限控制策略限定用户访问范围;建立黑名单体系,封堵危险来源的互联网协议(Internet Protocol,IP)地址;结合邮件系统及时报警。
1 数据的安全性
数据安全是整个系统安全的核心部分,最终目标是做到网络传输和数据存储的强加密。尽量达到即使在流量被截获或服务器被入侵的极端情况下,也不会造成数据的泄露。数据在传输过程和存储过程中灵活采用单向和双向加解密算法相关技术来保证数据的安全。在数据的重要程度和系统的流畅运行中找到平衡点。
在管理员登录和操作后台的网络传输过程中使用高强度的数字证书保证传输的加密和完整性,至少采用安全散列算法2(Secure Hash Algorithm 2,SHA2)级别的加密算法进行加密。采用互联网安全协议(Internet Protocol Security,IPSec)隧道技术在固定IP的服务器和分节点之间建立长期稳固的加密通道,既保证安全又兼顾了大量小包数据的传输。建立信任机制,新加入系统的网络节点需要由核心服务器通过加密渠道发布新节点IP和专有密钥等信息,然后原有节点可与新节点进行网络通信。
对于核心数据的转换和存储根据需要采用不同加密策略,编写自定义的加解密组件。非对称加密的方式具有很大的优势,即私钥的使用方式更加灵活,但是在加密与解密的过程中,也存在速度较慢等问题[1]。密码等只需要验证的数据采用单向不可逆加密措施转换;核心管理数据和子节点数据等采用高强度的非对称加密算法,并限定存储和读取模块的权限,对每次存储、读取、修改操作都记录日志;一般的数据采用对称加密算法。
2 多因子认证
使用多因素认证机制进行登录验证,当用户来自首次登录的互联网IP,首先向该用户预先配置的用户邮箱发送一个临时授权码,用户向系统提交用户名、密码和此授权码后才可以登录。此用户邮箱需要采用高安全等级的带手机验证登录的邮箱。临时授权码唯一且随机,系统记录授权码的发放时间,超期授权码自动作废。登录成功后,询问用户是否把此IP加入自身账号的信任IP列表,决定在下一次登录是否启用多因子认证,从而做好安全和便捷性的平衡。用户如果忘记密码需要重置,则需要在信任IP上提供用户名和邮箱地址,在全部匹配后系统发送重置邮件完成重置。
核心服务器和子节点之间传输数据前,必须通过相互的多因子认证机制,节点的IP、专有密钥和特定随机码同时匹配才可以继续下一步操作。子节点定期使用旧方式认证后与核心服务器之间同步生成新的认证要素,服务器定期轮询各个子节点的认证要素是否过期或异常。
3 严格过滤来自外部的数据
软件系统需要提供正常服务,一般都有交互的功能。需要接受来自外部的输入信息进而根据预设做出正常的回应。但此类入口是黑客的主要入侵途径之一,结构化查询语言(Structured Query Language,SQL)注入攻击又是其中主要的攻击手段之一。因此,需要对所有来自用户端的输入进行严格的筛查。最常用做法是单独编写一个防SQL注入的通用程序,通过Include方式放到数据库连接文件中,这样可以在每个页面进行加载[2]。在收到来自外部的网络数据后,首先对与SQL等相关的关键字进行转义操作,然后进入下一步的查询和更新等数据操作,最后在输出展现的时候进行反向转义。在必要时使用Cookie和Session的部分启用加密;通过服务器配置和自身的动态程序编写,禁止网页运行在外部的页面框架内;采用参数化查询的方式进行数据库的操作;根据实际使用情况在数据库建立只读和读写账号,并且限定每个账号的访问表范围和一次性访问数据的总量,调用数据的时候仅仅使用最低权限的账号。
4 建立黑名单机制
启用动态的黑名单列表预防暴力破解和拒绝服务攻击,在每个动态程序运行前,都把当前访问IP和行为特征存放在数据表内,这个表的记录数至少在几千条的量级,只保存最新的固定条目。编写轮询程序统计这个表所有记录,分析总量前几名的IP访问情况,如果发现异常登录则在此IP下次访问时弹出加强的图像识别验证码。将字符数目、字符位置及输入顺序有机结合在一起,不使用单一输入顺序以此提升分割及特征提取难度,能有效防止恶意攻击[3]。如果回答错误或者没有客户端响应则把此IP加入系统黑名单,并不再放置此IP到登录记录表,根据攻击的强度决定自动解禁的时间。如果超过一定的阈值直接进入永久黑名单,需要由管理员手工操作清除。当一个网段中有黑名单IP出现时,来自同一网络的IP再次访问系统的时候,采用相对严格的审核策略。尤其在一个网段中出现多个超过阈值的黑名单IP时候禁止整个网段的访问。配置管理员黑名单添加模块,可以手工添加黑名单IP和封禁时间。
5 细粒度的权限控制
对所有的系统功能进行逐项定义并编号,根据不同级别聚类,形成从低到高的权限控制层次。支持权限模板的建立,方便总管理员的日常运维。对系统内部的所有管理员和来访者都预先配置不同的详细策略。支持特定高级管理员对低级管理员的权限配置,权限管理自身也作为一种权限的元素。支持群组的概念,可以把类似权限的管理员放置在同一群组,并在群组基础上支持个别权限的自定义。
对用户没有的权限自动进行导航栏的隐藏。而且在用户访问某个功能或页面的时候,首先验证是否具有相应的权限,没有权限则发出警告且停止程序的后续执行,连续操作并超出限定阈值后自动屏蔽来源IP,自动加入系统黑名单,同时暂停相应用户身份的登录功能。
6 邮件报警模块
建立完善邮件定向报警和通知机制。具有邮箱配置功能,可以预先针对不同管理员配置多个不同报警层级的邮箱。管理员可以预先设置阈值,在上述某种情况发生时,系统自动汇总信息并发送告警邮件,同时记录在系统的攻击日志库中。
每日向管理员邮箱自动发送分析报表,从方便日常运维的角度出发设计报表界面,综合攻击频率和攻击深度等指标生成威胁值排名,通过可视化报表进行直观地展现。给出初步的管理建议,并按照基准值进行每日威胁值总体打分。
7 结语
根据以上网络安全理论建立的软件系统在部署后也会遇到不可预见的新问题,需要在实际运行阶段持续进行日志分析、在线流量监控、入侵技术更替的研究等工作,通过策略的不断合理优化才能保持一定程度的安全性和稳固性。
[参考文献]
[1]王雅峰.计算机网络信息安全中的数据加密技术研究[J].江苏科技信息,2017(35):62-64.
[2]吴力挽,苏曼玲,杨翀.SQL注入攻击研究[J].网络安全技术与应用,2017(1):78,81.
[3]张晋源,袁丽欧.探析关于图形验证码的安全性[J].电脑编程技巧与维护,2017(12):76-77.