[go: up one dir, main page]

JP2021068160A - 情報処理システムおよび情報処理装置 - Google Patents

情報処理システムおよび情報処理装置 Download PDF

Info

Publication number
JP2021068160A
JP2021068160A JP2019192687A JP2019192687A JP2021068160A JP 2021068160 A JP2021068160 A JP 2021068160A JP 2019192687 A JP2019192687 A JP 2019192687A JP 2019192687 A JP2019192687 A JP 2019192687A JP 2021068160 A JP2021068160 A JP 2021068160A
Authority
JP
Japan
Prior art keywords
request
business
unit
framework
business processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019192687A
Other languages
English (en)
Other versions
JP7536436B2 (ja
Inventor
近藤 健
Ken Kondo
健 近藤
貴宏 昼間
Takahiro Hiruma
貴宏 昼間
歩 岩佐
Ayumi Iwasa
歩 岩佐
達哉 戸島
Tatsuya Toshima
達哉 戸島
太田 茂
Shigeru Ota
茂 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2019192687A priority Critical patent/JP7536436B2/ja
Publication of JP2021068160A publication Critical patent/JP2021068160A/ja
Application granted granted Critical
Publication of JP7536436B2 publication Critical patent/JP7536436B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】フレームワークの脆弱性に起因するリスクを低減する。【解決手段】業務処理部20は、OSSフレームワーク24により提供される機能を利用する業務アプリケーション(業務App28)を実行する。アダプタ部30は、クライアント装置14から送信された業務App28に対する複数種類のリクエストを受け付ける。アダプタ部30は、受け付けたリクエストを予め定められた単一形式のリクエストに変換し、変換後のリクエストを業務処理部20に渡す。【選択図】図2

Description

この発明は、データ処理技術に関し、特に情報処理システムおよび情報処理装置に関する。
近年、業務処理に必要な機能を実装する複数のアプリケーション間で共通する機能をアプリケーションフレームワーク(以下単に「フレームワーク」と呼ぶ。)として実装し、アプリケーションはフレームワークの機能を利用することでシステム開発の効率化が図られることがある(例えば特許文献1参照)。
特開2016−012272号公報
フレームワークにセキュリティ上の脆弱性が存在する場合に、そのフレームワークを利用するアプリケーションに対する脆弱性の影響範囲を確認することは容易でない。また、脆弱性を解消するためにフレームワークをバージョンアップすることも考えられるが、アプリケーションがフレームワークの既存機能に強く依存する場合、フレームワークのバージョンアップが困難なこともあった。
本発明は、上記課題を鑑みてなされたものであり、1つの目的は、フレームワークの脆弱性に起因するリスクを低減することにある。
上記課題を解決するために、本発明のある態様の情報処理システムは、アプリケーションフレームワークにより提供される機能を利用する業務アプリケーションを実行する業務処理部と、外部装置から送信された業務アプリケーションに対する複数種類のリクエストを受け付け、受け付けたリクエストを予め定められた単一形式のリクエストに変換し、変換後のリクエストを業務処理部に渡すアダプタ部と、を備える。
本発明の別の態様は、情報処理装置である。この装置は、アプリケーションフレームワークにより提供される機能を利用する業務アプリケーションに対するリクエストであって、外部装置から送信された複数種類のリクエストを受け付ける受付部と、受付部により受け付けられたリクエストを予め定められた単一形式のリクエストに変換し、変換後のリクエストを業務アプリケーションを実行するプロセスに渡す変換部と、を備える。
なお、以上の構成要素の任意の組合せ、本発明の表現を、装置、方法、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、フレームワークの脆弱性に起因するリスクを低減することができる。
実施例の通信システムの構成を示す図である。 図1の業務処理装置の機能ブロックを示すブロック図である。 引数解決オブジェクトの一部を示す図である。 業務処理装置におけるリクエスト変換の例を示す図である。
実施例のシステム(後述の業務処理装置12)は、所定のフレームワークの機能を利用する業務アプリケーション(以下「業務App」とも呼ぶ。)を実行する。実施例のシステムは、業務Appに対してフレームワークの脆弱性が影響する範囲が限定されたソフトウェアスタックとなるように構成される。また、実施例のシステムでは、業務Appに影響を及ぼすフレームワークの脆弱性が発覚した場合に、業務Appに手を加えずに脆弱性に対応可能となるポイントを設ける。これにより、フレームワークの脆弱性に対して迅速かつ柔軟な対応を可能にする。
なお、脆弱性とは、コンピュータプログラムの不具合や設計上のミスが原因となって発生した情報セキュリティ上の欠陥のことをいう。フレームワークの脆弱性を突いた攻撃には、特定のデータ列を含むリクエストを送りつけることによって、任意のコードを実行させることや、任意のOS(Operating System)のコマンドを実行させること、任意のファイルを参照すること等がある。
図1は、実施例の通信システムの構成を示す。通信システム10は、業務処理装置12、クライアント装置14a、クライアント装置14b、クライアント装置14c(総称する場合「クライアント装置14」と呼ぶ。)を備える。業務処理装置12とクライアント装置14は、LAN・WAN・インターネット等を含む通信網16を介して接続される。
業務処理装置12は、企業等の業務を支援するサービスを提供する情報処理装置である。クライアント装置14は、業務処理装置12が提供するサービスを利用する情報処理装置である。クライアント装置14は、業務処理装置12が実行する業務アプリケーションに対するリクエストを業務処理装置12へ送信する。
図2は、図1の業務処理装置12の機能ブロックを示すブロック図である。本明細書のブロック図で示す各ブロックは、ハードウェア的には、コンピュータのプロセッサ、CPU、メモリをはじめとする素子や電子回路、機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
業務処理装置12は、業務処理部20とアダプタ部30を備える。業務処理部20は、アプリケーションコンテナとも言え、アプリケーションフレームワークが提供する機能を利用する業務Appを実行する。アダプタ部30は、アダプタコンテナとも言え、クライアント装置14から送信された業務Appに対する複数種類のリクエストを業務処理部20の前段で一旦受け付けるOS上のプロセスである。アダプタ部30は、受け付けたリクエストを予め定められた単一形式のリクエストに変換し、変換後のリクエストを業務処理部20に渡す。
業務処理部20とアダプタ部30の構成を詳細に説明する。業務処理部20は、サーブレットエンジン22、OSSフレームワーク24、ミドルウェア26、業務App28を含む。
OSSフレームワーク24は、オープンソースのアプリケーションフレームワークであり、実施例では「Spring Framework」である。ミドルウェア26は、株式会社野村総合研究所が提供するフレームワーク製品である「オブジェクトワークス(登録商標)」である。業務App28は、OSSフレームワーク24およびミドルウェア26により提供される機能を利用するよう実装され、かつ、業務固有の機能が実装されたアプリケーションソフトウェアである。
OSSフレームワーク24は、業務App28に対するリクエストを業務App28で処理可能なJava(登録商標)オブジェクトに変換する機能として、複数種類のリクエストに対応する複数種類の変換機能を備える。業務App28は、OSSフレームワーク24の変換機能を利用して、リクエストをJavaオブジェクトとして取得し、そのJavaオブジェクトのデータを用いて業務処理を実行する。
アダプタ部30は、リクエスト受信部32、変換部34、リクエスト送信部36、レスポンス転送部38を含む。これら複数の機能ブロックに対応する複数のモジュールを含むコンピュータプログラムが、記録媒体に格納され、その記録媒体を介して業務処理装置12のストレージにインストールされてもよい。または、このコンピュータプログラムがネットワークを介して業務処理装置12のストレージにインストールされてもよい。業務処理装置12のCPUは、このコンピュータプログラムをメインメモリに読み出して実行することにより上記複数の機能ブロックの機能を発揮してもよい。
リクエスト受信部32は、複数のクライアント装置14から送信された複数種類のリクエストを受け付ける。複数種類のリクエストは、HTTP(Hyper Text Transfer Protocol)で規定された複数の通信メソッドを含む。例えば、GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCHを含む。また、通信データの形式も「https://www.iana.org/assignments/media-types/media-types.xhtml」のTemplate列に記載されるように複数存在する。
変換部34は、リクエスト受信部32により受け付けられたリクエストを予め定められた単一形式のリクエストに変換する。変換部34により変換されるリクエストの形式は、JSON(JavaScript Object Notation)(「JavaScript」は登録商標)である。変換部34は、変換後のリクエストをリクエスト送信部36に渡す。リクエスト送信部36は、変換部34による変換後のリクエストを業務処理部20に送信し、すなわち、変換後のリクエストを業務App28を実行するプロセスに渡す。
レスポンス転送部38は、クライアント装置14からのリクエストに対するレスポンスデータであり、業務処理部20から送信されたレスポンスデータを受け付ける。レスポンス転送部38は、受け付けたレスポンスデータを変換せずにそのままリクエスト送信元のクライアント装置14へ送信する。
既述したように、実施例のOSSフレームワーク24はSpringである。通常では、Springを利用する業務App28の起動時に、リクエストをJavaオブジェクトに変換するための多くのリクエスト−Javaオブジェクト変換機能が有効化される。リクエスト−Javaオブジェクト変換機能は、例えば、リクエストパラメータ変換、パス変数変換、ボディ(JSON)変換、ボディ(フォーム)変換、ファイルアップロード、ヘッダ変換等を含む。実施例の業務処理部20では、Springが備える複数種類のリクエスト−Javaオブジェクト変換機能の一部を無効化するように構成される。言い換えれば、Springが備える複数種類のリクエスト−Javaオブジェクト変換機能のうちJSONデータをJavaオブジェクトに変換するために必要な機能(例えばボディ(JSON)変換、ヘッダ変換)のみ有効化する。
具体的には、通常では、Springを利用する業務App28の起動時に、リクエスト−Javaオブジェクト変換機能として、26種類の引数解決オブジェクト(HandlerMethodArgumentResolver)が生成される。図3は、引数解決オブジェクトの一部を示す。引数解決を行う際には、引数解決オブジェクトごとに引数解決を行うかを判定し(supportsParameterメソッド)、該当した最初の引数解決オブジェクトを使用して引数解決を行う(resolveArgumentメソッド)。
業務処理部20(ミドルウェア26およびOSSフレームワーク24)は、Springが提供する26種類の引数解決オブジェクトのうち図3の有効化対象欄で「○」を付した項番7、8以外の引数解決オブジェクトを無効化する。言い換えれば、業務処理部20は、業務App28の起動時に、図3の項番7、8の引数解決オブジェクトのみ起動する。図3の項番7、8の引数解決オブジェクトは、JSON形式のリクエスト処理に必要な引数解決オブジェクトである。
このように、実施例の業務処理装置12では、クライアント装置14から送信されうる業務App28に対する複数種類のリクエストをアダプタ部30が一括して受け付ける。アダプタ部30は、受け付けうる複数種類のリクエストを単一形式(JSON形式)のリクエストに変換した上で、変換後のリクエストを業務処理部20に渡す。これにより、業務処理部20側で必要となるOSSフレームワーク24の機能(例えばリクエスト−Javaオブジェクト変換機能)の種類を低減し、OSSフレームワーク24に脆弱性が存在する場合のリスクを低減することができる。
また、実施例の業務処理装置12によると、クライアント装置14に対して業務処理部20(OSSフレームワーク24)の外部インタフェース仕様を隠蔽することで、業務処理部20の脆弱性(ここではSpringの脆弱性)を突いた攻撃を受けるリスクを低減することができる。攻撃者にとっては、外部インタフェース仕様が隠蔽されていないシステムを攻撃対象とすることが効率的であり、逆に、外部インタフェース仕様が隠蔽されたシステムは攻撃対象から早々に除外されやすいからである。
さらにまた、実施例の業務処理装置12では、リクエストが単一形式(JSON形式)に変換されることで不要となったOSSフレームワーク24のリクエスト−Javaオブジェクト変換機能を無効化する。これにより、仮に、変換後のリクエストの処理に不要なOSSフレームワーク24のリクエスト−Javaオブジェクト変換機能に脆弱性が見つかっても、業務App28への影響を低減でき、例えば、業務App28の改修の必要性を低減できる。
さらにまた、これまではアダプタという概念がなかったため、フレームワークに脆弱性が存在した場合、フレームワークをバージョンアップする必要があった。しかし、フレームワークとアプリケーションとは密に結合しており、フレームワークをバージョンアップするとアプリケーション全体の再テストが必要になるため、フレームワークのアップデータは現実的に困難なことがあった。実施例の業務処理装置12の構成によると、OSSフレームワーク24に脆弱性が存在しても、アダプタ部30の変換機能でその脆弱性による悪影響を回避できる場合、アダプタ部30の変換機能をバージョンアップ(改修や機能追加等)することで対応でき、業務App28への影響を回避することができる。
以上の構成による業務処理装置12の動作を説明する。
図4は、業務処理装置12におけるリクエスト変換の例を示す。クライアント装置14は、業務処理装置12に対してHTTP−POSTのリクエストデータ(オリジナルリクエスト40)を送信する(S1)。業務処理装置12のアダプタ部30は、オリジナルリクエスト40をJSON形式に変換する。具体的には、アダプタ部30の変換部34は、オリジナルリクエスト40のヘッダデータとボディデータの両方をJSONのボディ部44に設定する。例えば、オリジナルリクエスト40に含まれるメソッド名、「Content-type」、「Custom-Header」、パス名およびクエリ文字列をJSONのボディ部44に設定する。アダプタ部30は、JSON形式の変換後リクエスト42を業務処理部20へ送信する(S2)。
業務処理部20の業務App28は、OSSフレームワーク24が提供するリクエスト−Javaオブジェクト変換機能を利用して、変換後リクエスト42に対応するJavaオブジェクトを取得する。業務App28は、取得したJavaオブジェクトから変換後リクエスト42のデータ(すなわちオリジナルリクエスト40のデータ)を取得し、そのデータに基づく業務処理を実行する。業務処理部20は、業務App28による処理結果を含むレスポンス46をアダプタ部30へ送信する(S3)。アダプタ部30のレスポンス転送部38は、業務処理部20から受け付けたレスポンス46をそのままリクエスト元のクライアント装置14へ転送する(S4)。
以上、本発明を実施例をもとに説明した。実施例に記載の内容は例示であり、実施例の構成要素や処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
第1変形例を説明する。アダプタ部30のリクエスト受信部32は、処理対象とするリクエストのパターンを制限してもよい。リクエスト受信部32は、複数パターンのリクエストのうち業務処理部20(業務App28)が想定するパターン以外のリクエストを拒否してもよく、それらのリクエストに対する後続の処理(JSON形式への変換処理等)をスキップしてもよい。例えば、既述したように、HTTPの通信メソッドには、GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCHがあるが、リクエスト受信部32は、GET、POST以外のメソッドを指定するHTTPリクエストを拒否してもよい。
同様に、リクエスト受信部32は、複数形式のリクエストのうち業務処理部20(業務App28)が想定するパターン以外のリクエストを拒否してもよく、それらのリクエストに対する後続の処理(JSON変換処理等)をスキップしてもよい。例えば、リクエスト受信部32は、「application/json」、「application/x-www-form-urlencoded」、「multipart/form-data」以外の通信形式をとるHTTPリクエストを拒否してもよい。第1変形例によると、JSON形式への変換処理の実装を容易化でき、また、業務処理部20(業務App28)に対する攻撃を受けるリスクを一層低減することができる。
第2変形例を説明する。上記実施例では、業務処理部20とアダプタ部30を同じ装置(業務処理装置12)内に設けたが、業務処理部20とアダプタ部30を異なる装置内に設けてもよい。すなわち、業務処理部20を備える第1装置と、アダプタ部30を備える第2装置とが通信して連携することにより、実施例に記載の業務処理装置12と同様の機能を発揮する情報処理システムが実現されてもよい。
上述した実施例および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
10 通信システム、 12 業務処理装置、 20 業務処理部、 24 OSSフレームワーク、 28 業務App、 30 アダプタ部、 32 リクエスト受信部、 34 変換部、 36 リクエスト送信部、 38 レスポンス転送部。

Claims (4)

  1. アプリケーションフレームワークにより提供される機能を利用する業務アプリケーションを実行する業務処理部と、
    外部装置から送信された前記業務アプリケーションに対する複数種類のリクエストを受け付け、受け付けたリクエストを予め定められた単一形式のリクエストに変換し、変換後のリクエストを前記業務処理部に渡すアダプタ部と、
    を備えることを特徴とする情報処理システム。
  2. 前記アプリケーションフレームワークは、前記業務アプリケーションに対するリクエストを前記業務アプリケーションで処理可能なオブジェクトに変換する機能として複数種類の変換機能を備えるものであり、
    前記業務処理部は、前記アプリケーションフレームワークが備える前記複数種類の変換機能の一部を無効化するよう構成されたことを特徴とする請求項1に記載の情報処理システム。
  3. 前記アダプタ部により変換されるリクエストの形式は、JSON(JavaScript Object Notation)であることを特徴とする請求項1または2に記載の情報処理システム。
  4. アプリケーションフレームワークにより提供される機能を利用する業務アプリケーションに対するリクエストであって、外部装置から送信された複数種類のリクエストを受け付ける受付部と、
    前記受付部により受け付けられたリクエストを予め定められた単一形式のリクエストに変換し、変換後のリクエストを前記業務アプリケーションを実行するプロセスに渡す変換部と、
    を備えることを特徴とする情報処理装置。
JP2019192687A 2019-10-23 2019-10-23 情報処理システムおよび情報処理装置 Active JP7536436B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019192687A JP7536436B2 (ja) 2019-10-23 2019-10-23 情報処理システムおよび情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019192687A JP7536436B2 (ja) 2019-10-23 2019-10-23 情報処理システムおよび情報処理装置

Publications (2)

Publication Number Publication Date
JP2021068160A true JP2021068160A (ja) 2021-04-30
JP7536436B2 JP7536436B2 (ja) 2024-08-20

Family

ID=75637367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019192687A Active JP7536436B2 (ja) 2019-10-23 2019-10-23 情報処理システムおよび情報処理装置

Country Status (1)

Country Link
JP (1) JP7536436B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005105A1 (en) * 2001-05-30 2003-01-02 Anne Robb Method and apparatus for a common management software systems
JP2018515835A (ja) * 2015-04-08 2018-06-14 アマゾン テクノロジーズ インコーポレイテッド アプリケーション・プログラミング・インタフェース・プロキシ・サービスを提供するエンドポイント管理システム
JP2018523244A (ja) * 2015-08-14 2018-08-16 オラクル・インターナショナル・コーポレイション トランザクションシステムにおけるui状態の復元

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9007243B2 (en) 2012-09-05 2015-04-14 IQ-Analog Corporation System and method for customizing data converters from universal function dice
JP6157420B2 (ja) 2014-06-30 2017-07-05 株式会社日立製作所 業務処理システムおよび業務処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005105A1 (en) * 2001-05-30 2003-01-02 Anne Robb Method and apparatus for a common management software systems
JP2018515835A (ja) * 2015-04-08 2018-06-14 アマゾン テクノロジーズ インコーポレイテッド アプリケーション・プログラミング・インタフェース・プロキシ・サービスを提供するエンドポイント管理システム
JP2018523244A (ja) * 2015-08-14 2018-08-16 オラクル・インターナショナル・コーポレイション トランザクションシステムにおけるui状態の復元

Also Published As

Publication number Publication date
JP7536436B2 (ja) 2024-08-20

Similar Documents

Publication Publication Date Title
US12158958B2 (en) Web attack simulator
US11907700B2 (en) Upgrading method and system, server, and terminal device
JP6912469B2 (ja) アクセス要求変換方法および装置
US11232405B2 (en) Computer readable storage media for dynamic service deployment and methods and systems for utilizing same
US6804773B1 (en) System and method for transferring information over a network
CN113158195B (zh) 一种基于poc脚本的分布式漏洞扫描方法及系统
CN104137115A (zh) 网络服务接口分析
EP3872630B1 (en) Request processing method and apparatus, electronic device, and computer storage medium
US11552868B1 (en) Collect and forward
CN116647375B (zh) 一种指纹识别方法、装置及电子设备
CN120075102A (zh) 一种物联网通信方法、装置、设备、存储介质及程序产品
US11392700B1 (en) System and method for supporting cross-platform data verification
JP2021068160A (ja) 情報処理システムおよび情報処理装置
CN110769065A (zh) 一种远程管理方法、系统、终端设备及服务器
CN114090082B (zh) 一种整合规则引擎的调用外部接口的方法及系统
CN115086393B (zh) 一种接口调用方法、装置、设备及存储介质
CN119316481B (zh) 服务请求处理方法及装置
CN115525362B (zh) 基于操作系统内核参数调整平台的参数变更方法和装置
CN121255251A (zh) 应用程序的补丁处理方法、装置、设备及介质
JP5234738B2 (ja) 暗号プロトコル実行装置、暗号プロトコル実行方法およびプログラム
CN115643253A (zh) 跨域文件请求方法及装置、业务服务系统
CN121118045A (zh) Api与数据库访问关联审计方法及相关设备
CN117978791A (zh) 一种基于gRPC网关的数据处理方法、系统、设备及介质
CN115396276A (zh) 一种互联网平台接口文档的处理方法、装置、设备及介质
CN113886892A (zh) 应用程序的数据获取方法和装置、及存储介质和电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20240122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240807

R150 Certificate of patent or registration of utility model

Ref document number: 7536436

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150