文/李鵬 王明 張海洋
信息安全已上升到國家安全層面。《中華人民共和國網(wǎng)絡(luò)安全法》也于2017年6月1日起施行。另一方面,信息安全事件頻發(fā),CSDN、12306和日本航空等數(shù)據(jù)泄露事件造成了極其嚴重的影響。
中國民航信息網(wǎng)絡(luò)股份有限公司(本文簡稱:中航信)所運營的民航商務(wù)信息系統(tǒng)被國務(wù)院列為八大系統(tǒng)之一,包含海量民航商業(yè)機密信息。中航信研發(fā)中心開發(fā)、運維著數(shù)百個信息系統(tǒng),如何發(fā)現(xiàn)系統(tǒng)中的安全問題并進行修復,提升系統(tǒng)的安全性,是我們必須面對的緊迫而嚴峻的問題,因此,針對本課題的研究工作十分必要。
Gartner 2017年發(fā)布的關(guān)鍵信息安全技術(shù)明確指出了OSS Security Scanning and Software Composition Analysis for DevSecOps( 面 向DevSecOps的運營支撐系統(tǒng)安全掃描與軟件組成分析)的重要意義。這也是Gartner繼2016年后,連續(xù)兩年將該項技術(shù)列入年度重要信息安全技術(shù),其重要性和先進性可見一斑。
目前市場上安全測試產(chǎn)品眾多,國外產(chǎn)品中Fortify、AppScan在國內(nèi)應(yīng)用廣泛,國內(nèi)廠商360、綠盟、安恒、思客云等公司都有成熟的掃描器產(chǎn)品。但大部分產(chǎn)品過于單一,針對民航信息系統(tǒng)全生命周期的安全保護,需要定制化的解決方案。

