JP7369501B2 - 人工知能を使用した認証されていないapi要求が存在する場合の不適切な活動の検出 - Google Patents

人工知能を使用した認証されていないapi要求が存在する場合の不適切な活動の検出 Download PDF

Info

Publication number
JP7369501B2
JP7369501B2 JP2021523187A JP2021523187A JP7369501B2 JP 7369501 B2 JP7369501 B2 JP 7369501B2 JP 2021523187 A JP2021523187 A JP 2021523187A JP 2021523187 A JP2021523187 A JP 2021523187A JP 7369501 B2 JP7369501 B2 JP 7369501B2
Authority
JP
Japan
Prior art keywords
api
unauthenticated
behavior
classifier
access request
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.)
Active
Application number
JP2021523187A
Other languages
English (en)
Other versions
JP2022515007A (ja
Inventor
ユ、シュエジエ
バーテルト、マティアス
ハウプトマン、マニュエル
ウィリアムズ、ロン
ティラフン、リディヤ
クマーリ、アーチャナ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022515007A publication Critical patent/JP2022515007A/ja
Application granted granted Critical
Publication of JP7369501B2 publication Critical patent/JP7369501B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Description

本開示は、一般に、例えばエンタープライズ・ネットワークにおける異常な、または悪意のあるネットワーク活動またはユーザの挙動を検出するための手法に関連している。
エンタープライズ・セキュリティは、セキュリティ・ポリシー、制御、脅威モデル、および脅威検出シナリオ(使用事例)全体にわたる調整を必要とする複雑な問題である。これらのポリシー、モデル、および制御の実施は、脅威監視技術およびセキュリティ・デバイスに加えて、セキュリティ、ビジネス、および技術のスキルを有する人材の広範囲に及ぶ使用を必要とする。特に、大規模に増え続ける脅威は、これらの脅威を防止すること、検出すること、および対応することに責任を負うセキュリティ・アナリストのサポートにおける自動化を必要とする。ほとんどの場合、アナリストは、広範囲の(一部はプライベートであり、多くはパブリックである)データ・ソースを手動で検索し、過去の脅威イベントおよびそれらの処理方法を再検討し、重複するイベント、現在の未解決の類似するイベント、および知識データベースなどを確認し、この情報を処理するための適切な対応手順を決定しなければならない。このデータ収集、分析、および警告の最終的な処理の決定のプロセスは、時間がかかり、アナリストにとって退屈である。
脅威監視のためのさまざまなツールが存在しており、これらのツールは、広範囲のデータ・ソースを分析して、脅威を示すパターン、セキュリティ・ポリシーを識別し、異常を制御し、企業が脅威インテリジェンスに関して研究、協調、および活動できるようにする。そのようなツールの1つは、クラウドベースの脅威インテリジェンス・プラットフォームであるIBM(R)X-Force(R)Exchangeであり、ユーザはこのプラットフォームを使用して、脅威インテリジェンスを利用および共有し、脅威インテリジェンスに関して活動することができる。ユーザは、このプラットフォームを使用して、最新の世界的なセキュリティ脅威を迅速に研究し、使用可能なインテリジェンスを集約し、専門家に相談し、同業者と協調することができる。人間および機械が生成したインテリジェンスによって支援されるIBM X-Force Exchangeは、IBM X-Forceのセキュリティ専門家の規模を活用し、ユーザが出現する脅威の一歩先を行くことに役立つ。これらの脅威または異常あるいはその両方が検出された場合、使用可能な警告が作成される。
REST(representational state transfer)は、分散ハイパーメディア・システム内でコンポーネント、コネクタ、およびデータ要素に適用される調整された一連のアーキテクチャ制約から成る、プログラム・インターフェイス仕様である。RESTは、コンポーネントの役割、他のコンポーネントとのインタラクションに対する制約、および重要なデータ要素の解釈に重点を置くために、コンポーネントの実装およびプロトコルの構文の詳細を無視する。RESTの制約に従うWebサービス・アプリケーション・プログラミング・インターフェイス(API:application programming interfaces)は、RESTfulと呼ばれる。RESTful APIを採用するSaaS(Software-as-a-Service)ベースのアプリケーションは、しばしば、JavaScriptアプリケーションを介してユーザのブラウザで直接APIを使用可能にする。これらのAPIは、APIサーバ上でホストされ、認証されていないエンドポイントであることが多い。すべてのエンドポイントがユーザを認証するのが理想的であるが、さまざまな理由により、企業は、アプリケーションの特定の特徴のために、認証しないエンドポイントをデプロイすることが必要になる場合がある。ユーザが、認証されていないエンドポイントを発見し、例えばAPIへのプログラムによるアクセスを介してそのエンドポイントを直接使用する場合、この挙動は、技術的に可能だとしても、不適切であると見なされるべきである。
したがって、正当な使用を違法な使用と区別し、認証された要求が存在しない場合の代替の実施メカニズムを提供することができる、使用に基づく保護メカニズムを識別して実装することが必要である。
認証されていないAPIエンドポイントを採用するアプリケーション(例えば、SaaSベースのWeアプリケーション)への認証されていないクライアントのアクセスが、ニューラル・ネットワークを活用するアクセス制御システムおよび方法によって監視されて保護される。ニューラル・ネットワークは、ポリシーに従って、「不適切」であると見なされるべきユーザの挙動を認識するようにトレーニングされる。
本開示の第1の態様によれば、クライアントが、1つまたは複数の認証されていないエンドポイントを含んでいるアプリケーション・プログラミング・インターフェイス(API)ベースの要求を少なくとも部分的に使用してアプリケーションとインタラクションするコンピューティング環境内の、アクセス制御のための方法が提供される。認証されていないクライアントからのAPIアクセス要求の受信に応答して、実行時の動作が開始する。それに応じて、分類器がAPIアクセス要求に適用される。この分類器は、1つまたは複数の認証されていないエンドポイントへのプログラムによるアクセスに関する挙動の少なくとも第1および第2のクラスを区別するためのポリシーに従って、人工知能を使用して、特に、ニューラル・ネットワークをトレーニングすることによって生成された分類器である。挙動の第1のクラスは、適切な活動としてポリシーにおいて指定され、挙動の第2のクラスは、不適切な活動としてポリシーにおいて指定される。ニューラル・ネットワーク分類器によって、認証されていないクライアントからのAPIアクセス要求が挙動の第1のクラスに含まれているということが決定されたときに、APIアクセス要求が許可される。しかし、分類器によって、認証されていないクライアントからのAPIアクセス要求が挙動の第2のクラスに含まれているということが決定されたときに、ポリシーの順守を保証するための所定の処置が実行される。したがって、例えば、所定の処置は、APIアクセス要求を許可することと、APIアクセス要求をブロックすることと、APIアクセス要求を許可することまたはブロックすることに関連付けられた監査動作を開始することと、認証されていないクライアントをブラックリストに入れることとのうちの1つであってよい。
ニューラル・ネットワーク分類器をトレーニングすることは、クライアントからの特定のAPIアクセス要求に関連付けられたエンドポイントのセットを表す要素のセットを含んでいる特徴セットを定義することを含むのが好ましい。エンドポイントは、所定の時間ウィンドウに関して定義されるのが好ましく、エンドポイントに関連付けられた要素には、ヒットが適切な活動または不適切な活動のいずれを表すかの関数である値が割り当てられる。ニューラル・ネットワークのトレーニング・データは、肯定的(ポリシーが満たされる)データ・セットおよび否定的(ポリシーが否定される)データ・セットの両方を含む。肯定的データ・セットはログ(イベント・レコード)から得られるのが好ましく、否定的データ・セットは、ポリシーが否定されるシナリオをシミュレートするように人工的に作成されるのが好ましい。
本開示の第2の態様によれば、アクセス制御のための装置が説明される。この装置は、ハードウェア・プロセッサと、前述したステップなどの一連の処理を実行するためにハードウェア・プロセッサによって実行されるコンピュータ・プログラム命令を保持するコンピュータ・メモリとを備える。
本開示の第3の態様によれば、アクセス制御のためにデータ処理システムにおいて使用される、非一過性コンピュータ可読媒体内のコンピュータ・プログラム製品が説明される。コンピュータ・プログラム製品は、データ処理システムにおいて実行され、前述のステップなどの処理を実行するよう機能するコンピュータ・プログラム命令を保持する。
本開示の第4の態様によれば、ハードウェアおよびソフトウェアを備えているネットワーク・アクセス可能なクラウド計算インフラストラクチャにおいて実装されるSoftware-as-a-Serviceが説明される。このサービスは、ネットワーク・アクセス可能なアプリケーション、ニューラル・ネットワーク、およびアプリケーションに対するアクセス制御を容易にするサービスを含む。このニューラル・ネットワークは、ネットワーク・アクセス可能なアプリケーションへのアクセスを要求している認証されていないクライアントによってアクセスできるインターフェイス・エンドポイントのセットに関連してデプロイされる。このニューラル・ネットワークは、1つまたは複数のインターフェイス・エンドポイントへのプログラムによるアクセスに関する挙動の少なくとも第1および第2のクラスを区別するためのポリシーに従ってトレーニングされる。このサービスは、(i)ネットワーク・アクセス可能なアプリケーションへの複数のインターフェイス・アクセス要求の受信に応答することと、(ii)ニューラル・ネットワークを適用して、複数のインターフェイス・アクセス要求がポリシーのコンテキストを満たしているかどうかの判定を行うことと、(iii)この判定に基づいてアクセス制御を適用することとを実行するように構成される。
本開示の方法は、認証されていないAPI要求またはさらに一般的には、認証されていないユーザが存在する場合に不適切な活動を検出するための手段を提供する。システムは、ニューラル・ネットワークを使用して、認証されていないユーザの挙動に関して効果的な区別を行い、企業のセキュリティ・ポリシーに従ってアプリケーションを使用していないユーザに対するアクセス制御を、より効果的に実施できるようにする。ニューラル・ネットワークに基づく方法は、適用範囲が非常に狭い確定的ルールに基づく解決策と比較して、動的環境においてはるかに正確な結果を提供する。この方法は、規則的なユーザの挙動の背後にあるパターンを認識するようにニューラル・ネットワークをトレーニングすることによって、認証されていないユーザに対する堅牢なアクセス制御を可能にする。さらに一般的には、この方法は、そのアクセスを行っている個人の識別情報が不明であるか、または必ずしも確認可能でない場合に、アプリケーションとのAPIのインタラクションに全体的または部分的に基づいて、アクセス制御を容易にする。
以上では、対象のより関連する特徴の一部について概説した。これらの特徴は、単に例であると解釈されるべきである。説明されるように、開示された対象を異なる方法で適用することによって、または対象を変更することによって、多くのその他の有益な結果を実現できる。
対象および対象の利点をさらに完全に理解するために、ここで、添付の図面と併せて行われる以下の説明を参照する。
実施形態例の例示的な態様が実装されてよい分散データ処理環境の例示的なブロック図を示す図である。 実施形態例の例示的な態様が実装されてよいデータ処理システムの例示的なブロック図である。 本開示の手法が実践されてよいセキュリティ・インテリジェンス・プラットフォームを示す図である。 既知の手法に従ってデータセンター運用環境内のレベル1のセキュリティ脅威監視動作を示す図である。 RESTful APIを採用する、本開示の手法が実装されてよい、SaaS(Software-as-a-Service)ベースのWebアプリケーションとエンド・ユーザがインタラクションしている、代表的運用環境を示す図である。 人工知能(例えば、認証されていないクライアントによって生じた、API要求を使用する適切な挙動と不適切な挙動を区別するようにトレーニングされたニューラル・ネットワーク)を組み込むように拡張された、図5の運用環境を示す図である。 特定の認証されていないユーザの活動が適切であるか、または不適切であるかに関する予測を適用するためにミドルウェア層として実装されたニューラル・ネットワークを示す図である。 ユーザ・インターフェイス(UI:user interface)表示が複数の個別のレポート要素から成るレポート・ページを含み、レポート要素の各々が個別のAPIサーバ・エンドポイントから取得される、例示的なシナリオを示す図である。 図8のUI表示要素に関して、複数の認証されていない要求の流れを示す図であり、上部が適切な流れを表し、下部が不適切な流れを表している。 図9の下部に示されているUI表示要素に関して、APIによって認証されていないAPIアクセスの制御方法における代表的な要求/応答ワークフローを示す図である。 ニューラル・ネットワークのトレーニング方法のプロセス・フローを示す図である。 1つの実施形態において、肯定的特徴セットおよび否定的特徴セットを取り出して、ニューラル・ネットワークをトレーニングするために使用される、代表的なログ記録イベントのレコードを示す図である。
ここで図面を参照し、特に図1~2を参照すると、本開示の実施形態例が実装されてよいデータ処理環境の例示的な図が示されている。図1~2は単なる例であり、開示される対象の態様または実施形態が実装されてよい環境に関して、どのような制限も主張することも、意味することも意図されていないということが、理解されるべきである。本発明の思想および範囲から逸脱することなく、示された環境に対して多くの変更が行われてよい。
ここで図面を参照すると、図1は、実施形態例の態様が実装されてよい例示的な分散データ処理システムの図的表現を示している。分散データ処理システム100は、実装形態例の態様を実装できるコンピュータのネットワークを含んでよい。分散データ処理システム100は、分散データ処理システム100内で一緒に接続されているさまざまなデバイスとコンピュータの間の通信リンクを提供するために使用される媒体である、少なくとも1つのネットワーク102を含んでいる。ネットワーク102は、ワイヤ、無線通信リンク、または光ファイバ・ケーブルなどの接続を含んでもよい。
図に示された例では、サーバ104およびサーバ106が、ストレージ・ユニット108と共にネットワーク102に接続されている。加えて、クライアント110、112、および114がネットワーク102にも接続されている。これらのクライアント110、112、および114は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータなどであってよい。図に示された例では、サーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント110、112、および114に提供する。クライアント110、112、および114は、図に示された例では、サーバ104のクライアントである。分散データ処理システム100は、図に示されていない追加のサーバ、クライアント、およびその他のデバイスを含んでよい。
図に示された例では、分散データ処理システム100は、相互に通信するための一連のプロトコル(送信制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol))を使用する世界全体のネットワークとゲートウェイの集合を表す、ネットワーク102を含むインターネットである。インターネットの中心には、主要なノード間またはホスト・コンピュータ間を接続する高速データ通信ラインのバックボーンがあり、データおよびメッセージをルーティングする多数の民間のコンピュータ・システム、政府機関のコンピュータ・システム、教育機関のコンピュータ・システム、およびその他のコンピュータ・システムで構成されている。当然、分散データ処理システム100は、例えばイントラネット、ローカル・エリア・ネットワーク(LAN:local area network)、広域ネットワーク(WAN:wide area network)などの、多数の各種ネットワークを含むように実装されてもよい。前述したように、図1は、開示される対象の異なる実施形態に対するアーキテクチャの制限ではなく、一例となるよう意図されており、したがって、図1に示されている特定の要素は、本発明の実施形態例が実装されてよい環境に関して制限していると見なされるべきではない。
ここで図2を参照すると、実施形態例の態様が実装されてよい例示的なデータ処理システムのブロック図が示されている。データ処理システム200は、図1のクライアント110などのコンピュータの例であり、データ処理システム200内に、本開示の実施形態例のプロセスを実装するコンピュータ使用可能なコードまたは命令が配置される。
ここで図2を参照すると、実施形態例が実装されてよいデータ処理システムのブロック図が示されている。データ処理システム200は、図1のサーバ104またはクライアント110などのコンピュータの例であり、データ処理システム200内に、実施形態例のプロセスを実装するコンピュータ使用可能なプログラム・コードまたは命令が配置されてよい。この例では、データ処理システム200は、プロセッサ・ユニット204、メモリ206、永続的ストレージ208、通信ユニット210、入出力(I/O:input/output)ユニット212、およびディスプレイ214の間の通信を提供する通信ファブリック202を含んでいる。
プロセッサ・ユニット204は、メモリ206に読み込むことができるソフトウェアの命令を実行する役目を果たす。プロセッサ・ユニット204は、特定の実装に応じて、1つまたは複数のプロセッサのセットであってもよく、マルチプロセッサ・コアであってもよい。さらに、プロセッサ・ユニット204は、単一チップ上にメイン・プロセッサが二次プロセッサと共に存在する、1つまたは複数の異種プロセッサ・システムを使用して実装されてよい。別の例として、プロセッサ・ユニット204は、同じ種類の複数のプロセッサを含んでいる対称型マルチプロセッサ(SMP:symmetric multi-processor)システムであってよい。
メモリ206および永続的ストレージ208は、ストレージ・デバイスの例である。ストレージ・デバイスは、一時的に、または永続的に、あるいはその両方で情報を格納することができる任意のハードウェアである。これらの例では、メモリ206は、例えば、ランダム・アクセス・メモリあるいは任意のその他の適切な揮発性または不揮発性ストレージ・デバイスであってよい。永続的ストレージ208は、特定の実装に応じて、さまざまな形態をとることができる。例えば、永続的ストレージ208は、1つまたは複数のコンポーネントまたはデバイスを含むことができる。例えば、永続的ストレージ208は、ハード・ドライブ、フラッシュ・メモリ、書き換え可能光ディスク、書き換え可能磁気テープ、またはこれらの組み合わせであってよい。永続的ストレージ208によって使用される媒体は、取り外し可能であってもよい。例えば、取り外し可能ハード・ドライブを、永続的ストレージ208に使用できる。
これらの例において、通信ユニット210は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例において、通信ユニット210は、ネットワーク・インターフェイス・カードである。通信ユニット210は、物理的通信リンクまたは無線通信リンクのいずれか、あるいはその両方を使用して通信を提供できる。
入出力ユニット212は、データ処理システム200に接続されてよい他のデバイスとのデータの入力および出力を可能にする。例えば、入出力ユニット212は、キーボードおよびマウスを介したユーザ入力のための接続を提供できる。さらに、入出力ユニット212は、出力をプリンタに送信できる。ディスプレイ214は、情報をユーザに表示するためのメカニズムを提供する。
オペレーティング・システムおよびアプリケーションまたはプログラムの命令は、永続的ストレージ208上に配置される。これらの命令は、プロセッサ・ユニット204によって実行するために、メモリ206に読み込むことができる。さまざまな実施形態のプロセスは、メモリ206などのメモリ内に配置できるコンピュータ実装命令を使用してプロセッサ・ユニット204によって実行できる。これらの命令は、プロセッサ・ユニット204内のプロセッサによって読み取って実行できるプログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。さまざまな実施形態におけるプログラム・コードは、メモリ206または永続的ストレージ208などの、異なる物理的な、または有形のコンピュータ可読媒体上で具現化されてよい。
プログラム・コード216は、選択的に取り外すことができるコンピュータ可読媒体218上に機能的形態で配置され、プロセッサ・ユニット204によって実行するために、データ処理システム200に読み込むか、または転送することができる。これらの例では、プログラム・コード216およびコンピュータ可読媒体218が、コンピュータ・プログラム製品220を形成する。1つの例では、コンピュータ可読媒体218は、例えば、ドライブに挿入または配置される光ディスクまたは磁気ディスク、あるいは永続的ストレージ208の一部であるハード・ドライブなどのストレージ・デバイスに転送するための永続的ストレージ208の一部であるその他のデバイスなどの、有形の形態で存在してよい。有形の形態において、コンピュータ可読媒体218は、データ処理システム200に接続されたハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの、永続的ストレージの形態をとってもよい。コンピュータ可読媒体218の有形の形態は、コンピュータ記録可能ストレージ媒体とも呼ばれる。一部の例では、コンピュータ記録可能媒体218は、取り外し可能でなくてよい。
代替として、プログラム・コード216は、通信ユニット210への通信リンクを介して、または入出力ユニット212への接続を介して、あるいはその両方を介して、コンピュータ可読媒体218からデータ処理システム200に転送できる。この例において、通信リンクまたは接続あるいはその両方は、物理的または無線であってよい。コンピュータ可読媒体は、プログラム・コードを含んでいる通信リンクまたは無線送信などの非有形の媒体の形態をとってもよい。データ処理システム200に示されているさまざまなコンポーネントは、さまざまな実施形態が実装されてよい方法に対するアーキテクチャの制限をもたらすよう意図されていない。データ処理システムでは、データ処理システム200に示されているコンポーネントに加えた、または代わりになるコンポーネントを含む、さまざまな実施形態例が実装されてよい。図2に示されている他のコンポーネントは、示されている例から変化することができる。1つの例として、データ処理システム200内のストレージ・デバイスは、データを格納できる任意のハードウェア装置である。メモリ206、永続的ストレージ208、およびコンピュータ可読媒体218は、有形の形態でのストレージ・デバイスの例である。
別の例では、通信ファブリック202を実装するためにバス・システムが使用されてよく、バス・システムは、システム・バスまたは入出力バスなどの1つまたは複数のバスから成ることができる。当然ながら、バス・システムは、バス・システムに接続された異なるコンポーネントまたはデバイス間のデータの転送を提供する任意の適切な種類のアーキテクチャを使用して、実装されてよい。さらに、通信ユニットは、モデムまたはネットワーク・アダプタなどの、データを送信および受信するために使用される1つまたは複数のデバイスを含んでよい。さらに、メモリは、例えば、通信ファブリック202内に存在することができるインターフェイスおよびメモリ・コントローラ・ハブに見られるような、メモリ206またはキャッシュであってよい。
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Java(TM)、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されてよい。プログラム・コードは、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。
当業者は、図1~2のハードウェアが実装に応じて変わってよいということを、理解するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブなどの、その他の内部ハードウェアまたは周辺機器が、図1~2に示されているハードウェアに加えて、またはそれらのハードウェアの代わりに、使用されてよい。また、実施形態例のプロセスは、開示される対象の思想および範囲から逸脱することなく、前述したSMPシステム以外のマルチプロセッサ・データ処理システムに適用されてよい。
下で説明されているように、本明細書に記載された手法は、図1に示されているような標準的なクライアント/サーバの枠組みと共に動作してよく、クライアント/サーバの枠組みでは、クライアント・マシンが、一連の1つまたは複数のマシン上で実行されているインターネットアクセス可能なWebベースのポータルと通信する。エンド・ユーザは、ポータルにアクセスしてポータルとインタラクションすることができるインターネット接続可能なデバイス(例えば、デスクトップ・コンピュータ、ノートブック・コンピュータ、インターネット対応のモバイル・デバイスなど)を操作する。通常、各クライアント・マシンまたはサーバ・マシンは、ハードウェアおよびソフトウェアを備えている図2に示されているようなデータ処理システムであり、これらの実体は、ネットワーク(インターネット、イントラネット、エクストラネット、プライベート・ネットワーク、あるいは任意のその他の通信媒体またはリンクなど)を経由して互いに通信する。データ処理システムは、通常、1つまたは複数のプロセッサ、オペレーティング・システム、1つまたは複数のアプリケーション、および1つまたは複数のユーティリティを含む。データ処理システム上のアプリケーションは、特にHTTP、SOAP、XML、JSON、STIX/TAXIIのサポートを含むが、これらに限定されない、Webサービスのネイティブ・サポートを提供する。SOAPに関する詳細は、これらの規格を開発および維持する役割を担っているワールド・ワイド・ウェブ・コンソーシアム(W3C:World Wide Web Consortium)から提供されており、HTTPおよびXMLに関する詳細は、インターネット・エンジニアリング・タスク・フォース(IETF:Internet Engineering Task Force)から提供されている。これらの規格を熟知していることが仮定される。
RESTfulアプリケーション・プログラミング・インターフェイス(API)
REST(Representational state transfer)は、分散ハイパーメディア・システム内でコンポーネント、コネクタ、およびデータ要素に適用される調整された一連のアーキテクチャ制約から成る、プログラム・インターフェイス仕様である。RESTは、コンポーネントの役割、他のコンポーネントとのインタラクションに対する制約、および重要なデータ要素の解釈に重点を置くために、コンポーネントの実装およびプロトコルの構文の詳細を無視する。RESTの制約に従うWebサービス・アプリケーション・プログラミング・インターフェイス(API:application programming interfaces)は、RESTfulと呼ばれる。RESTful APIは、URI(uniform resource identifier)、データのインターネット・メディア・タイプ(例えば、多くの場合、JSON(JavaScript Object Notation)であるが、任意のその他の有効なインターネット・メディア・タイプであることができる)、メソッドとも呼ばれる標準的なHTTPコマンド(例えば、GET、PUT、POST、またはDELETE)、参照状態へのハイパーテキスト・リンク、参照関連リソース(reference related resources)へのハイパーテキスト・リンクなどの特徴を使用して定義される。
RESTの概念はリソース(特定の情報のソース)の存在であり、リソースの各々が、グローバル識別子(例えば、ハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)におけるURI(uniform resource identifier))を使用して参照される。これらのリソースを操作するために、ネットワークのコンポーネント(例えば、ユーザ・エージェント、配信元サーバなど)は、標準化されたインターフェイス(例えば、HTTP)を介して通信し、これらのリソースの表現(多くの場合、表現を伝達するドキュメント)を交換する。
任意の数のコネクタ(例えば、クライアント、サーバ、キャッシュ、トンネルなど)が、要求を仲介することができるが、各コネクタは、「過去を見る」ことなくそれ自身の要求を仲介する(「階層化」と呼ばれ、RESTの別の制約であり、情報およびネットワーク・アーキテクチャの多くの他の部分における一般的原則である)。このようにして、アプリケーションは、リソースの識別子および必要な動作という2つのことを知ることによって、リソースとインタラクションすることができる。アプリケーションは、アプリケーションと表現を実際に保持しているサーバとの間に、キャッシュ、プロキシ、ゲートウェイ、ファイアウォール、トンネル、または何か他のものが存在するかどうかを知る必要がない。しかし、アプリケーションは、返される表現の形式を理解する必要があり、通常、この形式は、ハイパー・テキスト・マークアップ言語(HTML:Hyper Text Markup Language)、拡張マークアップ言語(XML:Extensible Markup Language)、またはJSON(JavaScript Object Notation)、オブジェクト指向言語、あるいはドキュメント形式のうちの1つの種類であるが、返される情報は画像、プレーン・テキスト、または任意のその他の形式であってよい。
既知の解決策では、アプリケーションにRESTfulインターフェイスを提供するために、開発者は、HTTPアプリケーション・サーバによって受信されたHTTP要求を処理するためのコードを記述する。そのようなコードは、(1)埋め込まれたREST要求およびデータ交換形式のデータ(例えば、JSON(JavaScript Object Notation)または拡張マークアップ言語(XML)などの言語非依存のデータ形式のデータ)の表現を、関数の入力パラメータとしてプログラムの形式(例えば、C++データ型)に変換するステップ、(2)関数の入力パラメータを使用して要求を適切なアプリケーションのAPIにディスパッチするステップ、(3)出力データを、JSONなどのデータ交換形式に変換するステップ、(4)HTTP応答などの応答を組み立てるステップ、および(5)応答をクライアントに送信するステップを実行するための命令を含む。
クライアントとしてプログラムの方法で(例えば、スクリプトで)RESTfulインターフェイスを使用するには、ユーザは、(1)入力データを、JSONなどのデータ交換形式に変換するステップ、(2)入力データを使用して、HTTP要求などの要求を組み立てるステップ、(3)要求をアプリケーション・サーバに送信するステップ、(4)アプリケーション・サーバから応答を受信するステップ、および(5)多くの場合、JSON形式で埋め込まれた応答データを、さらに処理するためにスクリプトのオブジェクトまたは変数に変換するステップを実行する必要がある。
インシデント・フォレンジックを含むセキュリティ・インテリジェンス・プラットフォーム
既知の種類の企業に基づくセキュリティ・インテリジェンス・プラットフォームが、図3に示されている。通常、このプラットフォームは、セキュリティ・インシデント調査を支援するために、検索駆動型データ探索(search-driven data exploration)、セッション再構築、およびフォレンジック・インテリジェンス(forensics intelligence)を提供する。関連する部分において、プラットフォーム300は、一連のパケット・キャプチャ・アプライアンス302、インシデント・フォレンジック・モジュール・アプライアンス304、分散データベース306、およびセキュリティ・インテリジェンス・コンソール308を備える。パケット・キャプチャおよびモジュール・アプライアンスは、ネットワーク・アプライアンスとして構成されるか、または仮想アプライアンスとして構成されてもよい。パケット・キャプチャ・アプライアンス302は、(既知のパケット・キャプチャ(pcap:packet capture)アプリケーション・プログラミング・インターフェイス(API)またはその他の既知の手法を使用して)ネットワークからパケットを捕捉し、そのようなデータ(例えば、リアルタイムのログ・イベントおよびネットワーク・フロー)を分散データベース306に提供するよう機能し、このデータは格納され、フォレンジック・モジュール304およびセキュリティ・インテリジェンス・コンソール308による分析に使用できる。パケット・キャプチャ・アプライアンスは、セッション指向の方法で動作し、フロー内のすべてのパケットを捕捉して、メタデータおよびペイロードにインデックスを付与し、高速な検索駆動型データ探索を可能にする。データベース306はフォレンジック・リポジトリ(forensics repository)を提供し、フォレンジック・リポジトリは、パケット・キャプチャ・アプライアンスによって収集された情報を含んでいる、分散された異種データ・セットである。コンソール308は、調査員によるインシデント調査ワークフローを容易にするためのダッシュボードを公開する、Webまたはクラウドにアクセスできるユーザ・インターフェイス(UI)を提供する。調査員は、ダッシュボードを使用してセキュリティ・インシデントを選択する。インシデント・フォレンジック・モジュール304は、選択されたセキュリティ・インシデントに関するすべてのパケット(メタデータ、ペイロードなどを含んでいる)を取り出し、分析のためにセッションを再構築する。
この種のインシデント調査ワークフローを実施する代表的な市販用製品は、IBM(R)Security QRadar(R)Incident Forensics V7.2.3(以上)である。調査員は、このプラットフォームを使用して、データベースに格納されている分散された異種データ・セット全体を検索し、統一された検索結果リストを受け取る。
通常、前述のシステムにおいて使用するためのアプライアンスは、ネットワーク接続された、ディスプレイのないデバイスとして実装される。例えば、従来のミドルウェアのサービス指向アーキテクチャ(SOA:service oriented architecture)機能を実行することを目的として構築されたアプライアンスは、特定のコンピュータ環境全体に行き渡っている。SOAミドルウェア・アプライアンスは、企業全体の既存のSOAインフラストラクチャを拡張しながら、XMLサービスまたはWebサービスのデプロイメントを簡略化するか、保護するのを支援するか、または高速化することができる。ミドルウェア用のハードウェアおよび軽量ミドルウェア・スタックの利用によって、従来のソフトウェアの解決策によって発生する性能上の負荷に対処することができる。加えて、アプライアンスのフォームファクタは、ミドルウェアSOA機能を実装するための安全な消耗パッケージングを提供する。このような種類のデバイスが提供する1つの際立った利点は、バックエンド・システムから処理をオフロードすることである。この種のネットワーク・アプライアンスは、通常、ラックマウント方式のデバイスである。このデバイスは、アプライアンスが機密情報のための安全な保管室として役立つことができるようにする物理的セキュリティを含む。通常、このアプライアンスは、製造され、事前にソフトウェアが搭載され、その後、企業またはその他のネットワーク運用環境内で、またはそれらに関連してデプロイされる。代替として、ボックスがローカルに配置され、その後、例えばプライベートまたはオンプレミスのクラウド・コンピューティング環境内で、安全にデプロイして管理することができる標準の、またはカスタマイズされたミドルウェア仮想イメージが、このボックスに準備されてよい。このアプライアンスは、場合によってはハード・ディスク上のデータを暗号化するために、ハードウェア暗号化およびファームウェア暗号化のサポートを含んでよい。このアプライアンスは、アクセス性が制限されて、密封された安全な環境になり、その後、認証されて許可された個人のみになるように設計される。
この種のアプライアンスは、セキュリティ情報イベント管理(SIEM:Security Information Event Management)を容易にすることができる。例えば、IBM(R)Security QRadar(R)SIEMは、この種のアプライアンスとして構成できるパケット・データ・キャプチャ・アプライアンスを含むエンタープライズ・ソリューションである。そのようなデバイスは、例えば、リアルタイムのレイヤ4のネットワーク・フロー・データを捕捉するよう機能し、その後、例えばディープ・パケット・インスペクションおよびその他の技術を使用して、このデータからレイヤ7のアプリケーション・ペイロードが分析されてよい。このデバイスは、フローに基づくネットワーク知識、セキュリティ・イベントの相関関係、およびアセットに基づく脆弱性評価の組み合わせを使用して、状況認識を提供し、適合性をサポートする。基本的なQRadar SIEMの設備では、図3に示されているようなシステムが、イベントおよびフローのデータを収集し、レポートを生成するように構成される。前述したように、ユーザ(例えば、SOCアナリスト)は、攻撃を調査して、ネットワークの問題の根本的原因を決定することができる。
一般的に言うと、セキュリティ情報イベント管理(SIEM)ツールは、ITセキュリティ・イベントおよび脆弱性に関する分析、管理、監視、および報告を行うためのさまざまなサービスを提供する。そのようなサービスは、通常、データ・ネットワーク全体の監視されたアクセスおよび予期しない出来事に関するイベントの集合を含み、相関関係においてそれらのイベントを分析して、プロファイルされたより高次のセキュリティ・イベントへの寄与を決定する。これらのサービスは、ファイアウォール構成の分析と、現在のネットワーク・トラフィック・パターンおよび可能性のあるネットワーク・トラフィック・パターン、有効な攻撃経路および高リスクのアセットを識別するために、ネットワーク構成およびトラフィックとのアセットの脆弱性の相関関係を表示するためのネットワーク・トポロジーおよび接続の視覚化ツールと、ネットワーク・トラフィック、トポロジー、および脆弱性の公開のポリシー適合性監視のサポートとを含んでもよい。一部のSIEMツールは、一般的なネットワーク情報モデルによって処理されたデバイス構成の変換分析に基づいて、ルータ、ファイアウォール、およびスイッチなどの管理されたネットワーク・デバイスのトポロジーを構築する能力を有する。その結果は、セキュリティ脅威のシミュレーション、ファイアウォール・フィルタの運用分析、およびその他の応用に使用できる、配置構造である。
図4は、IBM QRadarなどの分析プラットフォーム400を使用してレベル1のセキュリティ脅威監視を提供するセキュリティ・オペレーション・センター(SOC:Security Operation Center)を示している。プラットフォーム400は、ファイアウォール、侵入検出および防止システム、アンチウイルス・システム、Webプロキシ、ならびにその他のシステムおよびネットワーク・デバイスなどの、さまざまなログ・ソース402から(ステップ(1)で)警告を受信する。ステップ(2)で、警告が警告データベース404に格納される。ステップ(3)で、警告が、セキュリティ・アナリスト408が配置されている脅威監視コンソール406に提供される。周知のように、SOCには、通常、異なるレベルのセキュリティ・アナリストが配置される。レベル1(L1)のアナリスト408は、報告されたセキュリティ・イベントを監視し、SOCのルール、ポリシー、および手順に従って、それらのイベントを終了するか、またはエスカレートさせる責任を負う。セキュリティ・アナリスト408は、通常、クライアント410とインタラクションし、クライアント410は、セキュリティ脅威に関して監視されているアプリケーションを所有している企業実体である。図に示されていないが、通常、SOCには、レベル2(L2)およびレベル3(L3)のアナリストなどの、1つまたは複数の追加のレベルのセキュリティ・アナリストが存在する。通常、L2セキュリティ・アナリストは、L1アナリストからのエスカレーションを処理し、セキュリティ・イベントがタイムリーに処理されていることを保証するためにL1アナリストの実績を監視すること、指導教育などの、その他の運営管理機能を実行する。レベル3のアナリストは、(L2アナリストからの)さらなるエスカレーションを処理し、SOC内の追加のより高度な運営管理機能を実行する。当然ながら、レベル数および各レベルに関連付けられたさまざまな作業は、変化することがあり、実装に固有であってよい。
図に示されているように、L1アナリストは、警告に関する調査を行い、通常、警告の受信後に、この調査を約15~20分以内に行うことを目標にする。通常、この調査によって、警告を誤検出として終了するか(ステップ5(a))、または警告を可能性のある攻撃としてエスカレートさせる(ステップ5(b))。誤検出の調査結果は、警告データベース404に格納される。攻撃の調査結果は、通常、影響を受けるアプリケーションを所有しているクライアント410に報告される。実装(例えば、SOCのポリシー、クライアントの手順など)に応じて、何らかの改善またはその他の処置が実行され(ステップ6(b))、代替として、クライアント410は、本当に警告が誤検出であり、したがって終了するべきであるということを示してよい(ステップ6(c))。自動化された方法で(例えば、プログラムによって)、手動で、または自動動作および手動動作の組み合わせで、応答処置412が実行されてよい。この処置は、SOCの人員によって、クライアントによって、またはSOCの人員およびクライアントの組み合わせによって実行されてよい。図にも示されているように、警告に対する応答に関する情報も、発券システム414に提供され、次にそのような情報の報告が、セキュリティ・アナリストに返されてよい(ステップ7(c))。その後、セキュリティ・アナリストは、警告の処理方法(または警告の終了)に関する情報で(ステップ8(c)で)警告データベースを更新してよい。このようにして、警告およびそれに関連する処理の情報が警告データベース404に格納され、今後、データ・ソースとして使用可能になる。
クラウド・コンピューティング・モデル
説明されるように、本開示の手法は、クラウド・コンピューティング環境内に配置された計算要素を活用するのが好ましい。したがって以下では、クラウド・コンピューティングに関する追加の背景が説明される。
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間とサービス・プロバイダとのインタラクションを最小限に抑えて、それらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、“The NIST Definition of Cloud Computing” by Peter Mell and Tim Grance, September 2011において、すべてさらに具体的に説明され、定義されているように、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
具体的には、標準的な特徴は次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なインタラクションを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合がある。
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
サービス・モデルは、通常、次のとおりである。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
デプロイメント・モデルは、通常、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。代表的なクラウド・コンピューティング・ノードが、上の図2に示されている。具体的には、クラウド・コンピューティング・ノード内には、他の多数の汎用または専用のコンピューティング・システム環境または構成と共に運用できるコンピュータ・システム/サーバが存在する。コンピュータ・システム/サーバと共に使用するのに適した既知のコンピューティング・システム、環境、または構成、あるいはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらの任意のシステムまたはデバイスを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。コンピュータ・システム/サーバは、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連において説明されてよい。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含んでよい。コンピュータ・システム/サーバは、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境で実行されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置されてよい。
標準的なクラウド・コンピューティング環境では、一連の機能的抽象レイヤが提供される。これらの機能的抽象レイヤは、ハードウェアおよびソフトウェア・レイヤ、仮想化レイヤ、管理レイヤ、およびワークロード・レイヤを含む。
ハードウェアおよびソフトウェア・レイヤは、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム(一例を挙げると、IBM(R)zSeries(R)システム)、RISC(Reduced Instruction Set Computer)アーキテクチャ・ベース・サーバ(一例を挙げると、IBM pSeries(R)システム)、IBM xSeries(R)システム、IBM BladeCenter(R)システム、ストレージ・デバイス、ネットワークおよびネットワーク・コンポーネントが挙げられる。ソフトウェア・コンポーネントの例としては、ネットワーク・アプリケーション・サーバ・ソフトウェア(一例を挙げると、IBM WebSphere(R)アプリケーション・サーバ・ソフトウェア)、およびデータベース・ソフトウェア(一例を挙げると、IBM DB2(R)データベース・ソフトウェア)が挙げられる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの管轄区域で登録されているInternational Business Machines Corporationの商標である。)
仮想化レイヤは、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントなどの仮想的実体を提供できる抽象レイヤを備える。
管理レイヤは、さまざまな管理機能を提供する。例えば、リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータルは、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理は、必要なサービス・レベルを満たすように、クラウド計算リソースの割り当てと管理を行う。SLA(Service Level Agreement)計画および実行は、今後の要求が予想されるクラウド計算リソースの事前準備および調達を、SLAに従って行う。
ワークロード・レイヤは、クラウド・コンピューティング環境で利用される機能を提供する。
したがって、代表的なクラウド・コンピューティング環境は、フロント・エンドIDマネージャ、ビジネス支援サービス(BSS:business support services)機能コンポーネント、運用支援サービス(OSS:operational support services)機能コンポーネント、および計算クラウド・コンポーネントを含む一連の高レベルの機能コンポーネントを含んでいる。IDマネージャは、要求元のクライアントとインターフェイスをとって、ID管理を提供する責任を負い、このコンポーネントは、IBM Corporation(ニューヨーク州アーモンク市)から提供されているTivoli Federated Identity Manager(TFIM)などの、1つまたは複数の既知のシステムと共に実装されてよい。適切な環境では、TFIMは、フェデレーション・シングル・サインオン(F-SSO:federated single sign-on)を他のクラウド・コンポーネントに提供するために使用されてよい。ビジネス支援サービス・コンポーネントは、請求書作成の支援などの特定の管理機能を提供する。運用支援サービス・コンポーネントは、仮想マシン(VM)インスタンスなどの他のクラウド・コンポーネントのプロビジョニングおよび管理を提供するために使用される。仮想マシンは、ソフトウェア上にインストールされるが、ハードウェア・マシンを模倣するオペレーティング・システムまたはアプリケーション環境である。クラウド・コンポーネントは、主要な計算リソースを表し、通常は、クラウドを介したアクセスに使用可能なターゲット・アプリケーションを実行するために使用される複数の仮想マシン・インスタンスである。1つまたは複数のデータベースが、ディレクトリ、ログ、およびその他の作業用データの格納に使用される。これらのコンポーネント(フロント・エンドIDマネージャも含まれる)は、すべてクラウド「内」にあるが、これは必須要件ではない。代替の実施形態では、IDマネージャはクラウドの外部で運用されてよい。サービス・プロバイダも、クラウドの外部で運用されてよい。
一部のクラウドは、非従来型のIPネットワークに基づく。したがって、例えば、クラウドは、MACアドレスのハッシュを使用した特殊な単層IPルーティングを伴う2層CLOSベース・ネットワークに基づいてよい。本明細書に記載された手法は、そのような非従来型のクラウドにおいて使用されてよい。
一般的に言うと、クラウド・コンピューティング・インフラストラクチャは、ネットワークおよび1つまたは複数の管理サーバを介して接続されたホスト・マシン(例えば、サーバまたは同様の物理マシン・コンピューティング・デバイス)を含む仮想マシン・ホスト環境を提供する。通常、物理サーバはそれぞれ、VMware ESX/ESXiなどの仮想化技術を使用して1つまたは複数の仮想マシンを動的に提供するように適合される。複数のVMが1つのホスト・マシンに配置され、このホスト・マシンのCPU、メモリ、およびその他のリソースを共有することができ、それによって、組織のデータセンターの利用率を向上する。管理サーバは、タスクの中でも特に、インフラストラクチャを監視し、必要に応じて、例えば仮想マシンをホスト間で移動することによって、VM配置を自動的に操作する。
非限定的な実装では、代表的プラットフォーム技術は、VMware vSphere 4.1 Update 1および5.0を含むIBM System x(R)サーバであるが、これに限定されない。
クラウドベースの脅威インテリジェンス
前述したように、脅威監視のためのさまざまなツールが存在しており、これらのツールは、広範囲のデータ・ソースを分析して、脅威を示すパターン、セキュリティ・ポリシーを識別し、異常を制御し、企業が脅威インテリジェンスに関して研究、協調、および活動できるようにする。そのようなツールの1つは、クラウドベースの脅威インテリジェンス・プラットフォームであるIBM(R)X-Force(R)Exchangeであり、ユーザはこのプラットフォームを使用して、脅威インテリジェンスを利用および共有し、脅威インテリジェンスに関して活動することができる。前述したように、このプラットフォームはクラウド・コンピューティング環境内でホストされ、SaaS(Software-as-a-Service)モデルで企業ユーザに公開される。さらに一般的には、このサービスは、ユーザが最新のセキュリティ脅威を迅速に研究し、使用可能なインテリジェンスを集約し、同業者と協調することができるようにする、クラウドベースの脅威インテリジェンス共有プラットフォームを提供する。
特に、IBM X-Force Exchangeは、人間および機械によって生成された洞察の混合を含むセキュリティ侵害インジケータ(IOC:indicators of compromise)にコンテキストを追加するオープン・プラットフォームを提供する。IBM X-Force Exchangeは、動的に更新される脅威インテリジェンスをタイムリーに提供する。このソフトウェアは、数十億のWebページのWeb脅威監視(web threat monitoring)を実現し、多数の脆弱性のデータベースによって支援される。このソフトウェアは、数百万のスパム攻撃およびフィッシング攻撃に関する深いインテリジェンスを提供し、悪意のあるIPアドレスを含む評価データを監視する。このプラットフォームは、ユーザが業界の同業者とのつながりを持ち、調査結果を検証し、IOCの集合を共有し、プライベート・グループおよび共有された集合を介した同業者の協力を通じて、フォレンジック調査に役立てるか、またはコンテキストを脅威に追加できるようにすることによって、協調を促進する。このソリューションは、自動化された脅威インテリジェンス共有のための確立された標準である脅威情報構造化記述形式(STIX:Structured Threat Information Expression)および検知指標情報自動交換手順(TAXII:Trusted Automated Exchange of Indicator Information)のサポートを伴うサードパーティ統合のために設計されている。このソリューションは、IBMのセキュリティ製品とX-Force Exchangeによって提供される使用可能なインテリジェンスとの間の統合を可能にする。企業が脅威インテリジェンスをセキュリティ製品に関連付けることができるようにするためのアプリケーション・プログラミング・インターフェイス(API)が提供される。企業は、このプラットフォームを使用して、セキュリティ侵害インジケータを研究し、セキュリティ調査を実施し、通常は単に監視対象のキーワードまたは製品のリストを維持することによって、インフラストラクチャ内の対象の技術に関する脆弱性を監視することができる。監視対象リスト上のキーワードまたは製品に一致する新しい脆弱性が開示された場合、自動通知が提供される。これらの脆弱性に対する処置の実行を支援するために、企業は、APIを介して、またはSTIX/TAXIIプロトコルを使用して、単にそれらの処置をコレクションに追加し、このコレクションをSIEMにインポートする。加えて、X-Force Exchange内のThreat Feed Managerは、さまざまなソースからデータを取得して1つの表示にするタスクを簡略化する。これらのサードパーティの脅威インテリジェンス・ソースは、それらのプロバイダに認証情報を提供することによって、このプラットフォーム上で直接有効化することができ、次のこのプラットフォームは、データをX-Force Exchangeに直接統合する。マルウェア・キャンペーンおよび新しい脅威ベクトルに関する新しいインテリジェンスの形態での最新の脅威インテリジェンス研究が、パブリックなコレクションを介して継続的にプラットフォームに追加される。これらのコレクションは、人間のコンテキストをプラットフォーム上のセキュリティ侵害インジケータに追加するために、X-Forceのセキュリティ専門家によって管理される。詳細としては、TLP評価、タイム・フレーム、対象領域、キャンペーンの詳細、さらに学習するための関連する参照へのリンクなどがある。ユーザは、新しい情報が使用可能になったときに更新情報が通知されるように、コレクションをフォローすることができる。
前述した商業サービスは、本開示の手法がこのサービスでの使用に限定されないため、単に説明の目的で識別される。
AIを使用した認証されていないAPI要求が存在する場合の不適切な活動の検出
上記を背景として、ここで本開示の手法が説明される。
基本的な運用環境が図5に示されている。図に示されているように、エンド・ユーザ500が、API(例えば、RESTful API505)を採用するアプリケーションであるアプリケーション(例えば、SaaS(Software-as-a-Service)ベースのWebアプリケーション502)と、インタラクションしている。APIは、通常、APIサーバ504によってサポートされ、通常はJavaScriptアプリケーションを介して、ユーザのブラウザで直接使用できる。APIアクセス要求が、監視され、ログ・データ506として格納される。しばしば、1つまたは複数のAPIが、認証されていないエンドポイントとしてAPIサーバ504上でホストされ、つまりこれらのAPIは、識別情報が不明であるユーザによって(API要求を介して)アクセスされ、使用されることができる。すべてのエンドポイントがユーザを認証するのが理想的であるが、さまざまな理由により、企業は、アプリケーションの特定の特徴のために、認証しないエンドポイントをデプロイすることが必要になる(または単にデプロイする)場合がある。前述したように、これが、セキュリティの脆弱性をシステムにもたらす。ユーザが、認証されていないエンドポイントを発見し、例えばAPIへのプログラムによるアクセスを介してそのエンドポイントを直接使用する場合、この挙動は、技術的に可能だとしても、不適切であると見なされるべきである。
説明され、図6に示されているように、本開示の手法は、認証されていないAPI要求が存在する場合に、人工知能(AI:artificial intelligence)を活用してそのような不適切な活動を検出する。図に示されているように、エンド・ユーザ600は、APIサーバ604によってサポートされているRESTful API605を採用するSaaSベースのWebアプリケーション602とインタラクションしており、アクセス・データがログ606に記録されている。やはり図に示されているように、本明細書における方法は、好ましくはニューラル・ネットワーク(NN:neural network)の形態で人工知能を採用することによって、前述した運用環境を拡張する。図に示されているように、この方法では、ニューラル・ネットワーク(NN)分類器608が組み込まれ、ポリシー(例えば、Webアプリケーションへのアクセスに関連する「諸条件」のセット)に違反しているアクセス要求をシミュレートするように、ログ・データ606およびシステムによって生成されたデータに対してトレーニングされる。したがって、一般に、データ収集のために、ユーザ600がWebアプリケーション602を使用するときに、APIサーバ604に送信されたAPI要求のログがファイル606に出力され、これらのログが、ニューラル・ネットワーク608用のトレーニング・データを構築するために(下で詳細に説明されるように)トレーニング方法によって処理される。
したがって、本開示によれば、ポリシーによって決定された「適切な」挙動および「不適切な」挙動を反映するニューラル・ネットワーク分類器が(例えば、アクセス・ログおよびその他のデータに対して)トレーニングされる。通常、適切な挙動または不適切な挙動を構成するものは、企業に固有であり、企業は、何らかの方法で特徴付けられるべき特定のユーザの挙動を識別するように、セキュリティ・ポリシーを構成し、それに応じてニューラル・ネットワークをトレーニングし、その後、要求が適切と見なされるか、または不適切と見されるかを決定するために(例えば、各アクセス要求に関して)照会されるトレーニング済みニューラル・ネットワークをインスタンス化する。ニューラル・ネットワークによる(特定の要求が適切であるか、または不適切であるかの)決定は、その後、下でさらに詳細に説明されるように、アクセス制御に関する決定を容易にするために使用される。
この方法によれば、理論的根拠が活用される。特に、APIエンドポイントに直接アクセスしていて、Webアプリケーションの「コンテキスト」においてユーザによって開始された認証されていないAPI要求は、適切なユーザの挙動として定義されるのが好ましく、一方、これらのエンドポイントに直接アクセスしているが、そのようなコンテキスト以外で開始された認証されていないAPI要求は、不適切であるとして定義される。「適切」または「不適切」というラベルは、限定されるよう意図されていない。アプリケーションの「コンテキスト」を構成するものは、特に、アプリケーションの種類およびユーザのAPI要求の挙動に依存する。1つの非限定的な例では、APIのアプリケーションは、複数の個別のレポート要素を含んでいるレポート・ページを表示するWebベースのユーザ・インターフェイス(UI)であり、レポート要素の各々は、APIにアクセスできる個別のエンドポイントからUIで取得される。ユーザ・エクスペリエンスは、ページ全体がブラウザに描画されることである。ユーザの挙動が正当である場合、ページ・コントローラが、ページ要素ごとにコンテンツ・エンドポイントを呼び出して、そのセクション(したがって、ページのすべてのセクション)を描画するが、これらの呼び出しは、(活動全体が正当である場合)互いに時間的に近接して発生する。そのようなタイミングを示さない個別のアクセス要求は、期待される「コンテキスト」(この例では、UIアプリケーション・エンドポイントの関連性)内になく、したがって不適切と見なされる。
(特定のアプリケーション、企業のポリシー、および関連するコンテキストに基づく挙動を前提として)適切な挙動または不適切な挙動を認識するようにニューラル・ネットワークがトレーニングされた後に、ニューラル・ネットワークが、好ましくはAPIサーバ上のミドルウェアとしてデプロイされる。この構成が図7に示されており、図7は、ニューラル・ネットワーク708をミドルウェア層として組み込んでいるAPIサーバ704を示しており、ニューラル・ネットワーク708によってAPI要求が処理される。ユーザ700がWebアプリケーション702を閲覧するときに、所定の時間範囲(例えば、1秒)にわたって(何らかの活動に関連付けられた)認証されていないAPI要求が収集され、次に、ニューラル・ネットワーク708への入力になる特徴セットに変換されるのが好ましい。ニューラル・ネットワーク708は、トレーニングに基づいて、このユーザの活動に関連付けられた認証されていないAPIアクセス要求(例えば、UIレポート・ページを構築するために互いに時間的に近接してアクセスされたページ要素エンドポイント)が正当なユーザの挙動を表しているか(どうか)に関する予測を行い、それに応じて評価を出力する。その後、この予測が、ブロック710によって表されているアクセス制御システムまたは方法に提供される。アクセス制御システムまたは方法710の特定の種類または動作あるいはその両方は、制限ではない。通常、アクセス制御は、実装に固有である複数の一次処置(例えば、許可、拒否、監査など)を含む。
言い換えると、本明細書における方法は、認証されていないクライアント/エンド・ユーザによって開始された活動(通常は、認証されていないAPIアクセス要求)のための(通常は、アクセス制御方法またはシステムに関する)決定点としてニューラル・ネットワークを使用する。前述したように、1つの実施形態では、評価は2値であり、具体的には、所定の活動(および関連するAPIアクセス要求)が(ポリシーに関して)適切であるか、または代わりに不適切であるかということである。ニューラル・ネットワークの分類は通常、2値であるが、複数の分類(例えば、適切、不適切、不確定など)が存在してよいため、これは制限ではない。
一般的に言うと、本開示によれば、ニューラル・ネットワーク分類器は、1つまたは複数の認証されていないエンドポイントへのプログラムによるアクセスに関する挙動の少なくとも第1および第2のクラスを区別するためのポリシーに従ってトレーニングされる。挙動の第1のクラスは、適切な活動としてポリシーにおいて指定され、挙動の第2のクラスは、不適切な活動としてポリシーにおいて指定される。ニューラル・ネットワークは、トレーニングされた後に、アクセス制御操作を容易にするために使用される。そのため、認証されていないクライアントからのAPIアクセス要求の受信に応答して、ニューラル・ネットワーク分類器がAPIアクセス要求に適用される。ニューラル・ネットワーク分類器によって、認証されていないクライアントからのAPIアクセス要求が挙動の第1のクラスに含まれているということが決定されたときに、APIアクセス要求が許容(許可)される。しかし、ニューラル・ネットワーク分類器によって、認証されていないクライアントからのAPIアクセス要求が挙動の第2のクラスに含まれているということが決定されたときに、所定の処置が実行される。所定の処置の性質はポリシーに依存し、代表的な処置としては、APIアクセス要求をブロックすること、APIアクセス要求を監査すること、および認証されていないクライアントをブラックリストに入れることなどがあるが、これらに限定されない。
したがって、本明細書における方法は、認証されていないAPI要求が存在する場合に、インバウンドAPI分析(inbound API analysis)を活用してニューラル・ネットワークをトレーニングするのが好ましい。通常、ニューラル・ネットワークをトレーニングするために使用される特徴セットは、個別のAPIエンドポイントから成り、これらのエンドポイントの識別情報はコンテキストに依存する(すなわち、区別されることが求められる特定のユーザの挙動に基づく)。
図8は、制限するよう意図されていない例示的なシナリオを示している。具体的には、図8は、複数の個別のレポート要素802、804、806、および808から成るレポート・ページを含んでいるユーザ・インターフェイス(UI)表示800を示している。この例では、レポート要素の各々は、個別のAPIサーバ・エンドポイントから取得される。したがって、詳細セクション802は、…/ipr/:ip/detailsへのAPI要求から取得され、WHOISレコード804は、…/ipr/:ip/whoisへのAPI要求から取得され、カテゴリ・セクション806は、…/ipr/:ip/categoriesへのAPI要求から取得され、受動DNSデータは、…/ipr/:ip/pdnsへのAPI要求から取得される。この例では、ページ・コントローラ(例えば、クライアントのブラウザで実行されるJavaScript)が、ページ要素ごとにコンテンツ・エンドポイントを呼び出して、そのセクションを描画する。この基本的動作が図9の上部に示されており、図9は、Webサービス・クライアントUI902への適切な認証されていない要求、およびWebサービスAPI906への後続の要求または関連する要求904を示している。したがって、ページへの「適切な」認証されていない要求は、互いに時間的に近接している、ページ要素のエンドポイントへの個別のアクセス要求を含む。これに対して、1つまたは複数の「不適切な」要求908が、ページ自体のどの要求とも時間的に近接しないでWebサービスAPI906に提供されているため、図面の下部に示されている。言い換えると、この例では、関連するUIアプリケーション・エンドポイントへの、時間的に近接している個別のユーザ要求(図面の上部)は、適切と見なされ、一方、UIアプリケーション・エンドポイントの関連性を示していない個別のユーザ要求イベントは、不適切と見なされる。前述したように、どれが適切な挙動であるか、またはどれが適切な挙動でないかに関する特定の定義は、アプリケーションおよびコンテキストに依存し、通常はポリシーによって決定される。
この実施形態例では、個別のユーザが認証されず、通常、{ソースIPアドレス、user-agent、およびaccept-language}などのデータがイベント・シリーズ(ログ・データ)において提供されるため、通常、単にそのようなデータ・セットによって識別される。その意味では、認証されていないユーザは、本明細書では論理ユーザと呼ばれることがあり、データ・セットが、認証されていないユーザの論理ユーザ識別子を含んでいる。前述したように、1つの実施形態では、ニューラル・ネットワークが、特定の認証されていない要求(すなわち、そのようなデータ・セットに関連付けられた要求)が(対象のコンテキスト(挙動)を一緒に定義する)他のイベントに十分に近接しているかどうかを識別するようにトレーニングされる。次に、肯定的な決定が出力されるか、または「許容」動作もしくは「許可」動作に変換されてよく、一方、否定的な決定が出力されるか、または「ブロック」動作もしくは「監査」動作などに変換されてよい。
図10は、本開示のAPIによって認証されていないAPIアクセスの制御方法における代表的な要求/応答ワークフローを示している。図9の下部に対応するこの例では、認証されていないクライアント/ユーザ1000が、APIのセット1002(すなわち、api0、api1、...、apiN)に向けられるAPIアクセス要求のセットを作成するが、他の要求が存在する場合に、個別の要求が作成されず、すなわち、それらの要求がこの挙動に必要なポリシーのコンテキストを満たさない。やはり図に示されているように、システムは、アクセス制御を容易にするために2値分類器を提供するようにトレーニングされているニューラル・ネットワーク1004を含んでいる。この例では、ユーザのブラウザがトークンを受信した第1の動作シナリオ、およびユーザがトークンを受信しなかった第2の動作シナリオという、可能性のある2つのシナリオが示されている。トークンは、クラウド環境、Webアプリケーション、または何らかの関連するメカニズムによって生成されてよい。トークンは、クライアント/ユーザが必ず認証されるということを意味しない。第1のシナリオでは、トークンを含むことによって、(api0に対する)最初の要求が、NN1004によって決定された程度に適切に動作できるようにし、その後、関連する要求が不適切であるということが、NN1004によって検出される。この動作が、1006に示されている。しかし、トークンが提示されない場合、NN1004によって、すべての要求が不適切であると見なされ、要求されたコンテンツ要素を返すことが許可されない。この動作が、1008に示されている。
以下では、ニューラル・ネットワークの代表的なトレーニング方法について説明する。このトレーニングでは、前述したように、通常はSIEMから、または何らかのその他のロギング・メカニズムからのログの形態で、イベントがSaaSベースのWebアプリケーションから収集されるということを仮定する。1つまたは複数の機密扱いのエンドポイントへの直接的な個別のアクセスに対応するイベントを識別するために、ログが最初に分析されるのが好ましい。上記の例示的なシナリオを続けると、これらは、UI表示ページ全体自体とは対照的に、個別の制御要素を探し求める(例えば、「異常な」ログから得られた)イベントである。次に、データの2つのセットを使用してトレーニングが実行されるのが好ましく、第1のセットは、肯定的インジケータを表す実データに対応し(すなわち、個別の要求が適切であるということが検出された)、第2のセットは、否定的インジケータを表すシミュレート・データに対応する(すなわち、要求が不適切であると見なされたため、ポリシーによって「拒否された」状況を表すように、個別の要求の集合がシミュレートされる)。言い換えると、「肯定的」インジケータが実際のトラフィックから得られ、一方、「否定的」インジケータがシミュレートされるのが好ましい。(ポリシーによって「拒否される」結果をもたらす)否定的インジケータは、実際のトラフィック(ログ)から得られてもよいが、好ましい方法は、トレーニングの目的でこれらの結果をシミュレートすることである。そのため、通常は(例えば、何らかの「諸条件」に示されているような)アプリケーションのポリシーに違反してデータを個別のエンドポイントから直接取得するためのスクリプトまたはソフトウェアを記述するユーザをシミュレートするために、Webスクレーパー・ルーチンが提供される。これらの動作は、例えば、関連するエンドポイントに対する他の呼び出しが存在しない場合に(挙動が適切である場合は、関連するエンドポイントが呼び出されることが期待される)、単一のエンドポイントを繰り返し呼び出すCURLスクリプトを使用して実装され得る。言い換えると、CURLスクリプトは、ポリシーのコンテキストに違反している活動を実施する。
ニューラル・ネットワークをトレーニングするために、ユーザの挙動が、ある(任意の)時間(例えば、1秒のウィンドウ)内に単一のユーザによって開始されたすべてのAPI要求を含んでいるバケットとして定義されるのが好ましい。ニューラル・ネットワークの特徴セットは、配列から成り、この配列の長さは、0および1である特徴セット内の要素の数である。1は、関連するエンドポイントがヒットしたことを示し、0は、ヒットが記録されなかったことを示す。[1101000000000]などの肯定的特徴ベクトルは、正当な挙動が3つの異なるエンドポイントにヒットしたことを示す。[1000000000000]などの否定的特徴ベクトルは、違法な挙動が1つのデータ・エンドポイントのみにヒットしたことを示す。トレーニング・データは、正当な挙動を示すラベル[1,0]、および違法な挙動を示すラベル[0,1]と共に、バケットを行とする行列を含むのが好ましい。ニューラル・ネットワークがトレーニングされた後に、前述したように、このニューラル・ネットワークが、API要求/応答ワークフローにおいてインスタンス化される。その後、ユーザがアプリケーションとインタラクションするときに、トレーニングに使用される時間範囲で1つまたは複数の要求がバケットに収集され、特徴セットに変換された後に、ニューラル・ネットワークの入力として適用される。2値分類が使用される場合、動作中にニューラル・ネットワークは、これらの2つの評価(すなわち、[1,0]または[0,1]のいずれか)のうちの1つを提供する。代表的な使用事例では、評価(予測)が[1,0]の場合、すべての要求が適切に処理される。しかし、評価が[0,1]の場合、要求(または要求の一部)が拒否される。加えて、アクセス制御の実装方法に応じて、その他の処置が実行されてよい。したがって、例えば、ユーザが一時的ブラックリストに追加されてよく、その結果、このブラックリストからのその後のすべてのAPI要求も拒否される。
したがって、本開示によれば、ニューラル・ネットワーク分類器をトレーニングすることは、クライアントからの特定のAPIアクセス要求に関連付けられたエンドポイントのセットを表す要素のセットを含んでいる特徴セットを定義することを含む。対象のエンドポイントは、所定の時間ウィンドウに関して定義されるのが好ましく、対象のエンドポイントに関連付けられた要素には、ヒットが適切な活動または不適切な活動のいずれを表すかの関数である値が割り当てられる。特徴セットは、行列に結合/集約され、出力評価が各ベクトル(行列内の行)に割り当てられる。このようにして、ニューラル・ネットワークは、ルールに基づく方法またはその他の決定論的方法を使用して達成され得るよりもはるかに微妙な差異を明らかにする方法で、APIアクセス要求間のタイミングの変動を捕捉する。結果として得られる、この人工知能を活用するアクセス制御は、非常にきめ細かい。
図12は、肯定的特徴セットおよび否定的特徴セットを生成するためのトレーニング・データの使用方法の代表的な例を示している。通常、ログから取得される情報は、イベント・レコードである。代表的な着信要求は、図に示されているような関連するイベント・レコード1200を含む。トレーニング・データ・セットの生成を容易にするために、前述したように、クライアントのIPアドレス、user-agent、およびaccept-languageの値がイベント・レコードから抽出されるのが好ましい。その結果が1202に示されている。次に、Webスクレーパー・ルーチンが、抽出された情報を使用して、時間ウィンドウ内の同じユーザ(論理ユーザ)からの2つの要求を生成し、(イベント・レコード1200内の情報フィールドとの)比較のためのエンドポイントの完全なリストと共に、肯定的特徴セット1204が作成される(この例では、[10100000...00]として作成され、「1」が「ip/」および「url/」に関するエンドポイントのヒットにマッピングされる)のが好ましい。次に、否定的特徴セット1206は、トレーニングのためにニューラル・ネットワークに適用される、人工的に作成された、ポリシーが否定される動作を表す[10000000...00]であってよい。したがって、1つの実施形態では、トレーニング・システムは、実際の着信要求イベント・レコードからの情報を使用して、(現実の)肯定的特徴セットと(人工的な)否定的特徴セットの両方を生成する。述べたように、人工的な例を使用して(ポリシーが否定される)否定的例を作成するこの方法は、システムが(Webスクレーパー・ルーチンを介して)、実質的に肯定的特徴のトレーニング・データと釣り合うように、したがってニューラル・ネットワークが十分にトレーニングされるように(かつ、バイアスを防ぐように)、有用なトレーニング・データを生成できるようにする。
図11は、前述の方法を含んでいるシステムのエンドツーエンド動作を表すプロセス・フロー図である。ステップ1100で、シミュレーションデータ・セット(否定的インジケータ)および実データ・セット(肯定的インジケータ)を受信することによって、トレーニングが開始する。ステップ1102で、ユーザ識別子に基づいてAPIイベントが対象の時間ウィンドウ(例えば、1秒)に集約される。ステップ1104で、特徴セットを作成するために、エンドポイントの位置(例えば、APIのURL)が抽出される。ステップ1106で、(特徴セット内の)イベントがニューラル・ネットワークにサブミットされる。教師あり学習を可能にするために、事前に定義されたクラス([0,1]または[1,0])と共に(特徴セット内の)イベントがニューラル・ネットワークにサブミットされるのが好ましい。言い換えると、特徴とラベルの両方をニューラル・ネットワークに提供することによって、トレーニングが実行される。ステップ1108で、ステップ1106でサブミットされたイベントに対するニューラル・ネットワークの応答(適切/不適切)が取得される。期間内の関連するAPIイベントのすべてが処理されるまでステップ1106および1108が繰り返され、ステップ1110で、その結果得られたベクトルが生成される。
図8の例示的なシナリオでは、複数のエンドポイントから成るUIコンポーネントごとに、ルーチンが必要な各エンドポイント(/a、/bなど)を識別し、各エンドポイントをアプリケーション・エンドポイント・リストと比較し、特徴セット[ep0,ep1,...,epN]を生成し、各エンドポイント要素は、「1」(存在する)または「0」(存在しない)である。ニューラル・ネットワークの教師あり学習に基づくトレーニングを完了するために、この処理がトレーニング・データに対して繰り返される。ステップ1112で、行列および関連する行に基づく(ベクトルごとの)評価がインスタンス化される。前述のトレーニング方法が好ましいが、その他のトレーニング手法(例えば、教師なし学習に基づく手法)が利用されてよい。
例えば、APIサーバに関連して(ステップ1100~1112でトレーニングされた)ニューラル・ネットワークが実装された状態で、ステップ1114で、実行時の動作が開始する。ステップ1116で、論理ユーザの要求が受信される。前述したように、通常、論理ユーザの要求は、ユーザの属性(例えば、IPアドレス(ソースIP)、user-agent、およびaccept-language)の連結を含んでいる識別子である。タイムスタンプなどのその他のデータが含まれてよい。ステップ1118で、認証されていないAPIイベントごとに、実行時ルーチンがユーザの属性を捕捉し、イベントをニューラル・ネットワークにサブミットし、評価の応答を受信する。ステップ1120で、次に評価の応答がアクセス制御方法またはシステムに提供される。ステップ1122で、処理を完了するために、アクセス制御の処置が実行される。
アクセス制御は、ポリシー決定点(PDP:policy decision point)またはポリシー実施点(PEP:policy enforcement point)あるいはその両方において実施されてよいが、これに限定されない。通常、ポリシー決定点(PDP)は、対象によって開始された特定の処置に関して、対象に対してポリシーを実施するためにポリシー実施点(PEP)から受信されたポリシー照会に応答する。PDPは、ポリシーの決定を実施する。1つの商業的実装では、PDPは実行時のセキュリティ・サービスにおいて実装され、PEPは、IBM WebSphere(R)アプリケーション・サーバなどのアプリケーション・サーバへのプラグインとして実装される。
前述したように、APIサーバにおいて使用するために、またはAPIサーバに関連して、ニューラル・ネットワーク分類器がトレーニングされ、インスタンス化されてよい。追加のトレーニング・データのログが記録されるか、または追加のトレーニング・データがシミュレートされるか、あるいはその両方が実行されるときに、場合によっては、ニューラル・ネットワークが更新されてよく、あるいは更新されたか、またはその他の方法で改良された予測能力を提供するために、ニューラル・ネットワークの新しいバージョンがインスタンス化されてよい。
本明細書における手法は、重要な利点を提供する。一般に、この方法は、認証されていないAPI要求またはさらに一般的には、認証されていないユーザが存在する場合に不適切な活動を検出するための手段を提供する。システムは、ニューラル・ネットワークを使用して、認証されていないユーザの挙動に関してより効果的な区別を行い、企業のセキュリティ・ポリシーに従ってアプリケーションを使用していないユーザに対するアクセス制御を、より効果的に実施できるようにする。ニューラル・ネットワークに基づく方法は、特に動的環境において適用範囲が非常に狭いルールに基づく確定的解決策と比較して(スライド・ウィンドウに基づく解決策と比較しても)、はるかに正確な結果を提供する。この方法は、規則的なユーザの挙動の背後にあるパターンを認識するようにニューラル・ネットワークをトレーニングすることによって、認証されていないユーザに対する堅牢なアクセス制御を可能にする。さらに一般的には、この方法は、そのアクセスを行っている個人の識別情報が不明であるか、または必ずしも確認可能でない場合に、アプリケーションとのAPIのインタラクションに全体的または部分的に基づいて、アクセス制御を容易にする。
この方法は、RESTful APIに関連して特に有用であるが、これに限定されない。実際、本明細書の方法が、プロトコルの挙動またはプロトコルのような挙動を示す任意のインターフェイス(例えば、SDK、一般的なAPI、独自のAPI、トランザクション定義を提供する組込みソフトウェア、ネットワーク・インターフェイス、ファイアウォール、アクセス可能なアクセス制御ポリシーを採用する任意のその他の種類のAPIなど)に一般化されてよいため、この手法は1つのAPIに限定されない。この方法は、RESTful APIに関連して特に有用であるが、やはりこれに限定されない。さらに、この手法がWebアプリケーションに対する要求に関連して実装されるという要件はなく、クライアントの要求の対象は、任意のアプリケーション、リソース、またはその他のネットワーク・アクセス可能なサービスであってよい。
ニューラル・ネットワークは、最初にトレーニングされ、その後、定期的に、継続的に、または所定の出来事またはイベントの発生時に、更新されてよい。
好ましい実施形態では、ニューラル・ネットワークは、フィードフォワードに基づくニューラル・ネットワーク(例えば、1つの隠れ層および1つの出力層を含む2層ニューラル・ネットワーク)である。ニューラル・ネットワークの入力のサイズは、通常、エンドポイント・リストのサイズに対応する。したがって、例えば、38個のエンドポイントが存在する場合、38個の入力ノードが存在することになる。隠れ層は、通常は個別の「コンテキスト」の数に対応する複数のノードを含み、ネットワークは、これらのコンテキストを区別するようにトレーニングされている。したがって、例えば隠れ層内には、それらのコンテキストを表す20個のノードが存在する。出力層は、通常、適切な出力決定または不適切な出力決定に対応する2つの出力ノードのみを含む。ニューラル・ネットワークは、活性化関数(例えば整流器であり、整流器内のユニットは正規化線形ユニット(ReLU:rectified linear units)である)を使用する。整流器に対する平滑近似は、出力層において役立つ勾配(例えば、ソフトマックス)を有する解析関数である。トレーニング・データがニューラル・ネットに供給されるときに、トレーニング・プロセスにおいて確率的勾配降下法が使用されるのが好ましい。損失関数は、平均平方誤差(MSE:Mean Square Error)として定義される。
ニューラル・ネットワークが好ましいが、その他の種類の人工知能(機械学習)が使用されてよい。その他の種類のAIの1つは、複雑な曲線に基づく回帰である。
1つの実施形態では、ニューラル・ネットワークはクラウド計算インフラストラクチャにおいてホストされる。
アクセス制御システムまたは方法の特定の種類および位置は、変わってよい。標準的な位置はクラウド計算環境であるが、これは要件ではない。
Webアプリケーションはアプリケーション・サーバまたはWebサーバでホストされてよく、さらにこれらのサーバは、クラウドベースであってよい。
共有テナント環境(shared tenant environment)では、企業が個別のWebアプリケーションを運用するということが予想され、したがって特定のテナントが、(テナントのデータに対して)独自にトレーニングされた、特定のポリシーに基づく要件に合わせて調整されるニューラル・ネットワーク分類器を有するといことが予想される。しかし、クラウド・サービスは、クラウド計算環境内でホストされる各Webアプリケーションをそれぞれ所有している複数のテナントの代わりに、ニューラル・ネットワークのトレーニングを「サービスとして」提供することがある。
本明細書における人工知能に基づくシステムは、重要な利点を提供する。この方法は、説明した方法でトレーニングされたニューラル・ネットワークを使用して、ネットワーク活動またはユーザの挙動において示された異常の堅牢な検出を可能にする。この方法は、きめ細かく、効率的、かつ拡張可能であり、企業のポリシーにおける変化に容易に適応する。さらに一般的には、本明細書における手法は、部内者の脅威を検出できる改良されたネットワーク活動およびユーザの挙動の分析システムを提供し、セキュリティ・アナリストがネットワーク上で発生する異常な挙動または悪意のある挙動を検出するのを支援する。
この対象は、全体的または部分的にサービスとして実装されてよい。機械学習(ML:machine learning)機能は、独立した機能として提供されてよく、または他のMLベースの製品およびサービスからの機能を活用してよい。
標準的な使用事例では、SIEMまたはその他のセキュリティ・システムは、警告を視覚的に描画するため、関連する情報を警告データベースから検索して取得するため、および関連するその他の既知の入力機能および出力機能を実行するために使用できるユーザ・インターフェイスに関連付けられている。
前述したように、本明細書における手法は、SIEMなどのセキュリティ・システム内で、またはセキュリティ・システムに関連して、自動化された方法で実施されるように設計される。
本開示において説明された機能は、全体的または部分的に、独立した方法(例えば、ハードウェア・プロセッサによって実行されるソフトウェアベースの機能)として実装されてよく、または管理されたサービス(SOAP/XMLインターフェイスを介したWebサービスを含む)として利用されてもよい。本明細書に記載された特定のハードウェアおよびソフトウェアの実装の詳細は、単に例示を目的としており、記載された対象の範囲を制限するよう意図されていない。
さらに一般的には、開示された対象との関連において、コンピューティング・デバイスはそれぞれ、ハードウェアおよびソフトウェアを備えている(図2に示されているような)データ処理システムであり、これらの実体は、ネットワーク(インターネット、イントラネット、エクストラネット、プライベート・ネットワーク、あるいは任意のその他の通信媒体またはリンクなど)を経由して互いに通信する。
本明細書に記載された方式は、単純なn層アーキテクチャ、Webポータル、フェデレーテッド・システムなどを含む、さまざまなサーバサイド・アーキテクチャ内で、またはこれらと併せて、実装されてよい。本明細書における手法は、疎結合されたサーバ(「クラウド」ベースを含む)環境内で実践されてよい。
さらに一般的には、本明細書に記載された対象は、完全にハードウェアである実施形態、完全にソフトウェアである実施形態、またはハードウェアとソフトウェアの両方の要素を含んでいる実施形態の形態をとることができる。好ましい実施形態では、機能が、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアにおいて実装される。さらに、前述したように、識別情報のコンテキストに基づくアクセス制御機能は、コンピュータまたは任意の命令実行システムによって、またはこれらに接続して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセスできるコンピュータ・プログラム製品の形態をとることができる。この説明の目的で、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスによって、またはこれらに接続して使用するためのプログラムを含むか、または格納することができる任意の装置であることができる。この媒体は、電子システム、磁気システム、光システム、電磁気システム、赤外線システム、または半導体システム(あるいは、装置またはデバイス)であることができる。コンピュータ可読媒体の例としては、半導体メモリまたは固体メモリ、磁気テープ、取り外し可能フロッピー(R)・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、剛体磁気ディスク、および光ディスクが挙げられる。光ディスクの現在の例としては、コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disk-read only memory)、コンパクト・ディスク読み取り/書き込み(CD-R/W:compact disk-read/write)、およびDVDが挙げられる。コンピュータ可読媒体は、有形のアイテムである。
コンピュータ・プログラム製品は、記載された機能のうちの1つまたは複数を実装するためのプログラム命令(またはプログラム・コード)を含んでいる製品であってよい。これらの命令またはコードは、ネットワークを経由してリモート・データ処理システムからダウンロードされた後に、データ処理システム内のコンピュータ可読ストレージ媒体に格納されてよい。または、これらの命令またはコードは、サーバ・データ処理システム内のコンピュータ可読ストレージ媒体に格納され、リモート・システム内のコンピュータ可読ストレージ媒体において使用するために、ネットワークを経由してリモート・データ処理システムにダウンロードされるように適合されてよい。
代表的実施形態では、脅威の処理およびモデル化の手法が、専用コンピュータ内で、好ましくは1つまたは複数のプロセッサによって実行されるソフトウェア内で、実装される。ソフトウェアは、1つまたは複数のプロセッサに関連付けられた1つまたは複数のデータ・ストアまたはメモリ内で維持され、ソフトウェアは、1つまたは複数のコンピュータ・プログラムとして実装されてよい。集合的に、この専用ハードウェアおよびソフトウェアは、前述した機能を備える。
上では、本発明の特定の実施形態によって実行される特定の順序の動作を説明したが、代替の実施形態が、動作を異なる順序で実行すること、特定の動作を組み合わせること、特定の動作を重ね合わせることなどを実行してよいため、そのような順序は例であると理解されるべきである。本明細書における特定の実施形態への参照は、記載された実施形態が特定の特徴、構造、または特性を含むことができるが、必ずしもすべての実施形態が特定の特徴、構造、または特性を含むことができるわけではないということを示している。
最後に、システムの特定のコンポーネントが別々に説明されたが、当業者は、機能の一部が、特定の命令、プログラム・シーケンス、コード部分などにおいて、組み合わせられるか、または共有されてよいということを理解するであろう。
本明細書における手法は、別の技術または技術分野(例えば、アクセス制御システムおよび方法、その他のセキュリティ・システム)に対する改善に加えて、自動化に基づくサイバーセキュリティ分析に対する改善を提供する。
以上で本発明を説明したが、特許請求の範囲は次のとおりである。

