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