为什么要发现安全问题?
很多公司和企业都有多种web应用和服务开放到互联网中,一旦这些服务和应用开放到互联网,就有可能遭到全球黑客的扫描和渗透攻击,这些安全问题就像定时炸弹一样,随时都有可能威胁到企业的信息安全。一但web应用被攻陷后植入后门,攻击者就会利用这些被攻击的服务器作为跳板,从而对内网进行渗透,导致整个内网的沦陷。
企业如何发现这些安全问题?
前期避免
1、安全需求分析:在项目接入的初期,提前发现安全问题是最经济的方法
- 使用web框架和语言的选型开始,比如常常爆发0day漏洞的str2就应该避免使用
- 敏感信息如密码的保存方案
- 是否有上传功能等等
中期发现
2、安全扫描
- 通过扫描器发现安全问题,自动化周期性执行。
3、安全测试
除了扫描器之外,还需要人工安全测试方式作为补充,因为扫描器存在不足,比如存储型的XSS触发点不定很难用扫描器发现,而一些越权型的漏洞很难用扫描器捕捉到,一些业务逻辑上的漏洞扫描器根本无法理解。
4、入侵检测
- 网络层的入侵检测:通过对网络流量进行分析检测入侵行为。
- 主机层的入侵检测:通过在主机上安装小程序,通过小程序收集文件、进程、日志等信息来进行综合分析,检测入侵行为。
5、日志分析
雁过留声,人过留痕。只要有过攻击行为或者有过入侵行为都会在日志中留下蛛丝马迹,通过对日志文件进行分析来发现问题是一种非常常见的手段,一般可以通过可疑日志+人工分析,可疑日志+扫描器的方法来发现绝大多数的安全问题,同时结合最新的大数据和数据挖掘等新技术,可以挖掘更深层次的安全问题,同时捕获最新的漏洞和攻击方式。
6、建立SRC(安全应急响应中心)
通过发动白帽子发现安全问题,做到了企业和白帽子的双赢
7、和漏洞平台合作
借助第三方漏洞平台的力量和影响力,通过漏洞平台发现安全问题。这种方法成本更低,但相对于主动建立SRC的方法略显被动,两者的结合是现在更加普遍地一种方式
如何处理安全漏洞?
1、防御
(1)防御首先要进行输入检查,所有的安全问题的根源都是信任问题,所有的web输入都属于不可信的范畴,除了常见的用户输入之外,还需要注意文件系统的输入、系统参数的输入、环境变量等其他不可控的输入,进行输入检查的注意事项包括
- 在服务端检查(在客户端的检查很容易被绕过)
- 数据合法性校验:类型、长度、范围
- 尽可能使用白名单
(2)其次还要进行输出检查,因为一些内部的错误信息和异常会暴露内部的细节,web的恶意用户根据暴露的内容推测出内部的实现
(3)针对性的防御
(4)WAF
是目前比较流行的web安全漏洞防御方法,许多乙方安全公司都提供WAF,其原理是对每个web请求进行规则检查,从而匹配可能的攻击并进行拦截。WAF的好处是对爆发的新漏洞可以及时打一个虚拟补丁对修复争取时间,同时WAF规则需要专业的维护也可能成为性能的瓶颈。
总结
首先对任何外部的不可信输入进行检测,其次对内部输出的各种进行综合清理,并且对某些特定的漏洞进行针对性的防御,最后是统一部署WAF进行防护。
2、修复
(1)漏洞修复需要一个强大的知识库作为支撑,对于各种漏洞的原理、防护方法都要在知识库中体现,并且针对应用的特点和场景进行定制,安全团队要针对业务的不同提供可实施的可落地的解决方案,提供详细的漏洞说明和修复方法,结合公司的开发情况(框架、语言)等进行定制
(2)漏洞修复周期:漏洞修复需要有时间限制,根据漏洞危害等级限制漏洞修复周期,如严重漏洞需要在24 小时内修复。在修复之前,安全团队需要密切的关注漏洞的发展情况,监控应用的安全保证在修复期间内的安全性,WAF就是非常有用的手段,可以用WAF打一个虚拟补丁,为漏洞的修复争取更多的时间。
(3)漏洞复查:技术团队对漏洞进行修复之后,还需要安全团队进行复查,保证修复的全面性和完整性。充分和业务方以及开发方进行沟通。
总结;
首先针对各种漏洞需要建立知识库,就像一个图书馆。其次对漏洞进行分级和分类处理,对不同危害程度的漏洞定制不同二点周期,并且严格执行,必要时获得管理层的支持,安全团队在修复期间要保证应用的安全,最后安全团队要对漏洞修复二点完整性进行复查。
企业如何处理安全事件?
安全事件应急响应流程
(1)事件确认
(2)事件汇报
(3)事件处理
(4)归档和复盘
总结: