-
-
[翻译]来自内部的威胁以及如何防御
-
发表于: 2017-6-10 16:52 5025
-
目录
1.介绍
2.内部攻击的类型
3.风险
4.防御
5.总结
6.拓展阅读
7.参考文献
8.关于NCCGroup
这篇论文打算为那些想要实现程序的防护功能的人,对内部威胁给出一个高层次的看法。我们考虑到了内部攻击的类型以及一些公共的弱点,这篇论文也包含一些政策和控制用于实现检测,阻止和防御内部威胁。我们打算做一个综述,但在最后的拓展阅读部分,我们也提供了更深层次的细节信息。
人们普遍认为大部分企业的威胁都是来自于外部,带着这种固有观点,黑客们通过犯罪来赚钱。此外,在进行网站的渗透测试时,在进行代码审查和内部体系安全测试时发现的问题,并不是引起关注的真正原因。那是因为有措施能够预防外部攻击者获取内部资源的访问权。
随之而来的一个问题是,这没有考虑到来自于内部的威胁。在工作人员通过背景检查及审核程序之后,人们总是趋向于信任他们,而只考虑外部攻击。正如Computer Economics[1]所描述的那样,低于40%的人认为来自内部的恶意攻击是主要威胁。IBM的研究显示,高达60%的商业攻击是来自于拥有合法访问权的位置。其中3/4是来自于带有恶意意图的个体,比如员工,承包商或是’evil mail’-style attack[3]中提及的服务人员。尽管非常少的一部分员工加入了带有恶意的组织,然而,工作环境或是外部环境都可能会改变员工的行为或观点。
这是一个大问题。内部人员更有可能了解系统和公司是怎么运行的,这使得他们有更多的时间且能够更有针对性的进行攻击活动,因为他们有合理的原因接触财产或是访问系统。此外,他们不需要想办法去绕过外部安全控制。
内部威胁中的主要问题是通过盗窃或访问严格的系统引起的保密性缺失,这同时也是系统完整性受到损害的例子。这也可以通过欺诈交易或数据伪造数据以及蓄意破坏系统的可访问性。
论文的其他作者也考虑到了可以被恶意内部人员执行的三种公共攻击类型,以及公共弱点和经常被攻击或存在弱点的区域。
对于内部攻击并没有一个明确的定义。内部攻击可能会因为各种原因以各种方式执行,并影响到IT及物理系统。这使得要对它进行分类相当困难。
这篇论文对内部攻击的定义是,拥有系统或财产的合法访问权的个体,利用他们的优势位置发起的攻击。请注意,这一定义并没有限制为纯物理访问,因为有团队资源的访问权的远程工作人员也被认为是内部人员,例如通过VPN。此外,内部人员也不仅仅是员工,所有拥有合法访问权的人都被视为内部人员。这其中包括但不局限于承包商,供应商和顾问等人员。
尽管分类是一个复杂的任务,攻击也能被大致地分为三类:破坏,盗窃和欺诈。这种攻击首次出现是在CERT的wide-ranging study on insider threat[4]中。对于这个研究的一个有趣的观点是,攻击者并不像很多人想像的那样拥有高超的技术。许多攻击并不需要大量知识或是特殊的技能。尽管对银行和财经部门内部威胁的一项早期研究[5]强调了这点,然而,这一主题仍是调查研究的主体。
请注意,尽管这篇论文中记录了攻击者的潜在动机,但CERT的研究表明,恶意内部人员并没有某种固定的模式。他们覆盖了技术等级和职位管理链[6]中的每个人。
破坏是对系统或物理财经的伤害,例如,当员工被解雇后,或是他们感受到自己被不公平地对待,这些不满的员工就会进行报复攻击。
破坏攻击不一定发生在员工仍然在公司上班期间,相反,员工可能在离职后仍保留访问权,或是设置定时器来触发某个事件。
破坏攻击的最著名的例子是’logic bomb’[7]。在这个例子中,攻击者在网络中留下一个程序,它会由某个事件进行触发;这一事件可能会是一个给定的日期或系统的某一特定活动。一旦这一事件发生,这个程序就会执行,它通常会产生大量的攻击,比如删除或损坏数据库中的客户数据。’logic bomb’的一个例子是2013年发生在韩国的一次大范围的攻击事件,造成银行和广播公司的硬盘驱动大范围的损坏。
破坏攻击也包括物理损坏。其中一个例子是,某员工申请加薪被拒后,花了3年时间使用’Cillit Bang’(译者注:一种强力清洁剂)对系统进行破坏,造成了大范围的系统故障。
当提到企业的风险时,第一个想到的通常都是盗窃,它是公司在对待个人身份信息(PII)上,特别关注的东西。盗窃的目标可以是知识产权,比如源代码,客户列表以及自主研究,也可以是有形物品,比如公司财产甚至是钱。华盛顿邮报的一篇文章里表明,高达60%的离职人员可能会盗窃公司数据[10]。
盗窃的动机并不总是明确的,但总是源于对赚钱的渴望。这可能是因为攻击者认为他们拥有某些东西,努力赚钱,甚至是想要转投到公司竞争者手下,并带一些有价值的东西给竞争者。
盗窃的其他例子可能是出于报复心理,与上面描述的破坏攻击相类似。
盗窃攻击最出名的例子是Edward Snoden。Snowden是美国政府的员工,他盗取了机密信息并把它泄露给了媒体[11]。在这个例子中,他的行为是出于思想原因,可以想像,这样的例子是出于不满或是对金钱的渴望。
盗窃通常都是出于个人因素,这对第三方来说并没有价值,比如帮助朋友或家庭成员,或是某些勒索案件。这对于诈骗和较小程度的破坏也是成立的,然而,大部分时候还是与盗窃有关。
诈骗通常与规避控制或是业务流程有关。在一次技术高超的攻击当中,攻击者为了从中获益(通常是赚取钱财),常常会改动源代码。
诈骗活动的例子包括管理员为了隐藏未授权的交易,从而签署自己的交易,利用软件的逻辑错误以绕过控制,或是臭名昭著的’salami attack’,在这一攻击中,舍入误差会被重定向到某个被控制的账户而不需要经过检测[12]。
诈骗的动机与盗窃相似,也是为了获得个人收入。可能导致诈骗的一个额外的动机是掩盖错误或失败。其中一个例子是,某投资商操纵交易,使他似乎变成了一个明星销售员,然而事实上他损失了公司大量的钱[13]。
正如前面所提及的,并没有一个明显的模式来表明某次内部活动或是某种人可能会犯罪。这一部分会尝试划出一些危险区域,然而,这并不能作为内部攻击的明确定义。
这一部分由三块组成:员工,技术和业务。然而,这三块之间可能会有重叠。
内部攻击是复杂的,并没有某个指标能够用于检测内部攻击。相反,为了预防内部攻击,我们必须采取综合性的措施来对所有地方进行评估。
员工问题范围巨大而且复杂,在没有确切证据的前提下,我们应该尽量避免指控或是过度监视员工,因为这涉及到人权并可能导致法律纠纷。要想培养出一个良好的安全文化,一个关键是高管们对员工的态度以及他们解决问题时的语气。例如,不要直接称某人为嫌犯,而是使用更柔和的证据,比如说’behaviour of concern’。
CPNI[14]发布的一篇报告指出,有很多地方都是值得我们关注的,包括人格特征,生活习惯和工作场所行为。请注意,如果这些地方在生活中频繁发生或是过于严重,但也可能只是因为兴趣,来自于CERT的一项研究表明犯罪在发生之前,通常都会带有大量轻微的预兆。这包括和同事的关系变坏,来自管理层的轻微遣责或是不参与公司活动[17]。
个人经济问题出现在大量的内部攻击案例中,尤其是诈骗和盗窃。尤其要关注的是,某人试图掩饰他们的生活窘迫,而强行维持奢侈的生活,或者是他们有酗酒,吸毒或赌博的行为。
其他个人环境,比如家庭问题和健康问题,也有可能导致个人经济问题,并导致他们采取某些极端的方法来获取钱财。
另一个影响因素是对工作的满意度不够和待遇不公。这可能是源于没有升职,工资过低,工作体验不好甚至是没有权力感。在这个例子中, 罪犯可能认为公司欠了他们什么,他们没有做错,只是拿回他们应得的东西。一个例子是一个员工因为得不到升职,在新的财政主管上任前,将大量机器中的文件都删除了[15]。
不满引发的最极端的例子是在员工被解雇的时候,因为这使得员工生活陷入困境,而他们已经没有什么好失去的了。员工在离职前通常都会有一个月的通知期,在这段时间内,如果他们仍然拥有对系统的访问权,这就使得他们可以利用这段时间进行犯罪。
糟糕的管理也是内部攻击的另一个诱因。这通常都发生在远程工作人员上,这些人有足够的理由不与公司的人联系而常常被忽略。孤独感与参与感的缺乏使得他们不被人关注,犯罪也没能被发现[16]。
最后一个需要考虑的地方是,某些人犯罪仅仅是因为他们有能力犯罪。这可能仅仅是为了挑战或是他们发现了某系统的漏洞。这通常被认为是传统的外部黑客攻击,然而,它仍然应该被作为内部威胁看待,因为内部人员更容易接触系统,也更容易发现潜在的漏洞。
我们还应该关注的是,随着时间的推移,忠诚度,满意度和个人环境的变化。某人现在没有目的和动机去犯罪不代表他将来也不会。CPNI的一项研究发现“超过75%的内部攻击行为是由那些在加入公司时没有恶意,但加入后就变了的员工造成的。”[18]
尽管技术问题并不会直接导致内部攻击,但会使得那些技术不熟练的人进行内部攻击变得更加容易。如果技术系统是安全的,就会使得攻击更困难。
最流行的安全问题之一是密码的管理,主要包括密码复杂度和密码的共享。如果密码能被轻易地猜出来,或是由多个用户共享,就会使得系统失去保密性,完整性和身份认证功能。这意味着攻击者不仅仅能够访问并改变信息,也能够把责任推脱到其他人身上。尤其需要关注的是管理员密码或是用于提权的密码。
根据密码共享,我们应该实现一个鲁棒性好,基于角色的访问控制系统,以确保用户只能访问他们需要的资源,而拒绝其他资源的访问请求。
系统中未修补的漏洞是另一个需要考虑的地方。如果没有打补丁或是有其他我们不知道或者忽视了的漏洞存在,技术好的攻击者就能利用这些漏洞来获取系统的访问权。
有时候,尽管你不能够预防一次攻击,但是可以快速地检测和缓解一个漏洞。然而,为了进行有效地记录和监控,系统应该提前做好准备。监控也可能失误或是停留在默认设置上,这会使得正误差或负误差很高。
如果不检查日志和警告的话,监控也是没用的。如果系统中存在监控的话,负责这一监控的人也有其他的事要做,剩下给检查监控的时间不多。
此外,如果某人负责开发,一个很大的风险是他们可能会把唯一的一份源码保存在自己的机器里。这是非常危险的,尤其是在团队里。如果这份代码遗失了,甚至可能造成整个项目失败。
和技术风险一样,业务问题并不直接导致攻击的发生。然后,如果进行合适的管理的话,就能使得攻击更难发生,为了解决这一问题,我们需要确保流程正确。
缺少监督也是一个潜在的需要关注的地方,它有两种形式。在第一种中,个体没有受到足够的监督,这使得他们可以自由地进行恶意攻击。第二种中,带有恶意的内部人员身居高位,也就意味着他们可以要求下属代替他们进行操作。
在一些例子中,尤其是个人处于某个角色很长一段时间,他们就会成为一个single point of failure(SPOF)。他们独自享有某一系统的权限,或是独自管理着整个代码库。如果他们做出破坏系统的行为,或是修改所有的密码,就可能会造成巨大的损失。如果不能确保代码库等关键的商业数据有备份,就会给系统造成巨大的风险。如果数据有备份,即使现有的副本被删除或损坏了,也能够进行恢复。
许多公司没有一个安全的终止策略或是取消用户供应政策。当合同终止时,仍然保留访问权会造成数据有被盗窃或破坏的风险。因此,前雇员的权限没有被撤消,也就意味着他们在终止合同之后仍然能够访问系统[19]。Identity and access management solutions(IAM)对于防御内部攻击非常重要,但是,正如一篇关于福布斯的文章中说的那样,IAM虽然非常有用,但没有多少组织使用它。
特权蠕变是一个术语,它是指用户在本应被移除权限而仍然保留权限,从而借此逐渐获取更多的权限。用户拥有的权限越多,他们就有更多的机会进行攻击。CERT的研究中给出了一个例子[19],某员工在转换角色后仍然保留对工资数据的访问权。这个员工把这些保密数据提供给了他们新开的公司,这一行为使得雇主花了100万美元。
高级技术支持也是一个需要重点关注的内部威胁,但它经常被忽略。在公司中,通常都对董事会级别的安全控制缺少必要的限制[21]。研究表明恶意内部人员通常都会表明出一些明显的特征,但如果没有一个安全的机制将特征报告给管理层,仍然没有人会知道。在这些场景中进行指控时必须小心,任何告密的策略都必须谨慎考虑[22]。
CERT对内部威胁的研究表明这些犯罪行为没有意识到或没考虑到的他们这种行为的后果。另一些例子中,他们没有意识到有监控机制或其他控制机制来监控他们的行为。
在这一部分,我们会介绍一些潜在的防御措施,然而,方法并不详尽,且只给出了一些基本问题的解决方法。
当考虑安全措施时,并没有单一的控制措施能够预防这些威胁。一个好的方法是采取多层防御策略,使用多种方法实现。这可以确保如果某种方法失效了,攻击者也不能获取所有的权限。
然而,我们也有可能过度看重安全策略,因此我们要保证要采取合适的方法,不要产生一种不信任他人的氛围,因为这会使得人们不能高效的工作。这就起到了反作用。
员工限制最有效的方法之一是人员审核。审核等级依赖于要保护的数据的安全等级。这里重点要关注的是现在的或潜在的员工,确保他们处在正确的安全等级上。审核不应该是一次性的活动。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
- [原创]分享一个基本不可能被检测到的hook方案 44347
- [翻译]利用Qiling框架实现带有代码覆盖率信息的PE文件模拟执行 22917
- [翻译]android11中的系统加固 18071
- [翻译]使用hook绕过EDR内存保护 18310
- [翻译]SATURN反混淆框架 15721