孫盛婷 朱奕健

【摘要】 本文分析了運營商能力開放的背景,運營商融入數字業務創新浪潮的必然性。運營商將所具備能力全面開放,搭建外部調用統一入口,聚合各類互聯網要素,圍繞企業“互聯網+”轉型的核心要素,提供豐富能力,使企業的生產服務過程能夠快速進行互聯網化改造。文章主要分析了在能力開放過程中可能面臨的安全威脅,并詳細從應用層安全、系統層安全、網絡層安全、管理層安全幾個方面進行研究和論證可實施的安全控制方案。
【關鍵詞】 數字業務創新 能力開放 互聯網化改造 能力編排 安全控制
一、引言
能力開放是運營商順應數字經濟轉型需要,融入數字業務創新浪潮的必然選擇,也是助力互聯網+應用落地實施的切入方式之一。將電信運營商企業所具備能力全面開放,搭建外部調用統一入口,聚合各類互聯網要素,圍繞企業“互聯網+”轉型的核心要素,提供豐富能力,使企業的生產服務過程能夠快速進行互聯網化改造。
能力開放是將能力封裝成標準API(HTTP RestFul協議)開放在互聯網上,提供外部應用調用入口,便于應用使用電信運營商能力。而安全性就成為電信運營商能力開放最重要的指標,0.01%的安全性事故會造成整個能力開放的失敗。
一個業務系統往往都包括很多部分和層面,每一個部分和層面都可能存在安全漏洞從而成為被攻擊的對象,每個層面和部分應該提供相應的安全方案來保護業務系統的安全,根據業務產品的分層思想,安全技術可以分為四個主要的層次:應用層安全、系統層安全、網絡層安全,同時加上貫穿所有層次的重要安全因素-安全管理(包括技術和非技術的方法),組成了分層的安全架構模型。
本論文所有的研究都集中在如何有效進行能力開放場景下的安全控制,圍繞應用層安全、系統層安全、網絡層安全、管理層安全幾個方面進行研究和論證可實施的安全控制方案。最后,針對整個系統對于安全控制方案效果進行總結,并形成研究結論和下一步的研究計劃。
二、能力開放面臨的安全威脅分析
2.1應用安全威脅
應用層安全既是信息系統安全的起點,又是信息系統安全設計的終點。起點指的是信息系統的安全需求來源于應用的安全需求,終點指的是信息系統安全的最終目的是確保業務應用的安全運行和業務信息的安全保護。
身份認證威脅。弱口令、默認口令導致業務系統管理員、操作員賬號口令被暴力破解,進而導致業務系統被控制。業務系統口令未加密存儲/傳輸導致口令被竊取,進而導致業務系統被控制。
輸入驗證威脅。未對輸入數據的類型、長度、格式和范圍做約束和驗證,導致緩沖區溢出攻擊。SQL注入、XPath注入及HTTP響應拆分攻擊,通常為未對輸入數據進行校驗。跨站腳本攻擊,通常為未對不可信數據進行輸出編碼。非法用戶向系統上傳惡意軟件,通常為未對上傳功能所支持的文件類型和大小做限制。文件上傳、下載目錄跨越攻擊,通常為未對文件上傳/下載的路徑做限制。
授權威脅。未對用戶(管理員、操作員及終端用戶)操作進行合理的權限控制,導致越權訪問攻擊。
敏感數據威脅。系統敏感數據未加密存儲、傳輸,導致被非法竊取。
會話管理威脅。未對會話信息進行有效安全保護,導致會話劫持攻擊。未采取有效措施防止會話重放攻擊。未對關鍵信息進行加密傳輸,導致中間人攻擊。
加密技術威脅。未選用合適的加密技術,導致加密數據被破解。
異常處理威脅。異常處理向用戶返回敏感信息,導致系統、敏感信息泄露。
安全審計威脅。由于未記錄日志導致用戶否認執行過某項操作。攻擊者刪除日志文件導致日志記錄丟失。
2.2系統安全威脅
系統層安全主要是指為業務系統提供運行支持的操作系統、數據庫系統、中間件系統及 LDAP、Web、FTP 等應用服務器的安全保護。系統層安全的保護包括最小化安裝、最小服務限制、帳戶管理、口令策略、安全審計、認證與授權保護、內核參數安全調整、配置安全工具(如 SSH、lsof 等)、補丁管理、病毒保護、備份恢復等多方面的內容。
主機威脅
針對Windows維護終端,利用病毒、特洛伊木馬和蠕蟲攻擊或控制業務系統;利用Linux操作系統、Oracle數據庫、Web服務器自身配置漏洞,控制業務系統;利用linux操作系統、oracle數據庫、web服務器已知的漏洞,而解決方昂尚未及時打補丁,對操作系統進行攻擊。
足跡威脅
未關閉未使用的服務,導致攻擊者利用這些服務探查系統信息;未配置適當的防火墻策略,導致系統服務、端口暴漏給不必要的用戶,攻擊者可利用這些服務的弱點對系統發起攻擊;由于操作系統、DB、Web 服務器標題配置不合理,導致系統信息泄露,攻擊者可以利用這些信息對系統發起攻擊。
密碼破解威脅
利用操作系統、數據庫、Web服務器控制臺默認賬號口令或弱口令控制業務系統;操作系統、數據庫用戶賬號缺乏賬號鎖定機制,致使攻擊者可通過暴力破解弱口令獲取系統控制權。
2.3網絡安全威脅
網絡層安全就是通過采用一系列安全措施,使得網絡系統得到應有的安全保護,為在該網絡平臺上運行的業務系統提供應用的支持,包括一切訪問網絡資源或使用網絡服務相關的安全保護。
足跡威脅
未限制網絡設備對足跡請求的響應,導致系統信息泄露,攻擊者可以利用這些信息對系統發起攻擊;
網絡設備開啟了不必要的服務和端口,導致攻擊者利用這些服務探查系統信息或對系統發起攻擊;
未進行合理的VLAN和安全域劃分,攻擊者一旦控制某臺主機就可能控制整個業務網絡 ;
利用網絡設備自身配置漏洞,控制業務網絡;
管理平面、控制平面、數據平面未實現邏輯隔離,其中一個平面遭受攻擊會影響其它兩個平面的安全。
會話劫持威脅
未使用加密協議進行會話協商,致使會話信息被獲取或存在中間人攻擊風險。
拒絕服務威脅
未對網絡設備進行合理配置,導致存在如下拒絕服務攻擊威脅:
SYN Flood攻擊;
UDP洪水攻擊;
淚滴(teardrop)攻擊;
Land攻擊;
大量模擬器模擬真實業務訪問(DDOS)。
2.4管理安全威脅
安全管理是指對所有計算機網絡應用體系中各個方面的安全技術和產品進行統一的管理和協調,進而從整體上提高計算機系統的安全保護能力。
安全管理包括兩個方面的內容,一是從技術上建立高效的管理平臺,協調各個安全技術和產品的統一管理,為實現安全策略和度量安全效果提供便利;另一方面是非技術方面,如人員管理、制度管理和安全策略規范等方面的內容,以這些措施來提高產品的安全能力。
管理問題:缺乏安全管理規章制度,或者沒有嚴格執行安全管理規章制度。
認識問題:人員安全意識不足,對安全問題帶來的后果估計不充分。
補丁問題:沒有及時進行系統及應用安全補丁的安裝,導致系統存在安全漏洞。
帳號問題:多人共用帳號,責任無法追溯;
密碼問題:未定時修改密碼,人員變動未及時修改密碼
審計控制問題:缺少集中的日志管理和審計系統,出現問題不能及時發現
三、安全解決方案
ITU-T X.805中的安全架構為電信網絡安全分析和安全防護提供了框架,電信運營商廣泛采用。
能力開放需要通過事先預防、事中預警、事后審計追蹤來保護設備的正常安全運行。
事先預防主要包括以下幾個方面:
網絡安全:通過對網絡設備進行安全加固、網絡平面隔離、安全區域劃分及嚴格的網絡訪問控制實現網絡層面的安全
操作系統安全:通過及時更新操作系統安全補丁、操作系統安全加固、防病毒等手段實現操作系統主機層面安全
數據庫安全:通過及時更新數據庫補丁、數據庫安全加固、數據庫定期安全巡檢及數據庫安全設計等手段確保數據庫安全
應用安全:基于對以OWASP為藍本的全球主要Web安全威脅進行分析,通過對Web容器實施加固,對Web應用進行安全設計,使業務系統能夠防范絕大多數的Web安全威脅;通過接口協議安全、敏感數據傳輸安全及敏感數據存儲安全確保非Web應用安全
事中預警主要包括以下幾個方面:
通過實時日志審計及時發現設備運行過程中的異常,如異常登錄行為和暴力破解行為,管理員可以及時做出反應,降低事故影響范圍和損失;
通過安全巡檢及時發現入侵痕跡,發現長時間未修改密碼的用戶,以及對操作系統、數據庫的加固效果進行檢查;
通過IDS/IPS等入侵檢測保護系統及時發現或阻止惡意攻擊,一定程度上減少被攻擊范圍和損失。
事后審計追蹤主要包括以下幾個方面:
通過事后日志審計,發現攻擊者的來源及攻擊手段,為追蹤攻擊者提供佐證。
3.1應用層安全
解決方案所提供應用程序采取一系列安全技術和措施,以保證應用程序安全運行,所采用安全技術和措施主要包括:
3.1.1應用安全技術
口令安全,包括:
1.后臺管理員必須使用復雜的口令策略(復雜度可以配置)[1];2.管理員登錄時必須使用https保護口令不被竊聽;3.管理員修改口令時必須使用https保護口令不被竊聽; 4.模塊應禁止默認口令登錄; 5.用戶在進行口令更改時,系統必須支持歷史口令重復控制,應能控制不能使用最近使用過的口令
認證安全,包括:
1.管理員登錄頁面須提供驗證碼,驗證碼使用一次后自動失效,未使用在業務規定時間后失效2.管理員的最終認證處理過程在應用服務器進行;3.認證處理模塊對提交的參數進行合法性檢查;4.無預留任何的后門帳號或特殊的訪問機制,所有的認證統一由認證模塊處理,不存在繞過認證模塊的邏輯存在;5.用戶登錄時先判斷驗證碼是否正確,再判斷用戶名和口令是否正確;6.系統支持連續多次登錄失敗帳號鎖定功能,失敗次數可配置,鎖定時長可配置;7.認證失敗時,只顯示一般錯誤提示,不向用戶提供詳細錯誤信息。
會話管理安全,包括:
1.管理和用戶門戶使用會話cookie維持會話,不使用隱藏域、URL重寫或持久性cookie方式維持的會話;2.會話過程中不允許修改的信息(比如:用戶認證通過后的用戶標識),作為會話狀態的一部分在服務器端存儲和維護;3.當跟蹤到非法會話,記錄日志、清除會話并返回到認證界面;4.當用戶退出時,清除該用戶的會話信息;5.設置會話超時機制(默認超時時間為10分鐘),在超時過后清除該會話信息;6.當“注銷(或退出)”的按鈕或菜單被點擊,對應的會話立即失效;7.業務邏輯在服務器端處理,業務邏輯沒有被繞過的行為
權限管理,包括:
1.對于管理員的訪問請求核實其會話標識是否合法、是否被授權執行這個操作;2.授權和用戶角色數據存放在服務端,不存放在客戶端,鑒權處理也由服務端完成;3.所有帳號只擁有必需的權限;4.不使用“root”、“administrator”、“supervisor”等特權帳號運行應用程序,盡可能地使用低級別權限的操作系統帳號;5.連接數據庫服務器時使用最低級別權限的數據庫帳號,不使用數據庫管理員帳號。
敏感數據存儲,包括:
1.不在代碼中存儲敏感數據;2.不將密鑰或帳號的口令以明文形式存儲在數據庫或者文件中;3.不在cookie、隱藏域、日志中以明文形式存儲敏感數據;4.使用公開、安全的標準加密算法對數據進行加密;5.禁止帶有敏感數據的Web頁面緩存。
敏感數據傳輸,包括:
1.所有的表單數據根據業務盡量使用 HTTP-POST 方法提交,減少通過Http-get方法提交2.在客戶端和服務端間傳遞敏感數據時,采用加密手段保證敏感信息數據的安全性(對數據加密傳送,或通過ssl協議保障數據安全)3.不在URL中攜帶會話標識;4.對用戶保密的信息不傳送到客戶端;
對外接口安全,包括:
1.系統對對外接口的調用進行認證、授權2.系統在采用對外接口傳遞敏感數據時,保障其機密性(對數據加密傳送,或通過ssl協議保障數據安全)3.系統對對外接口調用記錄日志4.系統對對外接口提交的參數需要進行輸入校驗
輸入校驗,包括:
1.必須對所有用戶產生的輸入進行校驗,一旦數據不合法,應告知用戶輸入非法;2.必須對所有服務器產生的輸入(來自hidden fields、selection boxes、check boxes、radio buttons、cookies、HTTP headers、熱點鏈接包含的URL參數的數據或客戶端腳本)進行校驗,一旦數據不合法,必須使會話失效,并記錄告警日志;3.應當對輸入的字符類型是否符合要求、輸入字符長度是否符合要求、輸入的數據是否合理;4.禁止將HTTP標題頭中的任何未加密信息作為安全決策依據;5.應對HTTP請求頭域User-Agent進行檢查,丟棄不匹配的瀏覽器名稱;6.禁止通過字符串串聯直接使用用戶輸入構造可執行 SQL 語句,以防止SQL注入攻擊;7.禁止動態構建XPath語句,以防止XPath注入攻擊;8.用于重定向的輸入參數不能包含回車和換行字符,以防止HTTP響應拆分攻擊;
輸出編碼:對于不可信的數據,輸出到客戶端前必須先進行HTML編碼,以防止跨站腳本攻擊
文件上傳下載安全,包括:
1.應當采用白名單對上傳或下載的文件類型、大小進行嚴格的限制;2.禁止以用戶提交的數據作為讀/寫/上傳/下載文件的路徑或文件名,以防止目錄跨越攻擊。
日志管理,對安全事件和操作記錄日志,安全操作包括用戶登錄、注銷操作及賬號管理操作等
異常處理:系統出現異常時,只能向客戶端返回一般性的錯誤提示消息,但應當在日志中記錄詳細的錯誤信息
客戶端軟件安全,包括:
1.客戶端需要支持啟動登錄認證,支持帳號、密碼登錄認證方式,只有登錄認證通過才能正常使用業務,要求同一帳號不能重復登錄;2.客戶端軟件和業務系統之間傳遞敏感信息數據時,必須采用加密方式傳輸;3.通常情況下不允許在客戶端本地保存敏感信息,實在需要保存的話需要對敏感信息進行加密;4.要求所發布的JAVA客戶端軟件發布包抗逆向工程,不能被有效反編譯。
防DoS攻擊,包括:
1.所有Portal部件具有一定的應用級防DoS功能,能夠限制給定時間段內用戶的訪問數量(可配置);
安全通信協議
1.所有敏感數據均需在網絡上加密傳輸,典型地對于基于Web的登錄和修改口令請求需要采用HTTPS協議確保口令不被抓包竊取;
2.要求主機外的管理平面和近端維護終端、網管維護終端間傳輸的管理流量需加密傳輸,使用合適的安全傳輸協議(如SSH/SFTP/TLS/IPSec/SNMPv3/SSL等)來確保管理流量安全。
3.2系統層安全
為保障業務系統在安全的環境中運行,解決方案在系統層對操作系統、數據庫、Web服務器進行了安全設計,所采用的安全技術和措施包括:
3.2.1操作系統安全
通過對操作系統加固,實現操作系統安全,安全加固包括如下內容[2]:
對SSH服務進行安全加固;
對系統的啟動服務進行最小化限制;
對Xinetd服務進行最小化限制;
對內核網絡參數進行優化,防止DoS攻擊、IP地址欺騙等[3];
啟動syslog、ntp,開啟對登錄、cron、遠程連接等事件的記錄,并支持日志審計;
將登錄、網絡連接信息修改為警告信息;
對文件、目錄進行訪問權限設置;
對系統認證和授權進行加固;
對帳戶管理進行加固;
對系統環境進行加固;
3.2.2數據庫安全
通過Oracle數據庫加固,實現Oracle安全,安全加固包括如下內容:
對Oracle目錄和文件權限進行限制;
對Oracle參數進行加固;
對用戶Profile進行加固;
對用戶權限進行限制;
對數據庫網絡安全進行加固;
3.2.3Web服務安全
對WEB服務器進行加固,安全加固包括如下內容[4]:
部署運行策略,規范運行用戶,刪除默認控制臺或管理員帳戶
基本配置策略,通過合理配置配置文件參數,減少因配置問題導致的安全風險
文件目錄權限控制
日志配置
3.2.4防病毒
對windows操作系統(目前主要是維護終端)安裝防病毒軟件,確保系統不受網絡病毒攻擊[5]
3.3網絡層安全
為保障網絡系統自身安全,并為運營在該網絡平臺上的業務系統提供安全支持,解決方案在網絡層采取了以下安全技術和措施:
3.3.1網絡及安全區域劃分
對網絡設備進行安全加固,確保網絡設備自身安全運行
對業務網絡進行合理的VLAN劃分,對不相關業務進行隔離,保障業務可靠安全運行
對整個業務網絡進行安全域劃分,部署防火墻,通過合理的策略配置進行訪問控制,一般根據業務需要,劃分UNTRUST、DMZ、TURST、OM幾個區域
設備的管理平面、控制平面及數據平面在傳輸通道上實現隔離,管理平面遭受攻擊,不能影響其他兩平面正常使用;數據平面、控制平面遭受攻擊,要保證設備依然可管理[6]
3.3.2接口和協議
業務維護場景支持SSH取代telnet,SFTP取代FTP
針對必須使用FTP的場景,通過限制客戶端IP地址方式來提升FTP的安全性
系統產品資料中提供有各部件通訊端口矩陣,便于客戶運維人員進行安全相關運維操作
主機外的管理平面和近端維護終端、網管維護終端間傳輸的管理流量加密傳輸,使用合適的安全傳輸協議(如SSH/ SFTP/TLS/IPSec/SNMPv3/SSL等)來確保管理流量安全
3.4管理層安全
為保障能對系統中各個方面的安全技術和產品進行統一管理和協調,從整體上提高系統的安全保護能力,解決方案在管理層采取了以下安全技術和措施:
3.4.1帳號與權限管理
每人每帳號實現,系統帳號的按角色分權設置,實現帳號分級管理,每人每帳號授權,消除共享帳號
清除多余帳號與組,清除操作系統與數據庫多余的帳號與組(含默認)
強化帳號管理流程,不能實現每帳號授權類,如 Linux系統的 root 帳號,根據角色定義帳號,將帳號集中掌控在有限的 1-2人 中,管理制度和流程控制上對帳號的擁有者加以強化
密碼策略強制,口令長度、復雜性,密碼最短修改期限及相應的預警或強制,不能使用最近 N 次的密碼,錯誤登錄超次后帳號鎖定功能
3.4.2安全接入
提供堡壘主機,記錄用戶對操作系統的所有操作。
3.4.3日志審計
支持對安全操作和安全事件記錄日志,支持對安全日志進行事中、事后審計
四、總結
本文就運營商能力開放過程中可能面臨的安全威脅進行了詳細的分析,分別從應用層安全、系統層安全、網絡層安全、管理層安全幾個方面進行研究和論證可實施的安全控制方案。并從應用安全技術、操作系統安全、數據庫安全、Web服務安全、防病毒、網絡及安全區域劃分、接口和協議、帳號與權限管理、安全接入、日志審計等方面進行詳細的實施方案分析總結。
參 考 文 獻
[1]NIST Special Public 800-57, Recommendation for Key Management – Part1: General(Revision3), 2012
[2]NIST Special Public 800-21-1, Guideline for Implementing Cryptography in the Federal Government, 2005
[3]NIST Special Public 800-38a, Recommendation for Block Cipher Modes of Operation - Methods and Techniques, 2001
[4]ECRYPT II Yearly Report on Algorithms and Key Lengths (2012), revision 1.0, 2012
[5]RFC4086, Randomness Requirements for Security, 2005
[6]RFC2898, PKCS #5: Password-Based Cryptography Specification Version 2.0, 2000