楊 靜,季新生,劉彩霞
(信息工程大學 國家數字交換系統工程技術研究中心,河南 鄭州 450002)
3GPP在R5版本中提出了IP多媒體子系統IMS(IP Multimedia Subsystem)的概念。IMS作為一個實際運營的網絡,充分考慮了身份認證,安全計費等能力,為基于全IP網絡多媒體應用提供了一個通用的業務職能平臺,也為網絡發展過程中的網絡融合提供了技術基礎,是未來網絡的發展方向之一。在IMS中,歸屬用戶服務器HSS(Home Subscriber Server)作為用戶簽約業務數據庫,存儲著用戶的安全數據和業務數據,I-CSCF(Interconnection-Call Session Control Function)與 S-CSCF(Serving-CSCF)通過Diameter協議與HSS進行信息交互[1]。由于HSS與I/S-CSCF之間缺乏身份認證機制,且攻擊者是以合法身份接入網絡,I/S-CSCF可以進行越權訪問HSS,非法獲取或修改用戶的信息,因此需要建立新的HSS數據庫的訪問控制模型,對 I/S-CSCF的非法行為進行防護。由美國George Mason大學的Ravi Sandu教授提出的基于角色的訪問控制模型RBAC(Role-Based Access Control)[2-4],提供了解決大量用戶、數據客體和訪問權限系統中的授權管理問題,是一種方便、安全、高效的訪問控制機制,適用于HSS數據庫訪問控制。
本文在HSS數據庫訪問控制中應用基于角色訪問控制策略,并添加其約束模塊,建立I-CSCF—S-CSCF的關聯表,最后給出越權訪問行為防護的分析和仿真。
HSS是IMS網絡中存儲用戶信息的主要數據庫。存儲在HSS的IMS相關數據主要包括:IMS用戶標識、號碼和地址信息以及用戶安全信息等。IMS網絡中的呼叫會話控制服務器I/S-CSCF和應用服務器AS通過訪問HSS,獲取用戶注冊和業務邏輯執行所需的用戶數據。
P-CSCF通過DNS域名解析獲得I-CSCF的地址,ICSCF根據 UAA信息,選擇合適的 S-CSCF[1],沒有機制通知HSS該S-CSCF地址。由于攻擊者是合法接入網絡,I/S-CSCF與HSS之間可以通過相互認證,攻擊者可以通過篡改數據包,實現越權訪問。
由于I-CSCF數據庫越權訪問不涉及用戶核心信息,攻擊方式與S-CSCF相似,故本文重點分析S-CSCF越權訪問行為。其越權訪問流程如圖1所示。
(1)在 HSS側,攻擊者截獲 S-CSCF發送的 MAR(1)/SAR(1)請求,將 AVP Session id、AVP Origin Host等和攻擊目標有關的字段改為自己的字段,將在數據包中SCSCF的路由信息刪除,僅保留攻擊者的地址,如:

圖1 S-CSCF越權訪問流程

攻擊者將修改后的MAR(2)/SAR(2)命令發送到HSS,由于攻擊者是合法 S-CSCF,所以可以通過HSS的認證,使HSS認為是攻擊者發出的合法的請求MAR(2)/SAR(2),發送響應 MAA(2)/SAA(2)給攻擊者。
(2)攻擊者收到 MAA(2)/SAA(2)后,由于 S-CSCF知道HSS的地址,所以目的域地址仍置為HSS的地址,將AVP SessionId與AVP OriginHost等字段在MAR(2)/SAR(2)中修改過的字段改為原MAR(1)/SAR(1)的字段。將修改好的數據包MAA(1)/SAA(1)發送到S-CSCF。由于數據包中所有的信息均已修改,而S-CSCF并不溯源數據包的來源,所以會認為是HSS發送的響應消息。
通過以上兩個步驟,攻擊者可以越權訪問到S-CSCF存儲在HSS上的數據信息,從而實現了HSS數據庫的越權訪問。
基于角色的訪問控制模型RBAC引入了角色的概念,目的是為了隔離主體與權限,其模型如圖2所示。RBAC模型的基本概念:
用戶(User):可以獨立訪問計算機系統中的數據或其他系統資源的主體。用戶可以是人,也可以擴展為機器、設備、進程等,在此為 I/S-CSCF。

