Equifax 信息泄露始末笔记
代码设计的时候就应该将安全考虑进去
接口设计应符合安全规范,慎重设计使用能够执行系统命令的接口
使用开源软件必须密切关注开源软件动态,尤其留意 bug 的暴露与修复
开源软件选择需谨慎,安全因素需考虑
培养安全意识,定义安全规范,建立安全理论知识体系
一定要培养员工的安全意识,员工计算机水平参差不齐,很有可能成为钓鱼入口。
注重代码审查,以及代码入库审查
很多已经入库的代码竟然存在服务器的账户名和密码!GitHub 上现在也还有很多这样的仓库。
留意日志组件可能泄露隐私数据
谨防钓鱼攻击
陌生邮件、可疑邮件不要轻易打开其中的附件,更不要轻易付款或授权。
安全备份方案,不要仅有一层安全防护
不要使用弱密码
不要明文保存密码
一定要保存密码的散列值如 SHA-256,不要使用已知的被攻破的算法(如 MD5,如撞库)。另外,需要使用安全随机数作为 salt,这样避免被通过彩虹表反查出明文。最后,不同网站建议使用不同的密码。
为了避免被攻击,Apache Struts 的副总裁雷内·吉伦(René Gielen)在 Apache 软件基金会的官方博客中提出了 5 条最佳实践(遵循规范),整理如下:
- 完全掌控产品软件用了哪些外部软件,他们的版本是多少,并时刻跟踪这些软件的公开信息和安全生命,及时修复问题版本
- 建立外部软件版本更新导致产品软件重新发布的工作流(Murphy 建议最好使用 CI 自动化,避免人的操作失误),这样可以快速发布修复漏洞后的版本
- 建立安全策略的前提是“所有复杂的软件都有漏洞”,策略需严谨
- 建立多个安全层,这是一种良好的软件工程实践
- 建立异常访问的监控机制,监测到异常及时发出警报,这样可以将影响降低
另外,外加一条软件工程的最佳实践,足够多和全的测试。理论上,覆盖测试、单元测试都需要做,而且需要结合自动化测试工具使用 CI 进行每次代码提交的测试,每次版本输出的测试。单元测试必须严谨全面。
最后,左耳朵耗子还提到了自己的经验,“防家贼”。将关键的数据定义出来,把这些数据隔离开,放到安全级别非常高的地方(有各种安全审计、安全监控、安全访问的区域)。还有,这些关键数据或者敏感数据接触的人越少越好,最好是不暴露给公司内部员工直接存储。在加密上,要使用非对称加密,要使用动态秘钥。
安全是非常严肃的事情,必须加强安全意识,注重安全防范。国家在安全等级保护制度中也明确了企业机构有责任和义务保证用户数据安全,安全无小事,需要防范于未然。
以上内容来自极客时间“左耳听风-陈皓”专栏的学习总结,该专栏内容非常专业实用,需要细品多遍,欢迎各位读者去陈皓专栏订阅,本篇笔记如有侵权,请联系删除,谢谢!
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!