技术控制
1、生产环境
1.1 安全开发
应用程序和计算机系统开发的首要目的往往是满足功能需求,而非安全。为了满足这两方面的需求,在设计和开发时必须同时考虑安全性和功能性。安全应该交织在产品的核心之中,并在各个层面提供保护。相对于在产品与其他应用程序集成时再开发可能影响总体功能和留下安全漏洞的前端或者包装程序,在设计之初就考虑进安全因素的方法要好得多。
软件开发生命周期(software development life cycle,SDLC)是通过可重复和可预测的流程来帮助确保满足功能、成本、质量、交付周期的需求。
安全计划应该尽量在生命周期的各个阶段予以实施,一般分为以下三个阶段:
- 前期:制定基线,参考编程语言(php、java等)的安全编写规范(如owasp安全编码指南等)、参考app安全设计标准
- 中期:工具+人工的白盒代码审计
- 后期:系统正式上线前进行软件功能测试和黑盒渗透测试
1.2 安全运维
安全运维是为保障网络、计算机系统、应用程序和环境以安全和受保护的方式运转。
不管是自建IDC还是部署到公有云平台,我们都应该关注以下几个方面的安全控制:
- 安全域划分(vlan隔离等)
- 安全检测(定期的漏洞扫描、渗透测试等)
- 安全加固(系统、中间件、数据库等安全加固)
- 补丁管理(windows补丁等集中自动化管理)
- 入侵检测(部署软、硬件IDS、IPS,如OSSEC、硬件IDS等)
- 访问控制(IAM策略、部署堡垒机等)
- 服务监控(网络、系统异常时系统自动短信通知管理员等机制)
- 日志集中管理(部署SOC等设备)
- 抗DDOS(使用CDN缓解DDOS、预算范围内加大带宽等措施)
如果公有云平台提供部分安全控制措施,可以结合其提供的安全能力与自身需求相结合。
2、办公环境
办公环境的安全一般主要关注边界安全、终端安全、移动设备安全及OA服务域的安全。
2.1 边界安全
边界防护一般可以采取以下几种控制措施:
- 防火墙(传统防护墙、WAF等)
- VPN
- 入侵检测(IDS、IPS、蜜罐等)
- 上网行为审计
2.2 终端安全
终端防护一般可以采取以下几种控制措施:
- AD策略
- 终端管理(杀毒软件、安全软件部署)
- 网络准入控制(NAC)
2.3 移动设备安全
移动设备安全防护一般可以采取以下两种控制措施:
- BYOD管理(制定BYOD使用规范)
- WIFI防护(禁止私设wifi热点、划分vlan、radius认证服务等)
2.4 OA服务域安全
OA服务域安全防护一般可以采取以下几种控制措施:
- 邮件使用管理规范(定期删除无用邮件、定期修改邮箱密码等)
- 内部系统使用规范(禁止开启对外映射、内部敏感信息禁止外传等)