针对Web协同的授权用户风险评估方法

2020-03-11 12:51柯昌博黄志球
计算机应用与软件 2020年2期
关键词:令牌服务器对象

柯昌博 黄志球

1(南京邮电大学计算机学院 江苏 南京 210003)2(南京航空航天大学计算机科学与技术学院 江苏 南京 210016)

0 引 言

基于Web的协同是指多个域内自治组织允许其合作者、用户和职员通过本地或远程连接来共同完成某项任务的系统。在云计算中,软件及服务SaaS(Software as a Service)是一种典型的在线协同系统[1]。许多的软件决策者根据经济和性能评估,都愿意将自己的协同任务加载到第三方协同平台[2-3]。但是随着用户数量的增加,协同平台是否会被域内用户恶意操作,从而带来安全威胁,得到了广大学者的关注[4-5]。目前,请求认证和授权是保证协同平台安全的主要技术,其利用OAuth2.0来归约访问令牌,并利用访问控制列表作为安全服务器中的认证模块[6-7]。当服务请求者访问对象时,利用带有对象哈希码的令牌向安全服务发出访问请求,当安全服务收到访问请求时,将其请求转发给认证模块,认证模块读取访问控制列表的策略,决定对访问请求进行授权或者拒绝[8]。

然而,基于令牌的授权与认证在令牌发出和请求者实际使用令牌时间之间,没有形式定义服务请求者的行为[9]。访问请求被授权仅仅基于请求者的身份和令牌的验证。保证已经获取有效令牌并被授权的用户对平台数据的安全访问或操作是域内攻击研究的重点[10-11]。下面我们用医疗云中的一个实例来说明所研究的问题。

在远程医疗中,利用可穿戴的传感器收集病人的生理数据。医疗云提供者可以对病人的电子医疗记录(Electronic Health Record,EHR)进行存储、处理和分析,为医生诊断提供依据。假设某个医院H1通过使用医疗云辅助主治医生M为病人进行诊断,而病人P购买了保险公司I的医疗保险。医护人员通过可穿戴的设备为病人收集相关的生理参数,包括心跳、血压、血糖、体温和尿量等,并且将这些数据托管给远程医疗云C进行管理。医院作为病人生理数据的拥有者,可以分配给医护人员和医生M操作权限。医疗云通过使用基于令牌的访问控制来执行不同请求者的认证与授权,同时,也可以允许另一个医院H2的医疗专家访问病人的EHR。

当开始诊断时,首先由医护人员通过智能电话中的APP向医疗云C发出请求,并检索病人P当前的身体状态。在医护人员向医疗云C发出请求,并认证与授权的过程中,会出现如下几个方面的安全问题:

(1)H1和H2的医生或其他职员向医疗云C发送请求,企图进行恶意操作或篡改用户的生理数据。

(2)H1和H2的医生或其他职员将病人P的生理健康数据EHR暴露给保险公司I,保险公司则可以根据病人的身体状态在后续的保险中提高价格。

所以,基于令牌的身份认证与授权机制很难防止来自内部人员对数据的威胁。防止域内请求者恶意操作或暴露用户数据是访问控制问题中的挑战。

针对域内攻击,需要在授权与认证的基础上,对已被认证的用户操作进行评估,获取恶意操作与篡改的证据,降低恶意操作人员的访问等级或者拒绝此类人员的访问,从而保证用户数据的安全与隐私。文献[6]提出了一种多层级的安全访问控制模型,利用未授权暴露的概率和被暴露信息的价值来评估访问风险,将主体和客体的安全许可等级抽象成请求者的诱惑指数来定义暴露概率。文献[12]将资源划分为不同的风险等级,不同风险等级的资源对应不同的访问控制策略,当请求者对某一资源发出访问请求时,可以根据资源的不同进行自适应对其进行授权或拒绝其访问。文献[13]提出一种基于故障树分析法构建信息安全风险评估模型,通过定性与定量分析找到影响风险评估的主要因素。文献[14]分析了云计算的特征,综述了安全相关的技术,并分析其在云计算中的应用。其中风险评估作为可信访问中的技术可以对云服务访问提供安全支持。文献[15]提出了一种基于贝叶斯攻击图的动态风险评估模型,运用贝叶斯推理方法对单步攻击行为的后验概率进行动态更新,最终实现对目标网络整体安全性的评估。本文的主要创新点如下:

(1) 提出了风险评估模型,对已被授权与认证的用户对数据对象的访问进行风险评估,从而降低了恶意用户对数据的篡改、窃取或暴露。

(2) 给出了风险评估框架,描述了风险评估模型中的数学模型之间的调用关系。

(3) 对风险评估模型进行了模拟实验,说明了此方法的可用性与合理性。

本文主要是对风险评估进行建模,以获取风险值供认证与授权服务器参考,决定是否对请求者授权。如果请求风险高于某个阈值,则拒绝请求。

1 基于Web协同平台框架

根据请求的域的不同,基于Web的协同平台包含两种请求方式,即本地请求和远程请求。本地请求是指在数据上传时,由数据的拥有者(数据服务器管理员)设定并分配给指定用户的权限,而这些特定用户的请求,称为本地请求,如实例中H1的医护人员或主治医生。远程请求是指将数据对象以共享的方式提供给特定用户的访问,如实例中H2的主治医生。如图1所示,风险评估框架包括以下参与者:

(1) 数据对象的拥有者OWi(Object Owner):OWi是本地域用户,他们可以设置数据对象的访问等级(图1中的第1步和第2步),通常等级分为三级,即可读(view)、可写(edit)、可执行(execute)。在完成协同操作后,将反馈发送给风险评估服务(图1中的第3步)。

(2) 共享的数据对象Oi(Share Object):Oi是被对象拥有者在协同平台上共享的实体,包括文本、图像等。每个Oi都有相应的敏感度,可以用一个偏序关系表示,即:To-SecretSecretConfidentialUnclassified。

(3) 请求者(Requester):请求者是来自本地或远程的用户,在初始状态需要从认证与授权服务器获取有效的令牌(图1的第4步)。如果请求者获取了令牌,并通过了认证服务器对其访问策略的验证,则可以带着令牌访问被OWi共享的Oi。也有可能发现请求者的访问风险(图1的第10步)。任何用户都有对应的信誉值和安全等级,根据信誉度可以将用户分为三级:诚实(honest)、自私(selfish)和恶意(malicious),即:honestselfishmalicious。

(4) 认证与授权服务器(Authentication and Authorization Server):OWi可以在认证与授权服务器定义Oi的访问策略,并根据此策略授予或拒绝请求者(图1的第5步和第9步)。

(5) RM Web服务(RM Web service):这是本文所提出的请求风险评估服务,被认证与授权服务器所调用,通过RM服务获取请求者的请求风险值,认证与授权服务器通过风险值决定是否对访问请求者授权(图1的第7步和第8步)。也可能收到对象拥有者OWi的反馈(图1的第3步)。

图1 基于Web的协同平台架构

2 可预测的风险评估服务模型

2.1 风险评估模型

定义1访问请求(Access Request):我们可以用一个五元组来表示,即(UID,Ul,A_M,OBp,OBt)。其中:UID表示请求者ID;Ul表示请求者的安全等级;OBp表示对象,其包括三种属性OBp={C,I,A},C表示机密性(Confidentiality),I表示完整性(Integrity),A表示可用性(Availability);而对象OBt包括4种类型OBt={Top secret,Confidentiality,Sensitive,Non-sensitive};A_M表示访问模式,A_M={VIEW,EDIT,EXECUTE}。不同的访问模式对不同类型的对象进行访问,对其威胁也不同,举例说明如表1所示。

表1 访问模式对对象属性的影响

我们对权值回归模型对风险值进行建模,即:

R=ws×s+wl×l

(1)

式中:ws表示对象敏感度的权值;s表示对象敏感度;wl表示请求者安全等级权值;l表示请求者的安全等级。ws和wl可以表示:

(2)

式中:ws可以利用访问请求者对访问模式误操作的效用值来表示;υ表示风险容忍参数,取值在[0,1]之间;-cj表示访问请求可能对数据对象造成的损害,可以通过历史数据中的访问模式发生的概率计算得到。cj的计算公式如下:

cj=(C×paj)+(I×paj)+(A×paj)

(3)

式中:C、I和A分别表示访问对象的机密性、完整性和可用性;paj表示历史数据中的访问模式发生的概率。

(4)

