<tr id="i20gg"></tr>
<strike id="i20gg"></strike>
<samp id="i20gg"></samp>
  • <ul id="i20gg"></ul>
  • <strike id="i20gg"></strike>
  • <ul id="i20gg"><tbody id="i20gg"></tbody></ul>
    國家保密局網站>>保密科技

    開源軟件漏洞安全風險分析

    2020年11月27日    來源:國家保密科技測評中心【字體: 打印

    一、引言

    2020年2月,國家信息安全漏洞共享平臺(CNVD ) 發布了關于Apache Tomcat 存在文件包含漏洞的公告,該漏洞可以造成Tomcat上所有webapp目錄下的重要配置文件或源代碼等敏感數據的泄露,若同時存在文件上傳功能,則可以進一步實現遠程代碼執行(RCE),直接控制服務器。

    Tomcat是Apache軟件基金會下的一個重要的開源軟件,在全球范圍內被廣泛使用,根據FOFA系統最新的測繪數據顯示全球范圍內有將近300萬個Tomcat服務對外開放,根據騰訊T-Sec系統提供的數據顯示,國內受影響的采用AJP協議的IP數量約是4萬個。近年來,隨著軟件開源化趨勢成為主流,開源軟件已經成為軟件供應鏈的重要環節,是軟件生態不可或缺的組成部分。然而,一旦具有大規模用戶基礎的開源軟件存在安全漏洞,勢必會影響整個軟件行業的安全。

    二、開源軟件認識誤區

    (一)開源軟件等于免費軟件

    開源軟件指源代碼可以被公眾使用的軟件,源代碼公開是開源軟件的主要特點之一。雖然大部分的開源軟件可以免費獲得,但是開源軟件并不全是免費軟件,仍有大量的開源軟件對用戶是收費的。

    開源軟件要求軟件發行時附帶源代碼,但并不意味著它就一定是免費的;同樣免費軟件也只是軟件免費提供給用戶使用,但并不一定是開源的。

    (二)開源軟件可以隨便使用

    每一個開源軟件都需要包含開源許可證去規定開源軟件的使用范圍和權利義務,開源軟件并非完全沒有限制可以隨意使用,其最基本的限制就是開源軟件強制任何使用和修改該軟件的人承認發起人的著作權和所有參與人的貢獻。

    開源軟件的許可證比較繁多而且復雜,經常遇到的開源許可證主要有GPL和BSD兩種。如果不恰當地使用開源軟件,未能充分理解和研究許可證規定的權利和義務,往往會埋下知識產權的風險隱患,甚至會被強制要求公開自家產品的私有代碼。

    (三)開源軟件比閉源軟件安全

    開源不能作為判定軟件產品安全與否的指標,開源并不意味著一定安全。事實上,近年來開源軟件的安全性事件頻發,也打破了人們傳統觀念中的“開源等于安全”的認知。根據Snyk公司發布的《2019 年開源安全現狀調查報告》顯示,“過去兩年內應用程序的漏洞數量增長了88%,僅2018年包管理器(NPM )的漏洞數量就增長了47%”。

    開源軟件具有開放、共同參與、自由傳播等特性,一方面由于開發者自身安全意識和技術水平不足容易產生軟件漏洞,另一方面也無法避免惡意人員向開源軟件注入木馬程序進行軟件供應鏈攻擊等安全風險引入行為。

    三、開源軟件使用現狀

    (一)繞不開、躲不掉的軟件開源趨勢

    當前,軟件代碼全部自行開發的公司幾乎沒有,大量企業通過使用免費的開源軟件創建商用軟件產品。根據安全與能力管理開源平臺White Source發布的《開源漏洞管理現狀》,只有極少數開發人員由于公司的政策要求而沒有使用開源軟件,96.8%的開發人員依賴于開源軟件。用戶往往以為自己購買的是商業軟件,但實際上很多商業軟件是基于開源做二次開發后以閉源形式提供給用戶的。

    另據Gartner的調查顯示,99%的組織在其信息系統中使用了開源軟件,如圖1所示。Sonatype公司對3000家企業的開源軟件使用情況展開過調查,結果表明每年每家企業平均下載5000多個開源軟件。隨著開源技術快速形成生態,企業用戶引入開源軟件已成大勢所趨,繞不開、躲不掉。

                               

    圖1 開源組件的使用頻率

    (二)難以分辨商業產品中的開源成分

    從軟件產品的使用者角度來看,企業購買的很多商業軟件往往是開源軟件的商業版或者發行版。如果用戶沒有明確地提出要求,商業軟件供應商一般不會說明其產品中是否涉及開源組件,甚至對用戶宣稱是完全自主研發,導致用戶的信息系統中被動地引入了開源軟件。例如,號稱自主開發的某某瀏覽器,經過專業測試后卻發現其內核是開源軟件Chrome。

    從軟件產品供應商的角度來看,當前的軟件開發模式中包管理器替程序員做了很多他并沒有意識到的決定,使得商業軟件中引入開源軟件的數量難以做到完全準確的統計。更有甚者,部分企業在軟件開發過程中,對開源軟件的使用比較隨意,管理者常常不清楚自己的團隊在開發過程中使用了哪些開源軟件,就連程序員自己也無法完整地列出開源軟件使用清單。等到商業軟件流轉到用戶手中后,系統的運維人員更是無法完全知曉正在運行的軟件產品中是否包含了開源軟件,包含了哪些開源軟件,這些開源軟件是否存在安全漏洞等,這就無形中給企業的信息系統帶去了安全風險。

    (三)誰該站岀來為開源軟件安全負責

    隨著大型軟件開發過程中,開源組件的占比越來越高,加之軟件開發人員往往只關注自己開發的那部分代碼的安全性,忽視了采用的開源組件的安全質量,最終導致成型軟件產品的系統安全問題越來越多。根據Snyk公司的調查報告,81 %的用戶認為開發者應負責開源軟件的安全性,如圖2所示。

    圖2 開發者該為開源軟件安全負責

    大部分開源軟件的使用者認為軟件代碼經過了很多機構和人員的測試和審查。然而,現實情況是并沒有多少人對開源軟件的代碼安全進行測試,“心臟滴血”漏洞就是最好的例證。軟件供應商對外售賣的商業軟件中采用了開源軟件,但安全責任并未從開源代碼提供者轉移到軟件供應商,導致最終還是由用戶承擔了軟件漏洞的風險。

    四、開源軟件漏洞安全分析

    由于開源軟件使用與獲取的便利性,加之部分軟件開發人員的安全意識淡薄,可能導致忽略開源軟件帶來的風險。總體來看,開源軟件存在的安全問題比較嚴重,安全漏洞是主要的問題,軟件供應鏈攻擊呈現上升趨勢,同時缺少系統的安全審查機制。

    (一)開源項目維護者的安全意識和技術能力參差不齊

    Snyk公司通過掃描數以百萬計的Github代碼庫和程序包和對超過500個開源項目的維護者進行調查發現:只有8% 的開源項目維護者自認為有較高的信息安全技術,接近半數的開源項目維護者從來不審計代碼,只有11%的維護者能做到每季度審核代碼。另據Linux基金會發布的《開源軟件供應鏈安全報告》顯示,大量開發人員在開發軟件時并未遵守應用程序安全最佳實踐。開源項目維護者對代碼安全質量重視不夠和技術能力水平不足,是當前造成開源軟件安全漏洞的主要原因。

    奇安信代碼安全實驗室發起“開源項目檢測計劃”,通過對3000余款使用比較廣泛的開源項目進行檢測,發現所有檢測項目的總體平均缺陷密度為14.22/ KLOC,高危缺陷密度為0.72/KLOC。路徑遍歷、空指針相關、密碼管理、跨站腳本XSS、注入類缺陷、XML外部實體注入、緩沖區溢出、資源管理、HTTP響應截斷、日志偽造等是開源軟件主要的安全風險。

    2019年,Unit42安全團隊分析了 24000多個公開的GitHub開源項目,共識別出2328個硬編碼密碼,2464個API密鑰和1998個OAuth令牌。對于關系社會安全穩定的企業單位,如銀行等金融機構,信息系統中如果采用了上述的開源組件將會對社會經濟安全造成惡劣的影響。圖3中的這段代碼[5]來自一個開源系統,它硬編碼了用于支付的私鑰,通過反編譯可以直接查看相關配置數據。

    在密鑰管理中最常見的錯誤,就是將密鑰硬編碼在代碼里。一旦攻擊者獲得密鑰,再通過審計分析支付系統的加密算法就可以破譯所有的加密數據。

    functiiontoSubmit( $ pay m ent) I

    Smerld- St hi s->getConf( $ pay montCM_Ord c rldl/memb or .id'); 賬戶

    SpKey = S th is->getConKSp ay me nt[' M _Orderl di.' PmatcKcyR}:

    Skey = SpKey=r? 'afsvq2mqwc7j0ivukqexrzdQjqBhr:$p Key;

    Sret.uri = $this-^>callhackUrl:

    Sserver.url - $this^>serverCallbackUrl;

    圖3 用于支付的密鑰被硬編碼在源代碼中

     

    (二)越來越多的黑客組織開始盯上開源軟件

    軟件生產過程中,代碼復用程度越來越高,各種開發包、核心庫的應用越來越廣泛。很多黑客組織也意識到了這一點,逐漸把目光放在了開源軟件上,利用開源代碼植入后門。這些代碼的復用度越高,其中的后門影響范圍就越廣,從而實現對軟件供應鏈上游的攻擊。

    2019年8月,Webmin被爆存在高風險遠程命令執行漏洞,根據Webmin開發人員的說法,該漏洞不是編碼錯誤的結果,而是“惡意代碼注入受損的構建基礎架構中”導致的。Webmin是一個用于管理Linux和UNIX系統的基于Web的開源軟件,互聯網上大約有13萬臺機器使用Webmin。根據Shodan搜索引擎收集到的統計數據顯示,有近10萬臺服務器曾運行過存在“后門代碼”版本的Webmin軟件,對整個互聯網安全造成了巨大的影響。

    (三)開源軟件缺少系統的代碼安全審查機制

    美國最先認識到開源軟件安全問題的重要性,早在2006年美國國土安全部就開展過“開源軟件代碼測試計劃”,對大量開源軟件進行安全隱患的篩選和加固。

    根據Snyk公司的報告顯示,37%的開源開發者在持續集成(CI )期間沒有實施任何類型的安全測試,54 %的開發者沒有對Docker鏡像進行任何的安全測試。

    開源代碼中不斷發現新的安全漏洞,而很多項目沒有查找并修復漏洞的響應機制。開源項目的安全記錄方式也沒有明確的標準可以遵循,GitHub上排名前40 萬的公共代碼庫中,僅2.4%的項目有安全文檔。

    開源軟件在實際的流通過程中,各個環節間缺乏系統的安全審查機制,部分企業內部也缺少必要的安全檢測要求和規范,導致一旦底層開源組件出現安全漏洞,這些問題組件將傳染給哪些商業產品、影響哪些業務領域,沒人能給出一個準確的答案。

    五、風險控制措施

    (一)國家層面組織開展開源軟件源代碼檢測工程

    隨著開源趨勢的不可逆以及開源軟件在商業軟件中占的比重越來越高,開源軟件儼然已經成為軟件開發的關鍵基礎設施,因此開源軟件的安全問題應該上升到國家安全的角度來對待。

    建議國家相關部門組織有業務基礎的科研機構開展開源軟件源代碼檢測工程,并將檢測的成果以一種安全可控的方式向商業軟件制造商及關鍵崗位的企業共享,盡可能降低開源軟件漏洞對社會各行各業的影響。

    (二)企業層面建設開源軟件安全治理體系

    企業應該建立開源軟件安全治理體系,明確開源軟件使用的安全準入條件,從軟件開發階段就建立開源軟件使用的統一策略,實現開源軟件引入和使用的標準化、規范化和合規化。

    對于明確需要引入的開源軟件,在加強版本控制的基礎上,一方面開展安全風險評估檢測;另一方面持續跟蹤相關的漏洞情報,時刻提防軟件供應鏈攻擊。

    (三)用戶側建立軟件安全滲透測試機制

    從已經發生的軟件供應鏈攻擊案例來看,非常有必要開展軟件上線前的滲透檢測。通過采用良性的攻防滲透的方法、思路和手段,及時發現軟件系統中存在的安全漏洞和隱患,降低新軟件上線給系統帶來的風險。

    企業在開展軟件采購時,應向供應商明確要求提供軟件中包含的開源組件,“用了什么,什么版本,軟件來源”,并在驗收時進行細致核查。

    (四)檢測機構加強對安全產品中開源組件的檢測

    信息安全產品是重要信息系統安全防護的重要組成部分,其自身的安全性將影響重要信息系統的安全。檢測機構應要求軟件供應商準確提供產品中包含的開源組件等信息,并針對開源組件開展專門的安全檢測。這樣一旦某個開源軟件被爆出重大的安全漏洞,產品檢測機構可以及時迅速地發布安全預警,并要求相關產品廠商盡快開展修復,甚至對修補不力的產品予以禁用處置。

    六、結語

    幾乎每個商業軟件都使用開源軟件節省開發時間、降低公司成本、避免重復造車輪,但軟件公司對這些代碼的品質和來源卻未必都給予了足夠的關注和重視。

    開源軟件已經成為網絡空間的重要基礎設施,應積極開展開源軟件源代碼檢測工程,推動建設開源軟件安全治理體系,形成軟件安全滲透測試的長效機制。

     

    (原載于《保密科學技術》雜志2020年2月刊)


    538精品视频在线观看mp4| 综合91在线精品| 久久精品视频网站| 一本大道无码人妻精品专区| 午夜国产精品免费观看| 久草精品视频在线播放| 精品视频在线观看你懂的一区 | 国产精品二区三区免费播放心| 99这里只有精品| 亚洲综合精品香蕉久久网| 西瓜精品国产自在现线| 精品亚洲成a人在线观看| 精品国产三级a在线观看| 久久国产精品-久久精品| 精品多毛少妇人妻AV免费久久| 精品69久久久久久99| 久久乐国产综合亚洲精品| 久久精品www人人爽人人| 国产精品视频二区不卡| 国产在线精品国自产拍影院| 一本久久a久久精品综合香蕉 | 99在线热视频只有精品免费| 伊人久久精品无码av一区| 国产精品永久久久久久久久久| 国产成人综合色视频精品| 日韩精品一区二区三区中文版 | 无码精品人妻一区二区三区免费| 久久精品国产99久久久| 99久久免费国产精品特黄| 国产精品成人观看视频国产| 91精品国产自产在线观看高清| 无码人妻精品一区二区三区久久 | 伊人久久精品亚洲午夜| 精品久久人人爽天天玩人人妻| www.久久精品| 国产精品一区三区| 精品一区二区三区高清免费观看| 国产精品va在线观看无码| 国产高清在线精品一区二区三区| 人人妻人人做人人爽精品 | 国产精品第12页|