Claims (12)

  1. クライアントが、認証されていないエンドポイントを含んでいるアプリケーション・プログラミング・インターフェイス(API)ベースの要求を少なくとも部分的に使用してアプリケーションとインタラクションするコンピューティング環境内のアクセス制御のための方法であって、
    認証されていないクライアントからのAPIアクセス要求の受信に応答して、分類器を前記APIアクセス要求に適用することであって、前記分類器が、前記認証されていないエンドポイントへのプログラムによるアクセスに関する挙動の少なくとも第1および第2のクラスを区別するためのポリシーに従ってニューラル・ネットワークをトレーニングすることによって生成されており、前記挙動の第1のクラスが、前記アプリケーションの許可されたコンテキストにおいて開始され、前記認証されていないエンドポイントにアクセスするAPI要求を表す適切な活動として前記ポリシーにおいて指定され、前記挙動の第2のクラスが、前記アプリケーションの許可されたコンテキスト以外で開始され、前記認証されていないエンドポイントにアクセスするAPI要求を表す不適切な活動として前記ポリシーにおいて指定される、前記適用することと、
    前記分類器によって、前記認証されていないクライアントからの前記APIアクセス要求が前記挙動の第1のクラスに含まれているということが決定されたときに、前記APIアクセス要求を許容することと、
    前記分類器によって、前記認証されていないクライアントからの前記APIアクセス要求が前記挙動の第2のクラスに含まれているということが決定されたときに、所定の処置を実行することとを含む、方法。
  2. 前記分類器をトレーニングすることをさらに含む、請求項1に記載の方法。
  3. クライアントが、認証されていないエンドポイントを含んでいるアプリケーション・プログラミング・インターフェイス(API)ベースの要求を少なくとも部分的に使用してアプリケーションとインタラクションするコンピューティング環境内のアクセス制御のための方法であって、
    認証されていないクライアントからのAPIアクセス要求の受信に応答して、分類器を前記APIアクセス要求に適用することであって、前記分類器が、前記認証されていないエンドポイントへのプログラムによるアクセスに関する挙動の少なくとも第1および第2のクラスを区別するためのポリシーに従ってニューラル・ネットワークをトレーニングすることによって生成されており、前記挙動の第1のクラスが、適切な活動として前記ポリシーにおいて指定され、前記挙動の第2のクラスが、不適切な活動として前記ポリシーにおいて指定される、前記適用することと、
    前記分類器によって、前記認証されていないクライアントからの前記APIアクセス要求が前記挙動の第1のクラスに含まれているということが決定されたときに、前記APIアクセス要求を許容することと、
    前記分類器によって、前記認証されていないクライアントからの前記APIアクセス要求が前記挙動の第2のクラスに含まれているということが決定されたときに、所定の処置を実行することとを含み、
    前記分類器をトレーニングすることをさらに含み、
    前記分類器をトレーニングすることが、クライアントからの特定のAPIアクセス要求に関連付けられたエンドポイントのセットを表す要素のセットを含んでいる特徴セットを定義することを含む方法。
  4. エンドポイントが、所定の時間ウィンドウに関して定義され、前記エンドポイントに関連付けられた前記要素に、適切な活動または不適切な活動を表す値が割り当てられる、請求項3に記載の方法。
  5. 前記特徴セットが、許容されるということが検出されたAPIアクセス要求に関連付けられたログ・データから得られ、前記分類器が前記特徴セットを適切な活動に関連付ける、請求項4に記載の方法。
  6. 前記特徴セットが、前記ポリシーに違反しているように少なくとも一部のエンドポイントの値をシミュレートすることによって得られ、前記分類器が前記特徴セットを不適切な活動に関連付ける、請求項4に記載の方法。
  7. 前記APIがRESTful APIである、請求項1または3に記載の方法。
  8. 前記所定の処置が、前記APIアクセス要求を許可することと、前記APIアクセス要求をブロックすることと、前記APIアクセス要求を許可することまたはブロックすることに関連付けられた監査動作を開始することと、前記認証されていないクライアントをブラックリストに入れることとのうちの1つである、請求項1または3に記載の方法。
  9. ハードウェア・プロセッサと、
    クライアントが、認証されていないエンドポイントを含んでいるアプリケーション・プログラミング・インターフェイス(API)ベースの要求を少なくとも部分的に使用してアプリケーションとインタラクションするコンピューティング環境内のアクセス制御のために、前記ハードウェア・プロセッサによって実行されるプログラムを保持しているメモリと、を備えている装置であって、前記ハードウェア・プロセッサが、
    認証されていないクライアントからのAPIアクセス要求の受信に応答して、分類器を前記APIアクセス要求に適用することであって、前記分類器が、前記1つまたは複数の認証されていないエンドポイントへのプログラムによるアクセスに関する挙動の少なくとも第1および第2のクラスを区別するためのポリシーに従ってニューラル・ネットワークをトレーニングすることによって生成されており、前記挙動の第1のクラスが、前記アプリケーションの許可されたコンテキストにおいて開始され、前記認証されていないエンドポイントにアクセスするAPI要求を表す適切な活動として前記ポリシーにおいて指定され、前記挙動の第2のクラスが、前記アプリケーションの許可されたコンテキスト以外で開始され、前記認証されていないエンドポイントにアクセスするAPI要求を表す不適切な活動として前記ポリシーにおいて指定される、前記適用することと、
    前記分類器によって、前記認証されていないクライアントからの前記APIアクセス要求が前記挙動の第1のクラスに含まれているということが決定されたときに、前記APIアクセス要求を許容することと、
    前記分類器によって、前記認証されていないクライアントからの前記APIアクセス要求が前記挙動の第2のクラスに含まれているということが決定されたときに、所定の処置を実行することと、を実行する、装置。
  10. ハードウェア・プロセッサと、
    クライアントが、認証されていないエンドポイントを含んでいるアプリケーション・プログラミング・インターフェイス(API)ベースの要求を少なくとも部分的に使用してアプリケーションとインタラクションするコンピューティング環境内のアクセス制御のために、前記ハードウェア・プロセッサによって実行されるプログラムを保持しているメモリと、を備えている装置であって、前記ハードウェア・プロセッサが、
    認証されていないクライアントからのAPIアクセス要求の受信に応答して、分類器を前記APIアクセス要求に適用することであって、前記分類器が、前記1つまたは複数の認証されていないエンドポイントへのプログラムによるアクセスに関する挙動の少なくとも第1および第2のクラスを区別するためのポリシーに従ってニューラル・ネットワークをトレーニングすることによって生成されており、前記挙動の第1のクラスが、適切な活動として前記ポリシーにおいて指定され、前記挙動の第2のクラスが、不適切な活動として前記ポリシーにおいて指定される、前記適用することと、
    前記分類器によって、前記認証されていないクライアントからの前記APIアクセス要求が前記挙動の第1のクラスに含まれているということが決定されたときに、前記APIアクセス要求を許容することと、
    前記分類器によって、前記認証されていないクライアントからの前記APIアクセス要求が前記挙動の第2のクラスに含まれているということが決定されたときに、所定の処置を実行することと、を実行し、
    前記分類器をトレーニングすることをさらに実行し、
    前記分類器をトレーニングすることが、クライアントからの特定のAPIアクセス要求に関連付けられたエンドポイントのセットを表す要素のセットを含んでいる特徴セットを定義することを含む、装置。
  11. ハードウェア・プロセッサに、請求項1~8のいずれか一項に記載の方法を実行させるためのプログラム。
  12. 請求項11に記載のプログラムを記憶する記憶媒体。
