本篇文章1564字,读完约4分钟

最近一周,来自互联网的万能可同时在全世界上演了一部绑匪大片,凭借华丽的台词和高超的演技,成为了世界上第一个网红。世界上所有的国家都被它感动了,除了朝鲜,它正忙于两枚炸弹和一颗卫星而没有离开家。有一段时间,各种关于病毒的谣言,包括谣言,也在互联网上流行起来。我们不会随波逐流,而是将本着实事求是的精神,科学地讨论如何与他们相处。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

前世谁想哭病毒

除了日本爱情动作片的主角,框架和模块是代码农民谈论最多的话题。基于成熟的框架和模块,可以大大提高开发效率和代码质量。简而言之,站在巨人的肩膀上可以更早下班,更少加班。Wannacry也是基于网络攻击框架的第二次开发的结果。它利用美国国家安全局前身留下的非物质文化遗产:永恒蓝模块,为windows smb服务的实施漏洞植入恶意代码,并结合自身的创新:加密用户文件和显示勒索声明,从而诞生了一代网络红色勒索病毒。从病毒本身的设计过程来看,似乎并不需要先进的编码技巧或深厚的理论基础,但这恰恰是值得我们警惕的地方:国安局泄露的攻击模块远不止永恒的蓝色,而且借助现有的攻击框架进行二次开发的难度也很低,因此可以预计,一波大规模的未知病毒正在逼近。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

你觉得很难吗?所谓知己知彼,百战不殆。如果你想死,你必须首先完全了解你的对手,所以让我们进一步了解什么是病毒。病毒如何以危险的方式危害公共安全?你是怎么进入我们的系统的?

什么是病毒其实是老生常谈,经常关注医疗卫生领域的朋友都知道:

病毒是一种基因和蛋白质,它本身不能实现新陈代谢。它通过适当的方式侵入宿主身体,并通过宿主细胞的代谢系统复制和传播。

离题?好了,不要在意这些细节,我们可以换几个词来使用它们:

该病毒由一段可执行代码和数据组成,不能在裸机上运行。它通过适当的渠道入侵主机操作系统,并通过主机系统中的存储和网络进行复制和传播。

沃斯教授告诉我们算法+数据结构=程序,

病毒=代码+数据=算法+数据结构=程序

是的,病毒是一种特殊的计算机程序,广义上称为恶意软件。通常,他们来到这个世界时对人类怀有深深的恶意,他们的行为是不同的。一些人在你的屏幕上画一个圈来诅咒你,一些人从你的设备上窃取私人照片,还有一些人在眨眼之间就把首付转移到你的银行卡上...显然,他们的目标仍然非常一致:危及人类装备和破坏世界和平。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

更进一步,让我们看看病毒是如何入侵操作系统的。病毒有两种入侵方式:主动和被动。所谓的主动攻击是指对目标系统发起扫描和攻击的尝试,通常是远程发起的。在发现你可以吃掉的漏洞后,你会通过各种阴险的手段夺取系统的权威(事实上,大多数技术实现还是很优雅的),然后向主机系统注入恶意代码以等待作恶的机会。对此一无所知的小朋友可以自己在《异形》中弥补人类的寄生过程。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

病毒入侵的另一种方式,我们称之为被动方式。这种方法不需要系统中的漏洞或缺陷,而是需要用户体验、常识或智商上的缺陷。他们通过各种伪装欺骗用户打开或运行自己,包括各种电子邮件、链接、来自未知来源的安装程序等。一旦他们有机会逃跑,他们会悄悄地在你的系统中安营扎寨,留下许多后门,然后做他们想做的任何事情。这种病毒也被称为特洛伊木马。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

如何应对各种病毒威胁在了解了病毒的来龙去脉后,我们可以讨论如何应对各种病毒的无尽威胁。

对于大多数用户来说,良好的使用习惯是第一位的。堡垒经常从内部被征服。无论操作系统多么安全,或者安全机制多么强大,都很难阻止用户自我毁灭。良好的使用习惯最重要的是安全更新,安全更新和安全更新!为什么?这是谈论操作系统漏洞的起源。

