安全是一个具有深度和广度的广阔主题。但安全专家认为可以将Lightrun作为安全工具的一种创造性方法,并且可以将其提升到一个新的水平。
什么是Lightrun?
Lightrun是一个面向开发人员的可观察性工具:就像生产环境中的调试器,并且没有安全风险。Lightrun是一种足够灵活的工具,可以适应多个模具。
使用Lightrun,可以在不更改代码的情况下注入日志、添加快照(不会停止代码执行的断点),并使用指标在代码级别获得可观察的见解。
安全工具用例
将Lightrun作为安全工具有几个原因。以下重点介绍以下内容:
- 验证是否存在安全漏洞。
- 检查是否有人主动利用了安全漏洞。
- 验证是否正确部署了修复程序。
为了保护应用程序,还有很多工作要做。Lightrun是一种通用工具;它不是Snyk等现有安全工具的替代品。并且它是免费的,填补了代码级别的空白。
最后,将讨论Lightrun如何保护本身,如果Lightrun本身不安全,就不能将其视为一种安全工具。
验证安全漏洞
安全工具就像可观察性工具,可以提供潜在风险的高级警报,但很少在代码级别进行通信。因此,开发人员可能很难执行可操作的安全任务和验证。如果安全问题在本地重现,那很好,可以及时解决。企业通常可以使用调试器来填补空白。但是,一些安全问题很难在生产环境之外重现。
Lightrun不会凭空发现漏洞。为此,企业需要一个专用的安全工具。但是如果有所怀疑,Lightrun可以帮助调查并证明漏洞。
例如来看看这个明显的错误:这是一个明显的SQL注入错误,但它可以被利用吗?可以花时间调整代码吗?
顺便说一句,注意正在使用Java,这一同样适用于所有Lightrun支持的平台/语言。这里的一切都很容易适用于NodeJS、JavaScript/TypeScript、Python、Kotlin、Scala等。
这在Lightrun中测试很简单。可以添加一个日志或快照,当发生无效请求时触发。然后,可以尝试通过curl命令发送无效值,以查看日志是否被触发。
需要注意的是,可以使用正则表达式来验证名称值。如果收到日志,则意味着有问题的值是可利用的。这也意味着安全漏洞的风险很高。
那么是否被积极利用?如果发现了一个与上述类似的安全漏洞。系统中是否已经存在黑客?
企业可以做什么?可以做一些类似于上面所做的事情,并添加一个具有类似条件和一些“调整”的快照:快照包含很多内容。
为什么是快照而不是日志?
日志很适合查看是否发生了什么事,其速度很快,并且处理量大。但是,如果有人希望获得所有可用信息;甚至可能是人们没有想到的事情。人们想知道网络攻击的向量,这意味着可以知道调用堆栈等。因此快照是一个理想的安全工具。
(1)定位标签
需要注意,“代理”入口指向“生产”。可以基于标签将快照应用到一组机器。在这种情况下,可以锁定所有可能存在漏洞的机器。
(2)最大命中率
与日志不同,快照会填满用户界面(UI)和存储空间,因此在快照过期之前可以有默认限制。通常默认为1个。在这里把它提高到20,如果愿意可以更高。
需要注意的是,如果看到这种情况发生并且正在发生漏洞攻击,可以切换到日志。
(3)忽略配额
此选项可能不可用,因为它需要特殊权限。如果遇到这种情况,需要向IT经理申请许可。
这是一个有风险的功能,这就是它受到保护的原因,但是对于可利用的黑客攻击,它可能是值得冒险的。
配额限制条件或表达式表示在每个Lightrun操作中可以占用的CPU数量。这里的风险是可能会发生漏洞,并且由于CPU使用率,某些信息会被“丢弃”。这意味着快照不会在任何时候暂停,也不会“错过”潜在的漏洞利用。
不过,这可能会影响服务器性能,因此并非没有风险。
(4)到期
Lightrun操作的默认过期时间为一小时。希望让服务器保持快速和灵活,以便终止不需要的操作。在这种情况下,希望在修复完成之前执行该操作,因此将到期值设置为60小时。
有了这些,将会获得遇到的任何漏洞的可操作信息。
(5)验证修复
验证修复非常相似。可以在代码的问题区域放置一个日志或快照,并查看该代码是否到达有问题的值。
还可以添加额外的日志记录,以验证尝试的攻击是否达到了预期的范围,并按照预期进行了处理。
Lightrun安全
易受攻击的安全工具无法实现其目的。了解Lightrun中的安全措施是本文的重要部分。以下是Lightrun中使其如此安全的高级功能。
(1)架构
Lightrun做出了几个显著减少网络攻击向量的架构决策。
代理仅连接到Lightrun服务器以获取操作,而不是相反。这意味着它们对最终用户甚至对企业完全隐藏。
如果Lightrun服务器出现故障,代理将什么也不做。这意味着即使是会导致Lightrun瘫痪的DDoS攻击也不会影响其服务器。企业将无法使用Lightrun,但服务器可以正常工作。
(2)证书固定和OIDC
Lightrun服务器的代理和客户端使用证书固定来防止复杂的中间人攻击。
Lightrun使用OpenI DConnect(OIDC)在其工具中提供经过验证的安全授权。
Lightrun服务器根据分配的角色限制用户权限。最重要的是,每个操作都会写入管理日志。
(3)沙盒
代理中的所有操作都经过沙盒处理,并且访问权限有限。正如以上所述,所有操作都是“只读的”,并且不能使用太多的CPU。
这些规则也有例外,但它们需要更高的特权才能规避。
(4)阻止列表
企业中的恶意开发人员可以使用快照或日志从正在运行的应用程序中获取信息。例如,可以在授权逻辑中放置快照,以便在编码之前窃取用户数据。
阻止列表可以定义在Lightrun代理中被阻止的文件。这些文件不会让开发人员在其中执行操作。
(5)PII减少
可以有意或无意地记录个人身份信息,例如信用卡号。个人身份信息 (PII)减少能够定义有风险的模式,并且这些模式将从日志中隐式删除。因此,无需清除此类日志,也不会让自己面临潜在的监管责任。
结语
没有将Lightrun设计为安全工具,它不应该取代现有的安全工具。但是,它是现有工具的完美搭档,将发挥自己的优势,并推动了对漏洞/黑客的快速响应。
Lightrun的低级深度代码可观察性使人们能够更快地响应潜在威胁,并更快地缓解漏洞。
此外,还可以为Lightrun提出更多惊人的与安全相关的用例,这些用例令人兴奋。
原文标题:Detecting, Investigating, and Verifying Fixes for Security Incidents and Zero-Day Issues Using Lightrun,作者:Shai Almog