JP2021523187A 2018-12-26 2019-12-16 人工知能を使用した認証されていないapi要求が存在する場合の不適切な活動の検出 Active JP7369501B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/232,337 2018-12-26
US16/232,337 US11303659B2 (en) 2018-12-26 2018-12-26 Detecting inappropriate activity in the presence of unauthenticated API requests using artificial intelligence
PCT/IB2019/060828 WO2020136497A1 (en) 2018-12-26 2019-12-16 Detecting inappropriate activity in the presence of unauthenticated api requests using artificial intelligence

Publications (2)

Publication Number Publication Date
JP2022515007A JP2022515007A (ja) 2022-02-17
JP7369501B2 true JP7369501B2 (ja) 2023-10-26

Family

ID=71123413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021523187A Active JP7369501B2 (ja) 2018-12-26 2019-12-16 人工知能を使用した認証されていないapi要求が存在する場合の不適切な活動の検出

Country Status (6)

Country Link
US (1) US11303659B2 (ja)
JP (1) JP7369501B2 (ja)
CN (1) CN113302609B (ja)
DE (1) DE112019004913T5 (ja)
GB (1) GB2594217B (ja)
WO (1) WO2020136497A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972740B2 (en) 2018-03-06 2021-04-06 Forcepoint, LLC Method for bandwidth reduction when streaming large format multi-frame image data
US11140190B2 (en) 2018-10-23 2021-10-05 Forcepoint, LLC Automated user module assessment
US11048611B2 (en) * 2018-11-29 2021-06-29 Forcepoint, LLC Web extension JavaScript execution control by service/daemon
US11397832B2 (en) * 2018-12-04 2022-07-26 Dhiraj Sharan Virtual data lake system created with browser-based decentralized data access and analysis
US11132973B2 (en) 2019-02-01 2021-09-28 Forcepoint, LLC System for capturing images from applications rendering video to a native platform with a graphics rendering library
GB2581996B (en) * 2019-03-07 2021-10-20 F Secure Corp Method of threat detection in a computer network security system
US10917382B2 (en) 2019-04-03 2021-02-09 Forcepoint, LLC Virtual point of presence in a country to allow for local web content
US11431743B2 (en) 2020-02-03 2022-08-30 Forcepoint, LLC Cross domain dynamic data protection intermediary message transform platform
US11425155B2 (en) * 2020-03-12 2022-08-23 The Aerospace Corporation Monitoring the integrity of a space vehicle
US10917401B1 (en) * 2020-03-24 2021-02-09 Imperva, Inc. Data leakage prevention over application programming interface
US20220164457A1 (en) * 2020-11-24 2022-05-26 International Business Machines Corporation Automatically adjusting data access policies in data analytics
US20220179908A1 (en) * 2020-12-03 2022-06-09 Institute For Information Industry Information security device and method thereof
US11652828B1 (en) 2021-01-11 2023-05-16 Wells Fargo Bank, N.A. Systems and methods for automated anomalous behavior detection and risk-scoring individuals
US11727077B2 (en) * 2021-02-05 2023-08-15 Microsoft Technology Licensing, Llc Inferring information about a webpage based upon a uniform resource locator of the webpage
CN113536302A (zh) * 2021-07-26 2021-10-22 北京计算机技术及应用研究所 一种基于深度学习的接口调用者安全评级方法
US20230073891A1 (en) * 2021-09-09 2023-03-09 Beijing Bytedance Network Technology Co., Ltd. Multifunctional application gateway for security and privacy
US20230177430A1 (en) * 2021-12-07 2023-06-08 International Business Machines Corporation Streamlining project requests for information
US20230401308A1 (en) * 2022-06-14 2023-12-14 Unbiased Security Ltd. Interactive security orchestration
CN115086075B (zh) * 2022-07-21 2022-12-27 深圳市永达电子信息股份有限公司 一种行为可信的强制访问控制方法及装置
WO2024028803A1 (en) * 2022-08-04 2024-02-08 DALVI, Suhas Ramkrishna Method and system for preventing application programming interface attacks via channel for transmission of data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013145510A (ja) 2012-01-16 2013-07-25 Kddi Corp Api実行制御装置およびプログラム
US20170244737A1 (en) 2016-02-23 2017-08-24 Zenedge, Inc. Analyzing Web Application Behavior to Detect Malicious Requests

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090158407A1 (en) 2007-12-13 2009-06-18 Fiberlink Communications Corporation Api translation for network access control (nac) agent
US8955133B2 (en) * 2011-06-09 2015-02-10 Microsoft Corporation Applying antimalware logic without revealing the antimalware logic to adversaries
EP2737437A2 (en) 2011-07-28 2014-06-04 Au10tix Limited System and methods for computerized machine-learning based authentication of electronic documents including use of linear programming for classification
US9386078B2 (en) * 2014-05-30 2016-07-05 Ca, Inc. Controlling application programming interface transactions based on content of earlier transactions
US10264016B2 (en) * 2014-07-10 2019-04-16 Metacert, Inc. Methods, systems and application programmable interface for verifying the security level of universal resource identifiers embedded within a mobile application
WO2016043734A1 (en) * 2014-09-17 2016-03-24 Hewlett Packard Enterprise Development Lp Neural network verification
WO2016168368A1 (en) * 2015-04-13 2016-10-20 Secful, Inc. System and method for identifying and preventing malicious api attacks
US20190258818A1 (en) * 2016-02-08 2019-08-22 Consumerinfo.Com, Inc. Smart access control system for implementing access restrictions of regulated database records based on machine learning of trends
US9762611B2 (en) * 2016-02-16 2017-09-12 Cylance Inc. Endpoint-based man in the middle attack detection using machine learning models
US20180018459A1 (en) * 2016-07-15 2018-01-18 Trustlook Inc. Notification of Maliciousness Categorization of Application Programs for Mobile Devices
CN106650418A (zh) 2016-12-21 2017-05-10 天津大学 基于多策略的Android访问控制系统及方法
CN107315950B (zh) 2017-05-03 2020-10-09 北京大学 一种云计算平台管理员权限最小化的自动化划分方法及访问控制方法
US10581873B2 (en) * 2017-07-11 2020-03-03 Cisco Technology, Inc. Securing micro-services
US10282241B1 (en) * 2017-07-19 2019-05-07 Vinyl Development LLC Data driven API conversion
US10887333B1 (en) * 2017-08-03 2021-01-05 Amazon Technologies, Inc. Multi-tenant threat intelligence service
US10565372B1 (en) * 2017-08-03 2020-02-18 Amazon Technologies, Inc. Subscription-based multi-tenant threat intelligence service
EP3679552A1 (en) * 2017-09-06 2020-07-15 Swiss Reinsurance Company Ltd. Electronic logging and track identification system for mobile telematics devices, and corresponding method thereof
US10956573B2 (en) * 2018-06-29 2021-03-23 Palo Alto Networks, Inc. Dynamic analysis techniques for applications
US10733292B2 (en) * 2018-07-10 2020-08-04 International Business Machines Corporation Defending against model inversion attacks on neural networks
US10997291B2 (en) * 2018-07-19 2021-05-04 Juniper Networks, Inc. Extending dynamic detection of malware using static and dynamic malware analyses
US11574051B2 (en) * 2018-08-02 2023-02-07 Fortinet, Inc. Malware identification using multiple artificial neural networks
US10880328B2 (en) * 2018-11-16 2020-12-29 Accenture Global Solutions Limited Malware detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013145510A (ja) 2012-01-16 2013-07-25 Kddi Corp Api実行制御装置およびプログラム
US20170244737A1 (en) 2016-02-23 2017-08-24 Zenedge, Inc. Analyzing Web Application Behavior to Detect Malicious Requests

