6

Linux恶意软件兴起:保护开源软件(OSS)的九个技巧

 1 year ago
source link: https://www.51cto.com/article/719486.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Linux恶意软件兴起:保护开源软件(OSS)的九个技巧

作者:小二郎 2022-09-23 11:44:54
“Linux是市场上最安全的操作系统”;多年来,这一直是开源平台的最佳卖点之一。
c6226ce217417a4a0979114dfaec6beeb34f1a.png

“Linux是市场上最安全的操作系统”;多年来,这一直是开源平台的最佳卖点之一。然而,与任何有关技术的事物一样,被犯罪分子瞄准只是时间问题。每个操作系统、软件和服务都是如此。在这一点上,说Linux对恶意软件免疫是绝对错误的。

可悲的事实是,只要它连接到网络,就容易受到攻击。您使用什么操作系统并不重要——它运行的时间越长,就越有可能成为目标。Linux也不例外。

过去几年里,考虑到企业业务需要依赖包括Linux操作系统在内的开源技术谋生,Linux系统被网络犯罪分子盯上也就不足为奇了。事实上,如果大胆预测的话,针对Linux 部署的恶意软件的兴起将在未来十年变得更加惊人。

幸运的是,开源开发人员可以非常快速地响应此类恶意软件攻击——漏洞通常会在数小时或数天内被发现并修补。这种敏捷性是开源软件的优点之一。

然而,用户和管理员也承担着责任。我们都习惯认为Linux是一个“一劳永逸”的平台,但事实却并非如此。简而言之,它是软件,不知道也不关心潜伏在黑客内心深处的危险,它只是根据其部署工作而已。

话虽如此,管理员和用户应该怎么做才能对抗这种不断加剧的恶意软件浪潮呢?

如何保护您的Linux操作系统

1、更新,更新,更新

不幸的现实是,我们的环境中充斥着严重过时的Linux系统,这会导致操作系统和安装的软件中布满漏洞。

您需要养成定期检查更新的习惯。建议您定期在Linux设备上运行更新检查,并在更新可用时立即应用。对于台式机来说,这是一个很好的策略。对于服务器,至少每周检查一次,并确保在必要时可以重新启动服务器以应用这些更新。

2、选择正确的发行版

Linux发行版的数量远超出您的想象。尽管其中一些非常小众,但大多数都是通用的。切勿将通用操作系统用作服务器。

如果您正在寻找服务器操作系统,请坚持使用已知实体,例如Ubuntu Server、Debian Server、RHEL、SUSE、Fedora Server、AlmaLinux和Rocky Linux。如果您正在寻找用于容器的操作系统,请考虑使用特定于容器的发行版,例如Red Hat OpenShift。至于台式机,建议您坚持使用维护良好并定期发布可靠更新的发行版,例如Ubuntu、Linux Mint、Pop!_OS和Fedora。

3、明智且负责任地部署

部署Linux时,请确保您以及您的用户和管理团队精通该操作系统。不要仅仅假设您可以出于任何目的部署任何Linux发行版,而无需费心了解平台的细节,并假设一切都会正常运行。您需要了解Linux安全性,了解哪些工具最适合该任务,并且永远不要假设您可以在不接触操作系统的情况下进行部署。

曾几何时,您可以“set and forget”(设置好就忘记)Linux。但那个时候已经过去了。如果您想确保您的Linux部署免受恶意软件攻击,请及时了解并警惕漏洞。您知道的越多,您的准备工作也就越充分。

4、阅读日志文件

日志包含大量信息,Linux提供了隐喻的大量日志可供扫描。只要看看/var/log目录,您就会明白我的意思。问题是,系统上有多少日志文件并不重要:如果您不阅读它们,它们就毫无价值。

养成阅读日志文件的习惯。如果您不想手动梳理这些日志,可以考虑使用能帮您完成任务的工具,例如Graylog 2、Logcheck、Logwatch和Logstash等。

5、部署扫描软件

