我曾经做过一件引人入胜的工作,其中涉及为我们将用于安全性项目的系统设计强化程序。 大概是15年前了,不仅我使用的Linux发行版的指南不多了,而且我们的工作还是相当利基的。 一开始,我想我以为我可以编写一个脚本来关闭一些守护进程1的漏洞,这些守护进程1一直无缘无故运行:httpd,sendmail和类似的东西。 当然,这确实涉及到这一点,但是后来我意识到还有更多事情要做,并开始潜入兔子洞。
首先是内核。 我最终手工制作了一个内核,删除了我认为不太可能需要的所有内容,然后重新启动了几次,发现系统无法启动,因为我认为我理解的东西比我意识到的还要深奥。 。 我不是内核开发人员,这是那些人的熟练程度的有益教训。 至少在我这样做的时候,代码和选项少于今天。 另一方面,我不得不退回到所需的状态,现在开始使用的精简内核和系统比那时还多。
我最后留下的另一篇文章是修剪已安装的操作系统应用程序和关联的实用程序。 再说一次,现在有比现在更容易使用的缩减选项,但是我也有一些奇怪的要求-例如,我认为我们需要Java,它具有或具有…。 好吧,我们说很多依赖。 大多数现代Linux发行版3都是通过安装大量组件开始的,因此您可以快速上手,而不必担心试图为要运行的每个外部软件确定依赖性。
这是可以理解的,但是当我们这样做时,我们需要意识到我们正在做出可用性/安全性的权衡。 5添加到系统中的每个实用程序,每个库,每个可执行文件都会增加攻击面和漏洞的可能性。
问题不仅仅在于您引入了漏洞,而且一旦存在漏洞,它们往往就会留在那里。 不仅是您不需要的代码,而且,更糟糕的是,您不需要的代码。 这是一个罕见但值得称赞的黑客6 ,他花时间研究旧代码并删除不再需要的依赖项。 这是一项无聊的,复杂的任务,通常更容易将cruft 7保留在原处,并为下一发行版提供一个稍大的软件包。
怎么知道个人隐私被泄露? 有时,代码会被重构和剥离:最常见的是与安全性相关的代码。 这是一件很好的事情,但事实证明这还远远不够。 我写这篇文章的原因是因为The Register中有关beep
命令的最新报道 。 该命令使用了大多数与PC兼容的主板上安装的小扬声器发出的声音。 当时它是一个有用的小工具,但是由于大多数主板不附带相关的硬件,因此它是无关紧要的。 问题8是,在系统上安装和使用beep
命令会导致信息泄漏给缺少相关权限的用户。 这可能是一件非常糟糕的事情。 有一个很好的,简要概述这里 。
现在,默认情况下,在我正在撰写本文的系统(Fedora 27)上,我所使用的发行版中未默认安装beep
,尽管它可以从我启用的标准存储库之一中轻松安装。 可以缓解一下,尽管这无论如何对于这台机器而言并不是攻击的载体。
什么,不过, 我已经安装了该系统,该系统是脆弱的,我从来没有想过要检查? 忘记我不需要打开的所有内核参数,但这些内核参数已由分发启用,以便于在多个系统中使用。 忘记我每天安装和使用的应用程序。 甚至忘了我曾经安装并尝试删除的应用程序。 那我什至不知道的应用程序呢?我从未意识到的应用程序会影响系统的安全状态吗? 我不知道,几乎找不到答案。
该系统不运行关键业务操作。 当我第一次安装它并安装操作系统时,我决定改用可用性,并准备将其丢弃9 ,如果遇到折衷的问题,请重新开始。 但是,数百万其他系统并非如此。 我敦促您考虑系统上正在运行的东西,系统上已安装的东西以及真正需要的东西。 修补需要的内容,删除不需要的内容。 是时候进行Spring大扫除了。 10
1.我这样想拼写这个词的守护进程,但我认为这可能是考虑我的中古英语的痴迷太远。 2
如何知道自己的隐私是否泄露、 3.在这里,我对(GNU)Linux最为感兴趣,因为我是一个坚决的开源倡导者,并且因为它是我最了解的操作系统。 4
8.除了二阶问题以外,建议的修补程序似乎使最初的问题更加严重…
本文最初出现在安全博客Alice,Eve和Bob上 ,经许可重新发布。
翻译自: https://opensource.com/article/18/5/whats-lurking-your-system
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态