众所周知,在不必要的情况下随意提升权限是管理工作中的大忌。我们不应该在以管理员身份登录之后,却在设备上进行网页浏览或者查收邮件之类私人操作,而且这一切在登录服务器时将带来更大的危害。作为公司管理者,大家不需要设置太多员、域管理员或者服务器管理员。我们都应该明确这一点。 但最近的一次亲身经历却让我大跌眼镜。这是一家专门负责亚太及周边地区航运集装箱业务的企业,其基础设施中竟包含数以千计应用程序管理员。这家公司拥有几千款应用程序,其中大多数同时存在数百位管理员;事实上甚至某些应用的所有用户都具备管理员权限。请大家不要误会,大部分应用提供的都是普通用户账户(而非操作系统或网络管理员账户),但这些账户却拥有最高级别的应用操作权限。
这家航运公司使用频繁最高的大部分应用都拥有数千位用户,在这样庞大的用户基数下10%--也就是几百位用户具备管理员操作权限似乎也不是什么了不得的大事。然而从理论上来说,用户应当始终只拥有最低操作权限,而且应用管理员数量过多带来的麻烦绝不比操作系统管理员泛滥来得少。实际情况可能更糟。
每增加一位管理员,安全风险发生的机率就会呈指数级增长。过度分配管理权限不仅仅提高用户自身的安全风险,更可能在他们遭遇恶意侵袭时导致安全体系全面崩盘。每位管理员都可能从属于某个特定群组,因此一旦黑客成功侵入A的账户、则极有可能同时获取到B的业务信息,而B又会成为通往C的捷径并以此类推。
应用程序管理员过多引发的最大问题之一在于,与操作系统及网络管理员相比,应用程序管理员往往疏于采取安全防范措施。真正的管理人员往往习惯于借助隔离机制绕过计算机本身,通过更安全的方式进行管理工作。他们知道随意浏览网页或回复邮件可能带来的安全隐患,因此不会利用自己的轮换式认证机制干这些无聊的事情。他们也会在计算机出现可疑征兆时及时调查并提交报告。应用程序管理员在这些方面的素养就要差得多。
在这家特殊客户的案例中,我们发现已经有很大一部分应用管理员的设备在过去一年中受到恶意软件的感染。受感染设备所占比例与正常企业并无明显不同,但由于管理权限的存在,常规状况也成了重大事故的导火索。该公司在过去一年中大幅裁减了操作系统及网络管理员的编制数量,并尝试最大程度精简技术团队。然而似乎没人意识到同样的处理方式也应当推广到应用程序管理员领域(至少在我接手之前是这样--所以他们才需要为此支付高昂的服务费用)。
大多数恶意人士所觊觎的都是系统与数据。即使是已经成功获取整个域及所有网络管理员的账户密码,他们真正要做的也是最终侵入应用程序服务器--而应用程序管理员可以直接把他们送入梦寐以求的资源宝地。
如何降低安全风险?
首先,我们需要对所有应用程序进行审计并找出各应用中高权限用户(及服务)账户的总体数据。如果该数字高得离谱,就需要进一步加以探讨以确认其合理性。从最低特权原则出发,找出(或帮助应用团队找出)这些到底有多少用户必须拥有应用程序的全部操作权限。接下来清除那些不必要的账户并对具体控制能力进行调整。我处理过很多这方面的审计工作,通常来说很容易找到问题并以此为基础大幅削减账户权限。
如果某些应用确实需要一大堆管理员--没错,这种蹩脚的应用真的存在--那企业应该尽快与开发商或服务取得联系。任何一款理想的应用都不需要太多管理员,大部分用户只应该充当查看方或者特定内容编辑者。
我个人最喜欢采用RBAC(即基于角色的访问控制)机制的应用程序,因为在这类应用中即使是管理员也并非无所不能,而且只需要设置一位管理者。在出色的RBAC程序当中,任何一位用户都能从自身角色出发进行操作--通常只涉及某些功能或任务。用户只能处理与自身相关的任务(例如更新列表中的记录),并执行应用中的特定功能。
这里我需要解释一下:如今大部分传统应用程序的管理员都对应用具备绝对的控制权。他们能进行一切操作:变更设定、安装或卸载内容、添加及删除用户,并将整个离线数据库复制到便携式存储介质当中。应用程序管理员简直就是这款应用中的万能主宰。
然而在RBAC应用程序方面,没有人能做到主宰一切。没有人可以对数据库整体进行复制、删除或其它重大操作。负责添加与删除用户及调整使用权限的人无法查看应用程序中的数据。再举个例子,RBAC管理员也许能够访问并修改数据,但其影响范围仅限于应用程序内部。一旦应用程序被关闭,RBAC管理员对底层数据库或应用完全不具备任何操作能力。
恶意人士的目标在于系统访问与数据库。正是由于这个原因,我才对企业在控制及审计应用程序管理员方面采取的机制如此重视--甚至将其提升至与操作系统及网络管理员相同的高度。同志们!正所谓亡羊补牢、为时未晚,只要积极学习新的风险控制技巧,大家总能在未来的运营工作中得到令人满意的回报。
信息发布:广州名易软件有限公司 http://www.myidp.net
|