漏洞实际上是一种软件缺陷,也称为bug,它是由软件开发人员的疏忽导致程序不能按预期运行而造成的。有各种各样的软件缺陷,其中一些是枯燥的,一些是可爱的,但并不是所有的缺陷都对系统安全构成威胁。在软件正式发布之前,R&D的工作人员和测试人员经过漫长而艰苦的过程后相互伤害,最终通常会达成妥协,从而通过共同消除软件缺陷来解决他们之间的纠纷。然而,总会有一些有着深厚天赋的狡猾的鱼,潜伏在革命队伍中,与成千上万的家庭混在一起。当他们中的一些人被黑客发现并反叛时,借助他们在系统中的有利地位,他们装扮成合法软件,做出送人头和欺骗队友的恶劣行为,成为软件系统的公敌:漏洞。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

软件漏洞通常分为代码实现漏洞和逻辑设计漏洞。代码实现漏洞通常是由开发人员代码编写方法的缺陷造成的,包括缓冲区溢出、格式化字符串、内存越界访问、资源释放和重用等。另一个是逻辑设计漏洞,它在架构或流程设计中存在固有缺陷。例如,可以绕过安全机制,这导致密码检查、权限验证和其他机制很容易被绕过。然而,系统越大、越复杂,就越容易产生这两种漏洞。操作系统是一个极其庞大而复杂的软件系统。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

虽然操作系统的漏洞通常很难完全避免,但是一旦发现漏洞,开发人员就会发布安全更新来尽快解决问题。以该软件为例,针对被利用的中小企业服务漏洞,事实上,早在一个月前,微软就发布了漏洞警告和补丁,并提供了安全更新。开始自动更新并及时修复漏洞的用户可以使用保存的三个比特币来吃火锅和唱歌,而不用担心盗匪。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

因此,请指出:操作系统的安全更新非常重要。无论是个人用户、企业用户还是系统管理员,无论是服务器、台式机还是移动终端,无论是windows、linux还是macos,他们都应该尽快从操作系统制造商那里获得安全更新。

其次,反病毒软件也可以起到一定的增强安全性的作用。大多数反病毒软件可以借助病毒数据库分析和比较现有病毒的特征。一旦发现用户将要运行的程序含有病毒或恶意程序,他们会及时提醒用户,甚至自动删除它们。因此,防病毒软件可以在很大程度上防御以被动方式入侵系统的已知病毒。

那么,所有的病毒威胁都可以通过主动安全地更新和安装防病毒软件来解决吗?不幸的是,情况并非如此。安全更新和反病毒软件对病毒的威胁就像保持健康对疾病的威胁一样,可以大大降低这种可能性,但很难完全避免。为什么?这从0天漏洞开始。

零日漏洞,听起来像一个霸道的名字,似乎给人一种世界末日的感觉。它不是指特定的漏洞或某种漏洞,而是指被黑客发现后立即用来发起攻击的漏洞。这些漏洞没有公开,用户不知道,软件供应商也不知道,因此响应时间为零。因此,对于此类漏洞没有检测工具和修复方法,传统的被动升级防御和病毒特征比较方法也是无用的。一旦它们被用来发动攻击,普通系统就无能为力了。那么,有没有一个安全的操作系统可以抵御零日漏洞?

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

安全操作系统和selinux谈到安全操作系统,总会有很多见解。最流行的是:所有的操作系统都有漏洞,所以没有绝对安全的操作系统;因此,windows、linux和macos都是不安全的。

我说的很有道理,但我无言以对,因为前半句是对本文前半部分的总结,在理论上是正确的,合乎逻辑和自洽的,没有什么可以涂黑的。这句话后半部分的逻辑似乎有点让人头脑发热。如果这是真的,我们不妨试着推广它。例如,任何物质都是有毒的,没有什么是绝对无毒的。吃砷会中毒,喝太多的水也会中毒,所以砷和水一样不安全。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

毒理学有一句名言:所有谈论毒性但不谈论剂量的行为都是流氓行为。同样,任何只谈论操作系统安全性而不谈论架构的行为也是一种欺诈。因此,面对这种流氓行为,我们将认真谈谈操作系统的安全架构。

