4.2. 选择服务名称

当选择与* Linux-PAM 配置文件中第一个条目对应的 service-name 时,应用程序程序员应避免*选择与argv[0]相关的东西的诱惑。对于任何用户而言,以不同的名称调用系统上的任何应用程序都是微不足道的事情,不应允许这样做会导致安全漏洞。

通常,如果程序是 setuid,或者比调用它的用户更特权,那么这始终是正确的建议。在某些情况下,避免使用此建议很方便,但是作为此类应用程序的作者,您应该仔细考虑程序的安装和使用方式。 (通常情况下,程序本来不是要设置为 setuid 的,但最终为了方便而最终安装了该程序.如果您的程序属于此类,则不要陷入犯此错误的陷阱.)

为了用另一个名称调用某个* target *应用程序,用户可以将目标应用程序与所需的名称符号连接。准确地说,用户所需要做的就是 ln -s/target/application ./preferred_name ,然后运行 。/ preferred_name **。

通过研究* Linux-PAM 配置文件,攻击者可以选择 preferred_name 作为具有最少保护的服务的名称。例如,使用 Linux-PAM *限制一天中某些时段访问的游戏。如果要将服务名称链接到调用服务所使用的文件名,则很明显,用户可以有效地决定服务使用哪种身份验证方案。不用说,这不是一个安全的情况。

结论是,应用程序开发人员应仔细定义应用程序的服务名称。最安全的是将其命名为一个单一名称。