假如你是一名担任树立嵌入式体系(或软件、设备、网络等)的工程师或开发者,那么你排在最高优先级之一的工作是(或应该是)辨别并最大极限的削减潜在的数据安全缝隙。要想有用的完结这个方针,你需求了解体系是怎么被黑客侵略的,终究要了解怎么“像黑客相同考虑”。
黑客进犯运用的是缝隙,这些其间或许是规划缺点、拜访操控单薄、装备过错或许许多其他的问题等。这篇文章会深化探讨黑客的思想,正如你所看到的,他们在发现和运用缝隙方面的进程和思想办法与工程师怎么处理体系开发仍是有很大不同的。
黑客的思想到底是怎样的?下面的内容或许风趣、紊乱或单调,所以预备一大杯咖啡让咱们深化探求一下。
黑客的心态和思想:履行使命
黑客与工程师之间最显着的差异在于他们怎么应对应战,工程师(和科学家,就此而言)是体系性的,首要会界说和剖析问题,然后拟定方案(或假定),并对假定进行测验,终究对测验成果进行剖析,不管成功和失利都会得出结论。
这是科学的办法,数百年来人们都是选用这样的流程,黑客则不会遵从这个流程。首要没有什么方案,而是作为是一个使命。黑客的方案是不确认的,灵敏的,记住一点黑客并不是在构建有必要经过时刻检测的工程,相反他们要做的便是破解。他们不需求让办理者或CEO满足,他们重视的是完结所界说的使命。
工程师干事是体系化的,黑客则是务实的,他们的办法十分的实践。尽管会有一些相似之处,但中心的不同之处在于黑客们会尽心竭力完结他们的使命,此外他们不会重视那些对自己没有协助的成果,而且无需向其他人作出解说。
这有时也被描绘为列表 vs 途径考虑:
• 科学家和工程师对罗列的每一项都会陈述成果
• 黑客遵从途径,他们会按一个思路一向继续下去,知道这条路走不通
总而言之,工程师的方针是完全,黑客的方针是有用。这些看似细小的细微不同一旦付诸施行则会闪现巨大的不同和影响。
常见的形式:杀伤链
当黑客侵入到某个环境或许体系时,他们一般会遵从一个一起的形式,称为杀伤链(kill chain),当黑客对体系和网络进行进犯时,他们会寻觅该环境中更高等级的拜访和操作权限(图1)。终究当他们取得满足的拜访权限时,他们就能够盗取想要的数据或许植入歹意代码。
图1:假如你能在杀伤链的前期捉住黑客,那么你才能够避免黑客进犯的产生
黑客常常会在一个侵略环境中逗留很长时刻:均匀100-140天,比方2013年零售连锁企业遭受了黑客进犯,黑客运用了大约100多天的时刻进行了全面的进犯,假如你能在杀伤链的前期发现黑客就能够阻挠黑客进犯的产生。
需求留意的是大多数的黑客进犯都是运用机器人主动完结的,尽管咱们能够在描绘实践履行这些操作是人为的,可是背面实践上是机器人完结了全部操作。
黑客的思想
黑客看待事物的视点是不同的,特别是以下几点:
• 调查显着的细节
• 幻想最坏的状况
• 探究每一个潜在的拜访进口
• 喜爱全部数据
• 了解人是单薄的环节
• 喜爱不流畅难明的信息
• 寻觅并运用后门
• 运用第三方缝隙
• 寻求凭证
• 整理废物
调查显着的细节
当你深化开发时很简单忽略某个显着的缺点,无妨撤退一步问问自己一些根本的问题,运用如下“五个为什么”评价一下:
• 为什么你的产品要这样做?
• 为什么有这个必要?
• 为什么要选用这种规划办法?
• 为什么这样是好的?
• 为什么不换一种不同的办法?
• 这个操练的意图是找出显着的单薄环节,黑客会发现它们,而且会比你幻想的要快得多。
幻想最坏的状况
最坏的状况是什么?它产生的或许性有多大?黑客一般没有品德规范。当你的网络或运用正深陷泥潭并尽力康复时,他们并不会感到怜惜,因而你需求拟定方案来处理那些更糟糕的状况。
可是仍是要当心不要卷进所谓的“僵尸场景”中,也便是由于一系列的荒诞事情而引发的灾祸,大多数僵尸电影都是根据这个条件的。
探究每一个潜在的拜访进口
你有必要知道任何人或任何事物拜访你体系的每一种或许的办法,黑客会进行全部的测验,而且很屡次。你或许以为你的蓝牙接口是超级安全的,可是有几十种办法能够专门运用蓝牙让你的体系变得不安全,保证你对每个接口都进行了活跃的测验,不管你的体系规划有多么的杂乱。
喜爱全部数据
黑客们更喜爱数据或某些类型的数据,数据存储也是黑客在环境中取得持久性拜访的一种办法,你有必要剖析你的体系数据:
• 数据是怎样存储的?
• 数据是怎么传输的?
• 谁能够拜访这些数据?
• 怎么监控、办理和操控对数据的拜访?
• 拜访日志是怎样的?这些数据都到哪里去了?
了解人是单薄的环节
黑客们明白人是数据安全方面的单薄环节,咱们不只不稳定、不牢靠,而且极易遭到操作,假如你的体系触及任何这些有缺点的人(他的确有这些缺点),那么这便是你体系的缺点。
全部的信息安全问题一般归结为人类的缺点。不管咱们是否进行了过错的装备或编写了过错的代码,人都制作体系的一些缺点。假定用户会犯过错,而且会有许多过错,因而咱们要分外留意人的一些操作。
喜爱不流畅难明的技能信息
黑客们都喜爱不流畅难明的技能信息,他们会随机挖掘出你几年前寄存的文档,然后运用这些文档的数据对你的体系建议进犯,这也是破解新体系的趣味之一。
当你向大众发布某些技能数据类型时要慎重,假定黑客们会得到并进行剖析,假如你的产品是在一个敞开的环境中开发的,那么你就更应该以愈加安全的办法规划某些组件和功用特性。
寻觅并运用后门
20世纪80年代的一部电影《战役游戏》让许多黑客体会到了黑客进犯的味道。电影中心有一个很棒的场景,一个计算机科学家责怪他的书呆子搭档把计算机体系的后门作为隐秘:“Potatohead先生,这些后门不是隐秘!”
他的话在现在看来相同的实在,运用程序或设备的后门十分的常见,黑客们会寻觅它们,它是侵入体系最陈旧和最牢靠的技能之一,在《战役游戏》中就有展现,当然在今日也依然适用。
运用第三方缝隙
尽管你或许会殷切重视体系的安全性问题,可是你的供货商或合作伙伴是否也和你相同的重视?黑客们一般会将第三方组件作为方针,由于经过获取某一项技能就能够进犯很多的相关方针。Heartbleed便是不安全的第三方组件形成体系危险的一个比如,Heartbleed是OpenSSL规划完结的一个缺点,OpenSSL被运用到数百万中产品中,这意味着一个缝隙足以使数百万(或许是数十亿)台设备遭遭到进犯。
假如你的体系中集成有第三方组件,则会承继该组件的全部缺点,尽管产品或许归于其他人,可是你需求对其安全问题担任。
寻觅凭证
合法的用户账户是黑客们终究想要获取的,一旦他们获取了凭证,黑客就会晋级他们的权限然后进入你的体系,此外运用合法凭证一般不会引发警报。
尽管你或许无法一直维护用户的凭证(由于它在用户的手中),可是你依然能够避免歹意运用这些凭证,这就要从施行最小权限开端,也便是说用户永久不能具有比他们需求更多的拜访权限,此外你应该活跃的测验体系关于权限晋级类型的进犯。
整理你的废物
你的体系是全体的一部分吗?一部分遭到进犯会让其他部分也遭遭到进犯?给你的体系传递虚伪数据会怎样?这便是Stuxnet歹意软件的工作办法。它会向工业操控体系供给虚伪信息并让体系过载,假如黑客们想盗取你的数据或进行损坏操作,那么或许就会像过多的网络流量相同使你的体系过载。
拒绝服务类型的进犯很难阻挠,当规划你的体系时,你需求考虑它是否有或许会过载,并树立相应的机制来阻挠或忽略很多的输入数据,此外时钟都需求验证发送给你体系的数据是否是可信任的,这一点十分的重要。
总结
作为一名规划工程师,确认并最大极限的削减潜在的数据安全缝隙是首要方针,黑客的工作办法与工程师工作办法大不相同,他们并不是选用体系化的办法,他们有归于自己的杀伤链办法,依照这种办法他们会继续不断的寻觅到缝隙来运用,“像黑客相同进行考虑”要求你以不同的办法来看待你规划的体系,其间一部分意味着了解缝隙和解决方案的技能细节,可是更重要的部分是需求调查一些显着的缺点,了解人所犯的一些过错和忽略,了解黑客会寻觅什么以及他们是怎么运用这些头绪的。