JP7316726B2 - ソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出する方法、システム、およびプログラム - Google Patents

ソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出する方法、システム、およびプログラム Download PDF

Info

Publication number
JP7316726B2
JP7316726B2 JP2021517025A JP2021517025A JP7316726B2 JP 7316726 B2 JP7316726 B2 JP 7316726B2 JP 2021517025 A JP2021517025 A JP 2021517025A JP 2021517025 A JP2021517025 A JP 2021517025A JP 7316726 B2 JP7316726 B2 JP 7316726B2
Authority
JP
Japan
Prior art keywords
container
security
computer
layer
determining
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
JP2021517025A
Other languages
English (en)
Other versions
JP2022504030A (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 JP2022504030A publication Critical patent/JP2022504030A/ja
Application granted granted Critical
Publication of JP7316726B2 publication Critical patent/JP7316726B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Description

本開示は、概して、デジタル・コンピュータ・システムの分野に関し、より詳細には、コンテナベースのランタイム環境でデプロイされるソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出するための方法に関する。
技術の発展によって、リソース仮想化技術が、注目を集めている。ユーザのコンピュータは、インストール済みの共通ネイティブ・アプリケーションに加えて、仮想環境において利用可能な製品を含むことがしばしばある。これらの仮想環境は、コンピュータのデスクトップにおいて見ることができる場合があり、仮想マシン、コンテナ、および仮想アプライアンスなどのカテゴリにグループ化され得る。しかしながら、コンテナのモニタリングは、困難なタスクである。
本開示のいくつかの実施形態は、コンテナベースのランタイム環境を動作させる効率改善の技術的な問題に対処する。本明細書で開示される技術的解決策は、コンテナベースのランタイム環境でデプロイされるソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出するためのシステムおよび関連方法を提供する。有利な実施形態が、以下に説明されている。本発明の実施形態は、それらが相互排他的ではない場合に、互いに自由に組み合わせられ得る。
1つの態様においては、コンテナベースのランタイム環境でデプロイされるソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出するためのコンピュータ実施方法が提供される。方法は、トリガを受信することであって、トリガが、コンテナベースのランタイム環境内のコンテナのレイヤがセキュリティ・リスクについてチェックされるべきであることを示す、受信することを含み得る。方法は、セキュリティ・リスクについてチェックされるべきコンテナのチェック・レイヤを識別することをさらに含み得る。方法は、セキュリティ・リスクについてのチェックがチェック・レイヤに対して以前に実行されていないと、チェック基準に従って判断してもよく、その場合に、セキュリティ・リスクについてのチェックが以前に実行されていないと判断したことに応答して、セキュリティ分析がセキュリティ・リスクを示すと判断し得る。方法は、さらに、セキュリティ分析がセキュリティ・リスクを示すと判断したことに応答して、修復アクションを開始し得る。
別の態様は、コンテナベースのランタイム環境でデプロイされるソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出するためのコンピュータ・システムを伴う。コンピュータ・システムは、プロセッサ上での実行時に、CVAにトリガを受信させる命令を実行するように構成されるコンテナ脆弱性アドバイザ(CVA)のプロセッサを含んでもよく、トリガは、コンテナのレイヤがセキュリティ・リスクについてチェックされるべきであることを示している。プロセッサは、セキュリティ・リスクについてチェックされるべきコンテナのチェック・レイヤを識別し、セキュリティ・リスクについてのチェックがチェック・レイヤに対して以前に実行されている時を、チェック基準に従って判断する、命令を実行するようにさらに構成され得る。判断が否定的であるとき、命令は、プロセッサにチェック・レイヤに対するセキュリティ分析を実行させ得る。セキュリティ分析がセキュリティ・リスクを示すとき、命令は、プロセッサに修復アクションを開始させ得る。セキュリティ分析がセキュリティ・リスクを示していないとき、命令は、プロセッサに修復アクションの開始をスキップさせ得る。判断が肯定的であるとき、命令は、チェック・レイヤに対するセキュリティ分析の実行をプロセッサにスキップさせ得る。
別の態様では、具現化されるコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体を含み、コンピュータ・プログラム製品が提供され得る。コンピュータ可読プログラム・コードが、本明細書で説明される様々な方法動作を実行するように構成される。
本開示に含まれる図面は、明細書に組み込まれ、明細書の一部を形成する。図面は、本開示の例としての実施形態を示し、説明とともに、本開示の様々な原理を説明する。図面は、典型的な実施形態を例示するだけであり、開示を限定するものではない。
本開示のいくつかの実施形態による、1つまたは複数の方法要素に使用され得るコンピュータ化システムの例のブロック図である。 本開示のいくつかの実施形態による、コンテナベースのランタイム環境においてデプロイ可能なソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出するために使用され得る、例としての方法のフローチャートである。 本開示のいくつかの実施形態による、コンテナにインストールされたアプリケーションのセキュリティ脆弱性の検出および修復に使用され得るコンテナ管理システムの例のブロック図である。
本明細書で説明される実施形態は、様々な修正および代替形式に従うが、その詳細は、図面において例として示されており、以下で詳細に説明される。以下で説明される特定の実施形態は、限定的な意味に取られるべきではない。逆に、その意図は、発明の思想および範囲内に入る全ての修正物、均等物、および代替物を包含することである。
本開示の態様は、概して、デジタル・コンピュータ・システムの分野に関し、より詳細には、コンテナベースのランタイム環境でデプロイされるソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出するための方法に関する。本開示は、このような用途に必ずしも限定されないが、本開示の様々な態様は、この状況を用いた様々な例の説明を通して理解され得る。
方法のいくつかの実施形態は、コンテナ内部にいかなるエージェントもインストールする必要なしに、コンテナがインスタンス化されるときにランタイムにおいてセキュリティ露出の検出を可能にし得る。方法のいくつかの実施形態は、コンテナ内部のエージェントを使用することを妨げ、それによって、コンテナの軽量設計を妥協することなく、かつコンテナ内部の複数の競合プロセス/エージェントを実行することなく、コンテナの検査を可能にし得る。検出された露出に従って、適切なアクションが、コンテナ(およびその将来的な実行)を管理するために取られてもよく、それによってセキュリティの問題を最小化する。
脆弱性チェックが手動の呼び出しに基づいて実行される古典的なアプローチとは対称的に、方法のいくつかの実施形態は、トリガとしての外部イベントに基づいてトリガされ得る、出版/購読型アプローチを利用することによって脆弱性チェックを可能にし得る。
Docker(R)は、開発者が容易にアプリケーションを開発することを可能にし、かつ容易にデプロイされ得るコンテナ内にそれらを発送する、Docker,Inc.によって提供されるコンテナ管理サービスである。ドッカーファイルは、コンテナ・イメージを集めるための構成情報およびコマンドを含むテキスト文書である。ドッカー・システムでは、ドッカー・イメージは、ドッカー・コンテナがそれから起動される読み取り専用テンプレートであり、各ドッカー・イメージは、一連のレイヤを含み得る。これらのレイヤは、同一システム上にインストールされた全てのコンテナ間で共有され得る。コンテナは、コンテナ・イメージのインスタンスであってもよい。例えば、コンテナ・イメージは、ドッカー・イメージであってもよい。これらのレイヤが脆弱性について既に分析されている場合、それらは、同一イメージからの新たなコンテナのデプロイメントまたは起動中は再チェックされない。言い換えると、所与のコンテナの少なくとも1つのレイヤについて既にチェックされているセキュリティ・リスクは、所与のコンテナと同一のコンテナ・イメージのインスタンスである、別のコンテナについて再度チェックされる必要はない。これによって、コンテナベース環境の性能が改善され得る。
方法のいくつかの実施形態は、コンテナにインストールされたアプリケーションの時間露出の検出、およびコンテナ内で発見されたセキュリティ露出の修復を可能にし得る。これは、コンテナが短寿命の要素であり得るため、特に有利である場合があり、古典的なスケジュール駆動型スキャンは、そのような短寿命のコンテナにおけるセキュリティ・リスクを検出することができないと見られる。
「コンテナ」という用語は、アプリケーションがオペレーティング・システム内で実行するのに必要とされる全ての要素を包含する仮想ソフトウェア・オブジェクトである、ソフトウェア・コンテナを指し得る。コンテナは、例えば、ドッカー・イメージなどのコンテナ・イメージのインスタンスであってもよい。コンテナは、それぞれのコンテナ・イメージの一連のレイヤを含み得る。コンテナ・イメージが開始する時点で、1つまたは複数のコンテナが、実行中であってもよい。同一イメージから導出されるコンテナは、それらのアプリケーション・コードおよびランタイム依存性の点から互いに同一である。コンテナの例は、ドッカー・コンテナを限定ではなく含み、ドッカー・コンテナは、ドッカー実行コマンドを用いて実行され得るドッカー・イメージのインスタンスである。コンテナベースのランタイム環境が、コンテナの使用、実行および生成を可能にするコンピュータ・システムであり得る。
いくつかの実施形態によれば、新たなコンテナがデプロイされるべきであると管理エンティティが検出したことに応答して、トリガが、コンテナベースのランタイム環境の管理エンティティから受信され得る。これによって、潜在的なセキュリティ・リスクに対する時間内の応答が可能となり得る。
いくつかの実施形態によれば、方法は、レイヤ内に存在するソフトウェア製品を検出することと、セキュリティ・リスクのチェックが既に実行されているかどうかを判断することと、を含み得る。このチェックは、検出されたソフトウェア製品を識別する情報を用いて仮想環境レジストリ(VER)を照会することに基づき得る。VERは、特に、各コンテナのデータベースについての情報を分割するときに必要とされる多くのコンテナが存在する場合に、リソースを節約し得る、情報の集中型ソースを可能にし得る。
いくつかの実施形態によれば、セキュリティ分析は、あるソフトウェア製品の既知のセキュリティ脆弱性についての情報を含む、少なくとも1つのナレッジ・ベースをチェックすることを含み得る。これは、複数のイメージおよびコンテナの正確かつ一貫した処理を可能にし得る。
いくつかの実施形態によれば、コンテナベースのランタイム環境は、ドッカー・システムを含み、トリガは、ドッカー・システムによって生成されるドッカーアタッチ・イベントに基づく。本実施形態は、既存のシステムにおける本方法のいくつかの実施形態のシームレスな統合を可能にし得る。
本開示の態様は、ドッカー・コンテナ、ドッカーファイル、ドッカー・イメージ、および他のドッカーベース・コマンドを参照して説明されるが、これらの実施形態が、限定ではなく例示のために提供されると理解されるべきである。他のコンテナ環境は、類似のコマンドおよび機能性を有し、本開示の実施形態は、それらの他のコンテナ環境において実施され得る。例えば、他のコンテナ環境は、ドッカーアタッチ・イベントに類似の機能性を有し得る。それによって、端末の標準入力、出力、またはエラー・ストリーム、あるいはそれらの組み合わせが、実行中のコンテナにアタッチされることがあり、それは、実施形態においてトリガとしての役割をし得る。本明細書で開示される様々な方法、システム、およびプログラム製品は、任意の適当なコンテナ(例えば、類似の機能性を有するコンテナ)、またはコンテナ・システム、あるいはその両方と併せて実施されてもよく、本開示は、開示された実施形態に限定されるべきではない。
さらに、前述の利点は、例としての利点であり、限定として解釈されるべきではないと理解されるべきである。本開示の実施形態は、前述の利点の全て、またはいくつかを含んでもよく、あるいは前述の利点のいずれも含まなくてもよいが、本開示の思想および範囲内に留まっている。
図1は、本明細書に説明される方法のいくつかの実施形態を実施するために使用され得る例としての一般コンピュータ化システム100のブロック図である。
本明細書で説明される方法は、部分的に非対話型であり、かつサーバまたは組み込みシステムなどのコンピュータ化システムとして自動化され得る。例としての実施形態では、本明細書で説明される方法は、(部分的)対話型システムにおいて実施され得る。これらの方法は、ソフトウェア112、122(ファームウェア122を含む)、ハードウェア(プロセッサ)105、またはそれらの組み合わせにおいてさらに実施され得る。例としての実施形態では、本明細書で説明される方法は、ソフトウェアにおいて、実行可能プログラムとして実施されてもよく、パーソナル・コンピュータ、ワークステーション、ミニコンピュータ、またはメインフレーム・コンピュータなどの専用または汎用デジタル・コンピュータによって実行されてもよい。したがって、最も一般的なシステム100は、汎用コンピュータ101を含み得る。
例としての実施形態では、ハードウェア・アーキテクチャの点から、図1に示されるように、コンピュータ101は、プロセッサ105、メモリ・コントローラ115に連結されたメモリ(メイン・メモリ)110、およびローカル入力/出力コントローラ135を介して通信可能に連結された1つまたは複数の入力または出力(I/O)あるいはその両方のデバイス(もしくは周辺機器)10、145を含む。入力/出力コントローラ135は、当技術分野において既知の、1つまたは複数のバスまたは他の有線もしくは無線接続であってもよいが、これらに限定されない。入力/出力コントローラ135は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機などの、単純化のために省略される追加要素を有し得る。さらに、ローカル・インターフェースは、前述のコンポーネント間の適当な通信を可能にするために、アドレス、制御、またはデータ接続、あるいはそれらの組み合わせを含み得る。本明細書で説明されるように、I/Oデバイス10、145は、概して、当技術分野において既知の任意の一般化された暗号カードまたはスマート・カードを含み得る。
プロセッサ105は、ソフトウェア、特にメモリ110に記憶されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ105は、任意のカスタム・メイドまたは市販のプロセッサ、中央処理装置(CPU)、コンピュータ101に関連付けられた複数のプロセッサのうちの補助プロセッサ、(マイクロチップもしくはチップ・セットの形態の)半導体ベースのマイクロプロセッサ、マクロプロセッサ、またはソフトウェア命令を実行するための(例えば、分散型アーキテクチャにおける)概して任意のデバイスもしくは複数のデバイスであってもよい。
メモリ110は、揮発性メモリ素子(例えば、ランダム・アクセス・メモリ(DRAM、SRAM、SDRAMなどのRAM))および不揮発性メモリ素子(例えば、ROM、消去可能プログラマブル読み出し専用メモリ(EPROM)、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)、プログラマブル読み出し専用メモリ(PROM))のうちの任意の1つまたは組み合わせを含み得る。メモリ110は、分散アーキテクチャを有してもよく、そこでは、様々なコンポーネントが、互いからリモートに位置するが、プロセッサ105によってアクセスされてもよい。
メモリ110内のソフトウェアは、1つまたは複数の別々のプログラムを含んでもよく、その各々が、論理機能、特にいくつかの実施形態に関わる機能を実施するための実行可能命令の順序付きリストを含む。図1の例において、メモリ110内のソフトウェアは、命令112、例えば、データベース管理システムなどのデータベースを管理するための命令を含む。
メモリ110内のソフトウェアは、適当なオペレーティング・システム(OS)111も含み得る。OS111は、本明細書で説明されるような、様々な方法を実施するための他のコンピュータ・プログラム、例えばソフトウェア112の実行を制御し得る。
本明細書で説明される方法は、ソース・プログラム112、実行可能プログラム112(オブジェクト・コード)、スクリプト、または実行されるべき命令112のセットを含む任意の他のエンティティの形態であってもよい。ソース・プログラムを使用するときに、プログラムは、OS111に関連して適切に動作するために、メモリ110内に含まれても含まれなくてもよい、コンパイラ、アセンブラ、インタプリタなどを介して解釈され得る。さらに、方法は、データおよびメソッドのクラスを有するオブジェクト指向プログラミング言語、あるいはルーチン、サブルーチン、もしくは関数、またはそれらの組み合わせを有する手続型プログラミング言語として書かれ得る。
様々な例としての実施形態では、従来型のキーボード150およびマウス155は、入力/出力コントローラ135に連結され得る。I/Oデバイス145などの他の出力デバイスは、例えば、プリンタ、スキャナ、マイクロフォンなどの入力デバイスを含み得る。最終的に、I/Oデバイス10、145は、例えば、ネットワーク・インターフェース・カード(NIC)または変調器/復調器(他のファイル、デバイス、システム、またはネットワークへのアクセス用)、無線周波数(RF)または他の送受信機、電話インターフェース、ブリッジ、ルータなどの、入力および出力の両方の通信をするデバイスをさらに含み得る。
I/Oデバイス10、145は、当技術分野において既知の任意の一般化された暗号カードまたはスマート・カードであってもよい。システム100は、ディスプレイ130に連結されたディスプレイ・コントローラ125をさらに含むこともできる。様々な例としての実施形態では、システム100は、ネットワーク165に連結するためのネットワーク・インターフェースをさらに含み得る。ネットワーク165は、ブロードバンド接続を介した、コンピュータ101と任意の外部サーバ、クライアントなどとの間の通信に起因してIPベース・ネットワークであってもよい。ネットワーク165は、コンピュータ101と外部システム30との間でデータを送信および受信してもよく、それは、本明細書で説明される方法動作の一部または全てを実行するために関与し得る。例としての実施形態では、ネットワーク165は、サービス・プロバイダによって運営される管理されたIPネットワークであってもよい。ネットワーク165は、例えばWi-Fi、WiMaxなどの無線プロトコルおよび技術を用いて、無線様式で実施され得る。ネットワーク165は、また、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワーク、または他の類似の種類のネットワーク環境などのパケット交換ネットワークであってもよい。ネットワーク165は、固定の無線ネットワーク、無線ローカル・エリア・ネットワーク(LAN)、無線ワイド・エリア・ネットワーク(WAN)、パーソナル・エリア・ネットワーク(PAN)、仮想私設ネットワーク(VPN)、イントラネット、または他の適当なネットワーク・システムであってもよく、信号を受信および送信するための機器を含んでもよい。
コンピュータ101が、PC、ワークステーション、インテリジェント・デバイスなどである場合、メモリ110内のソフトウェアは、基本入出力システム(BIOS)122をさらに含むこともできる。BIOSは、起動時にハードウェアを初期化およびテストし、OS111を開始し、ハードウェア・デバイス間のデータ移送をサポートする、必須ソフトウェア・ルーチンのセットである。BIOSは、ROM内に記憶されてもよく、それによって、コンピュータ101が作動されるときにBIOSが実行され得る。
コンピュータ101が動作中であるとき、プロセッサ105は、メモリ110内に記憶されたソフトウェア112を実行し、データをメモリ110に、かつメモリ110から通信し、ソフトウェアに従ってコンピュータ101の動作を概して制御するように構成される。本明細書で説明される方法を実行するための命令およびOS111は、全体的または部分的に、プロセッサ105によって読み出され、おそらくプロセッサ105内にバッファされ、次いで実行され得る。
本明細書で説明されるシステムおよび方法がソフトウェア112において実施されるとき、図1に示されるように、方法を実施するためのソフトウェアは、任意のコンピュータ関連システムもしくは方法による使用のためにまたは任意のコンピュータ関連システムもしくは方法に関連して、ストレージ120などの任意のコンピュータ可読媒体上に記憶され得る。ストレージ120は、HDDストレージなどのディスク・ストレージを含み得る。
図2は、コンテナにインストールされたアプリケーションのセキュリティ脆弱性の検出および修復に使用され得るコンテナ管理システム200の例のブロック図である。
コンテナ管理システム200は、コンテナ/仮想マシン(VM)212A、B(まとめて、または例として212)ならびにVM212およびコンテナ216において利用可能なレイヤについての情報を含む、仮想環境レジストリ(VER)201を含み得る。VER201は、コンテナのうちの1つのレイヤが、レイヤのセキュリティ分析を実行するために既に処理され、スキャンされているかどうかに関する情報を含む。コンテナ管理システム200は、検出された露出またはセキュリティ・リスクを修復するために適用され得るポリシーを含む、仮想コンテナ・ポリシー(VCP)・レジストリ202をさらに含むこともできる。コンテナ管理システム200は、コンテナに関連する脆弱性を検出し、発見されたセキュリティ・リスクおよび利用可能なポリシーに基づいて適切なアクションを実行する、システム100などのコンテナ脆弱性アドバイザ(CVA)205をさらに含むこともできる。コンテナ管理システム200は、図2に示される、IBM Security AppScan(R) KB208およびMITRE CorporationのCommon Vulnerabilities and Exposures(CVE(R)) KB209などの複数のSKBから収集される露出およびリスク情報を含む、セキュリティ・ナレッジ・ベース(KB)(SKB)・リポジトリ207をさらに含むこともできる。
コンテナ管理システム200は、コンテナの管理エンティティの役割をし得るコンテナ・マネージャ210をさらに含むこともできる。コンテナ・マネージャ210は、CVA205とは別々のコンポーネントとして図2に示されているが、別の例としての実施形態では、コンテナ・マネージャ210は、CVA205の一部であってもよく、よって、CVA205に関連するとして本明細書で説明されるある動作および構造的態様もまた、コンテナ・マネージャ210に関連すると解釈されてもよい。コンテナ・マネージャ210は、コンテナ・マネージャ210およびCVA205が物理的に分離されたエンティティであるときはケーブル接続またはネットワーク接続などの接続を介して、それらが物理的に結合されたエンティティであるときはシステム・バスまたはメッセージまたは他の内部通信方式を介して、CVA205と通信するように構成され得る。コンテナ・マネージャ210は、コンテナベースのランタイム環境(VM)212の動作をモニタリングまたは制御あるいはその両方を行うように構成され得る。コンテナベースのランタイム環境212は、例えば、配分された、または個別の、あるいはその両方のコンテナ216またはVMあるいはその両方を介してハードウェア・リソースのパーティション(例えば、C1、C2、およびC3)を使用することによって、仮想化されたコンピューティング・リソースの動作を可能にするための仮想化システムを含み得る。
コンテナ管理システム200のコンテナ・レジストリ211は、例えば、コンテナベースのランタイム環境212についての情報を含み得る。図2に示されるように、コンテナベースの環境212は、コンテナ216を含み得る。
コンテナ管理システム200は、特定のコンテナ216を動作させるためにセキュリティ露出(またはコンテナ216自体のセキュリティ・リスク)を検出し、後述のような適当な修復を適用するように構成され得る。
動作1(六角形で示される)において、所与のコンテナ216の起動または任意の他の構成可能なイベントが、例えばCVA205によって検出され得る。このような検出は、CVA205によってコンテナ・マネージャ210からトリガを受信することを含み得る。この検出は、例えばCVA205によって、所与のコンテナ216のスキャニングを呼び出し得る。検出は、例えば、開始されたコンテナ216内に反応的に「ドッカー・アタッチ」することが可能である、ドッカー・エンジンに登録されたイベント・リスナを用いて実施され得る。
動作2において、所与のコンテナに関連する製品情報は、おそらくコンテナ・マネージャ210を介して、CVA205によって取り出され得る。コンテナ216の1つまたは複数のレイヤ216aは、レイヤ内で使用されている製品についての製品情報を収集または検証するために、CVA205によってスキャンされ得る。製品情報は、例えば、コンテナ216のレイヤ216aにおいて存在する、または実行中の、あるいはその両方の製品に関する、バージョン番号、リリースまたは実行可能ファイル日付などの情報を提供し得る。所与のコンテナ216の1つまたは複数のコンテナ・レイヤ216aについて、特定のコンテナ・レイヤ216aについてのさらなる情報も、後続処理のためにVER201から取り出され得る。
コンテナ・レイヤ216aは、例えば、以下のようにレイヤ毎に処理され得る。所与のコンテナ216の現在のコンテナ・レイヤ216aが、構成可能な時間フレームの前に、または事前定義された基準に従って、(例えば、レイヤのセキュリティ・リスクを判断するために)スキャンされている場合、そのレイヤ216aは、スキップされてもよく、次のコンテナ・レイヤ216aが処理されてもよい。コンテナ・レイヤ216aが以前にスキャンされていない場合、製品識別子などの他の情報が、コンテナ・レイヤ216aから抽出されてもよく、VER201に保存されてもよい。ドッカー・コンテナが使用されている例としての状況において、これは、ISO19770-2SW識別タグまたは(例えば、コマンド「cp -R *.swidtag」を用いて)swidtagの現在のリストを取り出すこと、および私設ストレージ(例えば「/common/<container-id>/...」)内にそれらを保存することによって実現され得る。
識別される(例えばswidtagのXMLフィールドからパースされる)製品毎に、製品のsw-component-idなどの識別子に基づいて、VER201に記憶されたその製品識別子についてセキュリティ・リスクまたはCVEが報告されているかどうかが、動作3において判断され得る。
識別される製品毎に、sw-component-idなどの識別子に基づいて、CVEがSKB207内に識別された製品について報告されているかどうかが、動作4において判断され得る。
露出が検出された(例えば、CVEが報告された)場合、露出に関連する実行されるべき適切な修復アクションが、VCP202から動作5において取り出され得る。例えば、検出されたセキュリティ・リスクに関連付けられたポリシーが、VCP202から読み出され得る。これらのポリシーまたはアクションは、検出されたセキュリティ・リスクを解決するために実行され得る。例えば、修復アクションとして、システム、例えばCVA205は、実行中コンテナ216(所与のコンテナ)を停止または隔離あるいはその両方を行い、新たなコンテナ216が所与のコンテナ216の同一発生元開始要素(例えば、ドッカーファイル)からスポーン(spawn)されることを防止し、発生元開始要素(例えば、ドッカーファイル)をリビルドまたはパッチあるいはその両方を行うためのアクションをトリガし、開始要素から発生するコンテナ216を再開する、などを行い得る。コンテナ・レイヤ216aのスキャンが成功した場合、VER201においてそのレイヤ216aについての関連情報の更新が実行され得る。ドッカーファイルは、コンテナ・イメージをビルドするために使用されてもよく、次いで、コンテナ・イメージが、実行中コンテナ216の基になる。ドッカーファイルは、開始要素の例であるが、類似のケイパビリティを有する(即ち、コンテナ・イメージを集める)発生元要素の他の形態も使用されてもよい(例えば、バイナリまたは非テキスト)。
図3は、コンテナベースのランタイム環境においてソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出するための例としてのプロセス300のフローチャートである。
動作301において、トリガが、上述のように、例えばコンテナ・マネージャ210(CVA205を含み得る)によって受信され得る。トリガは、あるコンテナ216またはコンテナ内のレイヤ216aがセキュリティ・リスクについてチェックする必要があることを示し得る。コンテナ216は、上述のように、例えばドッカー・イメージなどのコンテナ・イメージのインスタンスであってもよい。コンテナ・イメージが開始する時点で、1つまたは複数のコンテナ216が、実行中であってもよい。同一イメージから導出されるコンテナ216は、それらのアプリケーション・コードおよびランタイム依存性の点から互いに同一であってもよい。
動作303において、コンテナ216のレイヤ216aのセットが識別され得る。これは、例えば、コンテナ・マネージャ210が、コンテナベースのランタイム環境212のコンテナ216についての情報を含むデータベース、例えばVER201を照会することによって、実行され得る。
動作305において、例えばコンテナ・マネージャ210によるセキュリティ・リスクについてのチェックが、識別されたレイヤのセットの少なくとも1つのレイヤ216aに対して既に実行されている場合(305:はい)、このレイヤのセキュリティ分析は、動作307においてスキップされ得る。「既に実行されている」についてのこの判断は、1つまたは複数のチェック基準を含み得る。例えば、チェック基準は、時間範囲(例えば、先月内にチェックが実行された、もしくは過去の任意の時にチェックが実行された)などの時間情報、またはイベント情報(例えば、明示ユーザもしくは管理者要求に基づいてチェックが実行された)を使用し得る。そうでない場合(305:いいえ)、セキュリティ分析は、動作308において、例えばコンテナ・マネージャ210によって実行され得る。問い合わせ動作305は、例えば、事前定義された期間(例えば、動作305が実行されたときから始まる前週)に基づいて、またはいくつかの他の事前定義されたスキャン基準に従って、各レイヤ216aおよびコンテナ216の他の製品に関連する情報を含むデータベース、例えばVER301を照会することにより、実行され得る。この情報は、レイヤ216aが事前定義された期間中にスキャンされたか否か、または他のスキャン基準を含み得る。以前処理されたレイヤ216aをスキップすることによって、これらのレイヤ216aを処理するのに必要となる処理リソースが節約され得る。
動作309において、セキュリティ・リスクは、少なくとも1つのレイヤ216aに対して実行されたセキュリティ分析の結果に基づいて検出され得る。セキュリティ分析は、例えば、チェックされているレイヤの識別された製品毎に、識別された製品の製品IDに基づいて、セキュリティ・リスクまたはコンテナ脆弱性イベントが、セキュリティKB207などの所与のデータベース内にその製品IDについて報告されているかどうかを判断することを含み得る。
動作310において、検出されたセキュリティ・リスクに対処するための修復アクションは、例えば、CVA205またはコンテナ・マネージャ210によって開始され得る。修復動作の開始は、セキュリティ・リスクもしくはコンテナ脆弱性イベントが検出されたという標識を提供すること、VCP202においてリスクもしくは脆弱性の位置を特定するルーチンを開始すること、またはリスクもしくは脆弱性に関連するポリシーの適用を開始することのうちの少なくとも1つを含み得る。別の例では、動作301~310は、コンテナの代わりにコンテナ・イメージに対して実行されてもよい。取るべき修復アクションは、上述の通り、VCP202に含まれ得る。修復アクションは、CVA205またはコンテナ・マネージャ210によって開始され得るが、修復アクションの様々な要素は、コンテナベースのランタイム環境212内またはそれらの外部(例えば、仮想マシン、コンテナ、もしくは中に含まれるレイヤを生成するために使用される要素)のいずれかの、他の要素によって実行されてもよく、または他の要素に適用されてもよく、あるいはその両方であってもよい。
本方法は、コンテナ・イメージにも適用され得る。一例では、コンテナベースのランタイム環境においてデプロイされるソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出するための方法が提供される。方法は、トリガを受信することであって、トリガが、あるコンテナ・イメージがセキュリティ・リスクについてチェックされる必要があることを示す、受信することと、コンテナ・イメージを構成するレイヤのセットを識別することと、セキュリティ・リスクについてのチェックが、識別されたレイヤのセットの少なくとも1つのレイヤに対して既に実行されているかどうかを判断すること、ならびに実行されている場合にこのレイヤのセキュリティ分析をスキップすること、およびそうでない場合にセキュリティ分析を実行することと、少なくとも1つのレイヤに対して実行されたセキュリティ分析の結果に基づいて、セキュリティ・リスクを検出することと、を含み得る。
本明細書でより詳細に説明されるように、本明細書で説明される方法の実施形態のいくつかの動作のうちのいくつかもしくは全てが、代替的な順序で実行されてもよく、または全く実行されなくてもよいと考えられる。さらに、複数の動作が、同時に、またはより大きなプロセスの内部部分として発生してもよい。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述したものの任意の適当な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードまたはその上に記録された命令を有する溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の適当な組み合わせを含む。本明細書で用いられるコンピュータ可読記憶媒体は、本来、電波もしくは他の自由伝播する電磁波、導波管もしくは他の送信媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通って送信される電気信号などの、一過性信号であると解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせを介して外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体の記憶用にコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通して、ユーザのコンピュータに接続されてもよい。あるいは、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を使用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
本発明の態様は、本発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書において説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組み合わせが、コンピュータ可読プログラム命令によって実施され得ると理解されたい。
コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施する手段を生成するように、これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または機械を製造するための他のプログラマブル・データ処理装置のプロセッサに提供されてもよい。コンピュータ可読記憶媒体に記憶される命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む機能の製品を含むように、これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定のやり方で機能するように指示し得る、コンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ可読プログラム命令は、また、コンピュータ実施されるプロセスを作り出すために、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるコンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされてもよい。
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定されたロジック機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替的な実施において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェアベース・システムによって実施され得ることにも留意されたい。
本明細書で使用される専門用語は、特定の実施形態のみを説明するためのものであり、多様な実施形態の限定であることを意図するものではない。本明細書で使用される、単数形「a」、「an」、および「the」は、文脈が特段明示していない限り、複数形も同様に含むことを意図するものである。「含む」または「含んでいる」という用語、あるいはその両方は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれらの組み合わせの存在を明示するものであって、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはそれらの集合、あるいはそれらの組み合わせの存在または追加を排除するものではないと、さらに理解されたい。様々な実施形態の例としての実施形態の前述の詳細な説明では、添付図面(類似の番号が類似要素を表す)に対して参照が行われた。添付図面は、本明細書の一部を形成し、その中で例示として、様々な実施形態が実施され得る特定の例としての実施形態が示されている。これらの実施形態は、当業者が実施形態を実施することを可能にするために十分詳細に説明されたが、他の実施形態が使用されてもよく、論理的、機械的、電気的、および他の変更が、様々な実施形態の範囲から逸脱することなく行われ得る。前述の説明において、様々な実施形態の完全な理解を提供するために、多くの具体的詳細が記述された。しかし、様々な実施形態が、これらの具体的詳細なしで実施され得る。他の例では、周知の回路、構造、および技術が、実施形態を不明確にしないために詳細に示されない。
本明細書内で使用される「実施形態」という語の異なる例は、同一実施形態を必ずしも指すものではないが、指してもよい。本明細書に示されまたは説明される任意のデータおよびデータ構造は、単なる例であり、他の実施形態では、異なるデータの量、データの種類、フィールド、フィールドの数および種類、フィールド名、行の数および種類、レコード、エントリ、またはデータ編成が使用されてもよい。加えて、個々のデータ構造が必要なくてもよいように、任意のデータが、ロジックと組み合わされ得る。したがって、前述の詳細な説明は、限定的な意味に取られるべきではない。
本開示の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示される実施形態に限定することを意図するものではない。多くの修正および変形が、説明された実施形態の範囲および思想から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実用的な用途、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書に開示される実施形態を他の当業者が理解可能にするために、選択された。
本発明は、特定の実施形態に関して説明されているが、それらの改変および修正が当業者には明らかになると予想される。したがって、以下の特許請求の範囲は、本発明の真の思想および範囲内に入るものとして、そのような改変および修正の全てを包含すると解釈されることを意図するものである。

