絕對(duì)不能錯(cuò)過(guò)!五款卓越的開(kāi)源安全工具
譯文【51CTO.com快譯】開(kāi)源是一種奇跡般的產(chǎn)物,如今企業(yè)IT乃至個(gè)人技術(shù)中的眾多重要組成部分皆立足于開(kāi)源軟件。然而,盡管開(kāi)源方案已經(jīng)在網(wǎng)絡(luò)、操作系統(tǒng)與虛擬化領(lǐng)域中得到廣泛應(yīng)用,但大多數(shù)企業(yè)安全平臺(tái)仍然傾向于使用專(zhuān)有型、供應(yīng)商鎖定產(chǎn)品。好消息是,這一切正逐步發(fā)生改變。
如果大家還沒(méi)有考慮過(guò)利用開(kāi)源方案協(xié)助解決安全需求,那這絕對(duì)是一大憾事——您已經(jīng)在無(wú)形中錯(cuò)過(guò)了眾多能夠有效保護(hù)您網(wǎng)絡(luò)、主機(jī)與數(shù)據(jù)的可行工具。事實(shí)上,相當(dāng)一部分開(kāi)源安全工具來(lái)自值得依賴的知名項(xiàng)目,包括眾多領(lǐng)先云服務(wù)運(yùn)營(yíng)商及安全廠商。其中不少甚至被用于規(guī)模最大且最具挑戰(zhàn)的測(cè)試環(huán)境當(dāng)中。
開(kāi)源社區(qū)一直在為安全專(zhuān)業(yè)人士提供極為豐富的解決方案資源,其中最為知名的當(dāng)數(shù)Metasploit這款開(kāi)源滲透測(cè)試框架。然而對(duì)于研究人員、調(diào)查人員乃至分析師,開(kāi)源社區(qū)亦給出了其它有針對(duì)性且效果拔群的成果。在今天的文章中,我們將分享五款不容錯(cuò)過(guò)的卓越開(kāi)源安全工具,希望能夠幫助各位IT管理員與軟件開(kāi)發(fā)者找到新的安全保障實(shí)現(xiàn)途徑。
Commit Watcher:檢查代碼庫(kù)中的秘密
開(kāi)源代碼庫(kù)中不應(yīng)存在秘密,但仍有不少不情愿的開(kāi)發(fā)者喜歡搞這種小伎倆。事實(shí)上,此前就曾經(jīng)出現(xiàn)過(guò)將代碼庫(kù)上傳至GitHub,而導(dǎo)致私有AWS密鑰、硬編碼密碼或API令牌等秘密遭到泄露的情況。
為解決這一難題,我們可以利用Commit Watcher這款開(kāi)源工具查找公共與私有Git庫(kù)中的潛在敏感信息。開(kāi)發(fā)者與管理員皆可利用Commit Watcher監(jiān)控自己的項(xiàng)目,以便確保其中不存在任何不應(yīng)進(jìn)行提交的秘密憑證。例如,當(dāng)某一公共項(xiàng)目收到一條“fixes XSS attack(修復(fù)XSS攻擊)”的提交更新時(shí),Commit Watcher會(huì)向開(kāi)發(fā)者通報(bào)具體提交者身份并捕捉一份新的依賴性版本。
Commit Watcher能夠定期輪詢項(xiàng)目以查找新提交內(nèi)容,同時(shí)搜索與項(xiàng)目規(guī)則中定義的任何關(guān)鍵字與短語(yǔ)相匹配的內(nèi)容。具體規(guī)則包括文件名、代碼模式、注釋與作者名等正則表達(dá)。Commit Watcher擁有數(shù)十項(xiàng)預(yù)配置規(guī)則,可用于查找AWS憑證、Salesforce憑證、SSH密鑰、API密鑰以及數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)文件等。
Jak:對(duì)Git中的秘密進(jìn)行加密
我們當(dāng)然不應(yīng)在代碼中納入秘密憑證。相反,大家應(yīng)將其保留在配置文件中,而后再將該config文件添加至.gitignore列表以避免其受到提交內(nèi)容的影響。支付系統(tǒng)、郵件系統(tǒng)以及虛擬機(jī)等應(yīng)當(dāng)以手動(dòng)方式直接部署在應(yīng)用服務(wù)器上,而與之關(guān)聯(lián)的密鑰則必須同這些源代碼以完全隔離的方式管理。而這就帶來(lái)了新的挑戰(zhàn)——我們?cè)撊绾翁幚砉蚕砻荑€。
下面來(lái)看一種常見(jiàn)場(chǎng)景:團(tuán)隊(duì)中的一名成員從代碼庫(kù)下載源代碼,并通過(guò)帶外方法收取密鑰——具體方法可能是快速但管理水平較低的純文本郵件、聊天消息、U盤(pán)或者手寫(xiě)便箋。那么,我們能否找到一種方案將這些秘密與源代碼保存在存儲(chǔ)庫(kù)內(nèi),從而在輕松共享的同時(shí)通過(guò)加密避免其暴露?
Python項(xiàng)目Jak就能夠很好地解決這個(gè)問(wèn)題。其允許開(kāi)發(fā)者向Git內(nèi)提交經(jīng)過(guò)加密的敏感文件版本。相較于傳統(tǒng)的.gitignore,開(kāi)發(fā)者能夠在jakfile中列出敏感文件,而Jak則在提交時(shí)確保僅將該文件的加密版本上傳至存儲(chǔ)庫(kù)。Jak負(fù)責(zé)處理必要的加密與解密流程,且可自動(dòng)生成并更新加密密鑰。一切皆在命令行中實(shí)現(xiàn),因此開(kāi)發(fā)者無(wú)需在提交前切換窗口以完成文件加密或者在下載前進(jìn)行文件解密。
雖然現(xiàn)在直接將Jak引入生產(chǎn)環(huán)境還為時(shí)過(guò)早,但確實(shí)有越來(lái)越多的開(kāi)發(fā)者開(kāi)始使用這款工具。事實(shí)上,安全初創(chuàng)企業(yè)Dispel公司就在加以使用。
Yara:利用模式匹配機(jī)制找出問(wèn)題
惡意軟件研究人員熱衷于使用Yara,這是一款用于發(fā)現(xiàn)并分類(lèi)惡意文件樣本的開(kāi)源工具。除此之外,其亦可實(shí)現(xiàn)多種事件響應(yīng)與取證調(diào)查功能。用戶可創(chuàng)建規(guī)則——規(guī)則由文本字符串、十六進(jìn)制值或正則表達(dá)式組成——從而利用Yara對(duì)可疑目錄及文件進(jìn)行查找與匹配。另外,Yara也可用于掃描運(yùn)行中的各進(jìn)程。
通過(guò)利用Yara進(jìn)行文件分析,卡巴斯基實(shí)驗(yàn)室與AlienVault的研究人員們得以成功將索尼入侵案與其它一些攻擊活動(dòng)關(guān)聯(lián)起來(lái)。
目前的一類(lèi)常見(jiàn)攻擊手段在于替換系統(tǒng)文件以在設(shè)備中建立后門(mén)。監(jiān)控系統(tǒng)文件的方法之一是查看其MD5與SHA-1哈希值,另一種方法則是為系統(tǒng)文件中的多個(gè)字符串或值設(shè)置Yara規(guī)則并進(jìn)行定期掃描。如果未能掃描到匹配項(xiàng),則意味著文件已遭修改。另外,如果攻擊者已經(jīng)將命令shell的副本上傳至未知位置,Yara也能夠順利找到這些副本。
除了預(yù)配置與自定義規(guī)則外,Yara還可利用開(kāi)源反病毒工具ClamAV中的病毒簽名文件以及YaraRules庫(kù)中的規(guī)則集。這套庫(kù)包含大量用于檢測(cè)已知標(biāo)記惡意進(jìn)程的預(yù)定義規(guī)則。其亦可利用VIrusTotal私有API以設(shè)置觸發(fā)條件,從而將環(huán)境掃描中發(fā)現(xiàn)的匹配文件上傳至VirusTotal的惡意軟件數(shù)據(jù)庫(kù)。Yara本身并非必須運(yùn)行在命令行界面中; 其擁有一套Python庫(kù)以將其集成于Python腳本內(nèi)。
Yara還能夠在許可外位置(例如出站郵件附件)內(nèi)檢測(cè)文件變更或者惡意模式(包括社保號(hào)、管理憑證等)。由于基于簽名的檢測(cè)機(jī)制功能有限,所以單純依靠Yara查找惡意文件可能并不可行。但考慮到其出色的靈活性,我們?nèi)匀豢梢岳闷鋵?shí)現(xiàn)多種重要的安全保護(hù)工作。
ProcFilter: 利用模式匹配阻止問(wèn)題
Yara是一款極為出色的取證調(diào)查工具與事件響應(yīng)工具,可供用戶在感染狀況出現(xiàn)后進(jìn)行文件分析。然而,單純利用Yara尚不足以主動(dòng)預(yù)防各類(lèi)已知威脅。在這種情況下,大家可以利用由GoDaddy開(kāi)發(fā)的開(kāi)源項(xiàng)目ProcFilter,其能夠在Windows環(huán)境下有效解決此類(lèi)挑戰(zhàn)。ProcFilter允許大家利用Yara規(guī)則檢測(cè)運(yùn)行中的各進(jìn)程,同時(shí)基于匹配情況阻斷或者記錄可執(zhí)行文件(并隔離關(guān)聯(lián)文件)。
ProcFilter可作為Windows服務(wù)運(yùn)行并通過(guò)微軟Event Tracing for Windows(簡(jiǎn)稱(chēng)ETW)API實(shí)現(xiàn)集成,因此其可直接將活動(dòng)記錄在Windows Event Log當(dāng)中。這一集成能力亦意味著ProcFilter能夠利用塊、日志或者隔離值進(jìn)行規(guī)則創(chuàng)建,并在符合匹配條件時(shí)執(zhí)行相應(yīng)操作。ProcFilter亦可通過(guò)配置在進(jìn)程創(chuàng)建或中止時(shí)掃描文件與內(nèi)存,或者在加載可執(zhí)行鏡像時(shí)觸發(fā)。
ProcFilter的設(shè)計(jì)目標(biāo)并非取代我們的現(xiàn)有反惡意軟件解決方案,但其能夠切實(shí)幫助大家清除特定已知威脅,例如針對(duì)其它同級(jí)組織的釣魚(yú)攻擊。如果其中的團(tuán)隊(duì)共享了攻擊活動(dòng)的Yara簽名以幫助其他組織避免遭遇同樣的問(wèn)題,大家則可利用ProcFilter在收到的郵件消息及承載這些消息的數(shù)據(jù)塊內(nèi)查找匹配結(jié)果。或者,如果大家希望找到誘導(dǎo)性Word、Excel、PowerPoint及Adobe文件,ProcFilter亦可查找并記錄這些應(yīng)用程序所產(chǎn)生的全部子進(jìn)程。
OSquery:對(duì)端點(diǎn)的系統(tǒng)狀態(tài)加以查詢
大家可以設(shè)想一下,如果您的Windows、MacOS以及Linux端點(diǎn)內(nèi)存在惡意進(jìn)程、流氓插件或者軟件安全漏洞,那么我們?cè)撊绾瓮ㄟ^(guò)簡(jiǎn)單編寫(xiě)一條SQL查詢對(duì)這些問(wèn)題進(jìn)行定位?事實(shí)上,這正是OSquery的長(zhǎng)項(xiàng)所在。這款由Facebook公司工程師們開(kāi)發(fā)的開(kāi)源工具能夠收集多種操作系統(tǒng)信息,具體包括運(yùn)行進(jìn)程數(shù)量、已加載內(nèi)核模塊、開(kāi)放網(wǎng)絡(luò)連接數(shù)、瀏覽器插件、硬件事件以及關(guān)系型數(shù)據(jù)庫(kù)內(nèi)的文件散列等等。如果大家能夠編寫(xiě)SQL查詢,即可借此輕松為安全問(wèn)題找到答案——而無(wú)需任何更為復(fù)雜的編碼操作。
舉例來(lái)說(shuō),以下查詢即可監(jiān)聽(tīng)各網(wǎng)絡(luò)端口上的全部進(jìn)程:
SELECT DISTINCT process.name, listening.port, listening.address, process.pid FROM processes AS process JOIN listening_ports AS listening ON process.pid = listening.pid;
以下查詢則可找到地址解析協(xié)議(Address Resolution Protocl,簡(jiǎn)稱(chēng)ARP)緩存內(nèi)的異常狀況,其中包含有與IP地址及其解析后得出的以太網(wǎng)物理地址信息:
SELECT address, mac, COUNT (mac)ASmac_count FROM arp_cache GROUP BY mac HAVING COUNT(mac)>1;
這種作法顯然較直接在Python環(huán)境下進(jìn)行編碼要簡(jiǎn)單得多。QSquery能夠以極為直觀且優(yōu)雅的方式解決這一重要難題,還因此獲得了InfoWorld網(wǎng)站評(píng)出的年度技術(shù)大獎(jiǎng)。此工具中的組件包括QSqueryi(一套交互式shell,可與PowerShell配合使用)以及QSqueryd(一款守護(hù)程序,負(fù)責(zé)執(zhí)行底層主機(jī)監(jiān)控并允許用戶進(jìn)行查詢計(jì)劃設(shè)計(jì))。
誠(chéng)然,出于對(duì)成熟度及技術(shù)支持等問(wèn)題的考量,很多IT管理員在企業(yè)環(huán)境中無(wú)法使用開(kāi)源安全工具。但必須承認(rèn),阻止大家選擇開(kāi)源方案的核心因素在于信任缺失。企業(yè)可能不希望讓開(kāi)發(fā)者們利用那些其毫不了解的解決方案保護(hù)自己皇冠上的寶貴明珠。
今天文章中介紹的各款開(kāi)源安全項(xiàng)目則皆來(lái)自知名且值得信賴的業(yè)界大廠,因此其絕對(duì)值得大家進(jìn)行嘗試并加以實(shí)際部署。其中每一款工具都能夠幫助您解決實(shí)際面臨的特定安全問(wèn)題,且所需投入亦相當(dāng)有限,因此進(jìn)行嘗試絕對(duì)對(duì)您有利無(wú)害。相信我,它們一定能夠?yàn)槟沫h(huán)境安全性保障及相關(guān)工作方式帶來(lái)巨大而積極的助益。
原文標(biāo)題:5 open source security tools too good to ignore,作者:Fahmida Y. Rashid
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】