许多年前,美国国家安全局,永恒蓝色的创始人,开发了一个安全框架来保护自己的系统。许多年后,这个框架通过开源组织,也就是selinux,进入了linux内核。作为世界灾难背后的大老板,selinux为国家安全局定制了什么样的盔甲?

Selinux的全称是安全增强linux,它是对linux的全面安全增强。与发现漏洞和修复漏洞的一般被动攻击模式相比,selinux具有主动防御能力,能够抵抗包括零日漏洞在内的各种攻击。那么selinux是如何做到的呢?

访问控制是操作系统安全系统中的核心和关键机制,它决定了系统中的哪些资源可以被哪些用户以何种方式访问,也就是说,普通用户可以做什么,入侵者可以做什么,应用软件可以做什么,恶意软件可以做什么都由访问控制系统决定。Selinux的核心访问机制是强制访问控制,也称为mac(不要想太多,这不是苹果电脑,也不是网卡地址,这是强制访问控制),selinux的安全功能基于mac。那么,麦克怎么能承担这么重的责任呢?

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

谈到mac强制访问控制,我们不得不说它的前身拥有自主访问控制。自主访问控制也称为dac(自主访问控制)。传统的操作系统,如windows、macos和包括linux在内的各种unix系统,都采用自主访问控制,这将用户(或用户组)简化为一个身份,系统中的资源(如文件)将携带用户身份和相应的访问权限信息,以这种方式赋予不同的用户不同的访问权限。操作系统通过比较用户身份和访问权限信息来确定用户是否可以访问某个资源。例如,你认为你家里的东西只属于你。在发援会看来,只要每个能进屋的人都对这屋里的东西有权力,你开门睡觉、让小偷撬进来拿走金银、让隔壁的老王每天不请自来到你家吃饭都是合法的。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

操作系统也是如此。几乎所有的操作系统都有一个数字,叫做管理员、管理员和root。他们都是系统中拥有无限权力和完全访问任何资源的人。大多数系统服务在管理员授权下运行。如果他们有漏洞,并被劫持做一些他们不应该做的事情,发援会不会阻止他们,因为它不能区分一个行动是正常行为或恶意行为。在它看来,身份是权力的象征。只要你承认你的管理员身份,你所说的一切都是正确的,你所做的一切都是合法的。因此,我们说在dac机制下,不能用来获得管理员权限的漏洞不是好的漏洞,不想获得管理员权限的入侵者也不是好的入侵者。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

那么什么是mac机制呢?与dac中的混乱不同,mac是一个充满秩序的世界,它需要早请示,晚报告,每天每一步都要应用。在mac中,所有的访问计划必须事先写入安全策略,没有明确策略的任何访问都将被禁止。在最后一个例子中,作为房子的主人,你需要能够在家睡觉,你还需要制定一个明确的计划。您需要添加的安全策略如下所示:

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

定义资源类型:床

定义安全域:rest

定义角色:主人

进入规则:允许主人在休息时使用床

如果系统只在您家中的资源访问中添加此安全策略,那么您仍然可以安心地在家睡觉,无论您如何进入您的家,您都将无法移动,触摸任何东西的行为都将被禁止,并且所有被禁止的行为尝试都将被另一个完美的监控系统记录:审计日志。

在理解了这个例子之后,我们可以很容易地理解当我们回到操作系统时,mac是如何保护系统免受安全威胁的:假设我们有一个带有缓冲区溢出漏洞的文件共享服务,它像大多数系统服务一样以管理员权限运行。攻击者精心构建了一个特殊的数据包并将其发送到服务器,从而使易受攻击的服务器的正常执行过程被劫持,管理员密码被修改。在由dac控制的传统操作系统中,一旦攻击生效,管理员密码将被该文件服务器修改,攻击者可以轻松登录系统。在mac系统中,文件服务器的可访问文件受到严格限制,安全策略类似于:

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

允许系统管理员角色运行文件服务器。此过程允许访问共享文件。

