Linux系统安全:纵深防御、安全扫描与入侵检测
上QQ阅读APP看书,第一时间看更新

1.3.3 最小权限法则

最小权限法则(Principle of Least Privilege,PoLP)是指仅仅给予人员、程序、系统最小化的、恰恰能完成其功能的权限。

在系统运维工作中,最小化权限法则应用的一些例子包括:

·服务器网络访问权限控制。例如,某些后端服务器不需要被外部访问,那么在部署时,就不需要给予其公网IP地址。这些服务器包括MySQL、Redis、Memcached,以及内网API服务器等。

·使用普通用户运行应用程序。例如,在Linux环境中,监听端口在1024以上的应用程序,除有特殊权限需求以外,都应该使用普通用户(非root用户)来运行。在这种情况下,可以有效地降低应用程序漏洞带来的风险。

·为程序设置Chroot环境。在经过Chroot之后,程序所能读取和写入的目录和文件将不再是旧系统根下的而是新根下(即被指定的新位置)的目录结构和文件。这样,即使在最糟糕的情况下发生了入侵事件,也可以阻止黑客访问系统的其他目录和文件。

·数据库访问控制。例如,针对报表系统对MySQL数据库的访问控制,一般情况下,授予SELECT权限即可,而不应该给予ALL的权限。

在运维和运营过程中,未遵循最小权限法则将会对系统安全造成极其严重的威胁。例如,根据The Hacker News网站[1]报道,75%运行在公网上、未使用认证的Redis服务器被黑客入侵过。造成该严重安全问题的重要原因之一就是,未遵循最小权限法则来限制Redis服务器其对外服务和使用较低权限的用户启动Redis服务。

[1] https://thehackernews.com/2018/06/redis-server-hacking.html,访问日期:2019年1月5日。