文 / 中信銀行數(shù)據(jù)中心? 李鑫
前 言
當(dāng)今IT環(huán)境的高速發(fā)展下,物聯(lián)網(wǎng)、大數(shù)據(jù)、5G、AI等科技主題都已經(jīng)深入應(yīng)用到各個行業(yè)領(lǐng)域,而這些主流技術(shù)采用了大量的開源技術(shù)以及開源生態(tài)產(chǎn)品。隨著金融行業(yè)的不斷深入探索,實(shí)現(xiàn)以科技賦能為主,優(yōu)化創(chuàng)新架構(gòu)的新一輪數(shù)字化轉(zhuǎn)型,勢必會借助開源新科技手段進(jìn)行應(yīng)用、整合,形成自有技術(shù)體系。這就使得金融行業(yè)必須面臨原先由采用大型服務(wù)軟件廠商的閉源性商業(yè)軟件的管理模式,逐漸過渡改革到開放、開源的免費(fèi)軟件的思維管理模式。這種管理模式的改變挑戰(zhàn)很大,新的管理模式必須能夠在享受開源軟件給我們帶來技術(shù)紅利的同時,可以應(yīng)對開源軟件帶來的“副作用”,可以合理應(yīng)對開源軟件在安全、代碼、政策等方面帶來的影響,最終確保系統(tǒng)運(yùn)行穩(wěn)定,提升終端用戶的使用感受。
謹(jǐn)慎引入選型
開源軟件產(chǎn)品的特點(diǎn)屬于產(chǎn)品迭代快,技術(shù)更新快,版本發(fā)布快,因此開源軟件的技術(shù)選型工作尤為重要。而針對選型要求目前也沒有統(tǒng)一的業(yè)界標(biāo)準(zhǔn)可以參考,對于金融行業(yè),涉及的軟件使用產(chǎn)品一般有自身的技術(shù)路線要求,不能輕易進(jìn)行產(chǎn)品級別的替換,這就對開源軟件產(chǎn)品前期的調(diào)研引入流程要求嚴(yán)格,一旦選擇有誤,后期替換的成本會加倍顯現(xiàn)。關(guān)于選型要求,建議從以下幾個層面進(jìn)行開源軟件產(chǎn)品的引入選型考量。
1.識別開源軟件許可協(xié)議
目前經(jīng)過OSI認(rèn)證的開源協(xié)議有80余鐘,其中常用的開源許可協(xié)議有:GPL、LGPL、BSD、MIT、Apache等。在進(jìn)行開源軟件產(chǎn)品選型時,一定要優(yōu)先識別軟件的開源許可協(xié)議。不同的協(xié)議,涉及的傳染性規(guī)定、知識產(chǎn)權(quán)、兼容性、排他性等有不同程度的要求,對軟件產(chǎn)品引入后的運(yùn)維使用、二次代碼開發(fā)都有重要影響,需要優(yōu)先進(jìn)行識別。并且在引入后,也需要隨時進(jìn)行關(guān)注,有些開源軟件產(chǎn)品會進(jìn)行開源許可協(xié)議的修改,需要判斷修改內(nèi)容是否會對目前使用造成影響。
2.開源軟件的功能、技術(shù)路線
待引入的開源軟件產(chǎn)品使用的功能、技術(shù)路線必須符合該領(lǐng)域的技術(shù)主流發(fā)展方向,并且必須符合企業(yè)自身對于該領(lǐng)域的技術(shù)發(fā)展需求。不能因?yàn)槭煜?、用過就進(jìn)行引用,而要將目光放長遠(yuǎn),結(jié)合現(xiàn)有架構(gòu)匹配程度并考慮長期選型要求,引入時就要考慮維護(hù)成本、成員角色分工、支持能力等問題。要同時考慮遷移成本,引入后是否可以進(jìn)行平滑替換遷移,還是需要較大經(jīng)歷進(jìn)行重構(gòu)。
3.開源軟件的社區(qū)活躍度
社區(qū)活躍度也直接體現(xiàn)了該開源軟件的技術(shù)主流程度、使用群體情況、軟件版本更新頻率等。不同于閉源軟件,有廠商可以提供成體系化的技術(shù)支持,出現(xiàn)問題可以及時有效地處理。針對于開源軟件,更多的是要依靠自身解決問題的能力以及向軟件社區(qū)反映發(fā)布問題進(jìn)行解決。因此社區(qū)的成熟度是衡量開源軟件是否引入的較為重要的指標(biāo)。
4.軟件安全性
在引入前,需要了解所需引入軟件是否有因重大安全漏洞而被攻擊的事件,在近期版本當(dāng)中是否有被修復(fù)。針對密碼、用戶信息等敏感內(nèi)容,是否設(shè)置加密處理。最好結(jié)合開源軟件漏洞掃描平臺以及開源軟件代碼掃描工具進(jìn)行全面掃描梳理,根據(jù)掃描結(jié)果進(jìn)行全盤分析。
增強(qiáng)管理體系
基于開源軟件的定義,不僅僅涉及成型獨(dú)立,可以單獨(dú)部署的軟件產(chǎn)品,還包括細(xì)粒度更高的、融入到應(yīng)用代碼當(dāng)中的開源功能組件、開源框架等,并且基于敏捷迭代開發(fā),使得運(yùn)維和開發(fā)部門聯(lián)系越發(fā)緊密。因此,對于開源軟件的管理體系和維度,一定要比閉源軟件更加精細(xì),更加主動,形成全生命周期流程管理,嚴(yán)格把控引入、集成和使用。
1.制訂開源管理制度要求
針對開源軟件管理,一定要形成統(tǒng)一的管理辦法,務(wù)必考慮到開源軟件的各個生命周期的工作內(nèi)容。包括但不限于軟件定義分類、各部門職能詳細(xì)分工、引入管理、使用管理、代碼二次開發(fā)管理、運(yùn)維支持管理、版本管理、退出管理、風(fēng)險管理等。最好可以有獨(dú)立的部門進(jìn)行統(tǒng)一調(diào)度,組織考核,各執(zhí)行部門分配專人負(fù)責(zé)開源軟件的治理工作,定期上報工作成果。在制訂管理辦法的過程當(dāng)中,除了規(guī)定說明外,最好設(shè)置一些使用限制要求,做到管理可控(見圖1)。例如,限制同一功能的開源軟件引入數(shù)量,便于有效控制開源軟件在使用過程中過于分散,不利于運(yùn)維管理的情況。
圖1 開源軟件治理能力成熟度模型
2.建立開發(fā)運(yùn)維體系
需要建立適應(yīng)開源軟件管理的開發(fā)運(yùn)維體系。該體系需要從開源軟件引入、制品庫的管理、制訂相關(guān)技術(shù)規(guī)范、開發(fā)代碼要求、運(yùn)維使用、監(jiān)控覆蓋、技術(shù)支持等方面開展。需要定期對已使用的開源軟件進(jìn)行跟蹤,考察使用情況以及產(chǎn)品、社區(qū)最新狀態(tài),對于存在風(fēng)險的軟件必須及時整改甚至退出。定期進(jìn)行開發(fā)規(guī)范要求審查,包括應(yīng)用代碼開發(fā)以及開源軟件產(chǎn)品二次開發(fā),組織開發(fā)代碼以及組件掃描,確保代碼級別安全合規(guī)。定期執(zhí)行開源軟件產(chǎn)品安全漏洞掃描,及時修復(fù)安全漏洞,確保產(chǎn)品級別安全合規(guī)。定期組織軟件版本統(tǒng)計,合理設(shè)計符合企業(yè)需求的升級計劃時間要求,即不能升級頻次過高,給運(yùn)維工作增加負(fù)擔(dān),也不能頻次過低,導(dǎo)致使用版本存在安全隱患。定期組織培訓(xùn),交流,在軟件引入時,根據(jù)使用情況指定軟件掌握能力等級。
注意管控風(fēng)險
中國人民銀行在《金融科技(FinTech)發(fā)展規(guī)劃(2019-2021)》中,要求“做好新技術(shù)金融應(yīng)用風(fēng)險防范”,要求正確把握金融科技創(chuàng)新與安全的關(guān)系。因此,我們需要嚴(yán)格貫徹落實(shí)安全風(fēng)險管控,保護(hù)好產(chǎn)品安全、用戶安全以及數(shù)據(jù)安全。同時,當(dāng)今發(fā)布的部分開源軟件在安全風(fēng)險方面確實(shí)存在薄弱環(huán)節(jié),在《金融行業(yè)開源治理白皮書》當(dāng)中也提到,開源軟件隱含的安全風(fēng)險較為顯著。利用開源軟件漏洞進(jìn)行敏感信息盜取的真實(shí)案例數(shù)不勝數(shù),需要全面提高安全風(fēng)險防控水平,并將其作為頭等工作落實(shí)狠抓。
在執(zhí)行方面,可以利用第三方開源軟件掃描工具,針對開源軟件或者開源組件進(jìn)行產(chǎn)品以及源代碼層級的漏洞掃描,對于已掃描出的CVE漏洞需要及時提供修復(fù)方法;同時結(jié)合滲透工具進(jìn)行攔截和獲取http信息進(jìn)行篩選檢查,防止目錄遍歷、SQL注入、頁面劫持等安全缺陷。針對端口隔離、用戶文件權(quán)限、密碼加密等需要在運(yùn)維規(guī)范當(dāng)中進(jìn)行體現(xiàn)。針對應(yīng)用代碼進(jìn)行定期安全審計,不斷篩選代碼,修補(bǔ)漏洞。
增加交流、培養(yǎng)專項(xiàng)
由于開源軟件的源代碼處于公開狀態(tài),開發(fā)使用者可以輕松獲取,并且在協(xié)議允許的情況下,進(jìn)行二次開發(fā)改造,對于企業(yè)而言,相比較其他閉源類產(chǎn)品,更能促進(jìn)整體軟件架構(gòu)的多樣性、靈活性和創(chuàng)新性,更能深入自主掌控所使用的軟件產(chǎn)品,不強(qiáng)依賴于產(chǎn)品供應(yīng)商,增加了對支持廠商的選擇性。但與此同時,針對不同開源技術(shù)的掌握,對企業(yè)自身提出了更高的要求,不僅僅停留在使用層面,需要更深層次地學(xué)習(xí)掌握。遇到使用問題不能再向原廠申請支持,更多依靠自身的技術(shù)能力。企業(yè)內(nèi)部可以成立開源部門或者小組,定期組織培訓(xùn)、交流,技術(shù)維護(hù)人員學(xué)習(xí)了解開源軟件的制度規(guī)范,運(yùn)維開發(fā)團(tuán)隊一起進(jìn)行某一開源軟件的知識分享。企業(yè)外部需要更多機(jī)會參與行業(yè)內(nèi)、企業(yè)間組織的溝通交流,通過分享會或者開源標(biāo)準(zhǔn)制訂的專項(xiàng)研討會,了解整個行業(yè)內(nèi)開源軟件的引入方向、使用情況等。同時在運(yùn)維、二次開發(fā)過程中,可以針對發(fā)現(xiàn)的問題向公共社區(qū)進(jìn)行代碼提交、問題交流等社區(qū)貢獻(xiàn),增加社區(qū)活躍度,也是提高自身在該軟件方向知名度、吸引開源人才的有效途徑。
結(jié) 束 語
隨著開源技術(shù)的不斷深入發(fā)展,迭代更新,開源軟件的品質(zhì)不斷提升,其已經(jīng)成為金融行業(yè)軟件生態(tài)系統(tǒng)當(dāng)中不可或缺的一部分。通過對開源軟件的自主掌控,可以有效地幫助企業(yè)實(shí)現(xiàn)降本增效,風(fēng)險可控,系統(tǒng)可用程度更高,實(shí)現(xiàn)了IT架構(gòu)的全面升級。但與此同時,針對金融行業(yè)要求IT環(huán)境高穩(wěn)定性、高安全性的使用特點(diǎn),我們也要對其靈活性、開放性加以嚴(yán)格管控,降低不確定性,保證“可高用、低風(fēng)險”,真正做到為我所用,使其順應(yīng)業(yè)務(wù)的發(fā)展,助推企業(yè)的智能創(chuàng)新。
(欄目編輯:張麗霞)
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。