圖2 RBAC 模型
角色(Role):角色指一個組織或任務中的工作或位置,它代表一種資格、權利和責任。
權限(Permission):權限描述一個角色對一個訪問對象可以執行某種操作的能力,它反映的是授權的結果。如查詢角色對資源B只有讀的權限,I-CSCF賦予查詢角色時,對資源B只能進行讀取。
用戶角色分配(User-Role Assignment):建立用戶與角色的多對多關系。
角色權限分配(Permission-Role Assignment):建立角色與訪問權限的多對多關系。
會話(Session):會話對應于一個用戶和一組激活的角色,表示用戶進行角色激活的過程。如I-CSCF發送UAR命令查詢用戶注冊狀態的流程[2-4]。
IMS通信流程中,I/S-CSCF與HSS之間通過Diameter協議進行信息交互。當前IMS網絡缺乏在信令處理過程中對網絡實體的身份、權限的判斷,導致某些被非法利用的網絡實體針對用戶位置,狀態等重要信息發起各種攻擊行為。在IMS網絡中,網絡實體通過信令消息觸發消息處理機制來實現對用戶數據的訪問和操作,網絡實體擔任的角色及角色與權限的映射關系隨信令流程的改變而動態變化。所以需要對基于角色的呼叫控制模型進行一定的改進。模型設計的核心思想就是在通信過程中,通過約束模塊,對角色、權限分配過程進行控制,控制模型如圖3所示。

圖3 基于角色的HSS訪問控制模型圖
基于角色的HSS訪問控制模型定義如下:
主體(User):可以訪問 HSS數據庫的網絡實體,即I/S-CSCF;
客體(Objects):存儲在 HSS數據庫中的數據,如 SCSCF能力集,用戶認證消息等;
角色(Roles):I/S-CSCF所承擔的職責;
權限(Permissions):可以對客體信息進行的操作,如查詢,修改;
約束(Constrain):在角色劃分,權限分配中需要滿足的限定性條件;
會話(Session):用戶進行激活的過程,如 I-CSCF發送UAR信令到HSS。
訪問過程中形成的映射關系:
UA?U×R×OB表示模型中從主體到角色的授權關系集,如果(u,r,ob)∈UA,含義是將主體 u分配給角色 r,此時主體訪問的客體是ob。在模型中,當客體確定時,在符合相應約束條件的前提下,一個主體只能分配一種角色,一種角色可以對應一個主體或多個主體。
PA?P×R×S表示模型中從角色到權限的授權關系集,如果(p,r,s)∈PA,含義是在會話 Session的作用下,將權限p分配給角色r。角色與權限是多對多的關系。
I(U,OB,S,R,P)表示角色分配后的信息集,如果i(u,ob,s,r,p)∈I,含義是當主體u訪問客體ob時,在會話Session的作用下,權限p分配給了角色r[5-7]。
在約束模塊添加關聯表,通過修改關聯表,對模型中的分配起到限制作用。在IMS網絡中,存在多個I-CSCF與S-CSCF,,它們之間是一對多映射的關系,如圖4所示。在HSS中建立I-CSCF—S-CSCF關聯表,如圖5所示。
3.1.1 約束模塊操作流程
在初始時,HSS將關聯表中I-CSCF能夠選擇的SCSCF的屬性值全部置為1。

圖4 I-CSCF與S-CSCF映射圖

圖5 I/S-CSCF關聯表
(1)當 I-CSCF選定一個 S-CSCF后,向 HSS數據庫發送一個消息,將此信令消息命名為IER(I-CSCFElect-Require),告知 HSS其選定的 S-CSCF。