多年来,我曾对在Linux上使用扫描软件的想法嗤之以鼻。现在?我完全赞成!我并不是说您应该立即安装防病毒扫描程序(尽管它不会造成伤害),但管理员肯定应该安装rootkit扫描程序并使用工具来扫描邮件服务器。最终用户也可以从ClamAV之类的工具中受益,但它是相当手动的,因此您的最终用户必须接受培训以了解如何使用它。

6、限制用户访问

不要让任何用户SSH(Secure Shell,安全外壳,一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务)进入您的服务器。只允许绝对需要访问权限的人使用Secure Shell来访问您的服务器。同时,设置只允许SSH密钥访问并且root用户被锁定在SSH身份验证之外的策略。

7、采用强密码策略

说到用户,您必须为Linux设置一个强密码策略。强密码是必须的。但是,如果您的服务器和台式机不需要强密码,您就无法实施这样的策略。以下是借助PAM(Pluggable Authentication Modules)在Ubuntu/Debian 设备上启用强密码的分步指南

虽然PAM已经安装,但您必须添加一个附加模块。为此,请打开终端窗口并发出以下命令:

sudo apt-get install libpam-cracklib

这就是要安装的全部内容。

配置libpam_cracklib

此设置的配置文件是/etc/pam.d/common-password。在进行任何更改之前,让我们复制该文件。发出命令:

sudo cp /etc/pam.d/common-password /root/

将文件的工作副本隐藏起来,在您选择的编辑器中打开文件并查找以下行:

password requisite pam_cracklib.so retry=3 minlen=8 difok=3

我们将使用以下选项进行设置:

· minlen=建立与密码长度相关的复杂性度量。

· lcredit=设置所需小写字母的最小数量。

· ucredit=设置所需大写字母的最小数量。

· dcredit=设置所需的最小位数。

· ocredit=设置所需其他字符的最小数量。

· difok=设置必须不同于之前密码的字符数。

这是配置变得有点棘手的地方。您可能认为minlen是密码的最小长度。实际上,minlen是密码被认为成功之前必须达到的最低复杂度分数。其工作原理是密码中的某些字符不止一次计入密码复杂性。为了创建这个分数,复杂性是通过几个步骤来衡量的:

· 密码中的每个字符都会加一分(无论类型如何)。

· 每个小写字母加一分(最高为lcredit的值)。

· 每个大写字母加一分(最高为ucredit的值)。

· 每个数字加一分(最高为dcredit的值)。

· 每个特殊字符加一分(最高为ocredit的值)。

您还可以将这些值设置为负数。负数表示类的最小值(类是lcredit、ucredit、dcredit等),而正值表示类的最大值。

举个例子:

password requisite pam_cracklib.so try_first_pass retry=3 
minlength=16lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=4 
reject_username

上述设置将确保密码的复杂度得分为16,并且每个类别中至少包含一个字符。此外,还增加了reject_username,以防止用户将其用户名设置为密码。

8、定期进行渗透测试

您还应该养成在所有Linux系统上运行渗透测试的习惯。确实,使用Kali Linux之类的大型工具包可能会拖慢系统运行速度,但是当您发现系统上迄今为止未知的漏洞并修补它们时,您会发现一切都是值得的。它会帮您避免一场灾难。

9、不要禁用SELinux,并使用你的防火墙

我猜,Linux管理员在基于RHEL的发行版上做的第一件事就是禁用SELinux。千万别这样做!SELinux的存在是有原因的。确实,它可能比较麻烦,但子系统提供的安全性是值得的。关于SELinux有很多东西要学,但是考虑这个安全系统是绝对必须的,而且越早学习,您就可以越早利用它提升安全性。

同时,使用您的防火墙。了解您选择的发行版使用的任何工具——例如UFW或FirewallD——并熟悉它的工作原理。不要禁用它,而是启用它。该防火墙可能是您数据安全的最后堡垒。 所以为什么要忽略它呢?

以上就是在Linux上避免恶意软件的最佳建议。当然,这并不是万能的,但它可以在很大程度上防止您或您的公司遭受灾难。

本文翻译自:https://www.techrepublic.com/article/linux-malware-tips-securing-oss/如若转载,请注明原文地址。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK