安全强化装置的制作方法

文档序号:7742266阅读:117来源:国知局
专利名称:安全强化装置的制作方法
技术领域
本发明涉及一种安全强化装置,其能够防止在从应用服务器发送的对于来自客户 终端的请求的应答中包含的参数的泄漏以及篡改。
背景技术
现在,伴随因特网技术的发展,各种业务或者服务正作为能够从如Web浏览器容 易地利用的Web应用实现。该Web浏览器是在可与提供Web应用的服务器(以下称“应用 服务器”)通信连接的终端(以下称“客户终端”)上动作的客户机软件。例如,在购物站点上,使用者能够一边看在客户终端上显示的画面一边进行商品 的选择或订货,进而也可以用信用卡进行支付等。使用者通过送货上门的公司等接收订购 的商品,由此利用服务。这样,近年来,Web应用的利用者例如能够在自家的家中享受各种服务。在利用 Web应用的场合,从客户终端发送为利用该Web应用的请求,从应用服务器返回对于该请求 的应答。亦即,通过在客户终端以及应用服务器之间进行请求以及应答的收发,提供各种服 务。在该请求以及应答中,包含在终端以及应用服务器中的处理所需要的各种参数等。但是,Web应用,有上述那样的便利性,另一方面,因为本来是无状态(不具有状态 的)结构所以被指出有许多脆弱性,有时引起信息泄漏的事故等。这起因于在Web应用的 安装中有不周全的地方,在Web应用的设计或者安装时是否能够适当地处理,依赖于进行 该设计或者安装的技术人员的技能。将上述Web应用的脆弱性的大部分,分类为插入类、对话管理类、以及参数不正当 操作类。
所谓插入类的脆弱性,是指例如在从客户终端对于应用服务器发送的请求中包含 的参数中插入了不正当的字符串。所谓对话管理类的脆弱性,是指例如不正当地操作了在请求或者应答中包含的对 话ID。该对话ID,例如是被用于实现客户终端以及应用服务器之间的通信的同步。另外,所谓参数不正当操作类,是指例如篡改在从应用服务器发送的应答中包含 的参数的信息后发送请求。在这些之中,特别是对话管理类或者参数不正当操作类的脆弱性,需要来自上位 设计阶段的做入,在Web应用的运用开始后发觉的场合,需要通过修改大量的程序来应对。因此,公知有根据预先给定的规则置换例如在从客户终端对于应用服务器发送的 请求的参数(输入参数)中包含的不正当字符串来实现无害化的技术(以下称第一先行技 术)。另外,公开了根据预先给定的规则过滤发往服务器的访问请求以及对应该访问请 求的访问应答的技术(以下称第二先行技术(参照日本国专利公开公报2005-92564)。根 据第二先行技术,接受对于访问请求的访问应答,在该访问应答中存储的不正确的代码残 留的场合,将它们删除。由此,根据第二先行技术,能够从访问应答中删除预定的不正确的代码。但是在上述的第一先行技术中,可应付的Web应用的脆弱性限于插入类,对于其 他的对话管理类以及参数不正当操作类的脆弱性不能够应付。因此,在这些对话管理类以 及参数不正当操作类的脆弱性显著存在的场合,需要修改大量的程序。另外,在上述的第二先行技术中,因为以不正确代码作为对象所以也只能应付插入类的脆弱性的一部分。因此,对于对话管理类以及参数不正当操作类的脆弱性需要修改 大量的程序。

发明内容
本发明的目的在于提供一种安全强化装置,其无需变更运转中的应用的安装,能 够防止在从应用服务器发送的对于来自终端的请求的应答中包含的参数的泄漏以及篡改。根据本发明的第一形式,提供一种安全强化装置,其可通信地与通过用户操作的 客户终端以及对于该客户终端提供应用的应用服务器连接。该安全强化装置具有规则存 储单元,用于预先存储表示有泄漏或者篡改的可能性的参数的条件的规则;应答接收单元, 用于从所述应用服务器接收包含根据所述用户的操作从所述客户终端发送的对于为利用 所述应用的请求的参数的应答;检测单元,用于从所述接收到的应答检测与通过在所述规 则存储单元中存储的规则表示的条件一致的参数;生成单元,用于在从所述接收到的应答 中检测到与在所述规则中表示的条件一致的参数的场合,生成与该应答对应的对话对象; 对话对象存储单元,用于存储所述生成的对话对象;发行单元,用于发行用于唯一识别所述 生成的对话对象的对话识别信息;存储处理单元,用于将所述检测到的参数与所述已发行 的对话识别信息对应起来,存储在所述对话对象存储单元中存储的对话对象中;参数删除 单元,用于当在所述对话对象中存储所述检测到的参数时,从所述接收到的应答中删除该 参数;嵌入单元,用于在删除了在所述对话对象中存储的参数的应答中嵌入所述已发行的 对话识别信息;应答发送单元,用于对于所述客户终端发送嵌入了所述已发行的对话识别 信息的应答;请求接收单元,用于在发送嵌入了所述已发行的对话识别信息的应答后从所 述客户终端接收对于包含该对话识别信息的该应答的请求;读入单元,用于从所述对话对 象存储单元中读入通过在由所述请求接收单元接收到的请求中包含的对话识别信息识别 的对话对象;对话识别信息删除单元,用于从该请求中删除在通过所述请求接收单元接收 到的请求中包含的对话识别信息;恢复单元,用于在通过所述对话识别信息删除单元删除 了对话识别信息的请求中恢复在所述读入的对话对象中存储的参数;和请求发送单元,用 于对于所述应用服务器发送恢复了所述参数的请求。


图1是用于说明连接本发明的实施形式的安全强化装置的网络系统的图。图2是以在图1中表示的安全强化装置60为主表示功能结构的框图。图3是用于说明通过应用服务器20提供的Web应用的概要的图。图4是表示作为应答向客户终端10返回的订货画面的显示例。图5是表示作为应答向客户终端10返回的订货结束画面的显示例。图6是表示通过应用服务器20发送应答的场合的本实施形式的安全强化装置60的处理过程的流程图。图7是表示通过应答过滤器61接收的订货画面的应答的一例的图。图8是表示在过滤规则存储部52中存储的过滤规则的一例的图。图9是表示与应答100对应的对话对象的数据结构的一例的图。
图10是表示通过应答过滤器61发送的应答100的一例的图。图11是表示通过客户终端10发送对于通过应答过滤器61发送的应答100的请 求的场合的本实施形式的安全强化装置60的处理过程的流程图。图12是表示通过请求过滤器63接收到订货受理请求的请求的一例的图。图13是表示通过请求过滤器63发送的请求200的一例的图。
具体实施例方式下面参照附图,说明本发明的实施形式。图1是用于说明连接本实施形式的安全强化装置的网络系统的图。如图1所示,客户终端10以及应用服务器(Web应用服务器)20与网络30连接。在客户终端10上,利用应用服务器20的客户软件动作。客户软件例如是Web浏
IrWSB 见益。应用服务器20对于客户终端10提供各种Web应用。客户终端10通过利用由应用服务器20提供的Web应用的用户(使用者)操作。 这里,说明用户使用客户终端10利用由应用服务器20提供的Web应用的场合的客户终端 10以及应用服务器20之间的通信。在该场合,在客户终端10以及应用服务器20之间,例如根据用户的操作从在终端 10上运行的Web浏览器对于应用服务器20发送请求。另外,从通过应用服务器20提供的 Web应用向客户终端10返回(发送)对于该请求的应答。进而,在有对于从Web应用发送 的应答的请求的场合,从Web浏览器发送该请求。这样,通过在Web浏览器以及Web应用之 间收发请求以及应答,对于用户实现通过该Web应用的各种服务。另外,在上述Web浏览器 以及Web应用之间收发的请求以及应答中包含各种参数。如上述在客户终端10上运行的Web浏览器以及通过应用服务器20提供的Web应 用之间收发请求以及应答。但是在以下的说明中,为避免繁琐,假定是客户终端10以及应 用服务器20收发请求以及应答。另外,在图1中对于客户终端10以及应用服务器20以外的客户终端以及应用服 务器作了省略,但是,在网络30上连接多个客户终端以及应用服务器。在网络30上连接计算机40。计算机40连接硬盘驱动器那样的外部存储装置50。 该外部存储装置50存储通过计算机40执行的程序51。计算机40以及外部存储装置50构 成安全强化装置(Web应用安全强化装置)60。安全强化装置60可通过网络30连接客户终端10以及应用服务器20。安全强化 装置60具有中继在上述客户终端10以及应用服务器20之间通信的请求以及应答的功能。图2是以在图1中表示的安全强化装置60为主表示功能结构的框图。安全强化 装置60包含应答过滤器61、对话管理部62以及请求过滤器63。在本实施形式中,假定应 答过滤器61、对话管理部62以及请求过滤器63通过图1中表示的计算机40执行在外部存储装置50中存储的程序51来实现。该程序51可在计算机可读取的存储介质中预先存储 后进行分发。另外,该程序51也可以通过网络30下载到计算机40。另外,安全强化装置60具有过滤规则存储部52以及对话对象存储部53。在本实施形式中,过滤规则存储部52以及对话对象存储部53,例如存储在外部存储装置50中。另外,如上述,安全强化装置60在客户终端10以及应用服务器20之间中继请求 以及应答。在过滤规则存储部52中,例如,预先存储表示有泄漏或者篡改的可能性的参数的 条件的过滤规则。在过滤规则存储部52中存储的过滤规则,用于从(通过)上述的应用服 务器20 (提供的Web应用)发送的应答中检测参数。关于该过滤规则的数据结构的详情后 面叙述。在对话对象存储部53中存储与从应用服务器20发送的应答对应的对话对象。应答过滤器61从应用服务器20接收与根据用户的操作从用户终端10发送的请 求对应的应答。如上所述,应答中包含参数。在应答中包含的参数,例如包含对于的应答的 请求的发送目的地URL (Uniform Resource Location...在本说明书中把发送目的地URL 记为“连接目的地识别信息”)、该参数的参数类型以及参数名。应答过滤器61,从接收到的应答检测与通过在过滤规则存储部52中存储的过滤 规则表示的条件一致的参数。此时,应答过滤器61根据在接收到的应答中包含的URL、参数 类型以及参数名执行检测处理。应答过滤器61,在与接受到的应答对应的对话对象中存储检测到的参数(与通过 在过滤规则存储部52中存储的过滤规则表示的条件一致的参数)。应答过滤器61通过对 话管理部62执行存储处理。如后述,与接受到的应答对应的对话对象被存储在对话对象存 储部53中。应答过滤器61在删除了检出的参数的应答中嵌入通过后述的对话管理部62发行 的对话ID。应答过滤器61对于客户终端10发送嵌入了通过对话管理部62发行的对话ID的应答。 对话管理部62执行对于对话对象存储部53的各种处理。对话管理部62,在通过应答过滤器61从应答中检出与通过在过滤规则存储部52 中存储的过滤规则表示的条件一致的参数的场合,判定在过滤规则存储部52中是否存储 有与该应答对应的对话对象。亦即,对话管理部62判定是否生成了与通过应答过滤器61 接受到的应答对应的对话对象。对话管理部62,在未生成与通过应答过滤器61接受到的应答对应的对话对象的 场合,生成与该应答对应的对话对象。该生成的对话对象,被存储在对话对象存储部53中。对话管理部62,当生成与通过应答过滤器61接受到的应答对应的对话对象时,发 行用于唯一识别该对话对象的独自的对话ID (对话识别信息)。该发行的对话ID,被存储 在通过对话管理部62生成的对话对象(通过该对话ID识别的对话对象)中。另外,对话管理部62如后述执行在对话对象存储部53中存储的对话对象的废弃 处理。请求过滤器63如上述从客户终端10接收通过应答过滤器61发送的对于应答的请求。该接受到的请求例如是根据用户的操作对于应用服务器20发送的请求。另外,在该 接受到的请求中,包含在通过应答过滤器61发送的应答中嵌入的对话ID (通过对话管理部 62发行的对话ID)。 请求过滤器63,从对话对象存储部53中读入通过在接受到的请求中包含的对话 ID识别的对话对象(存储有该对话ID的对话对象)。请求过滤器63,当读入了通过在接受到的请求中包含的对话ID识别的对话对象 时,从该请求中删除该对话ID。请求过滤器63,在接受到的请求内恢复在读入的对话对象中存储的参数。当在接 受到的请求内恢复了在对话对象中存储的参数时,通过对话管理部62废弃该对话对象。请求过滤器63对于应用服务器20发送恢复了参数的请求。另外,请求过滤器63仅在在接收到的请求中包含通过对话管理部62发行的对 话ID(在通过应答过滤器61发送的应答中嵌入的对话ID)的场合工作。例如在客户终端 10 (上运行的Web浏览器)以及(通过)应用服务器20 (提供的应用)之间最初在从该客 户终端10发送的请求中不包含通过对话管理部62发行的对话ID。在接收到这样的请求的 场合,请求过滤器63,不执行特别的处理,直接向应用服务器20中继该请求。此时,例如也可以是预先准备用于检查在请求中包含的参数(请求参数)的值的 规则、请求过滤器63根据该规则过滤该参数的值的结构。下面说明本实施形式的安全强化装置60的动作。这里,参照图3,说明为说明安 全强化装置60的动作而使用的通过应用服务器20提供的web应用的概要。假定这里说明 的web应用是接收来自用户的商品的订货的受理服务。另外,在图3 (中表示的web应用) 中,表示用于说明安全强化装置60的动作的最小限度的内容。如图3所示,首先,客户终端10例如指定URL、向(通过)应用服务器20 (提供的 Web应用)发送请求(订货请求)(步骤Si)。此时,用户可以从在客户终端10上运行的 Web浏览器指定URL。接着,应用服务器20,作为对于通过客户终端10发送的请求的应答向该客户终端 10返回订货画面(步骤S2)。这里,图4表示作为应答向客户终端10返回的订货画面在该客户终端10上显示 的场合的一例。在图4表示的例子中,在订货画面中,显示商品名、该商品的单价、订购该商 品的数(订购数)的输入栏(输入格式)、发送按钮以及取消按钮。当显示图4表示的订货画面时,操作客户终端10的用户,从在该客户终端10上运 行的Web浏览器输入订购数,按压(点击)发送按钮。由此,包含订货内容(订购数)的请 求(订货受理请求)从客户终端10对于应用服务器20发送(步骤S3)。在(通过)应用服务器20 (提供的Web应用)中根据从客户终端10发送的请求 执行订货的受理处理。由此,作为对于从客户终端10发送的请求的应答,向客户终端10返 回订货结束画面(步骤S4)。这里,图5表示作为应答向客户终端10返回的订货结束画面在该客户终端10上 显示的场合的一例。在图5表示的例子中,在订货结束画面中,显示商品名、该商品的单价、 在上述订货画面中输入的订购数以及请求金额。另外,从商品的单价以及订购数计算在订 货结束画面中显示的请求金额,。
在以下的说明中,假定在客户终端10以及应用服务器20之间收发上述图3表示 的请求以及应答进行说明。亦即,本实施形式的安全强化装置60中继图3表示的请求以及
应答。首先,参照图6的流程图,说明在通过应用服务器20发送应答的场合本实施形式 的安全强化装置60的处理过程。这里,说明通过应用服务器20发送在上述图3中说明了 的订货画面的应答的场合。该场合,在安全强化装置60中包含的应答过滤器61中,根据在过滤规则存储部52 中预先存储的(已设定的)过滤规则执行过滤处理。首先,应答过滤器61接收通过应用服务器20发送的应答(步骤Sll)。在该应答 中,例如包含对于该应答的请求的发送目的地URL以及参数。该URL,例如根据用户的操作 从Web浏览器指定。另外,在参数中,包含该参数的参数类型、参数名以及参数值。这里,图7表示通过应答过滤器61接收的订货画面的应答的一例。顺另外,在实 际的应答的内容中表示说明所需要的最小限度的内容。在图7表示的应答100中,第一行的“SESSI0N_ID”,表示对于从客户终端10发送 的请求应用服务器20发行的对话ID。在(通过)应用服务器20 (提供的Web应用)以及 客户终端10(上运行的Web浏览器)之间,使用该对话ID实现通信的同步。在该第一行中, “Cookie”是参数类型,“SESSI0N_ID”是参数名,“012”是参数值。亦即,在第一行中显示包 含参数类型“Cookie”、参数名“SESSI0N_ID”以及参数值“012”的参数。第二行的“Content-length”以字节单位表示其后接续的数据的长度。另外,在本 实施例中,把换行代码计数为1个文字求数据长度。第四行中包含的“action =“http://hostname/order, do””,表示在上述图4的订 货画面中点击发送按钮时的数据的发送目的地URL "http://hostname/order, do”。第8 行 第 10 行的 “input type = “hidden””称为 Hidden 参数。该 Hidden 参 数作为信息向客户终端10发送,但是在该Web浏览器中的画面上不显示。因此,有时安装 Hidden参数以使嵌入不对用户表示(不显示)但是希望在画面间移交的信息,而成为信息 的泄漏或者篡改等的对象。另外,在第8行的Hidden参数中,“Hidden”是参数类型,“SCREEN_ID”是参数名, “s001”是参数值。亦即在第8行中,表示包含参数类型“Hidden”、参数名“SCREEN_ID”以 及参数值“sOOl”的参数(Hidden参数)。在第9行的Hidden参数中,“Hidden”是参数类型,“USER_ID”是参数名,“taro” 是参数值。亦即在第9行中,表示包含参数类型“Hidden”、参数名“USER_ID”以及参数值 "taro"的参数(Hidden参数)。另外,在第10行的Hidden参数中,“Hidden”是参数类型,“TOICE”是参数名, “12000”是参数值。亦即在第10行中,表示包含参数类型“Hidden”、参数名“PRICE”以及 参数值“12000”的参数(Hidden参数)。另夕卜,在参数类型中,在上述的“Cookie”以及“Hidden”以外存在“GET”等。以下在上述的步骤Sll中,对于接收到图7表示的应答100的情况进行说明。再次返回图6说明。应答过滤器61,当接收到应答100时,读入在过滤规则存储部 52中存储的过滤规则(步骤S12)。此时,应答过滤器61读入在过滤规则存储部52中存储的过滤规则中的一个。这里,图8表示在过滤规则存储部52中存储的过滤规则的一例。如图8所示,(通 过)过滤规则(表示的条件),至少包含URL模式、参数类型以及参数名。在本说明书中, URL模式是“接续目的地识别模式”的一例,例如通过正规表现等的表记方法给出。在图8表示的例子中,在过滤规则存储部52中存储过滤规则521 526。过滤规则521包含URL模式“.*/order Y. do. *”、参数类型“COOKIE”以及参数名 “SESSI0N_ID”。过滤规则522包含URL模式“.*/order Y. do. *”、参数类型“HIDDEN”以及参数名 “SCREEN_ID”。过滤规则523包含URL模式“.*/order Y. do. *”、参数类型“HIDDEN”以及参数名 “USER_ID”。
过滤规则524包含URL模式“.*/order Y. do. *”、参数类型“HIDDEN”以及参数名 “PRICE”。过滤规则525包含URL模式“.*/userinfo Y. do. *”、参数类型“GET”以及参数名 "CLASS,,。另外,过滤规则526包含URL模式“.*/order Y. do. *”、参数类型“GET”以及参数 名"ADDRESS”。再次返回图6进行说明。另外,在上述步骤S12中对于应答过滤器61读入了图8 表示的过滤规则521进行说明。应答过滤器61,判定在上述步骤Sll接收到的应答100中包含的URL是否与构成 读入的过滤规则521的URL模式一致(步骤S13)。在过滤规则521中包含的URL模式是“.*/order Y. do. *”。这表示以任意的字符 串开始、包含字符串“/order, do”、以任意的字符串结束的字符串(URL)的模式。另外,在任 意的字符串中包含空字符串。另一方面,在应答100中包含的URL是“http://hostname/ order, do,,。在该场合,应答过滤器61判定在应答100中包含的URL与在过滤规则521中包含 的URL模式一致(步骤S13的YES)。接着,应答过滤器61判定在应答100中是否存在包含在读入的过滤规则521中包 含的参数类型以及参数名的参数(与该参数类型以及参数名一致的参数)(步骤S14)。在过滤规则521中包含的参数类型是“C00KIE”,参数名是“SESSI0N_ID”。另一方 面,在图7表示的应答100的第一行中存在包含参数类型"Cookie(COOKIE) ”以及参数名 “SESSI0N_ID” 的参数。在该场合,应答过滤器61判定在应答100中存在包含在过滤规则521中包含的参 数类型以及参数名的参数(步骤S14的YES)。在该场合,应答过滤器61从应答100中把包含在过滤规则521中包含的参数类型 以及参数名的参数(图7中应答100的第一行的参数)作为与过滤规则521 —致的参数检
出ο在从应答100中检出与过滤规则521 —致的参数的场合,对话管理部62,判定与 该应答100对应的对话对象是否生成完毕(步骤S15)。对话管理部62参照对话对象存储部53执行判定处理。对话对象如后述,例如在从应答100中最初检出参数时生成,并存储 在对话对象存储部53中。这里,通过应答过滤器61检出的参数,因为是从应答100检出的最初的参数,所以 不生成与该应答100对应的对话对象。因此,对话管理部62判定为与应答100对应的对话 对象未生成完毕(步骤S15的NO)。
在判定为对话对象未生成完毕的场合,对话管理部62生成与应答100对应的对话 对象(步骤S16)。对话管理部62在对话对象存储部53中存储生成的对话对象。对话管理部62发行用于唯一识别生成的对话对象(在对话对象存储部53中存储 的对话对象)的对话ID (步骤S17)。这里,通过对话管理部62发行的对话ID例如假定是 “3jUZ0UAwk”。该对话ID,与上述通过应用服务器20发行的对话ID “012”比较,是难以预 测的坚固的对话ID。通过应用服务器20发行的对话ID,存储在通过该对话ID唯一识别的 对话对象中。接着,应答过滤器61,在对话对象存储部53中存储的对话对象中存储检出的参数 (与过滤规则521 —致的参数)(步骤S18)。该对话对象是与在上述步骤S16生成的应答 100对应的对话对象。另外,在对话对象中存储的参数中,包含参数类型、参数名以及参数 值。这里,因为图7表示的应答100的第一行是Cookie参数,所以作为参数类型,在对话对 象中存储“COOKIE (Cookie) ”。另外,作为参数名,在对话对象中存储“SESSI0N_ID = 012”的 “=”左侧的“SESSI0N_ID”。作为参数值,在对话对象中存储“SESSI0N_ID = 012”的“=” 右侧的“012”。应答过滤器61,从应答100中删除检出的参数(步骤三9)。这里,从图7表示的 应答100中删除字符串“SESSI0N_ID = 012”。这里,判定是否对于在过滤规则存储部52中存储的全部过滤规则执行了上述步 骤S12及以后的处理(步骤S20)。在判定为对于全部过滤规则未执行处理的场合(步骤S20的N0),返回步骤S12重
复处理。另外,在上述步骤S13判定为在应答100中包含的URL与在过滤规则中包含的URL 模式不一致的场合,返回步骤S12重复处理。另外,在步骤S14判定为在过滤规则中包含的 包含参数类型以及参数名的参数在应答100中不存在的场合,也返回步骤S12重复处理。这里,因为关于在对话对象存储部53中存储的过滤规则521执行了步骤S12及以 后的处理,所以接着关于过滤规则522执行处理。这里,简单说明关于过滤规则522的步骤S12及以后的处理。在过滤规则522中包含的URL模式是“.*/orderY.do. *”。另一方面,在应答100 中包含的 URL 是“http://hostname/order, do”。因此,在步骤S13判定为在应答100中包含的URL与在过滤规则存储部52中包含 的URL模式一致。另外,在过滤规则522中包含的参数类型是“HIDDEN”,参数名是“SCREEN_ID”。另 一方面,在应答100的第8行中存在包含参数类型“Hidden (HIDDEN) ”以及参数名“SCREEN_ ID”的参数(Hidden参数)。因此,在步骤S14判定为在过滤规则522中包含的包含参数类型以及参数名的参数在应答100中存在。因此,包含在过滤规则522中包含的参数类型以及参数名的参数(图7中表示的 应答100的第8行的参数),作为与过滤规则522 —致的参数从应答100中检出。此时,与应答100对应的对话对象已经生成完毕。因此,在步骤S17判定为与应答 100对应的对话对象已经生成完毕。在该场合,不执行步骤S16以及步骤S17的处理,执行 步骤S18的处理。在步骤S18,把检出的参数(与过滤规则522—致的参数)存储在于对话对象存储 部53内存储的对话对象(与应答100对应的对话对象)中。另外,在步骤S19,从应答100中删除检出的参数。这样,对于在过滤规则存储部52中存储的全部过滤规则顺序执行步骤S12及以下 的处理。当对于在过滤规则存储部52中存储的全部过滤规则执行处理时,在与应答100对 应的对话对象中,存储从该应答100中检出的全部参数(例如与过滤规则522 526 —致 的参数)。另外,虽然省略了详细的说明,不过在图7表示的应答100中,存在与图8表示的 过滤规则521 526中过滤规则521 524 —致的参数,但是不存在与过滤规则525 526 一致的参数。亦即,在对于过滤规则521 526的全部执行步骤S12及以下的处理的场合, 在与应答100对应的对话对象中存储与过滤规则521 524 —致的参数。另外,在虽然在图7表示应答100中不存在,但是即使在参数类型是“GET”的过滤 规则525 (或者526)中,如果在应答100中存在该参数类型“GET”以及参数名“CLASS” (或 者“ADDRESS”)一致的参数(GET参数)则检出该参数,在对话对象中存储。在应答100中 包含的 URL 例如是 “http//hostname/order, do ? SCREEN_ID = sOOl” 的场合,在对话对 象中存储把参数类型作为“GET”、把“SCREEN_ID = sOOl”的“=”的左侧(SCREEN_ID)作为 参数名、把该“=”的右侧(sOOl)作为参数值的参数。这里,图9表示与应答100对应的对话对象的数据结构的一例。如图9所示,在对话对象中,至少存储内部种类、参数。在该参数中,包含参数类 型、参数名以及参数值。内部种类,表示对话对象内部的参数的种类。在内部种类中,包含“SESID”以及 “PARAM”。“SESID”表示通过对话管理部62发行的对话ID。“PARAM”表示通过应答过滤器 61检出的参数(与过滤规则一致的参数)。在图9表示的例子中,在对话对象中,存储内部种类“SESSID”、参数类型 “COOKIE”、参数名“FILTER_ID”以及参数值“3juz0uAwk”。由此,表示通过对话管理部62发 行的对话ID的参数类型是“C00KIE”,参数名是“FILTER_ID”,参数值是“3 juzOuAwk”通过该对话管理部62发行的对话ID的参数类型,例如根据在应答100的管理中 使用的信息(ID等)的参数类型来决定。这里,因为在应答100中例如存在“Set-Cookie”, 所以通过对话管理部62发行的对话ID的参数类型成为“Cookie”。作为通过对话管理部62发行的对话ID的参数名,使用与在通过应用服务器20提 供的Web应用中使用的参数名不重复的参数名。另外,作为通过对话管理部62发行的对话ID的参数值,使用与通过应用服务器20 发行的对话ID(在应答100中包含的对话ID)比较难于预测的坚固的值。
同样,在对话对象中,存储内部种类“PARAM”、参数类型“COOKIE”、参数名 “SESSI0N_ID”以及参数值“012”。由此表示从应答100检出的参数的参数类型是“COOKIE”、 参数名是“SESSI0N_ID”以及参数值“012”是“012”。从该应答100中检出的参数是与图8 中表示的过滤规则521 —致的参数。 在对话对象中,存储内部种类“PARAM”、参数类型“HIDDEN”、参数名“SESSI0N_ID” 以及参数值“sOOl”。由此表示从应答100检出的参数的参数类型是“HIDDEN”,参数名是 “SESSI0N_ID”以及参数值是“sOOl”。从该应答100中检出的参数是与图8中表示的过滤 规则522 —致的参数。在对话对象中,存储内部种类“PARAM”、参数类型“HIDDEN”、参数名“USER_ID ” 以及参数值“taro”。由此表示从应答100检出的参数的参数类型是“HIDDEN”,参数名是 “USER_ID”以及参数值是“taro”。从该应答100中检出的参数是与图8中表示的过滤规则
523一致的参数。另外,在对话对象中,存储内部种类“PARAM”、参数类型“HIDDEN”、参数名“PRICE ” 以及参数值“12000”。由此表示从应答100检出的参数的参数类型是“HIDDEN”,参数名是 “PRICE”以及参数值是“12000”。从该应答100中检出的参数是与图8中表示的过滤规则
524一致的参数。再次返回图6,在步骤S20判定为对于全部过滤规则执行完上述步骤S12及以下 的处理的场合,应答过滤器61在应答100中嵌入通过对话管理部62发行的对话ID(步 骤S21)。具体说,把通过对话管理部62发行的对话ID作为应答100的Cookie参数 "Set-Cookie :FILTER_SID = 3juz0uAwk”嵌入。另外,通过对话管理部62发行的对话ID 的嵌入方式,也可以是Cookie以外的方式,作为Hidden参数、GET参数嵌入。需要使与图9 表示的内部种类“SESSID”的参数类型一致。这里,在上述的步骤S19从应答100中删除参数。因此,在上述步骤Sll接收到的 应答100和删除了参数后的应答100中,该应答100的数据长度缩短。因此,应答过滤器61 把应答100中的表示数据长度的“content-iength”(的值)更新为与上述参数的删除对应 的适当的值(步骤S22)。应答过滤器61对于终端10发送更新了“Content-length”的应答100 (步骤S23)。这里,图10表示通过应答过滤器61发送的应答100的一例。这里,适当比较图7 的应答(处理前的应答)100进行说明。在图10表示的应答100中,第一行的“FILTER_SID = 3juz0uAwk”是通过对话管 理部62发行的对话ID。亦即,在图10表示的应答100中,图7表示的应答100的第一行的 “SESSION-ID”被替换为通过对话管理部62发行的对话ID。由此,即使是应用服务器20发行了脆弱的对话ID(图7中表示的应答100中的“SESSION-ID = 012”)的场合,通过替换 为难于预测的坚固的对话ID(图10中表示的应答中的“FILTER_SID = 3juzOuAwk”),例如 能够防止滥用对话ID的冒充等。另外,在图10表示的应答100中,第二行的“Content-length”由应答过滤器61更 新为删除参数后的数据长度。在图10表示的例子中根据参数的删除把“Content-length” 更新为“221”。另外,在图10表示的应答100中,与图7表示的应答100比较,删除了 Hidden参数(图7中表示的应答100的第8行 第10行)。亦即,对于通过应用服务器20提供的Web应用的画面转移来说是必要的、但是对 于在客户终端10上运行的Web浏览器在Hidden参数中包含不需要的信息的场合,因为该 信息不向客户终端10发送,所以可以防止该信息的泄漏或者篡改。具体说,在向客户终端 10发送的图10中表示的应答100中,因为例如删除了图7中表示的应答100的第10行的 参数(PRICE参数),所以能够防止价格信息的篡改等。另外,在上述步骤S20中在判定为对于全部过滤规则已执行上述步骤S12及以下 的处理的场合,对于执行步骤S21的处理进行了说明,但是在与该过滤规则一致的参数在 应答100内不存在(亦即一个参数也检测不出)的场合结束处理。下面参照图11的流程图,说明如上述通过客户终端10发送对于通过应答过滤器发送的应答的请求的场合的本实施形式的安全强化装置60的处理过程。这里,说明通过客 户终端10发送在上述图3中已说明的订货受理请求的请求的场合。首先,在安全强化装置60中包含的请求过滤器63接收通过客户终端10发送的请求(步骤S31)。在该请求中,包含在通过上述的应答过滤器61发送的应答100中嵌入的对 话ID (通过对话管理部62发行的对话ID)。这里,图12表示通过请求过滤器63接收到订货受理请求的请求的一例。图12表 示的请求200,在上述图4表示的订货画面中通过用户操作客户终端10在按下该订货画面 的发送按钮的场合从该客户终端10发送。图12表示的请求200的第一行,是包含从客户终端10 (上运行的Web浏览器)发 送的对话ID的Cookie。请求200的第一行的“FILTER_SID = 3 juzOuAwk”,是在通过应答 过滤器61发送的应答100中嵌入的(更换的)对话ID。请求200的第二行的“Content-length”,用字节单位表示其后接续的数据的数据长度。另外,请求200的第四行,是表示从在客户终端10上运行的Web浏览器输入的 订购数以及按下了图4中的订货画面的发送按钮这一事实的参数。请求200的第四行的 "ORDER = 10”,表示要求订购10个。下面,对于在上述的步骤S31接收图12表示的请求200 —事进行说明。再次返回图11,请求过滤器63,取得在接收到的请求200中包含的对话ID(步骤 S32)。请求过滤器63,作为对话ID从请求200中取得“FILTER_SID = 3 juzOuAwk”。在该 "FILTER_SID = 3 juzOuAwk,,中,"FILTER_SID,,是参数名,“3 juzOuAwk,,是参数值。接着,请求过滤器63从对话对象存储部53中读入与已取得的对话ID对应的对话 对象(步骤S33)。请求过滤器63读入与内部种类“SESSID”对应起来存储了已取得的对话 ID的参数名以及参数值的对话对象。亦即,读入与下述这样的参数名以及参数值一致的对 话对象,该参数名以及参数值是通过请求过滤器63取得的对话ID的参数名以及参数值与 内部种类“ SESSID ”对应的参数名以及参数值。具体说,读入与内部种类“SESSID”对应存储参数类型“COOKIE”、从请求200取得 的“FILTER_SID = 3 juzOuAwk” 的参数名 “FILTER_SID” 以及参数值“3 juzOuAwk” 的对话对 象。亦即从对话对象存储部53读入上述图9中表示的对话对象。请求过滤器63从该请求200中删除在接收到的请求200中包含的对话ID (步骤S34)。此时,删除与读入的对话对象的内部种类“SESSID”对应的参数类型、参数名以及参 数值一致的项目。亦即因为与“SESSID”对应的参数类型是“COOKIE”,所以从该请求200中 删除图12中表示的请求200的第一行的Cookie参数“FILTER_SID = 3juz0uAwk” 。请求过滤器63,在读入的对话对象内取得与内部种类“PARAM”对应存储的参数 (参数类型、参数名以及参数值)(步骤S35)。此时,请求过滤器63通过对话管理部62取 得参数。与内部种类“PARAM”对应起来在对话对象中存储的参数,是在通过请求过滤器63 接收的请求200内恢复(再构成)的参数。请求过滤器63取得在读入的对话对象中存储的参数中的一个。这里,假定从图9 表示的对话对象中取得与内部种类“PARAM”对应在对话对象内存储的(包含)参数类型 “COOKIE”、参数名“SESSI0N_ID”以及参数值“012” (的参数)。请求过滤器63在请求200内恢复取得的包含参数类型“COOKIE”、参数名 “SESSI0N_ID”以及参数值“012”的参数。在该场合,因为参数类型是“C00KIE”,所以把参数名“SESSI0N_ID”作为“=”的左 侧、把参数值“012”作为该“=”的右侧形成的字符串SESSI0N_ID = 012”作为Cookie参 数在请求200中恢复。接着判定在通过请求过滤器63读入的对话对象中存储的全部参数是否已在请求 200内恢复(步骤S37)。亦即判定与内部种类“PARAM”对应在对话对象内存储的全部参数 是否已恢复。在判定为在对话对象中存储的全部参数未在请求200内恢复的场合(步骤S37的 N0),返回步骤S35重复处理。亦即在对话对象中存储的全部参数恢复之前一直重复处理。这里,在图9表示的对话对象中应该在请求200内恢复的参数,如上述是与内部种 类“PARAM”对应的参数。亦即在图9表示的对话对象中存在4个应该在请求200内恢复的 参数。在请求过滤器63中,恢复这些参数,作为对于Web应用的请求再构成。下面,说明在上述步骤S35取得与内部种类“PARAM”对应在对话对象中存储的参 数类型“HIDDEN”、参数名“SCREEN_ID”以及参数值“s001”的场合。在该场合,因为参数类 型是“HIDDEN”,所以把参数名“SCREEN_ID”作为“=,,的左侧、把参数值“ s001 ”作为该“=,, 的右侧形成的字符串“SCREEN_ID = sOOl”作为Hidden参数在请求200内恢复。下面,说明在步骤S35取得与内部种类“PARAM”对应在对话对象中存储的参数类 型“HIDDEN”、参数名“USER_ID”以及参数值“taro”的场合。在该场合,因为参数类型是 “HIDDEN”,所以把参数名“USER_ID”作为“=”的左侧、把参数值“taro”作为该“=”的右 侧形成的字符串“USER_ID = taro”作为Hidden参数在请求200内恢复。另外,说明在步骤S35取得与内部种类“PARAM”对应在对话对象中存储的参数 类型“HIDDEN”、参数名“PRICE”以及参数值“12000”的场合。在该场合,因为参数类型是 “HIDDEN”,所以把参数名“PRICE”作为“=”的左侧、把参数值“12000”作为该“=”的右侧 形成的字符串“PRICE = 12000”作为Hidden参数在请求200内恢复。另外,虽然未存储在图9表示的对话对象中,但是在取得参数类型是“GET”的参 数的场合,作为GET参数通过在URL上附加被恢复。例如在取得参数类型“GET”、参数名 “SCREEN_ID” 以及参数值“sOOl” 的场合,例如设想 URL 是“http//sampleshost/order. do ? ORDER = 10” 的场合。在该场合,像 “http//sampleshost/order. do ? ORDER =10&SCREEN_ID = sOOl”那样恢复 GET 参数。
在如上那样地执行恢复处理、判定为与内部种类“PARAM”对应在对话对象中存储 的全部参数已在请求200内恢复的场合(步骤S37的YES),请求过滤器63从对话对象存储 部53中废弃读入的对话对象(步骤S38)。此时,请求过滤器63通过对话管理部62废弃对 话对象。如上述在请求200中恢复了参数。因此,在上述步骤S31在接收到的请求200和 恢复了参数后的请求200中,请求200的数据长度增长。因此,请求过滤器63把表示请求 200中的数据长度的“Contenet-length” (的值)更新为与上述的参数的恢复对应的适当 的值(步骤S39)。请求过滤器63对于应用服务器200发送更新了 “Contenet-length”的请求 200 (步骤 S40)。这里,图13表示通过请求过滤器63发送的请求200的一例。这里,适当与图12 表示的请求(处理前的请求)200比较进行说明。在图13表示的请求200中,在第一行内恢复了 Cookie参数。这是基于与内部种 类“PARAM”对应在对话对象内存储的参数类型“COOKIE”、参数名“SESSI0N_ID”以及参数值 “012”恢复Cookie参数的结果。另外,在图13表示的请求200中,在第四行内恢复Hidden参数。“SCREEN_ ID = s001”,是基于图9表示的与内部种类“PARAM”对应在对话对象内存储的参数类 型“HIDDEN”、参数名“ SCREEN_ID ”以及参数值“ s001 ”恢复Hidden参数的结果。“USER_ ID = taro”,是基于图9表示的与内部种类“PARAM”对应在对话对象内存储的参数类型 “HIDDEN”、参数名“USER_ID”以及参数值“taro”恢复Hidden参数的结果。另外,"I3RICE =12000”,是基于图9表示的与内部种类“PARAM”对应在对话对象内存储的参数类型 “HIDDEN”、参数名“PRICE”以及参数值“ 12000”恢复Hidden参数的结果。这样通过向应用服务器20发送参数被恢复了的请求200,即使在通过该应用服务 器20提供的Web应用已经结束开发而开始运用的场合,也不会对于该Web应用给予影响。如上所述在本实施形式中,在从应用服务器20发送的应答中包含的参数中,在对 话对象内临时存储与在过滤规则存储部52中存储的过滤规则一致的参数。另外,在本实施 形式中,代替通过应用服务器20发行的对话ID而嵌入难于预测的坚固的独自的对话ID,而 且向客户终端10发送删除了在该对话对象中存储的参数的应答。另外,在本实施形式中, 在嵌入了独自的对话ID而且对于参数被删除了的应答从客户终端10发送请求的场合,在 该请求中恢复在对话对象中存储的参数,对于应用服务器20发送。由此,在本实施形式中,在应答中在客户终端10上运行的Web浏览器中不使用、但 是在通过应用服务器20提供的web应用的画面间需要移交的、有信息泄漏或者篡改的可能 的参数(例如价格信息或者个人信息),不向客户终端10发送。因此,在本实施形式中,因 为能够防止在来自应用服务器20的应答中包含的参数的泄漏以及篡改,所以在通过该应 用服务器20提供的Web应用中能够安全地继续对话。进而,在本实施形式中,因为不用修改已经开发的Web应用的程序就可以实现,所 以即使在该Web应用的运用开始后问题才显现出来那样的场合也能够不变更运转中的Web 应用的安装解决问题。
另外,在本实施形式中,说明了在一个应答中包含一种输入格式的情况,但是即使 例如在一个应答中包含多种输入格式的场合,通过与对话ID —起嵌入该格式的识别符,也 能够对于本实施形式的安全强化装置60的结构不加变更而容易地实现。另外,在通过本实施形式的安全强化装置60的应答过滤器61向客户终端10发送 应答后,监视从客户终端10发送的对于该应答的请求,在预定的期间(时间)内不从该客 户终端10发送该请求(亦即通过安全强化装置60的请求过滤器63不接受该请求)的场 合,也可以采用废弃(亦即超时处理)与在对话对象存储部53中存储的与该应答对应的对 话对象的结构。由此,在对话对象中存储参数、发送应答的场合,尽管不发送对于该应答的 请求,但是也可以避免积累该对话对象这样的事态。另外,在本实施形式中,对于在客户终端10以及应用服务器20之间安全强化装置 60中继请求以及应答进行了说明,但是也可以是该安全强化装置60(的各功能)被包含在 应用服务器20内的结构。另外,本申请发明不限于上述实施形式一成不变,而在实施阶段在不脱离其要义 的范围内可以将结构要素进行变形来具体化。另外通过适当组合在上述实施形式中公开的 多种结构要素能够形成各种发明。例如,也可以从在实施形式中表示的全部结构要素中删 除若干结构要素。
权利要求
一种安全强化装置,其可通信地与通过用户操作的客户终端以及对于该客户终端提供应用的应用服务器连接,其特征在于,具有规则存储单元,其预先存储表示有泄漏或者篡改的可能性的参数的条件的规则;应答接收单元,其从所述应用服务器接收应答,该应答包含对于根据所述用户的操作从所述客户终端发送的为利用所述应用的请求的参数;检测单元,其从所述接收到的应答检测与通过在所述规则存储单元中存储的规则表示的条件一致的参数;生成单元,其在从所述接收到的应答中检测到与在所述规则中表示的条件一致的参数的场合,生成与该应答对应的对话对象;对话对象存储单元,其存储所述生成的对话对象;发行单元,其发行用于唯一识别所述生成的对话对象的对话识别信息;存储处理单元,其将所述检测到的参数与所述已发行的对话识别信息对应起来,存储在所述对话对象存储单元中存储的对话对象中;参数删除单元,其当将所述检测到的参数存储在所述对话对象中时,从所述接收到的应答中删除该参数;嵌入单元,其在删除了在所述对话对象中存储的参数的应答中嵌入所述已发行的对话识别信息;应答发送单元,其对于所述客户终端发送嵌入了所述已发行的对话识别信息的应答;请求接收单元,其在发送嵌入了所述已发行的对话识别信息的应答后,从所述客户终端接收对于包含该对话识别信息的该应答的请求;读入单元,其从所述对话对象存储单元中读入通过在由所述请求接收单元接收到的请求中包含的对话识别信息识别的对话对象;对话识别信息删除单元,其从请求中删除在通过所述请求接收单元接收到的该请求中包含的对话识别信息;恢复单元,其在通过所述对话识别信息删除单元删除了对话识别信息的请求中恢复在所述读入的对话对象中存储的参数;和请求发送单元,其对于所述应用服务器发送恢复了所述参数的请求。
2.根据权利要求1所述的安全强化装置,其特征在于,还具有废弃单元,其在删除了所述对话识别信息的请求中恢复了在所述读入的对话对 象中存储的参数的场合,废弃该对话对象。
3.根据权利要求1所述的安全强化装置,其特征在于,还具有废弃单元,其在对于所述客户终端发送了嵌入了所述发行的对话识别信息的应 答后,在预定的期间内未从客户终端接收到对于该发送的应答的请求的场合,废弃在所述 对话对象存储单元中存储的对话对象。
4.根据权利要求1所述的安全强化装置,其特征在于,通过在所述规则存储单元中存储的规则表示的条件,包含连接目的地识别模式、参数 类型以及参数名,所述接收到的应答还包含涉及对于该应答的请求的发送目的地的连接目的地识别信息 在所述接收到的应答中包含的参数,包含该参数的参数类型以及参数名, 所述检测单元包含下述的单元判定在所述接收到的应答中包含的连接目的地识别信息是否与在通过在所述规则存储单元中存储的规则表示的条件中包含的连接目的地识别模式一致的单元;在判定为在所述接收到的应答中包含的连接目的地识别信息与所述连接目的地识别 模式一致的场合,判定在所述接收到的应答中是否包含有下述的参数的单元,所述参数包 含在通过在所述规则存储单元中存储的规则表示的条件中包含的参数类型以及参数名;和 在判定为在所述接收到的应答中包含有包含在通过在所述规则存储单元中存储的规 则表示的条件中包含的参数类型以及参数名的参数的场合,从该应答中检出该参数的单兀。
全文摘要
本发明提供一种安全强化装置。应答过滤器(61)从应答中检测与过滤规则一致的参数。应答过滤器(61)将检出的参数与对话ID对应起来存储在对话对象中。应答过滤器(61)删除检出的参数,向客户终端(10)发送嵌入了对话ID的应答。请求过滤器(63)从对于从客户终端(10)接收到的应答的请求中删除对话ID,在该请求中恢复在通过在请求中包含的对话ID识别的对话对象中存储的参数,向应用服务器(20)发送。
文档编号H04L29/06GK101800748SQ20101011245
公开日2010年8月11日 申请日期2010年2月4日 优先权日2009年2月6日
发明者小田原育也 申请人:株式会社东芝;东芝解决方案株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1