式中:λ表示对协同平台主观的衰减率(Uncertainty Parameter),取值范围为[0,1];ρTk表示请求者信誉度。我们利用Inverse Gompertz函数对请求者的信誉度ρTk建模。在初始化时,给每个请求者最大的信誉度,根据访问策略,使其能够访问各个敏感层级的数据。当发现请求者恶意交互时,其信誉度的值就会下降,直到信誉度为0,并收回访问令牌。因此,请求者信誉度可以表示为:

ρTk=1-A·e-B·e-C.Tr

(5)

式中:Tk表示请求者恶意操作的次数;A表示信誉值的上渐近线,取A=1;B为正常数,是控制信誉值的置换;C调节衰减率,A、B和C表示Gompertz参数。

综合式(1)-式(5)可以得到风险值的计算模型为:

(6)

2.2 风险评估框架

由图1可知,当请求用户向数据对象发送请求时,首先向认证与授权服务器请求,获得认证并得到有效的令牌。这时,授权与认证服务器向风险评估服务发出请求,得到请求用户的风险值。

在这个过程当中,首先认证与授权服务器将请求发送给请求处理器,请求处理器分别调用Uncertainly函数获得ws的值,调用Utility函数得到wl,并通过对象数据库得到对象的敏感度,同时通过信誉计算模块得到请求用户的信誉值。利用前期得到的ws、wl、l和s值,通过权值线性回归函数获取访问请求的风险值,并将访问请求的风险值返回给认证与授权服务器。认证与授权服务器根据风险值决定是给予该请求者授权,还是拒绝此次服务。

具体的调用过程如图2所示。

图2 风险评估框架

3 风险评估模拟实验

我们通过模拟实验获取权值回归中权值其及参与之间的关系,模拟实验参数取值如表2所示。

表2 模拟实验参数值

图3表示模拟ws曲线,其中横轴表示访问请求可能对数据对象造成的损害(Expected Damage)-Δcj,纵轴表示效用ws。图3显示了潜在的恶意请求者通过恶意操作获取不同敏感度的共享对象的效用(Utility),风险容忍参数(Risk Tolerance Parameter)υ控制效用增长率。对于较低的风险容忍度,协同平台可能会选择敏感度较低的对象向请求者共享。但是对于关键操作,需要将风险容忍参数调高,以保证远程用户可以访问到敏感数据对象。

图3 ws的模拟曲线

图4表示wl的模拟曲线,其中纵轴表示wl,横轴表示信誉度的值。可以看出,随着信誉度值的减少,其wl值也在减少。当C=0.7,λ=0.25时,w2衰减得最快;当C=0.7,λ=0.65时,wl衰减得最慢;当C=0.7,λ=0.45时,wl衰减的速度介于C=0.7,λ=0.65和C=0.7,λ=0.45之间。

图4 wl的模拟曲线

我们在3种不同的访问模式下,计算平均风险值并对其进行模拟,如图5所示。

图5 访问模式所对应的风险值

例如,访问模式为EIDT和EXECUTE的风险值始终高于访问模式VIEW的风险。因此,由访问模式为VIEW对共享对象所造成的破坏比其他两种访问模式要低,协同平台可能会将高敏感度的数据对象授权给访问模式为VIEW的访问请求者。

4 结 语

面向Web协同的授权系统,基于域内攻击,提出了一种风险评估方法,可以通过访问客体的敏感度和访问主体的安全水平,计算访问请求的风险值。授权与认证服务器可以通过对风险值的判定,决定是否授权给请求者访问数据对象,从而达到保护数据对象免受域内请求的恶意破坏或转发,避免给对象拥有者造成经济损失,降低隐私暴露风险。

下一步工作,将定义约束或规则与域内请求者签订对象数据的保护合同,将约束条款与请求者的行为进行匹配,并通过验证的方式获取请求恶意交互的证据,跟踪请求的操作行为,将其以日志的方式存入日志服务器,通过请求者的历史行为很准确地计算出请求用户的信誉值。通过这些方法进一步约束域内请求者的行为,降低域内请求风险。

猜你喜欢
令牌服务器对象
称金块
晒晒全国优秀县委书记拟推荐对象
2018年全球服务器市场将保持温和增长
攻略对象的心思好难猜
图说车事
个性签名
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵
《道教法印令牌探奥》出版发行