APP下载

账号密码泄露的安全问题

2019-07-24隋中昱含李迎接姚翔宇查蕴初

智富时代 2019年6期
关键词:信息泄露隐私网络安全

隋中昱含 李迎接 姚翔宇 查蕴初

【摘 要】类似于密码泄露的安全问题都是软件程序有Bug导致的,例如CSDN的数据库泄露事件、携程泄露用户银行卡信息事件、电商网站被用户篡改购买支付金额等等。在软件项目开发时,安全一直是一个比较容易忽略的问题,但这也会导致很严重的损失,所以在软件开发时必要对安全问题引起重视,防患未然,构建安全软件。本文将浅谈原理以及应对措施。

【关键词】网络安全;信息泄露;数据库;隐私

1、安全问题本质是技术风险

安全问题本质上是一种技术风险,没发生问题的时候大家一切平安,一旦发生问题就会有严重的影响。所以对待安全問题,可以借鉴对风险管理的方法来改进软件的安全问题,也就是风险识别、风险量化、应对计划和风险监控。做风险管理的时候,首重之重就是识别风险和对风险的量化,对于安全问题,就要思考一下,软件项目中安全问题的主要来源是什么?

第一类:恶意输入

大多熟知的软件安全问题都属于此类型,就是黑客通过恶意输入,然后绕过软件限制对系统进行攻击和破坏。像SQL注入,就是黑客把SQL命令输入到软件的输入框或网页的URL查询参数,欺骗服务器,执行恶意的SQL命令,这种可以绕过密码验证,登录管理员账号,或者删除数据库数据,甚至控制服务器,当成肉鸡对网络发起泛洪攻击。还有像XSS攻击,将恶意代码通过外部参数或者用户输入的方式植入网页中,获取用户的Cookie等敏感信息、盗用管理员权限,甚至非法转账。

上面的问题都可以归结为恶意输入导致的,应对恶意输入的问题,最简单有效的方式就是对用户输入数据进行严格的检查校验和格式化。

第二类:假冒身份

很多程序对于用户身份检验比较弱,会导致黑客假冒用户身份做出超越权限的事情。比如有的网站把后台入口隐藏起来,不做权限控制,导致黑客猜到地址后就可以进入后台操作。还有的游戏后台不做验证,直接接收传入的数据,导致伪造游戏用户发送数据破坏游戏公平。这类问题应对策略就是对用户的身份做验证,尤其是涉及敏感权限的操作,甚而做两重验证。

第三类:数据泄露

很多软件数据库都存储了用户的敏感信息,比如用户账号密码信用卡信息或者服务器的敏感信息,比如数据库连接字符串、登录账号密码,这些数据是有被泄露风险的。一些软件甚至会把服务器上的敏感信息打包到程序中,要知道程序会被反编译从而导致敏感数据泄露,携程泄露用户银行卡信息事件就是因为把用户信用卡信息记录在日志中,日志泄露导致用户信用卡也被泄露,造成盗刷等等严重问题。还有CSDN,对用户密码铭文存储到数据库中,数据库泄露之后,用户密码也跟着泄露,而且现在大多数用户都习惯于使用统一的密码,导致一起泄露。所以,对于软件来说,不能假设数据存储是安全的,而是要考虑到数据是有泄漏的可能,提前做好预防措施,对敏感数据加密。

2.如何预防软件中的安全问题

在风险管理中,对风险识别和量化后,接下来就是要制定应对计划了。

很多开发人员觉得安全问题,只要在软件开发完成后,测试阶段做一个安全测试就可以了,但这种做法完全把安全问题留到了最后环节,是很难达到对安全问题进行高质量管控的。为什么呢?

一方面对于安全测试来说,很难覆盖到所有可能存在的场景,会出现疏漏,另一方面,如果测试阶段发现安全问题,可能需要修改很多代码,甚至架构要重新设计,成本代价太高。

很显然,应对安全问题,最好的方式就是整个生命周期都做到重视安全问题。

(1)设计阶段

做设计架构时,就要把安全加入到设计目标中,有了这个设计目标,自然能找到很多安全相关的解决方案。为了保障在设计时就考虑好安全方面的问题,在做架构设计方案评审时,也需要增加安全方面的评审,确保有安全方面的考虑,确保技术方案切实可行。在架构设计领域,也有了业界公认的好的安全相关的设计原则,比如攻击面最小化、权限最小化、纵深防御等。

(2)攻击面最小化

攻击面指程序被用户直接访问到的部分,比如API、网站等,而攻击面最小化的设计原则,就是尽量减少暴露黑客可能发现并试图利用的攻击面数量。举例来说,你的数据库应该关闭外网访问,避免黑客直接攻击数据库导致数据泄露,还有对于复杂的多网站业务系统,实行单点认证,就可以让所有业务都在一个地方登录,这一个地方做到足够安全了,那所有的网站的登陆都是相对安全的。

(3)权限最小化

权限最小化的设计原则就是对于系统的用户、文件访问、进程运行等,给予其能拥有的最小权限,这样可以保证一个应用程序或者网站被攻击、破解,将损害讲到最低。

以前在部署Asp.Net程序时,运行Asp.Net程序是单独一个用户,此用户拥有的权限只能是运行程序目录,不能超出其目录范围,这样即使用户上传了恶意木马文件,也只能控制着一个目录,避免进一步的损失。

如果真的出现了安全问题怎么办?

安全问题就像程序的Bug一样,没有谁能保证绝对的安全,风险管理的最后一步风险监控说的有道理,必须做好Plan B,出现问题马上应对,将损失降到最低。

首先,设立应急的流程,出现安全问题了,根据流程,找到第一责任人,立即解决问题回复生产,避免进一步损失。其次,要分析程序的漏洞,通过分析日志,找出漏洞最后,总结原因,从错误中吸取教训,看问题是在哪个环节导致的,必要的话,改进开发流程,避免类似的安全问题再次发生。

【参考文献】

[1]郭帅强. 社交网络中的个人隐私安全保护问题研究[D].广东财经大学,2016.

[2]何静.数据库加固方案 防范重要数据和信息泄露[J].计算机与网络,2019,45(09):54-55.

[3]包英明.大数据平台数据安全防护技术[J].信息安全研究,2019,5(03):242-247.

[4]恶意木马伪装成输入法图标 盗取用户隐私数据[J].计算机与网络,2011,37(17):31.

猜你喜欢

信息泄露隐私网络安全
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
数据安全事件频发 “隐私”何处安放?