產(chǎn)品分享社區(qū)
聲明:網(wǎng)站上的服務(wù)均為第三方提供,請用戶注意甄別服務(wù)質(zhì)量
編程世界需要應(yīng)對每年不斷增加的數(shù)據(jù)泄露和編碼漏洞。盡管人們一直在努力完善編碼語言和程序,但程序員總是會落在好或壞的兩邊,這意味著黑帽編碼人員不斷尋找軟件和系統(tǒng)中的弱點。雖然開源安全軟件可以幫助捕獲漏洞,但安全編程軟件的有效性取決于將其實施到軟件開發(fā)生命周期中時。
即使使用最新的工具,程序員、企業(yè)和個人也需要認(rèn)識到早期檢測的必要性。隨著漏洞的增加,軟件開發(fā)人員必須不斷更新他們對當(dāng)前和最普遍的威脅以及用于檢測這些威脅的工具的了解。企業(yè)和編碼專家應(yīng)該了解流行的編碼工具和語言面臨的持續(xù)威脅,包括容易出現(xiàn)OSS的10大漏洞。
OSS和云安全漏洞正在上升。OSS的本質(zhì)使其容易受到漏洞和攻擊。雖然大多數(shù)創(chuàng)建開源材料的開發(fā)人員并不著手開發(fā)易受攻擊的程序,但有時,個人的技能水平不允許復(fù)雜的編程知識。此外,開源程序的性質(zhì)允許社區(qū)編輯,包括可疑的參與者。
無論開放源碼軟件中的漏洞是如何產(chǎn)生的,不可否認(rèn)的是,在目前存在的快速開發(fā)環(huán)境中,這種軟件的必要性。企業(yè)和開發(fā)人員必須學(xué)會應(yīng)對進(jìn)一步限制的最后期限,以保持在現(xiàn)有市場中的存在。因此,專業(yè)人員必須整合漏洞掃描程序和工具,例如國家漏洞數(shù)據(jù)庫,以便在SDLC早期清除各種類型的安全漏洞,以遏制和緩解未來的問題或威脅。
在討論對項目開發(fā)的現(xiàn)有威脅并識別當(dāng)前的OSS漏洞時,有成千上萬的漏洞,這就是為什么分析工具對任何項目都至關(guān)重要。在存在的數(shù)千個漏洞中,這10個漏洞仍然是過去需要注意的開源安全漏洞的頂部。
Lodash是一個流行的JavaScript庫,它使編碼更容易。它通過為幾個不同的進(jìn)程和函數(shù)提供模塊化方法,幫助程序員處理對象、數(shù)字、字符串、數(shù)組等,包括:
由于開源庫及其模塊化格式的多功能性,它每天都被無數(shù)程序員使用。不幸的是,4.17.2 之前的一些早期版本在使用 _.zipObjectDeep 時包含原型污染安全問題。該威脅可能允許攻擊者使用 Object.prototype 來泄露敏感信息、更改或操作數(shù)據(jù),或者合并拒絕服務(wù)功能。
最新版本的Lodash似乎已經(jīng)解決了這個問題,但是使用舊版本的程序員需要意識到潛在的威脅。合法的漏洞掃描程序應(yīng)該在SDLC的早期突出潛在的財產(chǎn)污染問題,因為它們是一個高安全性的問題。
FasterXML jackson-databind 是一個用于基本數(shù)據(jù)綁定或映射功能的工具,允許將 JSON 內(nèi)容讀取到 JSON 樹和 Java 對象中,并將 Java 對象和樹編寫為 JSON。不幸的是,2.9.10.6 之前的 2.x 版本包含與 Anteros-DBCP 相關(guān)的漏洞,這基本上導(dǎo)致鍵入和序列化小工具及其交互的處理不當(dāng)。
序列化 — 將對象轉(zhuǎn)換為字節(jié)流以存儲或傳輸?shù)轿募?、?shù)據(jù)庫或內(nèi)存中的過程 — 是 Java 開發(fā)人員中一個完善的過程。不幸的是,許多程序員注意到序列化問題,錯誤和漏洞的增加。
當(dāng)涉及到Faster-XML jackson-databind問題時,開發(fā)人員注意到早期版本可能會受到序列化副作用的影響,最明顯的是創(chuàng)建惡意操作。這些不利影響可能會使代碼和程序容易受到遠(yuǎn)程代碼執(zhí)行或 DoS 攻擊,從而可能暴露敏感數(shù)據(jù)。
作為Java程序的無GUI瀏覽器,HtmlUnit允許程序員使用API填寫表單,調(diào)用頁面,單擊鏈接等。該工具對HTML文檔進(jìn)行建模,本質(zhì)上充當(dāng)“普通”瀏覽器,這可能是有利的。
不幸的是,易受攻擊的HtmlUnit版本(在2.37.0之前存在的版本)包含代碼執(zhí)行問題。例如,在初始化 Rhino 引擎時,該程序可能會為惡意 JavaScript 代碼提供執(zhí)行任意 Java 代碼的機(jī)會。安全問題經(jīng)常發(fā)生在基于Android的應(yīng)用程序上,因為Android特定的Rhino引擎初始化在早期版本中不正確。
雖然漏洞利用可能導(dǎo)致重大問題,但HtmlUnit主要用于測試程序或項目。更高版本的OSS已經(jīng)糾正了這個漏洞。感興趣的程序員目前可以在GitHub上找到修復(fù)或更新的版本。
作為一個胡子模板語言擴(kuò)展,Handlebars是無邏輯的,允許程序員將代碼和視圖分開,以獲得更輕松的體驗。OSS是一個流行的開源項目,每周下載量達(dá)數(shù)百萬次。OSS如此受歡迎和炙手可熱的一個方面是社區(qū)支持和維護(hù)它。
不幸的是,早期版本的 Handlebars(4.5.3 之前和 3.0.8 之前的 4.x)包含任意代碼執(zhí)行安全威脅。據(jù)專家介紹,這些早期迭代中的查找?guī)椭绦蛭凑_驗證模板。糟糕的審查允許惡意行為者通過提交的模板運行任意代碼。使用該代碼,Handlebars有效地允許跨站點腳本 - 這是一種注入攻擊,允許參與者以可信來源的名義訪問敏感數(shù)據(jù),Cookie和會話令牌 - 在服務(wù)器或受害者的瀏覽器上。XSS攻擊也可能允許重寫HTML內(nèi)容。
HTTP 代理是一種內(nèi)容篩選器,用于檢查流量以識別可疑或惡意內(nèi)容,通常是格式錯誤的內(nèi)容或間諜軟件。程序員可以配置過濾器,以便只有符合 RFC 規(guī)范的內(nèi)容才能通過。
作為可編程代理庫,HTTP代理有助于實現(xiàn)負(fù)載均衡器,反向代理和其他組件;它還支持WebSockets。OSS 每周下載量達(dá)數(shù)百萬次,依賴量達(dá)數(shù)千次,是頂級庫之一。遺憾的是,1.18.1 更新之前的版本容易受到 DoS 攻擊。長時間處理的請求會觸發(fā)ERR_HTTP_HEADERS_SENT未處理的異常,從而導(dǎo)致代理服務(wù)器崩潰。這通常僅在使用函數(shù) proxyReq.setHeader 發(fā)送請求時發(fā)生。
該漏洞最初以前綴 WS 而不是更標(biāo)準(zhǔn)的 CVE 列出,因為“常見漏洞和披露”列表最初未列出該漏洞,NVD 也未列出該漏洞。沒有該漏洞表示在搜索代碼漏洞時需要使用多個數(shù)據(jù)集。可靠的漏洞掃描程序應(yīng)使用各種數(shù)據(jù)庫來確保進(jìn)行最新和徹底的掃描。
為了使存檔的提取變得簡單,解壓縮是一個相對較小的操作系統(tǒng)項目,旨在使編碼更易于訪問和更高效。雖然很流行,但該項目的早期版本(4.2.1之前的版本)允許一個關(guān)鍵的任意文件寫入漏洞。該漏洞暴露了系統(tǒng),允許惡意玩家使用../ 在文件名中寫入或覆蓋系統(tǒng)中的任何文件夾。解壓縮的原始版本沒有阻止通過相對路徑提取文件,這為漏洞利用打開了大門。
通過一個簡單而有價值的工具,這個漏洞造成的損害程度提醒人們注意漏洞管理的重要性,特別是在使用OSS并從中受益時。值得慶幸的是,更高版本的解壓縮糾正了這個問題,用戶可以再次將其合并到他們的項目中。在Web和軟件開發(fā)中,關(guān)鍵是永遠(yuǎn)不要太熟悉任何工具。
作為一個開源庫,XStream 執(zhí)行 XML 到 Java 序列化,反之亦然。OSS的典型用途包括配置、持久化、傳輸和單元測試。該庫是最受歡迎的庫之一,存在于許多基于Java的開源Web應(yīng)用程序中。
遺憾的是,該庫的早期版本包含漏洞,包括遠(yuǎn)程執(zhí)行代碼問題。從本質(zhì)上講,在取消編組時,已處理的流可能包含容易受到操縱的類型信息,從而使攻擊者能夠替換或注入能夠執(zhí)行任意shell命令的對象。
該漏洞僅影響安全框架的默認(rèn)黑名單,而不影響白名單。任何使用默認(rèn)值的程序員都應(yīng)確保他們使用更新的版本1.4.14或更高版本。使用最新版本的 OSS 通??梢跃徑庵卮髥栴}。但是,謹(jǐn)慎操作,承諾使用漏洞掃描程序,并在整個SDLC中納入安全檢查是緩解大多數(shù)潛在威脅的唯一方法。
在處理需要快節(jié)奏開發(fā)環(huán)境的大型項目時,大多數(shù)開發(fā)人員將在稱為Netty的事件驅(qū)動的異步網(wǎng)絡(luò)應(yīng)用程序框架中工作。OSS 可以管理可維護(hù)的高性能協(xié)議服務(wù)器和客戶端。與UDP和TCP套接字服務(wù)器一樣,客戶端和服務(wù)器框架允許簡化和簡化的網(wǎng)絡(luò)編程方法。
易受攻擊的Netty版本(4.1x,4.1.46之前)允許惡意行為者有機(jī)會利用系統(tǒng)。通過向服務(wù)器發(fā)送相當(dāng)大的 ZlibEncodeed 字節(jié)流,攻擊者迫使系統(tǒng)將所有內(nèi)存重新分配給解碼流,實質(zhì)上是將所有可用內(nèi)存分配給單個解碼器。更高版本(4.1.46 及更高版本)修復(fù)了此漏洞。
Spring是Java應(yīng)用程序的流行開發(fā)框架。它主要以其輕巧和模塊化設(shè)計而聞名,允許直接創(chuàng)建功能強(qiáng)大且堅固的應(yīng)用程序。其中一個更流行的特征是框架的控制設(shè)計原理的反比技術(shù),它結(jié)合了輕量級容器,分層和在接口上編程的能力。
受影響的Spring版本包括5.2.3之前的5.2x,5.1.13之前的5.1x和5.0.16之前的5.0x。Spring Framework允許在這些早期版本中進(jìn)行反射文件下載攻擊。RFD攻擊是一種Web攻擊媒介,它可以使攻擊者通過從受信任域下載的文件完全訪問和控制受害者的計算機(jī)。在Spring Framework中,當(dāng)設(shè)置內(nèi)容處置標(biāo)頭以響應(yīng)用戶提供的文件名屬性時,可能存在此漏洞。
如果你使用Python,你可能聽說過PyYAML,一個流行的YAML發(fā)射器和解析器。雖然Python似乎每年都在流行,但用于編程語言的許多工具都是相對較新的。它們需要持續(xù)更新以緩解任何潛在的攻擊或漏洞。
PyYAML庫的早期版本通過任意代碼執(zhí)行存在風(fēng)險,通常在使用FullLoader或使用full_load方法處理不受信任的文件時發(fā)生。該漏洞可能允許攻擊通過濫用python/object/new構(gòu)造函數(shù)來利用和執(zhí)行任意代碼,這就是為什么這個問題被認(rèn)為是關(guān)鍵的原因。
開發(fā)人員依靠開源軟件和其他第三方組件來滿足當(dāng)前市場的開發(fā)需求。如果沒有大量的OSS選項,軟件項目開發(fā)的當(dāng)前規(guī)模和速度是不可能的。不幸的是,盡管許多業(yè)務(wù)和開發(fā)團(tuán)隊了解實施OSS的風(fēng)險,但他們?nèi)匀粵]有對安全分析給予足夠的關(guān)注,特別是在整個SDLC中。
許多團(tuán)隊認(rèn)為應(yīng)用程序安全性既耗時又繁瑣,寧愿將其留給那些完成項目的人,或者更糟糕的是,讓它進(jìn)入市場并看看什么有效。安全不是事后才想到的,也不一定是負(fù)擔(dān)。通過適當(dāng)?shù)腄evSecOps實踐,項目可以在整個生命周期中實施安全計劃,以確保隨著項目的發(fā)展而緩解漏洞。
使用漏洞掃描程序和其他自動化工具有助于簡化開發(fā)的早期階段。聲音掃描器應(yīng)該幫助團(tuán)隊識別漏洞和漏洞,同時優(yōu)先考慮需要立即糾正的漏洞和漏洞。這些工具還應(yīng)提供緩解和修復(fù)建議。
在整個SDLC中納入最佳安全實踐并不一定是復(fù)雜和繁瑣的。SOOS提供了一種易于集成的軟件成分分析解決方案,每月只需99美元,價格低廉,價格實惠。最后,一款OSS漏洞掃描工具,以無與倫比的價格擁有無限的用戶和無限的掃描!