我们有一个审计只是标记我们在$PATH
env 变量中具有相对路径。我不确定这是否真的是一个安全问题,并且想与每个人联系,看看这是否真的是一个安全问题,或者它是否只是我认为的最佳实践。有人可以提供有关$PATH
与亲戚一起使用的任何安全问题的信息吗?谢谢
我们有一个审计只是标记我们在$PATH
env 变量中具有相对路径。我不确定这是否真的是一个安全问题,并且想与每个人联系,看看这是否真的是一个安全问题,或者它是否只是我认为的最佳实践。有人可以提供有关$PATH
与亲戚一起使用的任何安全问题的信息吗?谢谢
您使用的路径有两个问题。
假设您有以下 shell 脚本,您以 root 身份使用来更新某些 Web 应用程序,并且您已经设置了
$PATH
正在使用的/etc/profile
对于攻击者,您提供了一种在由所述攻击者控制的 shell 中执行某些内容的方法。一种攻击形式看起来像这样——我试图
mkdir
在易受攻击的脚本中破坏对调用的控制。然后我等你更新你的webapp。
现在会发生什么,易受攻击的脚本切换到
/dev/shm
. 当它执行此操作并运行mkdir
时,它首先找到apps/java/bin/mkdir
程序,在这种情况下,该程序会重置 root 密码,将新的 root 密码通过电子邮件发送给攻击者,实际上调用 realmkdir
(隐藏任何实际发生的事实)并将自己从攻击中移除小路。以root 身份,您不知道发生了什么,并且一旦交付了有效负载,证据就会被删除。
在 $PATH 中使用相对路径的问题在于,如果攻击者可以在您的文件系统中创建一个具有给定名称的文件,那么您就有执行该文件的风险。
示例:
df
或者监控说 /var 已满,du
说 it's/var/spool/ftp/uploads
,你怎么办?你是拥有的。你甚至没有
ls
在输出中看到,所以你永远不会知道。将 ftp 上传替换为某些客户端网站的某些数据目录,或共享机器的 /tmp 目录,或许多其他东西。
诚然,这不会经常发生,但风险是存在的,而且写作
./script
很script
容易。