圖1:安全測試平臺主要功能
民航旅客運輸量持續(xù)高增長,2018年旅客運輸量6.1億人次,同比增長10.9%。飛行安全直接關(guān)系到旅客的人身安全;對民航系統(tǒng)的攻擊逐年遞增;民航信息系統(tǒng)為提升旅客出行體驗不斷建設(shè);因此,針對民航信息系統(tǒng)DevOps的安全測試研究推廣工作勢在必行。
本安全測試解決方案從七個角度對業(yè)務(wù)系統(tǒng)開展安全測試、安全監(jiān)控、漏洞修復指導、安全開發(fā)知識傳遞等工作,全面保障業(yè)務(wù)系統(tǒng)信息安全,提升安全管理水平(如圖1),主要功能點包括:定期自動下載源碼進行源碼安全分析檢測;自動化的對所有網(wǎng)站系統(tǒng)進行應(yīng)用安全漏洞檢測;自動化的完成弱口令檢測;自動化的檢索GitHub和CSDN上是否有公司相關(guān)泄露信息并推送檢測結(jié)果和修改方法等。大部分工作以自動化、半透明的方式執(zhí)行,對開發(fā)團隊而言不必增加大量工作,在完成安全測試任務(wù)的同時獲得了較好的用戶體驗,同時降低了比較昂貴的信息安全人員的投入,避免了對單個專家的強依賴,以較低的成本使得中航信系統(tǒng)安全性達到了行業(yè)較高水平。
本系統(tǒng)縱向三個層次以 “白+黑+機器人”(軟件源代碼白盒安全測試+WEB應(yīng)用系統(tǒng)黑盒測試+模擬人工滲透測試工具)為基礎(chǔ),結(jié)合目前應(yīng)用軟件安全所面臨的新的挑戰(zhàn)不斷改進,為軟件提供半透明化、自動化和持續(xù)性的安全測試和軟件安全分析。使用倒金字塔模型盡早、用盡量低的成本、解決盡可能多的問題。使得本方案成為一個真正切合實際的企業(yè)級安全測試解決方案(如圖2)。
4.1.1 源碼安全檢測
(1)源代碼安全檢測平臺化。將單機版的源代碼安全檢測工具平臺化(B/S架構(gòu)),同時將安全檢測的流程也具象化于平臺之上,開發(fā)人員和測試人員通過平臺進行檢測、審計、報表、知識管理等工作,可以大大提升安全檢測的產(chǎn)出能力。初步評估,測試效率提升了5倍以上;
(2)重點解決關(guān)鍵問題。將動輒上千的安全漏洞進行分類排序,挑選出TOP10問題要求開發(fā)團隊進行修改,集中精力解決最關(guān)鍵的問題(解決開發(fā)人員“我沒空”問題);
(3)安全意識傳遞。推動安全掃描和第一次漏洞審計由開發(fā)團隊完成(解決“我不信”問題),也使得開發(fā)團隊開始重視安全開發(fā);
(4)修復指導。配套安全編碼規(guī)范進行指導培訓(解決“我不會”問題)。
通過上述四項工作,測試效率顯著提升、安全漏洞的修改可落地,開發(fā)人員也開始了解安全開發(fā),一年完成多輪次全覆蓋的安全檢測,大部分產(chǎn)品線TOP10問題修復率100%。
4.1.2 開源組件安全漏洞檢測
本模塊集開源軟件安全漏洞收集,開源軟件安全檢查管理、安全檢查漏洞報警及發(fā)布、安全策略執(zhí)行、開源軟件安全漏洞知識分享等為一體,在源代碼安全檢測過程中發(fā)現(xiàn)系統(tǒng)中開源組件的安全漏洞。幫助安全測試人員完成如下五項工作:
(1)統(tǒng)計軟件系統(tǒng)中使用的開源組件名稱、版本;
(2)統(tǒng)計軟件系統(tǒng)中的開源組件是否有已曝露的安全漏洞?
(3)統(tǒng)計常見的開源組件有哪些漏洞?怎么樣修復?
(4)快速、批量地查找某一版本(或版本區(qū)間)的開源軟件組件在哪些項目中使用?
(5)定時、定項地對正在開發(fā)過程中的軟件項目進行開源軟件組件安全漏洞檢測。
4.1.3 自定義規(guī)則檢測
源代碼安全檢測規(guī)則庫的優(yōu)劣直接決定了安全檢測的效果,業(yè)界源代碼安全檢測工具的規(guī)則庫包含的規(guī)則是通用的,對于企業(yè)內(nèi)部特有的一些漏洞,需要通過定制化規(guī)則的手段進行實現(xiàn)。需要定制化的規(guī)則分為業(yè)務(wù)特性的規(guī)則定制、生產(chǎn)故障的規(guī)則定制、突發(fā)通用漏洞的規(guī)則定制等。
4.1.4 提升自動化和透明化程度
源碼檢測與SVN和GIT結(jié)合、將C/C++安全檢測插件化(做到安全掃描與編譯環(huán)境的解耦),自動下載源代碼進行安全測試,進一步提升了平臺的自動化水平,降低了開發(fā)人員工作量。在保密方面也對檢測結(jié)果的存儲進行了加密。
4.1.5 撰寫行業(yè)標準
OWASP是一個開源的、非盈利的全球性安全組織,致力于應(yīng)用軟件的安全研究。目前OWASP全球擁有220個分部近六萬名會員,共同推動了安全標準、安全測試工具、安全指導手冊等應(yīng)用安全技術(shù)的發(fā)展。我們憑借幾年的積淀和樂于分享的精神,參與編寫了OWASP《靜態(tài)源代碼安全分析工具測評基準》并面向全國發(fā)布,作為業(yè)界開展源代碼安全測試工作的指導性準則。
本功能模塊支持自動化的對網(wǎng)站系統(tǒng)進行單個或批量安全檢測。支持多用戶并發(fā),開發(fā)團隊可以自助配置完成網(wǎng)站安全掃描、漏洞審計等功能。極大提升了網(wǎng)站系統(tǒng)安全檢測的效率,對掃描結(jié)果的統(tǒng)計也更加方便。在重保期間,對所有網(wǎng)站進行自動化快速掃描,發(fā)揮了重要作用。
工具平臺具有良好的彈性,可以通過橫向擴充資源提升容量,并支持多種掃描引擎的調(diào)度使用。
4.3.1 弱口令檢測
定制開發(fā)滲透測試中常用的弱口令檢測(主機、數(shù)據(jù)庫、WEB、郵箱、FTP等)模塊,本模塊支持:
(1)對企業(yè)所使用的“數(shù)據(jù)庫”、“Email”、“FTP”,“Linux”和“WEB網(wǎng)站”弱口令檢測;
(2)自動化地對企業(yè)上萬臺服務(wù)器進行大批量、高效的弱口令檢查;
(3)根據(jù)用戶提供的弱密碼元素集自動化生成貼合用戶的弱口令字典集;
(4)集中化統(tǒng)一管理、發(fā)布、查看、通知企業(yè)級弱口令檢測和修復情況。
4.3.2 開源軟件安全漏洞檢測

