信息安全主要包括以下五方面的内容,即需保证信息的保密性
、真实性
、完整性
、禁止未授权拷贝
和所寄生系统的安全性
。
站在企业角度分看信息安全,将其分成三大类:信息层面的信息安全
、用户层面的信息安全
、架构层面的信息安全
。
此层面主要是包括基础性、传统性的安全领域,比如通信安全、密码加固等。
也就是说用户把信息存储到了你的服务器上,你要怎么样保证用户的隐私不受侵犯。
此层面的架构包含服务器架构、应用层架构,简而言之,就是如何保证服务器安全运行、数据不丢失。
为了打造一个信息安全的环境体系,从上面提到的三个信息层面分析并建立解决方案,制定以下行为规范。
此安全包括安全的需求分析与设计、功能编码安稳实现两大内容
在产品开发实现之前,产品的设计是否合理安全更为重要。产品在研发需求的同时,在注重功能是否可以实现、功能实现的业务流程时,往往更要考虑业务在某一个业务流程是不是会造成一定的问题,特别是涉及到企业的资金,影响会非常严重,比如利用脚本、机器批量刷新用户优惠等。
开发过程中,要充分考虑用户数据安全和数据隔离,关键信息不允许未经鉴权直接获取;
账号密码等敏感信息,不能明文传输和存储;
日志不能记录敏感信息;
如果必须要到正式环境测试数据,注意不能随意使用线上用户的信息,尽量使用自己的信息。如果必须使用他人信息,需要向部门负责人申请。并且在测试过程中,注意不要泄露用户信息,不要随意发生业务(如挂号、缴费等),以免给用户造成信息泄露的困扰而引起用户投诉。
医院管理后台、企业管理后台等管理后台管理端,登录用户在拥有某项菜单查看权限时,即有权限查看该项菜单的所有信息,比如用户的信息、用户的订单信息。
为防止用户相关的隐私数据泄露,需要把握数据分析和用户隐私之间的平衡,管理后台的权限粒度划分要细化,精准分配必要权限。
正式环境的管理员账号分配和账号权限设置,都由运营负责人负责管理。
https
取代http。
目前,全站服务实现了从http
转向https
,因为HTTP无论对于网络传输的内容,还是对于协议本身信息都没有做过任何的加密,从而使得用户的任何信息在网络中都可能被捕获,甚至会发生数据注入等行为,也就是我们经常说的流量劫持。在生产环境上,我们已经全部使用了https
协议。
对外的通讯接口采用加密的方式传输,比如合作方获取订单信息,我们将其回调数据信息进行签名加密后再通讯传输,确保信息不被显性截取。
目前,阿里云服务主机已配置防火墙和进出站规则来管理端口开放。必要的端口才开放对外的端口,不需要公网访问的端口都对外关闭。
对于 Redis 等服务,为了数据、程序安全稳健运行,将默认的端口进行更换,同时将加上密码的服务添加复杂的密码。
默认的服务配置,对于专业的非法分子是很容易进行扫描端口、撞库等方式渗透服务器,防止非法人员进行数据盗取、非法进入服务器,我们务必需要配置此项安全策略。
采用一台服务器作为堡垒机,生产服务器仅对堡垒机白名单。登录生产服务器必须经过堡垒机作跳板。
所有实例均跑在“容器”内,某种程度上算是一层隔离,同时可限制IO权限,也方便后面提到的CI。
此项工作属于运维的重点工作,关乎生产环境的文件、数据的权限,分配哪些用户、用户权限对应哪些可读、可写、可执行的操作。对于开发者而言,尽可能只提供对应的只读权限。
持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
持续部署(continuous deployment)是通过自动化的构建、测试和部署循环来快速交付高质量的产品。某种程度上代表了一个开发团队工程化的程度,毕竟快速运转的互联网公司人力成本会高于机器,投资机器优化开发流程化相对也提高了人的效率,让 engineering productivity 最大化。
敏捷开发,减少软件开发的成本与时间,减少风险。
数据可谓一个企业的血液,数据信息万万不可丢失。但是服务器灾害具有随机性、不确定性,即使像全球最大云计算服商亚马逊AWS多次机房故障导致的云服务中断再次警示合作商,即使最优秀的云计算平台也难以避免地发生突发故障。因此我们做好数据容灾是极其重要的工作。
目前采用的是 RDS 定时备份(频率:1 天 1 次) + DTS 数据同步(秒级同步)方案。
目前数据同步流程架构图:
以下的安全性问题是在互联网环境也常见的,只要是在互联网提供服务,都可能会遇到,只能做好防御。
DDOS
接口出现异常性的高发请求、恶意流量攻击等。
解决方法:目前已接入云防火墙,可以识别机器流量、拉黑非法攻击 IP 等。
遭遇挖矿程序恶意运行等,引起服务器故障或数据泄露。
解决方法:定期扫描服务器,定期打安全补丁。