命令注入
命令注入是一个严重漏洞,允许恶意参与者在主机操作系统上执行命令。此漏洞通常使用常见的安全工具和扫描仪(如Burp Suite)发现。tCell通过监视应用程序向操作系统发出的所有命令,并阻止所有不允许列出的命令,保护应用程序免受命令注入攻击。
这是怎么一回事?
当恶意参与者能够利用应用程序中的漏洞在主机操作系统上成功执行任意命令时,就会发生命令注入攻击。成功的攻击允许恶意参与者使用应用服务器的权限访问主机操作系统。作为一种安全最佳实践,您可以通过始终验证输入、保持所有第三方包和库的最新状态以及使用框架特性严格控制命令的启动方式来设计更安全的应用程序来避免漏洞。OWASP的注射预防备忘单可以帮助您了解有关防止命令注入的更多信息。
恶意参与者如何发现漏洞?
大多数恶意参与者首先使用应用程序安全扫描程序扫描应用程序以查找命令注入漏洞。参与者还将手动调查和发现应用程序的所有HTTP头,以及URL和正文中的参数。使用这些信息,他们可以测试对这些值的修改,以使用比安全扫描程序更复杂的技术发现命令注入漏洞。此外,参与者将分析HTTP响应头和错误消息,以获得有关应用程序服务器的更多信息,例如服务器和框架版本。如果该版本在漏洞数据库中列出了已知的命令注入CVE,那么参与者将尝试使用Metasploit等框架测试应用程序服务器。Apache Struts漏洞(CVE-2017-9805)就是一个很好的例子,其中版本2.1.2-2.3.33和2.5-2.5.12容易受到允许命令执行的Java反序列化攻击。如果参与者发现您使用的是易受攻击的Apache Struts版本,他们将使用Metasploit框架攻击您的应用程序。有关更多详细信息,请查看https://www.rapid7.com/db/modules/exploit/multi/http/struts2_rest_xstream
如何使用tCell保护我的应用程序?
tCell可以检测并阻止成功的命令注入攻击。我们检测应用程序并监视它向主机操作系统发出的命令。在默认仅报告模式下,os命令将把正在运行的命令转发给tCell服务,但不会阻止任何命令的运行。
在tCell控制台中,转到>操作系统命令看看这个遵守命令列。注意,此时tCell只显示命令,而不显示作为命令一部分发送的任何参数。例如,如果命令为curl www.tcell.io
,列表将显示卷曲
. 建议您在无法通过模拟常规用户通信访问internet的测试环境中运行应用程序,然后允许列出该列中显示的所有命令。创建allowlisted命令列表后,更改操作系统命令执行模式从仅报告到阻止并报告. tCell继续监视向主机操作系统发出的命令,并阻止任何未被允许的命令。这可以保护您的应用程序不受已知以及0天命令注入漏洞的攻击。
作为额外的安全层,tCell还可以检测命令注入攻击尝试,并通过应用程序防火墙功能对其进行保护。请看我们的指南SQL注入以了解有关此功能的详细信息。
更多阅读:https://www.owasp.org/index.php/Injection_Prevention_Cheat_Sheethttps://www.rapid7.com/db/modules/exploit/multi/http/struts2_rest_xstream