Claims (20)

  1. コンピュータの情報処理により、コンテナベースのランタイム環境でデプロイされるソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出する方法であって、コンテナ脆弱性アドバイザ(CVA)のプロセッサを使用して、
    トリガを受信することであって、前記トリガが、前記コンテナベースのランタイム環境内のコンテナのレイヤがセキュリティ・リスクについてチェックされるべきであることを示す、前記受信することと、
    セキュリティ・リスクについてチェックされるべき前記コンテナのチェック・レイヤを識別することと、
    セキュリティ・リスクについてのチェックが前記チェック・レイヤに対して以前に実行されていないと、チェック基準に従って判断することと、
    前記セキュリティ・リスクについてのチェックが以前に実行されていないと前記判断したことに応答して、セキュリティ分析がセキュリティ・リスクを示すと判断することと、
    前記セキュリティ分析が前記セキュリティ・リスクを示すと前記判断したことに応答して、修復アクションを開始することと、
    を含む、方法。
  2. 新たなコンテナがデプロイされるべきであるとコンテナ・マネージャが検出したことに応答して、前記トリガが、前記コンテナベースのランタイム環境のための前記コンテナ・マネージャから受信される、請求項1に記載の方法。
  3. 前記レイヤ内に存在するソフトウェア製品を検出することをさらに含み、前記セキュリティ・リスクのチェックが既に実行されている時を前記判断することが、検出された前記ソフトウェア製品に関連する製品情報を用いてレジストリ(VER)を照会することを含む、請求項1に記載の方法。
  4. 前記製品情報が、バージョン番号、リリース日付、または実行可能ファイル日付のうちの少なくとも1つを含む、請求項3に記載の方法。
  5. 前記セキュリティ分析が前記レイヤに対して実行されたことを示すように前記VERを更新することをさらに含む、請求項3に記載の方法。
  6. 前記セキュリティ分析が、セキュリティ・ナレッジ・ベースをチェックすることを含み、前記セキュリティ・ナレッジ・ベースが、前記レイヤ内のソフトウェア製品の既知のセキュリティ脆弱性についての情報を含む、請求項1に記載の方法。
  7. 前記ナレッジ・ベースが、IBM Security AppScan(R) KB208およびMITRE CorporationのCommon Vulnerabilities and Exposures(CVE(R)) KBのうちの少なくとも1つである、請求項6に記載の方法。
  8. 前記コンテナベースのランタイム環境が、Docker(R)システムを組み込み、前記トリガが、前記Docker(R)システムによって生成されるドッカーアタッチ・イベントに基づく、請求項1に記載の方法。
  9. 前記トリガの前記受信が、前記識別すること、前記セキュリティ・リスクについてのチェックが以前に実行されてないと前記判断すること、およびセキュリティ分析がセキュリティ・リスクを示すと前記判断することを自動的に開始する、請求項1に記載の方法。
  10. 検出された前記セキュリティ・リスクの前記修復アクションの標識を提供することをさらに含む、請求項1に記載の方法。
  11. 前記識別すること、前記セキュリティ・リスクについてのチェックが以前に実行されてないと前記判断すること、およびセキュリティ分析がセキュリティ・リスクを示すと前記判断することを、コンテナの全てのレイヤについて繰り返すことをさらに含む、請求項1に記載の方法。
  12. 前記チェック基準が、時間情報またはイベント情報を使用する、請求項1に記載の方法。
  13. 前記修復アクションが、前記コンテナが実行中であるときに前記コンテナを停止すること、前記コンテナを隔離すること、新たなコンテナが前記コンテナの同一発生元開始要素からスポーンされることを防止すること、前記同一発生元開始要素に対してリビルドもしくはパッチを実行することもしくはトリガすること、または前記同一発生元開始要素からの前記コンテナを再開することのうちの少なくとも1つである、請求項1に記載の方法。
  14. 前記修復アクションを前記開始することが、セキュリティ・リスクもしくはコンテナ脆弱性イベントが検出されたという標識を提供すること、仮想コンテナ・ポリシー・ストアにおいて前記リスクもしくは脆弱性の位置を特定するルーチンを開始すること、または前記リスクもしくは脆弱性に関連するポリシーの適用を開始することのうちの少なくとも1つである、請求項1に記載の方法。
  15. 前記セキュリティ・リスクについてのチェックが前記チェック・レイヤに対して以前に実行されていると、前記チェック基準に従って判断することと、
    セキュリティ・リスクについてのチェックが以前実行されていると判断したことに応答して、前記チェック・レイヤに対して前記セキュリティ分析を前記実行することをスキップすることと、
    をさらに含む、請求項1に記載の方法。
  16. 前記セキュリティ分析が前記セキュリティ・リスクを示さないと判断することと、
    前記セキュリティ分析が前記セキュリティ・リスクを示さないと前記判断したことに応答して、前記修復アクションを前記開始することをスキップすることと、
    をさらに含む、請求項1に記載の方法。
  17. 前記CVAが、前記コンテナの外部にある、請求項1に記載の方法。
  18. 請求項1~17の何れか1項に記載の方法をコンピュータ・ハードウェアによる手段として構成した、システム。
  19. 請求項1~17の何れか1項に記載の方法をコンピュータに実行させる、コンピュータ・プログラム。
  20. 請求項19に記載の前記コンピュータ・プログラムを、コンピュータ可読記憶媒体に記録した、記憶媒体。
