简单的问题。开发人员的 PC 必须能够自由访问网络(包括服务器等),并且他们必须具有管理访问权限才能有效地开展工作。
然而开发人员也使用许多非 Microsoft 工具,这些工具包括 GPL、LGPL、MIT、免费版等等。
其中任何一个都可能包含有害代码。即使是某些人可能用来解析 XML 的 LGPL 库。
我们都知道,只要有人在 UAC 提示上单击“是”,或者执行“sudo”,PC/服务器就可能受到攻击。而受到攻击的服务器可能会造成很多坏事,包括信息泄露、数据丢失等。
系统管理员如何应对这些问题?你信任杀毒软件和其他工具吗?
答案1
这是一场你永远无法获胜的持久战,但你必须继续战斗。任何 Microsoft 商店都应该做以下几件事:
- 拥有使用 GPO 和其他方式强制执行且无法禁用或绕过的企业防病毒软件。一旦您允许用户关闭它,您就不再受到保护。
- 始终过滤入站和出站流量。许多恶意应用程序都会尝试“回拨”。
- 使用代理来处理网络流量。即使您没有在其上安装网络过滤软件,也可以方便地查看正在出现的流量模式(例如,使用 POST 方法向未知的 asiapac 页面发出大量请求可能表明存在恶意软件)。
- 最后,也许最重要的是,教育你的用户。真正优秀的开发人员在履行工作职责时并不总是关注安全问题。提醒人们 UAC 不仅仅是测试你点击“是”的速度,而且 sudo 不仅仅是启动所有命令的礼貌方式,这是有帮助的。
祝你好运.. :)
答案2
我真诚地希望这些开发人员只有本地管理员,并且在 Active Directory 中只有常规用户帐户。
开发人员可能需要访问服务器等,但如果您还没有这样做,您可以为开发环境使用单独的 VLAN;无法访问生产服务器,只能访问 dev/qa/staging。让开发人员使用另一个工作站访问常规生产服务器。
或者,但不太安全,您可以尝试在逻辑层面上分离事物(例如,不同的 Active Directory 林,可能是域)。
如果开发人员确实拥有/可以访问生产系统,请增加对生产系统的日志记录和监控,并进行一些用户教育:“为什么您登录到该生产数据库并复制包含所有密码哈希值的表?”之类的事情。
注意:这显然取决于您的组织的规模和复杂性。
只是一句:你似乎怀疑开源工具很危险。它们可能是,但真正的问题不是控制开发电脑上可执行代码的存储和使用。也可以是闭源的 ;)