Also Published As

Publication number Publication date
JP2022515007A (ja) 2022-02-17
CN113302609B (zh) 2023-04-18
GB2594217A (en) 2021-10-20
GB2594217B (en) 2023-01-04
WO2020136497A1 (en) 2020-07-02
CN113302609A (zh) 2021-08-24
GB202110462D0 (en) 2021-09-01
US20200213336A1 (en) 2020-07-02
DE112019004913T5 (de) 2021-06-17
US11303659B2 (en) 2022-04-12

Similar Documents

Publication Publication Date Title
JP7369501B2 (ja) 人工知能を使用した認証されていないapi要求が存在する場合の不適切な活動の検出
US11362910B2 (en) Distributed machine learning for anomaly detection
US11748480B2 (en) Policy-based detection of anomalous control and data flow paths in an application program
JP6687799B2 (ja) マルチテナント環境のためのネットワークフローログ
CN107409126B (zh) 用于保护企业计算环境安全的系统和方法
JP2019153336A (ja) 電子メッセージベースのセキュリティ脅威の自動軽減
Kumar et al. A robust intelligent zero-day cyber-attack detection technique
Hassan et al. Latest trends, challenges and solutions in security in the era of cloud computing and software defined networks
US11494488B2 (en) Security incident and event management use case selection
Zammit A machine learning based approach for intrusion prevention using honeypot interaction patterns as training data
Mishra et al. Intrusion detection system with snort in cloud computing: advanced IDS
Tudosi et al. Design and implementation of a distributed firewall management system for improved security
Gnatyuk et al. Cloud-Based Cyber Incidents Response System and Software Tools
Niu et al. Security analysis model, system architecture and relational model of enterprise cloud services
Attak et al. SHIELD: Securing against intruders and other threats through an NFV-enabled environment
Rak et al. Developing secure cloud applications
Chatterjee Red Hat and IT Security
Jolkkonen Cloud Asset Identification Strategy
Abduvaliyevich et al. Creation and Security of the Cloud Platform for Educational Technologies
Gardikis et al. Updated specifications, design, and architecture for the usable information driven engine
Bissict Augmenting security event information with contextual data to improve the detection capabilities of a SIEM
Tyagi et al. Watchguard Status and Task Management Tool
Olaussen Towards a Security Design Pattern for Web APIs
Rudman NETWlOC: A FRAMEWORK FOR THE AUTOMATED GENERATION OF NETWORK-BASED IOCS FOR MALWARE INFORMATION SHARING AND DEFENCE
Singh Virdi AWSLang: Probabilistic Threat Modelling of the Amazon Web Services environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220128

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220512

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230613

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20230710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230911

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: 20230926

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20230927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231012

R150 Certificate of patent or registration of utility model

Ref document number: 7369501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150