(2)HSS收到IER消息后,提取Session-id,User-Name,Server-Name字段,發送響應消息IEA(I-CSCFElect-Answer)消息給 I-CSCF。
(3)HSS修改關聯表,將對應的I/S-CSCF值設為Session-id,其他的值設為0,實現綁定約束,在后續為 SCSCF分配角色等操作時,只有被綁定的S-CSCF才能進行相應的用戶數據下載、更新等操作。
(4)當會話結束后,將關聯表信息改為初始值,釋放各資源。
3.1.2 訪問控制模型應用流程
(1)HSS根據I/S-CSCF的能力,建立用戶表;根據I/SCSCF進行的操作,進行角色分類,建立角色表;根據I/SCSCF的能力,在特定會話的條件下進行的操作,為I/SCSCF分配角色,更新用戶-角色表;根據存儲在數據庫中的信息的性質,及對其進行的操作,建立權限表;根據角色在特定會話條件下對客體進行的操作,建立角色-權限表;建立I-CSCF—S-CSCF關聯表。
(2)當I/S-CSCF發起會話時,HSS首先查找用戶表,判斷用戶身份是否合法。
(3)根據會話發起的信令,查找對應的角色表,確定此次會話中主體所擔任的角色。
(4)根據主體及角色,為用戶分配角色,更新用戶-角色表。
(5)根據會話信令,查找角色-權限表,確定此次會話I/S-CSCF所能訪問的數據資源及其進行的操作。
(6)當會話建立時,啟動約束模塊,HSS修改關聯表,綁定此次會話,只有發起會話的主體才能對數據庫進行訪問。
根據整個流程,HSS數據庫訪問控制系統被分為不同的功能模塊,主體分為不同的權限訪問不同的客體。根據模型設計方法,用戶及權限信息均被保存在HSS數據庫中,建立用戶表、角色表、權限表、約束表、用戶與角色表、角色與權限表的6個表格,各表詳細設計及關系如圖6所示。

圖6 HSS數據庫中相關表的設計
在HSS訪問控制方式及數據庫的設計中,約束模塊對用戶角色表、角色權限表都有著制約作用,從而能夠比較有效地進行數據庫訪問控制。效果分析如圖7所示。

圖7 HSS訪問控制效果圖
I-CSCF選定S-CSCF后,與HSS進行 IER/IEA信令交互后,啟動約束模塊,HSS數據庫修改關聯表,進行綁定操作。當攻擊者篡改MAR/SAR消息時,HSS查找關聯表,由于 I-CSCF—S-CSCF關聯表中,攻擊者的屬性值本不存在或被置為0,HSS拒絕攻擊者的請求,從而實現了HSS數據庫越權訪問的防護。
Open SAR由C語言實現,是一個成熟且靈活的開源SIP服務器棧軟件??梢杂米髯苑掌?、位置服務器、代理服務器等多種SIP服務器。通過對Open SAR進行設置,可以實現IMS中各個CSCF的功能。依據課題的研究內容,要求SIP終端具有可配置性。因此,選取SIP攻擊軟件SiVus用于SIP終端功能的實現。在仿真過程中將HSS數據庫設置為一般的數據庫,攻擊者截獲數據包并偽裝就可以立刻下載用戶的認證信息。而在使用本文方法后,能夠有效地防護HSS數據庫越權訪問行為。
HSS數據庫防護在基于角色的訪問控制模型的基礎上添加了約束模塊,在其中設置了I-CSCF—S-CSCF關聯表。通過理論分析和仿真結果驗證,該模型能夠較好地對HSS數據庫越權訪問行為進行防護,同時該模型也可直接在系統中添加相應模塊,實現簡單、通用性強。
[1]POIKSELKA M,MAYER G,KHARTABII H,et al.移動領域的IP多媒體概念和服務[M].北京:機械工業出版社,2005.
[2]RAVIS E J,COYNE K.Role-based access control models[J].IEEE Computer,1996,29(2):38-47.
[3]FERRAIOLO D F.Proposed NIST standard for role-based access control[J].ACM Transactions on Information and System Security,1001,4(3):224-225.
[4]SANDHU R S.COYNE E J,FEINSTEIN H L,et al.Rolebased access control models[J].IEEE Computer,1996,29(3):38-39.
[5]周穎杰.移動通信網位置信息安全防護關鍵技術研究[D].河南:解放軍信息工程大學,2008:45-54.
[6]LINA B R.The application of security policy to rolebased access control and common data security architecture[J].Computer Communications,2000,23(17):1584-1593.
[7]邢漢發.基于角色和用戶組的擴展訪問控制模型[J].計算機應用研究,2009,26(3):1098-1100.