新年伊始,我们将讨论Web应用防火墙(WAF)的必要性,利用源代码的安全框架和库,以及一项名为Bugalert的新服务,该服务将即时通知你任何高/关键严重性漏洞。
使用WAF或不使用WAF
WAF的有效性是一个争论很大的话题,因为可能很难确定WAF的功效。只要满足以下条件,WAF就会有好处:
- 修复漏洞的成本比实施WAF要高;或
- 将被阻止的流量低于你的容忍阈值。
你也可以使用防火墙来实施缓解措施,防止机器人和搜刮者到达你的网站,提供应用层安全,并允许/禁止列出IP。 WAF的一个简单实现可以包括使用验证码或Javascript挑战来减少这些类型的机器人。你可以把WAF作为一个代理,允许特定的流量,同时禁止其他的流量。
关于WAF的一个重要启示是,它们不是一个设置好就可以忘记的解决方案。它们从开始到部署WAF都需要温柔的呵护。它需要一个专门的工作人员/团队来维护WAF,以不断优化其使用。
处理WAF的理想方式是把它当作一个解决方案,主要是为了阻断对你的网络应用的不需要的流量。
利用安全框架和库来获得安全代码
自行实施安全代码可能是一项繁琐的任务,需要正确执行。攻击者可以滥用你的代码的微小碎片,使你的应用程序变得脆弱。
关于保护你的代码的能力,有一些框架和库可以让你在关注安全的同时,让你专注于构建你的产品。这篇来自Github的文章讨论了不同的方法和因素,可以帮助你评估使用这些框架和库时应该注意什么。
每当你决定使用什么图书馆时,你应该考虑这五个因素:
- 该软件包是否被广泛使用?
- 该包裹是否有良好的声誉?
- 是否有关于具体图书馆的良好评论?
- 该软件包是否被积极维护?
- 包装是否有成熟度?
- 这是一个很好的指标,说明有一个清晰的路线图,大多数功能都在持续实施。
- 该软件包的安全问题是否得到及时修复?
当你与Web框架打交道,并希望在这些框架中实现安全,重要的是确定哪些安全任务(XSS输出编码或输入验证)应该由框架来处理。
在使用一个嵌入了某种形式的安全的网络框架时,需要考虑的一个重要因素是让框架为你处理数据编码。当你让框架为你处理数据编码时,这将减少用户错过或不正确地实施安全措施的机会。如果你要允许可能的不安全行为,应该对允许的行为进行彻底的分析,并意识到这不是默认的行为。
在加入库和框架时,更新源代码中的依赖关系很重要。你可以使用软件构成分析工具,如GitHub Dependabot,来保持你的依赖关系的更新。
布加勒特
在log4j漏洞之后,一位安全专家Matthew Sullivan发布了一项名为Bugalert的新服务,它可以提醒安全和IT专业人士注意任何高危漏洞。Bugalert的唯一目标是通过电子邮件、电话或短信快速通知严重的软件缺陷。
Bugalert目前正在寻找贡献者来开发和改进其程序。对于任何有兴趣做出贡献的人,请随时打开Github问题。
注释