JP2021517025A 2018-11-15 2019-10-22 ソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出する方法、システム、およびプログラム Active JP7316726B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/192,288 US10885200B2 (en) 2018-11-15 2018-11-15 Detecting security risks related to a software component
US16/192,288 2018-11-15
PCT/IB2019/058984 WO2020099960A1 (en) 2018-11-15 2019-10-22 Detecting security risks related to a software component

Publications (2)

Publication Number Publication Date
JP2022504030A JP2022504030A (ja) 2022-01-13
JP7316726B2 true JP7316726B2 (ja) 2023-07-28

Family

ID=70728135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021517025A Active JP7316726B2 (ja) 2018-11-15 2019-10-22 ソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出する方法、システム、およびプログラム

Country Status (6)

Country Link
US (1) US10885200B2 (ja)
JP (1) JP7316726B2 (ja)
CN (1) CN112868007A (ja)
DE (1) DE112019005729T5 (ja)
GB (1) GB2589518B (ja)
WO (1) WO2020099960A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102186009B1 (ko) * 2019-03-08 2020-12-04 한국전자통신연구원 컨테이너 인스턴스의 보안 프로파일 생성 시스템 및 방법
US11290491B2 (en) * 2019-03-14 2022-03-29 Oracle International Corporation Methods, systems, and computer readable media for utilizing a security service engine to assess security vulnerabilities on a security gateway element
US11062022B1 (en) * 2019-05-01 2021-07-13 Intuit Inc. Container packaging device
US11874929B2 (en) * 2019-12-09 2024-01-16 Accenture Global Solutions Limited Method and system for automatically identifying and correcting security vulnerabilities in containers
KR102386617B1 (ko) * 2020-06-15 2022-04-15 한국전자통신연구원 어플리케이션 컨테이너에 대한 시스템 콜 화이트리스트 생성 장치 및 방법, 어플리케이션 컨테이너에 대한 시스템 콜 제어 방법
US11973770B1 (en) 2020-12-09 2024-04-30 Wiz, Inc. Techniques for multi-tenant vulnerability scanning
US12112155B2 (en) 2021-05-19 2024-10-08 Kyndryl, Inc. Software application container hosting
CN113504971B (zh) * 2021-07-20 2024-02-13 华云数据控股集团有限公司 基于容器的安全拦截方法及系统
CN113901435B (zh) * 2021-12-13 2022-03-01 广东电网有限责任公司 面向容器的可信软件授权验证方法
TWI811893B (zh) * 2021-12-15 2023-08-11 中華電信股份有限公司 雲工作負載安全防護系統及其方法
US20240111876A1 (en) * 2022-09-29 2024-04-04 Red Hat, Inc. K-anonymous vulnerability detection
US20240193259A1 (en) * 2022-12-12 2024-06-13 Red Hat, Inc. Code coverage based risk mitigation for containers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016534460A (ja) 2013-08-28 2016-11-04 アマゾン テクノロジーズ インク 動的アプリケーションセキュリティ検証
US20170116412A1 (en) 2015-10-01 2017-04-27 Twistlock, Ltd. Profiling of spawned processes in container images and enforcing security policies respective thereof
US20170372072A1 (en) 2016-06-23 2017-12-28 International Business Machines Corporation Detecting vulnerable applications

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US8613080B2 (en) 2007-02-16 2013-12-17 Veracode, Inc. Assessment and analysis of software security flaws in virtual machines
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US8458798B2 (en) * 2010-03-19 2013-06-04 Aspect Security Inc. Detection of vulnerabilities in computer systems
US8572741B2 (en) 2010-10-14 2013-10-29 Moka5, Inc. Providing security for a virtual machine by selectively triggering a host security scan
US8819832B2 (en) 2011-08-26 2014-08-26 Rapid7, Llc Systems and methods for performing vulnerability scans on virtual machines
US9117081B2 (en) 2013-12-20 2015-08-25 Bitdefender IPR Management Ltd. Strongly isolated malware scanning using secure virtual containers
US10140453B1 (en) * 2015-03-16 2018-11-27 Amazon Technologies, Inc. Vulnerability management using taxonomy-based normalization
US9652612B2 (en) 2015-03-25 2017-05-16 International Business Machines Corporation Security within a software-defined infrastructure
US10586042B2 (en) 2015-10-01 2020-03-10 Twistlock, Ltd. Profiling of container images and enforcing security policies respective thereof
US10706145B2 (en) 2015-10-01 2020-07-07 Twistlock, Ltd. Runtime detection of vulnerabilities in software containers
US10169056B2 (en) 2016-08-31 2019-01-01 International Business Machines Corporation Effective management of virtual containers in a desktop environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016534460A (ja) 2013-08-28 2016-11-04 アマゾン テクノロジーズ インク 動的アプリケーションセキュリティ検証
US20170116412A1 (en) 2015-10-01 2017-04-27 Twistlock, Ltd. Profiling of spawned processes in container images and enforcing security policies respective thereof
US20170372072A1 (en) 2016-06-23 2017-12-28 International Business Machines Corporation Detecting vulnerable applications