安全策略定义了服务可以访问的所有资源。攻击文件服务器后,攻击者想要修改管理员密码。它需要访问密码管理文件,如sam或passwd。因为文件服务器进程只允许访问需要由策略共享的文件,所以对密码管理文件的操作将被拒绝,攻击将无效。在这种情况下,最糟糕的情况是攻击者可能非法访问共享文件,因为它仍然在安全策略允许的范围内。但是,系统级安全漏洞对整个操作系统的影响非常小。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

通过精细划分访问权限,所有应用程序和服务的访问被限制在最低限度,这是强制访问控制的原则,以保护系统免受已知和未知漏洞的影响。

事实上,强制访问控制和自主访问控制并不矛盾。在大多数安全框架中,包括selinux,它们一起是有效的。所有资源(或对象)访问请求必须首先由dac权威机构判断,然后mac安全策略可以在验证后进一步判断。只有同时满足自主访问控制和强制访问控制规则,才能获得访问权限。

selinux中有三种类型的mac策略模型,即te(类型增强)、rbac(角色访问控制)和mls(多级安全)。每种类型的模型都为系统的现有服务和应用程序提供了大量的安全策略。使用selinux的典型服务器操作系统环境在其内核中包含超过100,000个安全策略。那么,有了这么多的安全策略,系统的每一个操作是否都需要大量的策略查询和判断,这使它变得困难和不堪重负?不,因为selinux提供了一种策略缓存机制,称为avc (Vector Cache),它缓存已执行的访问及其判断结果请求,从而大大提高了强制访问控制安全策略判断的效率。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

计算机信息系统的安全级别了解selinux及其强制访问框架后,当您看到nsa在攻击和防御两个方面都有很高的造诣时,您可能会惊讶于美国在信息安全领域的强大实力。然而,在这个时代,当中国有东风在陆地上,航空母舰在海上和北斗,它肯定不会是无效的,在这样一个重要的领域,如信息安全。我国很早就对信息安全领域进行了全面的研究,公安部针对信息安全的各个领域提出了一系列标准。早在gb 17859-1999中,计算机信息系统就根据需要从低到高分为五个等级。在gb/t 20272-2006中,进一步提出了操作系统安全技术的具体要求。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

从第三级国家标准安全开始,要求操作系统提供强制访问控制。除了在selinux中实现各种安全模型架构之外,还根据最小特权原则创造性地引入了分权的概念,将普通操作系统中权限不受控制的管理员按照职责划分为三个角色:系统管理员、安全管理员和审计管理员。系统管理员负责管理系统,即系统中的配置管理,如网络配置、服务启动和停止(安全服务除外)、设备管理等;安全管理员负责立法、制定和加载安全策略以及开放安全服务。审计管理员的职责类似于司法人员的职责,如记录非法访问、关闭安全服务以及在三个角色之间相互限制,这从根本上避免了恶意入侵者通过获得管理员权限来完全控制操作系统。同时,该标准还对用户数据的隐私性和完整性提出了严格的保护要求,并要求操作系统通过安全标签保护用户数据不被非法读取和篡改。除了对访问控制和数据保护有更严格的要求外,国家标准安全等级4还要求设计者正式验证操作系统的安全策略模型和安全功能模块,分析隐藏通道,评估系统抵御攻击的能力,这也是现有操作系统能够达到的最高安全等级。目前,国内操作系统厂商如普化、宁思等已经开发出符合国家标准安全等级4的安全操作系统,其提供的底层安全保护远远高于普通selinux。

从蓝瘦“想哭”到 SELinux 看操作系统安全何在

结论虽然病毒和恶意入侵不仅仅针对操作系统,信息安全是全方位的,所有的安全问题都不能仅仅从操作系统层面解决,操作系统作为所有上层应用的底层软件支撑,承载着所有上层软件的安全机制,与操作系统构建的安全体系是分离的,就像海滩上的城堡,即使它强大,最终也会失去它的基础。(作者东风快车来自普华基础软件R&D部)

标题:从蓝瘦“想哭”到 SELinux 看操作系统安全何在

地址:http://www.ar7y.com/aelxw/6866.html