圖2:解決方案示意圖
本模塊通過在服務(wù)器上部署監(jiān)控程序,實時反饋系統(tǒng)中開源軟件是否包含安全漏洞,并進行漏洞管理。
4.3.3 敏感信息防泄漏監(jiān)控
本模塊針對GitHub,CSDN這樣的互聯(lián)網(wǎng)發(fā)布平臺,檢測企業(yè)的軟件源代碼、技術(shù)資料、敏感數(shù)據(jù)文檔等是否外泄。本模塊支持三項工作:
(1)檢測企業(yè)的軟件源代碼、開發(fā)文檔、敏感信息資料等內(nèi)容是否被外泄到GitHub,CSDN上;
(2)自動化地對企業(yè)所有項目組的相關(guān)數(shù)據(jù)進行大批量、高效的上線安全監(jiān)控,定時巡檢,防范企業(yè)敏感信息外泄;
(3)能夠集中化統(tǒng)一管理、發(fā)布、查看、通知企業(yè)的敏感信息外泄的問題和處理情況。
4.3.4 網(wǎng)站域名備案監(jiān)控
本模塊完成企業(yè)網(wǎng)站域名備案狀態(tài)檢測,自動化搜索企業(yè)一二級域名是否在企業(yè)內(nèi)部備案,以及是否在公安部和工信部備案。本模塊包含四個功能點:
(1)對企業(yè)所使用的一級,二級,三 級,四級域名進行自動化檢測;
(2)對企業(yè)所使用的域名是否在公安部備案進行檢查;
(3)對企業(yè)所使用的域名是否在工信部備案進行檢查;
(4)對企業(yè)所使用的域名是否在企業(yè)內(nèi)部備案進行檢查。
4.3.5 網(wǎng)站防篡改監(jiān)控
本模塊檢測企業(yè)指定的網(wǎng)站頁面是否被篡改。本模塊支持:
(1)針對企業(yè)所指定的網(wǎng)站、網(wǎng)頁進行分鐘級的監(jiān)控,對網(wǎng)頁上的任何變化進行對比監(jiān)控,及時發(fā)現(xiàn)惡意的篡改行為;
(2)根據(jù)用戶提供的敏感詞庫,對網(wǎng)站,網(wǎng)頁上出現(xiàn)的不良詞匯進行實時監(jiān)控,一旦發(fā)現(xiàn),及時告警。
4.3.6 其他
結(jié)合手工滲透測試和比賽的經(jīng)驗,利用Metasploit、Nmap、一些Python滲透測試框架等對系統(tǒng)進行檢測,發(fā)現(xiàn)潛在問題,進一步提升系統(tǒng)安全性。
作為央企,信息安全的國家隊,我們有責任、有義務(wù)保護好我們的系統(tǒng),以更高的標準要求自己,并積極分享。習總書記多次提及“沒有網(wǎng)絡(luò)安全就沒有國家安全”,在未來的5年、10年甚至20年,我們希望窮盡畢生精力,打造出值得驕傲的信息安全測試解決方案!