Also Published As

Publication number Publication date
GB2589518B (en) 2021-11-17
GB202102332D0 (en) 2021-04-07
DE112019005729T5 (de) 2021-07-29
JP2022504030A (ja) 2022-01-13
GB2589518A (en) 2021-06-02
CN112868007A (zh) 2021-05-28
US20200159933A1 (en) 2020-05-21
WO2020099960A1 (en) 2020-05-22
US10885200B2 (en) 2021-01-05

Similar Documents

Publication Publication Date Title
JP7316726B2 (ja) ソフトウェア・コンポーネントに関連するセキュリティ・リスクを検出する方法、システム、およびプログラム
US11461125B2 (en) Methods and apparatus to publish internal commands as an application programming interface in a cloud infrastructure
US10095496B2 (en) Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud infrastructure
US10127069B2 (en) Methods and apparatus to automatically configure monitoring of a virtual machine
US11216563B1 (en) Security assessment of virtual computing environment using logical volume image
US9710259B2 (en) System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US11941452B2 (en) System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US11062022B1 (en) Container packaging device
AU2014254277B2 (en) A framework for coordination between endpoint security and network security services
US10031783B2 (en) Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US20160371105A1 (en) Deployment and installation of updates in a virtual environment
KR20170022028A (ko) 컨테이너 이미지 보안 검사 방법 및 그 장치
US20220050711A1 (en) Systems and methods to orchestrate infrastructure installation of a hybrid system
CN103329093A (zh) 更新软件
US20240241967A1 (en) Method to intelligently manage the end to end container compliance in cloud environments
US8392469B2 (en) Model based distributed application management
WO2024003785A1 (en) Techniques for differential inspection of container layers
US11327824B2 (en) Using a web server to obtain service data for a failed software application
US12061925B1 (en) Techniques for inspecting managed workloads deployed in a cloud computing environment
US12093384B1 (en) Techniques for improved inspection of container layers
US20240289745A1 (en) Systems, methods, and computer readable media for operationalizing sbom content and providing sbom analysis

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210518

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210326

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20210325

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220418

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230619

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20230628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230713

R150 Certificate of patent or registration of utility model

Ref document number: 7316726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150