Linux惡意軟件興起:保護(hù)開(kāi)源軟件(OSS)的九個(gè)技巧
“Linux是市場(chǎng)上最安全的操作系統(tǒng)”;多年來(lái),這一直是開(kāi)源平臺(tái)的最佳賣點(diǎn)之一。然而,與任何有關(guān)技術(shù)的事物一樣,被犯罪分子瞄準(zhǔn)只是時(shí)間問(wèn)題。每個(gè)操作系統(tǒng)、軟件和服務(wù)都是如此。在這一點(diǎn)上,說(shuō)Linux對(duì)惡意軟件免疫是絕對(duì)錯(cuò)誤的。
可悲的事實(shí)是,只要它連接到網(wǎng)絡(luò),就容易受到攻擊。您使用什么操作系統(tǒng)并不重要——它運(yùn)行的時(shí)間越長(zhǎng),就越有可能成為目標(biāo)。Linux也不例外。
過(guò)去幾年里,考慮到企業(yè)業(yè)務(wù)需要依賴包括Linux操作系統(tǒng)在內(nèi)的開(kāi)源技術(shù)謀生,Linux系統(tǒng)被網(wǎng)絡(luò)犯罪分子盯上也就不足為奇了。事實(shí)上,如果大膽預(yù)測(cè)的話,針對(duì)Linux 部署的惡意軟件的興起將在未來(lái)十年變得更加驚人。
幸運(yùn)的是,開(kāi)源開(kāi)發(fā)人員可以非常快速地響應(yīng)此類惡意軟件攻擊——漏洞通常會(huì)在數(shù)小時(shí)或數(shù)天內(nèi)被發(fā)現(xiàn)并修補(bǔ)。這種敏捷性是開(kāi)源軟件的優(yōu)點(diǎn)之一。
然而,用戶和管理員也承擔(dān)著責(zé)任。我們都習(xí)慣認(rèn)為L(zhǎng)inux是一個(gè)“一勞永逸”的平臺(tái),但事實(shí)卻并非如此。簡(jiǎn)而言之,它是軟件,不知道也不關(guān)心潛伏在黑客內(nèi)心深處的危險(xiǎn),它只是根據(jù)其部署工作而已。
話雖如此,管理員和用戶應(yīng)該怎么做才能對(duì)抗這種不斷加劇的惡意軟件浪潮呢?
如何保護(hù)您的Linux操作系統(tǒng)
1、更新,更新,更新
不幸的現(xiàn)實(shí)是,我們的環(huán)境中充斥著嚴(yán)重過(guò)時(shí)的Linux系統(tǒng),這會(huì)導(dǎo)致操作系統(tǒng)和安裝的軟件中布滿漏洞。
您需要養(yǎng)成定期檢查更新的習(xí)慣。建議您定期在Linux設(shè)備上運(yùn)行更新檢查,并在更新可用時(shí)立即應(yīng)用。對(duì)于臺(tái)式機(jī)來(lái)說(shuō),這是一個(gè)很好的策略。對(duì)于服務(wù)器,至少每周檢查一次,并確保在必要時(shí)可以重新啟動(dòng)服務(wù)器以應(yīng)用這些更新。
2、選擇正確的發(fā)行版
Linux發(fā)行版的數(shù)量遠(yuǎn)超出您的想象。盡管其中一些非常小眾,但大多數(shù)都是通用的。切勿將通用操作系統(tǒng)用作服務(wù)器。
如果您正在尋找服務(wù)器操作系統(tǒng),請(qǐng)堅(jiān)持使用已知實(shí)體,例如Ubuntu Server、Debian Server、RHEL、SUSE、Fedora Server、AlmaLinux和Rocky Linux。如果您正在尋找用于容器的操作系統(tǒng),請(qǐng)考慮使用特定于容器的發(fā)行版,例如Red Hat OpenShift。至于臺(tái)式機(jī),建議您堅(jiān)持使用維護(hù)良好并定期發(fā)布可靠更新的發(fā)行版,例如Ubuntu、Linux Mint、Pop!_OS和Fedora。
3、明智且負(fù)責(zé)任地部署
部署Linux時(shí),請(qǐng)確保您以及您的用戶和管理團(tuán)隊(duì)精通該操作系統(tǒng)。不要僅僅假設(shè)您可以出于任何目的部署任何Linux發(fā)行版,而無(wú)需費(fèi)心了解平臺(tái)的細(xì)節(jié),并假設(shè)一切都會(huì)正常運(yùn)行。您需要了解Linux安全性,了解哪些工具最適合該任務(wù),并且永遠(yuǎn)不要假設(shè)您可以在不接觸操作系統(tǒng)的情況下進(jìn)行部署。
曾幾何時(shí),您可以“set and forget”(設(shè)置好就忘記)Linux。但那個(gè)時(shí)候已經(jīng)過(guò)去了。如果您想確保您的Linux部署免受惡意軟件攻擊,請(qǐng)及時(shí)了解并警惕漏洞。您知道的越多,您的準(zhǔn)備工作也就越充分。
4、閱讀日志文件
日志包含大量信息,Linux提供了隱喻的大量日志可供掃描。只要看看/var/log目錄,您就會(huì)明白我的意思。問(wèn)題是,系統(tǒng)上有多少日志文件并不重要:如果您不閱讀它們,它們就毫無(wú)價(jià)值。
養(yǎng)成閱讀日志文件的習(xí)慣。如果您不想手動(dòng)梳理這些日志,可以考慮使用能幫您完成任務(wù)的工具,例如Graylog 2、Logcheck、Logwatch和Logstash等。
5、部署掃描軟件
多年來(lái),我曾對(duì)在Linux上使用掃描軟件的想法嗤之以鼻?,F(xiàn)在?我完全贊成!我并不是說(shuō)您應(yīng)該立即安裝防病毒掃描程序(盡管它不會(huì)造成傷害),但管理員肯定應(yīng)該安裝rootkit掃描程序并使用工具來(lái)掃描郵件服務(wù)器。最終用戶也可以從ClamAV之類的工具中受益,但它是相當(dāng)手動(dòng)的,因此您的最終用戶必須接受培訓(xùn)以了解如何使用它。
6、限制用戶訪問(wèn)
不要讓任何用戶SSH(Secure Shell,安全外殼,一種網(wǎng)絡(luò)安全協(xié)議,通過(guò)加密和認(rèn)證機(jī)制實(shí)現(xiàn)安全的訪問(wèn)和文件傳輸?shù)葮I(yè)務(wù))進(jìn)入您的服務(wù)器。只允許絕對(duì)需要訪問(wèn)權(quán)限的人使用Secure Shell來(lái)訪問(wèn)您的服務(wù)器。同時(shí),設(shè)置只允許SSH密鑰訪問(wèn)并且root用戶被鎖定在SSH身份驗(yàn)證之外的策略。
7、采用強(qiáng)密碼策略
說(shuō)到用戶,您必須為L(zhǎng)inux設(shè)置一個(gè)強(qiáng)密碼策略。強(qiáng)密碼是必須的。但是,如果您的服務(wù)器和臺(tái)式機(jī)不需要強(qiáng)密碼,您就無(wú)法實(shí)施這樣的策略。以下是借助PAM(Pluggable Authentication Modules)在Ubuntu/Debian 設(shè)備上啟用強(qiáng)密碼的分步指南
安裝
雖然PAM已經(jīng)安裝,但您必須添加一個(gè)附加模塊。為此,請(qǐng)打開(kāi)終端窗口并發(fā)出以下命令:
sudo apt-get install libpam-cracklib
這就是要安裝的全部?jī)?nèi)容。
配置libpam_cracklib
此設(shè)置的配置文件是/etc/pam.d/common-password。在進(jìn)行任何更改之前,讓我們復(fù)制該文件。發(fā)出命令:
sudo cp /etc/pam.d/common-password /root/
將文件的工作副本隱藏起來(lái),在您選擇的編輯器中打開(kāi)文件并查找以下行:
password requisite pam_cracklib.so retry=3 minlen=8 difok=3
我們將使用以下選項(xiàng)進(jìn)行設(shè)置:
· minlen=建立與密碼長(zhǎng)度相關(guān)的復(fù)雜性度量。
· lcredit=設(shè)置所需小寫字母的最小數(shù)量。
· ucredit=設(shè)置所需大寫字母的最小數(shù)量。
· dcredit=設(shè)置所需的最小位數(shù)。
· ocredit=設(shè)置所需其他字符的最小數(shù)量。
· difok=設(shè)置必須不同于之前密碼的字符數(shù)。
這是配置變得有點(diǎn)棘手的地方。您可能認(rèn)為minlen是密碼的最小長(zhǎng)度。實(shí)際上,minlen是密碼被認(rèn)為成功之前必須達(dá)到的最低復(fù)雜度分?jǐn)?shù)。其工作原理是密碼中的某些字符不止一次計(jì)入密碼復(fù)雜性。為了創(chuàng)建這個(gè)分?jǐn)?shù),復(fù)雜性是通過(guò)幾個(gè)步驟來(lái)衡量的:
· 密碼中的每個(gè)字符都會(huì)加一分(無(wú)論類型如何)。
· 每個(gè)小寫字母加一分(最高為lcredit的值)。
· 每個(gè)大寫字母加一分(最高為ucredit的值)。
· 每個(gè)數(shù)字加一分(最高為dcredit的值)。
· 每個(gè)特殊字符加一分(最高為ocredit的值)。
您還可以將這些值設(shè)置為負(fù)數(shù)。負(fù)數(shù)表示類的最小值(類是lcredit、ucredit、dcredit等),而正值表示類的最大值。
舉個(gè)例子:
password requisite pam_cracklib.so try_first_pass retry=3
minlength=16lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=4
reject_username
上述設(shè)置將確保密碼的復(fù)雜度得分為16,并且每個(gè)類別中至少包含一個(gè)字符。此外,還增加了reject_username,以防止用戶將其用戶名設(shè)置為密碼。
8、定期進(jìn)行滲透測(cè)試
您還應(yīng)該養(yǎng)成在所有Linux系統(tǒng)上運(yùn)行滲透測(cè)試的習(xí)慣。確實(shí),使用Kali Linux之類的大型工具包可能會(huì)拖慢系統(tǒng)運(yùn)行速度,但是當(dāng)您發(fā)現(xiàn)系統(tǒng)上迄今為止未知的漏洞并修補(bǔ)它們時(shí),您會(huì)發(fā)現(xiàn)一切都是值得的。它會(huì)幫您避免一場(chǎng)災(zāi)難。
9、不要禁用SELinux,并使用你的防火墻
我猜,Linux管理員在基于RHEL的發(fā)行版上做的第一件事就是禁用SELinux。千萬(wàn)別這樣做!SELinux的存在是有原因的。確實(shí),它可能比較麻煩,但子系統(tǒng)提供的安全性是值得的。關(guān)于SELinux有很多東西要學(xué),但是考慮這個(gè)安全系統(tǒng)是絕對(duì)必須的,而且越早學(xué)習(xí),您就可以越早利用它提升安全性。
同時(shí),使用您的防火墻。了解您選擇的發(fā)行版使用的任何工具——例如UFW或FirewallD——并熟悉它的工作原理。不要禁用它,而是啟用它。該防火墻可能是您數(shù)據(jù)安全的最后堡壘。 所以為什么要忽略它呢?
以上就是在Linux上避免惡意軟件的最佳建議。當(dāng)然,這并不是萬(wàn)能的,但它可以在很大程度上防止您或您的公司遭受災(zāi)難。
本文翻譯自:https://www.techrepublic.com/article/linux-malware-tips-securing-oss/如若轉(zhuǎn)載,請(qǐng)注明原文地址。