IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2023-547354クラウド・ワークロード・セキュリティを強化するために展開前と展開後との間でインサイトを共有すること
<>
  • 特表-クラウド・ワークロード・セキュリティを強化するために展開前と展開後との間でインサイトを共有すること 図1
  • 特表-クラウド・ワークロード・セキュリティを強化するために展開前と展開後との間でインサイトを共有すること 図2
  • 特表-クラウド・ワークロード・セキュリティを強化するために展開前と展開後との間でインサイトを共有すること 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-10
(54)【発明の名称】クラウド・ワークロード・セキュリティを強化するために展開前と展開後との間でインサイトを共有すること
(51)【国際特許分類】
   G06F 21/57 20130101AFI20231102BHJP
   G06F 11/34 20060101ALI20231102BHJP
   G06F 11/07 20060101ALI20231102BHJP
【FI】
G06F21/57 370
G06F11/34 176
G06F11/07 166
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023522553
(86)(22)【出願日】2021-10-26
(85)【翻訳文提出日】2023-04-12
(86)【国際出願番号】 IB2021059855
(87)【国際公開番号】W WO2022096982
(87)【国際公開日】2022-05-12
(31)【優先権主張番号】17/091,386
(32)【優先日】2020-11-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100091568
【弁理士】
【氏名又は名称】市位 嘉宏
(72)【発明者】
【氏名】コプティ、フェディ
(72)【発明者】
【氏名】ソセアヌ、オムリ
(72)【発明者】
【氏名】エゾフ、ギラッド
(72)【発明者】
【氏名】レヴィ、ロネン
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042JJ30
5B042KK13
5B042MA14
5B042MC40
(57)【要約】
実施形態は、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能な警告を提供し得る技術を提供し得る。例えば、一実施形態において、方法は、プロセッサと、プロセッサによりアクセス可能なメモリと、メモリ内に記憶されプロセッサにより実行可能なコンピュータ・プログラム命令とを含むコンピュータ・システムにおいて実現することができる。方法は、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することと、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することと、ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合することとにより、エスカレーションすべき性能およびセキュリティ警告を決定することと、エスカレーションされた性能およびセキュリティ警告を報告することとを含み得る。
【特許請求の範囲】
【請求項1】
プロセッサと、前記プロセッサによりアクセス可能なメモリと、前記メモリ内に記憶され前記プロセッサにより実行可能なコンピュータ・プログラム命令とを含むコンピュータ・システムで実現される方法であって、
ソフトウェア・システムに関係する第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの開発中に生成することと、
前記ソフトウェア・システムに関係する第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの展開後の動作中に生成することと、
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき1つまたは複数の性能およびセキュリティ警告を決定することと、
エスカレーションされた性能およびセキュリティ警告を報告することと
を含む、方法。
【請求項2】
前記ソフトウェア・システムに関係する前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記開発中に生成することは、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの静的および動的試験を実施することにより、1つまたは複数の生成された警告の履歴を収集すること、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のサブシステムの第1の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のアプリケーション・ログを生成すること、ならびに、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のユニットの第2の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のエラー・ハンドリング・ログを生成すること
のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記ソフトウェア・システムにおけるルーチンどうしの間の1つまたは複数のコーリング関係性を表す1つまたは複数の生成されたコール・グラフを使用して、前記1つまたは複数の生成された警告の各々を中間ログ・シーケンスと関連付けることをさらに含む、請求項2に記載の方法。
【請求項4】
前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、前記ソフトウェアの前記展開後の動作をモニタリングし、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告を収集することを含む、請求項3に記載の方法。
【請求項5】
前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、1つまたは複数の構成変更に関する情報、および、前記1つまたは複数の構成変更に関する1つまたは複数の生み出された警告のうちの少なくとも1つを収集することを含み、前記照合することは、前記1つまたは複数の構成変更、および、前記1つまたは複数の構成変更に関する前記1つまたは複数の生み出された警告のうちの少なくとも1つに関する前記収集された情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき性能ならびに前記1つまたは複数の性能およびセキュリティ警告を決定することを含む、請求項4に記載の方法。
【請求項6】
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することは、
前記静的および動的試験中に生成された警告の前記履歴を使用して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の根本原因を決定することと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因が、前記静的および動的試験中に生成された前記警告の履歴中の近時の警告と照応することに応答して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告をエスカレーションすること、または、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告と、前記静的および動的試験中に生成された前記警告履歴中の前記警告の両方をエスカレーションすることと
を含む、請求項4に記載の方法。
【請求項7】
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき前記1つまたは複数の性能およびセキュリティ警告を決定することは、
1つまたは複数の類似のログ・シーケンス、および、1つまたは複数のログ・グループのうちの少なくとも1つに基づき、且つ、1つまたは複数の機械学習技術を使用して実施される、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因を前記警告履歴中の前記近時の警告と照合することと、
近時の時間窓を使用して前記1つまたは複数のアプリケーション・ログを調査することにより、前記静的および動的試験中に生成される警告の1つまたは複数のユニット試験エラー・ハンドリング・ログを、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告と照合し、問題の既知のログ・シグネチャとの1つまたは複数の照応を探索し、少なくとも1つの照応が発見されると、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された前記警告の重大度をエスカレーションすることと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記1つまたは複数の警告に関係する情報を、前記静的および動的試験中に生成された前記1つまたは複数の警告を生じさせるソース・コードと関連付けることと
をさらに含む、請求項6に記載の方法。
【請求項8】
システムであって、プロセッサと、前記プロセッサによりアクセス可能なメモリと、コンピュータ・プログラム命令であって、前記メモリ内に記憶され、前記プロセッサにより、
ソフトウェア・システムに関係する第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの開発中に生成することと、
前記ソフトウェア・システムに関係する第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの展開後の動作中に生成することと、
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき1つまたは複数の性能およびセキュリティ警告を決定することと、
エスカレーションされた性能およびセキュリティ警告を報告することと
を実施するように実行可能な、前記コンピュータ・プログラム命令とを含む、システム。
【請求項9】
前記ソフトウェア・システムに関係する前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記開発中に生成することは、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの静的および動的試験を実施することにより、1つまたは複数の生成された警告の履歴を収集すること、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のサブシステムの第1の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のアプリケーション・ログを生成すること、ならびに、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のユニットの第2の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のエラー・ハンドリング・ログを生成すること
のうちの少なくとも1つを含む、請求項8に記載のシステム。
【請求項10】
前記ソフトウェア・システムにおけるルーチンどうしの間の1つまたは複数のコーリング関係性を表す1つまたは複数の生成されたコール・グラフを使用して、前記1つまたは複数の生成された警告の各々を中間ログ・シーケンスと関連付けることをさらに含む、請求項9に記載のシステム。
【請求項11】
前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、前記ソフトウェアの前記展開後の動作をモニタリングし、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告を収集することを含む、請求項10に記載のシステム。
【請求項12】
前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、1つまたは複数の構成変更に関する情報、および、前記1つまたは複数の構成変更に関する1つまたは複数の生み出された警告のうちの少なくとも1つを収集することを含み、前記照合することは、前記1つまたは複数の構成変更、および、前記1つまたは複数の構成変更に関する前記1つまたは複数の生み出された警告のうちの少なくとも1つに関する前記収集された情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき性能ならびに前記1つまたは複数の性能およびセキュリティ警告を決定することを含む、請求項11に記載のシステム。
【請求項13】
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することは、
前記静的および動的試験中に生成された警告の前記履歴を使用して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の根本原因を決定することと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因が、前記静的および動的試験中に生成された前記警告の履歴中の近時の警告と照応することに応答して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告をエスカレーションすること、または、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告と、前記静的および動的試験中に生成された前記警告履歴中の前記警告の両方をエスカレーションすることと
を含む、請求項11に記載のシステム。
【請求項14】
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき前記1つまたは複数の性能およびセキュリティ警告を決定することは、
1つまたは複数の類似のログ・シーケンス、および、1つまたは複数のログ・グループのうちの少なくとも1つに基づき、且つ、1つまたは複数の機械学習技術を使用して実施される、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因を前記警告履歴中の前記近時の警告と照合することと、
近時の時間窓を使用して前記1つまたは複数のアプリケーション・ログを調査することにより、前記静的および動的試験中に生成される警告の1つまたは複数のユニット試験エラー・ハンドリング・ログを、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告と照合し、問題の既知のログ・シグネチャとの1つまたは複数の照応を探索し、少なくとも1つの照応が発見されると、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された前記警告の重大度をエスカレーションすることと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記1つまたは複数の警告に関係する情報を、前記静的および動的試験中に生成された前記1つまたは複数の警告を生じさせるソース・コードと関連付けることと
をさらに含む、請求項13に記載のシステム。
【請求項15】
プログラム命令が具現化された非一過性コンピュータ可読ストレージを含むコンピュータ・プログラム製品であって、前記プログラム命令は、コンピュータにより実行可能であり、前記コンピュータに、
ソフトウェア・システムに関係する第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの開発中に生成することと、
前記ソフトウェア・システムに関係する第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの展開後の動作中に生成することと、
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき1つまたは複数の性能およびセキュリティ警告を決定することと、
エスカレーションされた性能およびセキュリティ警告を報告することと
を含む方法を実施することを前記コンピュータに行わせるように実行可能である、コンピュータ・プログラム製品。
【請求項16】
前記ソフトウェア・システムに関係する前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記開発中に生成することは、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの静的および動的試験を実施することにより、1つまたは複数の生成された警告の履歴を収集すること、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のサブシステムの第1の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のアプリケーション・ログを生成すること、ならびに、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のユニットの第2の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のエラー・ハンドリング・ログを生成すること
のうちの少なくとも1つを含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
前記ソフトウェア・システムにおけるルーチンどうしの間の1つまたは複数のコーリング関係性を表す1つまたは複数の生成されるコール・グラフを使用して、前記1つまたは複数の生成された警告の各生成された警告を中間ログ・シーケンスと関連付けることをさらに含む、請求項16に記載のコンピュータ・プログラム製品。
【請求項18】
前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、1つまたは複数の構成変更に関する情報、および、前記1つまたは複数の構成変更に関する1つまたは複数の生み出された警告のうちの少なくとも1つを収集することを含み、前記照合することは、前記1つまたは複数の構成変更、および、前記1つまたは複数の構成変更に関する前記1つまたは複数の生み出された警告のうちの少なくとも1つに関する前記収集された情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき性能ならびに前記1つまたは複数の性能およびセキュリティ警告を決定することを含む、請求項17に記載のコンピュータ・プログラム製品。
【請求項19】
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することは、
前記静的および動的試験中に生成された警告の前記履歴を使用して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の根本原因を決定することと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因が、前記静的および動的試験中に生成された前記警告の履歴中の近時の警告と照応することに応答して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告をエスカレーションすること、または、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告と、前記静的および動的試験中に生成された前記警告履歴中の前記警告の両方をエスカレーションすることと
を含み、 前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因を前記警告記履歴中の近時の警告と照合することは、類似のログ・シーケンスまたはログ・グループに基づき、機械学習技術を使用して実施される、請求項18に記載のコンピュータ・プログラム製品。
【請求項20】
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき前記1つまたは複数の性能およびセキュリティ警告を決定することは、
1つまたは複数の類似のログ・シーケンス、および、1つまたは複数のログ・グループのうちの少なくとも1つに基づき、且つ、1つまたは複数の機械学習技術を使用して実施される、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因を前記警告履歴中の前記近時の警告と照合することと、
近時の時間窓を使用して前記1つまたは複数のアプリケーション・ログを調査することにより、前記静的および動的試験中に生成される警告の1つまたは複数のユニット試験エラー・ハンドリング・ログを、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告と照合し、問題の既知のログ・シグネチャとの1つまたは複数の照応を探索し、少なくとも1つの照応が発見されると、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された前記警告の重大度をエスカレーションすることと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記1つまたは複数の警告に関係する情報を、前記静的および動的試験中に生成された前記1つまたは複数の警告を生じさせるソース・コードと関連付けることと
をさらに含む、請求項19に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能(actionable)な警告を提供し得る技術に関する。
【背景技術】
【0002】
クラウド・ワークロード・セキュリティは、今日最も急速に高まっているセキュリティ関心事のうちの1つである。ラン・タイム・ワークロード・セキュリティ・システムが生み出す警告は、しばしば、偽陽性の割合が高い。偽陽性割合が高いことにより、システムが多くの陽性警告を無視すると、一部の真陽性を見逃すことが生じ得る。結果として、多くの攻撃がセキュリティ防御を回避し得ることになる。さらには、展開前セキュリティ試験で同じ問題に悩まされる結果、展開前セキュリティ試験における偽陽性警告の多さに起因して、時には真陽性(正当な警告)が無視される、または、検証されない、あるいはその両方であることがある。
【0003】
よって、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能な警告を提供し得る技術が必要性とされる。
【発明の概要】
【0004】
実施形態は、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能な警告を提供し得る技術を提供することができる。
【0005】
実施形態は、より正確および処理可能な警告を提供するために、クラウド・ソフトウェア・システムの開発試験(展開前)およびランタイム(展開後)モニタリングを組み合わせ、以て、展開前ソフトウェア環境と展開後ソフトウェア環境との間のインサイトを共有することができる。例えば、アプリケーション・ログ分析などのプロセスを用いて、インサイトを共有することができる。同じように、コール・グラフを用いて、ローカル・ログ・シーケンスを共有することができる。さらに、エラー・ハンドリングをセキュリティ弱点についての指示として用いることができる。
【0006】
例えば、一実施形態において、方法は、プロセッサと、プロセッサによりアクセス可能なメモリと、メモリ内に記憶されプロセッサにより実行可能なコンピュータ・プログラム命令とを含むコンピュータ・システムにおいて実現することができ、方法は、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することと、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することと、ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合する(match)ことにより、エスカレーションすべき性能およびセキュリティ警告を決定することと、エスカレーションされた性能およびセキュリティ警告を報告することとを含み得る。
【0007】
実施形態において、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することは、ソフトウェア・システムの開発中にソフトウェア・システムのコードの静的および動的試験を実施することにより、試験中に生成された警告の履歴を収集すること、ソフトウェア・システムの開発中にソフトウェア・システムのコードのサブシステムの動的試験を実施することにより、生み出された警告についてのアプリケーション・ログを生成すること、ならびに、ソフトウェア・システムの開発中にソフトウェア・システムのコードのユニットの動的試験を実施することにより、生み出された警告についてのエラー・ハンドリング・ログを生成することのうちの少なくとも1つを含み得る。方法は、ソフトウェア・システムにおけるルーチンどうしの間のコーリング関係性を表す生成されたコール・グラフを使用して、生成された各警告を中間ログ・シーケンスと関連付けることをさらに含み得る。ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することは、ソフトウェアの展開後の動作をモニタリングし、モニタリングにより生み出された警告を収集することを含み得る。ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することは、構成変更に関する情報、または、構成変更に関する警告、あるいはその両方を収集することを含むことができ、照合することは、収集された、構成変更に関する情報、または、構成変更に関する警告、あるいはその両方を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合するにより、エスカレーションすべき性能およびセキュリティ警告を決定することを含む。ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合することは、試験中に生成された警告の履歴を使用して、モニタリングにより生み出された警告の根本原因を決定することと、モニタリングにより生み出された警告の根本原因が、試験中に生成された警告の履歴中の近時の警告と照応するときに、モニタリングにより生み出された警告をエスカレーションすること、または、モニタリングにより生み出された警告と、試験中に生成された警告の履歴中の警告の両方をエスカレーションすることとを含み得る。モニタリングにより生み出された警告の根本原因を警告履歴中の近時の警告と照合することは、類似のログ・シーケンスまたはログ・グループに基づき、且つ、機械学習技術を使用して実施可能である。ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合することは、類似のログ・シーケンスまたはログ・グループに基づき、且つ、機械学習技術を使用して実施される、モニタリングにより生み出された警告の根本原因を警告履歴中の近時の警告と照合することと、近時の時間窓を使用してアプリケーション・ログを調査することにより、試験中に生成される警告のユニット試験エラー・ハンドリング・ログを、モニタリングにより生み出された警告と照合し、問題の既知のログ・シグネチャとの照応を探索し、少なくとも1つの照応が発見されると、モニタリングにより生み出された警告の重大度をエスカレーションすることと、モニタリングにより生み出された警告に関係する情報を、試験中に生成された警告を生じさせるソース・コードと関連付けることとをさらに含み得る。
【0008】
一実施形態において、システムは、プロセッサと、プロセッサによりアクセス可能なメモリと、コンピュータ・プログラム命令であって、メモリ内に記憶され、プロセッサにより、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することと、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することと、ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合する(match)ことにより、エスカレーションすべき性能およびセキュリティ警告を決定することとを実施するように実行可能な、前記コンピュータ・プログラム命令とを含み得る。
【0009】
一実施形態において、コンピュータ・プログラム製品は、プログラム命令が具現化される非一過性コンピュータ可読ストレージを含むことができ、プログラム命令は、コンピュータにより実行可能であり、コンピュータに、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することと、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することと、ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合する(match)ことにより、エスカレーションすべき性能およびセキュリティ警告を決定することとを含む方法を実施させる。
【0010】
本発明の構造および動作の両方に関する、本発明の詳細は、同様の参照番号および名称が、同様の要素を指す、付随する図面を参照することにより、最も良好に理解され得る。
【図面の簡単な説明】
【0011】
図1】本技術の実施形態による、クラウド・ワークロード・アプリケーションが開発され、試験され、本番展開において使用され得る、例示的な環境を例示する図である。
図2】本技術の実施形態による動作のプロセスの例示的なフロー図である。
図3】本明細書において説明される実施形態に必然的に含まれるプロセスが実現され得る、コンピュータ・システムの例示的なブロック図である。
【発明を実施するための形態】
【0012】
実施形態は、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能な警告を提供し得る技術を提供し得る。
【0013】
実施形態は、より正確および処理可能な警告を提供するために、クラウド・ソフトウェア・システムの開発試験(展開前)およびランタイム(展開後)モニタリングを組み合わせ、以て、展開前ソフトウェア環境と展開後ソフトウェア環境との間のインサイトを共有し得る。例えば、アプリケーション・ログ分析などのプロセスが、インサイトを共有するために使用され得る。同じように、コール・グラフが、ローカル・ログ・シーケンス共有のために使用され得る。さらに、エラー・ハンドリングが、セキュリティ弱点についての指示として使用され得る。
【0014】
継続的インテグレーション(CI)は、コードに対する小さな変更を実装し、バージョン管理システムのバージョン管理リポジトリへの頻繁なチェック・インを可能にする、コーディング技術である。このため、CIにより、アプリケーションをビルド、パッケージ化、および試験するための、矛盾のない、且つ自動化された手立てを提供することが可能となる。このことによって、コード変更のより頻繁なコミットメントが可能となり、そのことは、より良好なコラボレーションおよびソフトウェア品質につながる。継続的デリバリ(CD)は、選択されたインフラストラクチャ環境へのアプリケーションのデリバリを自動化する。大多数のチームは、開発および試験環境などの、本番以外の複数の環境を作業の対象としており、CDによって、それらの環境にコード変更をプッシュするための自動化された手立てが確保される。継続的インテグレーションおよび継続的デリバリ(CI/CD)は、これらの2つの技術をコーディングと試験が統合されたワークフローへと組み合わせる。
【0015】
クラウド・ワークロード・アプリケーションが開発され、試験され、本番展開において使用され得る、例示的な環境100が、図1において示される。この例において、環境100は、CI/CD開発環境102と、クラウド本番展開104とを含み得る。CI/CD開発環境102は、コード・マージ・ブロック106、静的試験ブロック108、ビルド・ブロック110、動的試験ブロック112、および展開ブロック114などの処理ブロックを含み得る。コード・マージ・ブロック106は、バージョン管理のもとにあるソフトウェア・ソース・コード・ファイルに対してなされる複数個の変更を調停する動作である、コード・マージング(さらにはインテグレーションと呼ばれる)を実施し得る。例えば、ファイルが2つの独立したブランチ上で修正されるならば、異なるブランチをマージして、変更のすべてのセットを内包する、ファイルの単一のコレクションを形成することができる。実施形態では、自動マージングをCI/CD開発環境102中のバージョン管理システムにより実施することによって、(論理的な意味において)同時に発生した変更を調停することができる。自動マージングが非効果的または動作不能であるならば、手動マージングを必要であれば実施することができる。
【0016】
静的試験ブロック108は、プログラムを実際に実行することなしに、コンピュータ・ソフトウェア、例えば、コード・マージ・ブロック106から出力されるソース・コードまたはオブジェクト・コードあるいはその両方のマージされたバージョンの試験および分析を行うことができる。実施形態において、そのような分析は、自動化されたツールにより実施され得る。ビルド・ブロック110は、オブジェクト・コードへのソース・コードのコンパイリング、オブジェクト・コードおよびライブラリ・オブジェクト・コードならびに他のソフトウェア・リソースのリンキング等を含む、完全なアプリケーションまたはソフトウェア・システムのビルディングを実施することによって、実行可能なコードのセットを形成することができる。動的試験ブロック112は、現実または仮想プロセッサ上でプログラムを実行してコンピュータ・ソフトウェアの分析を実施することにより、動作中のソフトウェアの実際の挙動をモニタリングすることができる。展開ブロック114は、コンピュータ・ソフトウェアの展開を実施し、そこには、例えば、ソフトウェアが容易にインストールされることを可能とするインストレーション・パッケージの生成や、当該ソフトウェアおよび動作に必要とされる関連ソフトウェアのインストレーション等が含まれる。
【0017】
クラウド本番展開104は、コンピュータ・ソフトウェア・アプリケーションおよびシステムの、ライブすなわち本番動作のための環境を提供することができ、ユーザ(人々、クライアント・コンピュータ、他のサーバ等)が直接的に相互作用できる環境を提供することができる。クラウド本番展開104は、クラウド・ワークロード・モニタリング・ブロック116と、CI/CDインサイト118とを含み得る。クラウド・ワークロード・モニタリング・ブロック116は、クラウド本番展開104における展開されたソフトウェアの動作およびワークロード・パラメータをモニタリングし、モニタリングされた動作に基づいて警告を生成することができる。CI/CDインサイト118は、警告履歴などの、CI/CD開発環境102から取得される、展開されたソフトウェアの動作に関する情報を含むことができ、クラウド・ワークロード・モニタリング・ブロック116がそれを利用することにより、クラウド本番展開104における展開されたソフトウェアの動作に関する拡張された情報を提供することができる。
【0018】
本実施形態による動作の例示的なプロセス200が、図2において示される。その図2は、図1との連関において最も良好に考察される。プロセス200は202で始まり、その202において、CI/CD試験が行われ、そのような試験からの警告履歴が、例えばCI/CDインサイト118内に保存され得る。そのようなCI/CD試験には、例えば、静的試験ブロック108により実施される構成試験およびコード試験などの静的試験、ならびに、動的試験ブロック112により実施される動的試験を含めることができる。静的試験中、コール・グラフを作製して、コンピュータ・ソフトウェアにおけるルーチンどうしの間のコーリング関係性を表すことができる。コール・グラフでドキュメント化されるように、生成される警告すべてを可能性のある中間ログ・シーケンス(有限ステップ)と関連付けることができる。204では、CI/CDサブシステム動的試験を実施して、生み出された警告についてのアプリケーション・ログを収集することができる。収集されたアプリケーション・ログは、例えばCI/CDインサイト118内に保存され得る。206では、CI/CDユニット試験を実施して、予想されない制御フローを指示するシーケンスを含み得るエラー・ハンドリング・ログを収集することができる。加えて、構成変更に関する情報、または、構成変更に関する警告、あるいはその両方を収集することができる。さらに、エラー・ハンドリング・ユニット試験のログ・シグネチャの特性評価を行うことができる。収集されたエラー・ハンドリング・ログおよび特性評価は、例えばCI/CDインサイト118内に保存され得る。
【0019】
ソフトウェアがクラウド本番展開104に展開された後、すなわち、展開後に、208において、クラウド・ワークロード・モニタリング・ブロック116がクラウド本番展開104の動作をモニタリングし、かかるモニタリングにより生み出されたすべての警告を収集することができる。そのようなワークロード警告が生じるとき、近時の時間窓を使用してアプリケーション・ログを調査することにより、近時のログ異常を検出することができる。210では、CI/CD警告履歴118を用いて、各ワークロード警告の根本原因分析が行われる。212では、ワークロード警告根本原因がCI/CD警告履歴118における近時の警告と照応するならば、ワークロード警告の、または、ワークロード警告およびCI/CD警告履歴118における警告の両方の警告スコアがエスカレーションされ、根本原因分析結果が、例えばgithub(R)上のCIに、例えばポストされることによって報告され得る。例えば、プロセス200は、code commitに基づいてgit commitに接続することができる。すなわち、警告に関係する情報は、CI/CD開発環境102のバージョン管理システムにおいて警告を生じさせていると決定されたソース・コードと関連付けられ得る。
【0020】
ワークロード警告と、静的分析中に発見された警告(CI/CD警告履歴118)との間の照応は、類似のログ・シーケンス(またはログ・グループ)に基づいて決定することができる。例えば、機械学習技術や、さらには、1対1(One2one)照合、シーケンス・アライメント、DNA比較などの技術を含み得る、照合技術を用いて、照応を決定することができる。例えば、照合は、開発段階中の静的試験結果、構成変更、git log、および構成警告ログと、試験および初期展開段階からのシーケンシャル・アプリケーション・ログ・データとを相関させるように訓練を受け、そのように相関させることを試行する、DNN(ディープ・ニューラル・ネットワーク)分類器によって行うことができる。これらは、次いで、ランタイム中の警告と時間的に照合され得る。214では、ユニット試験エラー・ハンドリング・ログが、ワークロード警告と照合され得る。実施形態は、近時の時間窓を使用して、204において収集されたアプリケーション・ログを調査することにより、そのような照合を行うことができる。次いで、206において、プロセス200は、問題となるシナリオの既知のログ・シグネチャとの照応を探索することができる。1つまたは複数のそのような照応が発見されると、ワークロード警告の重大度をエスカレーションさせ、または上昇させることができ、例えば、コードに結び付けることにより、報告可能である。すなわち、警告に関係する情報は、CI/CD開発環境102のバージョン管理システムにおいて警告を生じさせていると決定されたソース・コードと関連付けられ得る。さらに、展開後のステージにおいて発見された警告は、CI/CD試験中に収集された、構成変更に関する情報、または、構成変更に関する警告、あるいはその両方と照合され得る。
【0021】
本明細書において説明される実施形態に必然的に含まれるプロセスが実現され得る、コンピュータ・システム300の例示的なブロック図が、図3において示される。コンピュータ・システム300は、埋め込み型プロセッサ、システム・オン・チップ、パーソナル・コンピュータ、ワークステーション、サーバ・システム、および、ミニコンピュータもしくはメインフレーム・コンピュータなどの、1つもしくは複数のプログラムされる汎用コンピュータ・システムを使用して、または、分散型のネットワーク化されたコンピューティング環境において実現され得る。コンピュータ・システム300は、1つまたは複数のプロセッサ、CPU302A~302Nと、入出力回路304と、ネットワーク・アダプタ306と、メモリ308とを含み得る。CPU302A~302Nは、本通信システムおよび方法の機能を履行するために、プログラム命令を実行する。典型的には、CPU302A~302Nは、1つまたは複数のマイクロプロセッサである。図3は、複数個のプロセッサCPU302A~302Nがメモリ308、入出力回路304、およびネットワーク・アダプタ306などのシステム・リソースを共有する、単一のマルチ・プロセッサ・コンピュータ・システムとしてコンピュータ・システム300が実現される、一実施形態を例示する。しかしながら、本通信システムおよび方法は、さらには、シングル・プロセッサ・コンピュータ・システム、マルチ・プロセッサ・コンピュータ・システム、またはそれらの混合物であり得る、複数のネットワーク化されたコンピュータ・システムとしてコンピュータ・システム300が実現される、実施形態を含む。
【0022】
入出力回路304は、コンピュータ・システム300にデータを入力する、または、コンピュータ・システム300からデータを出力するための能力を提供する。例えば、入出力回路は、キーボード、マウス、タッチパッド、トラックボール、スキャナ、アナログ-デジタル変換器、その他などの入力デバイス、ビデオ・アダプタ、モニタ、プリンタ、その他などの出力デバイス、および、モデム、その他などの入出力デバイスを含み得る。ネットワーク・アダプタ306は、コンピュータ・システム300をネットワーク310とインターフェース接続する。ネットワーク310は、インターネットを含む、ただしそれに限定されない、任意の公衆または私設のLANまたはWANであり得る。
【0023】
メモリ308は、コンピュータ・システム300の機能を実施するための、CPU302A~302Nにより実行されるプログラム命令、ならびに、CPU302A~302Nにより使用および処理されるデータを記憶する。メモリ308は、例えば、インテグレーテッド・ドライブ・エレクトロニクス(IDE)インターフェース、または、エンハンストIDE(EIDE)もしくはウルトラ・ダイレクト・メモリ・アクセス(UDMA)などの、そのIDEインターフェースの変化形もしくは拡張、あるいは、スモール・コンピュータ・システム・インターフェース(SCSI)ベースのインターフェース、または、ファストSCSI、ワイドSCSI、ファスト・アンド・ワイドSCSI、その他などの、そのSCSIベースのインターフェースの変化形もしくは拡張、あるいは、シリアル・アドバンスト・テクノロジ・アタッチメント(SATA)、または、そのSATAの変化形もしくは拡張、あるいは、ファイバ・チャネル・アービトレーテッド・ループ(FC-AL)インターフェースを使用し得る、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、プログラマブル読み出し専用メモリ(PROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュ・メモリ、その他などの電子メモリ・デバイス、および、磁気ディスク・ドライブ、テープ・ドライブ、光学ディスク・ドライブ、その他などの電気機械メモリを含み得る。
【0024】
メモリ308の内容物は、コンピュータ・システム300が実施するようにプログラムされる機能に依存して変動し得る。図3において示される例において、上記で説明されたプロセスの実施形態についてのルーチンおよびデータを表す、例示的なメモリ内容物が示される。しかしながら、これらのルーチンは、それらのルーチンに関係付けられるメモリ内容物とともに、1つのシステムまたはデバイス上に含まれるのではないことがあり、むしろ、よく知られている工学考慮事項に基づいて、複数のシステムまたはデバイスの間で分散されることがあるということを、当業者は認識することになる。本システムおよび方法は、一切のそのような配置構成を含み得る。
【0025】
図3において示される例において、メモリ308は、コード・マージ・ルーチン314、静的試験ルーチン316、ビルド・ルーチン318、動的試験ルーチン320、および展開ルーチン322を含み得るCI/CDルーチン312と、クラウド・ワークロード・モニタリング・ルーチン326、CI/CDインサイト・データ328を含み得るクラウド本番展開324と、オペレーティング・システム330とを含み得る。CI/CDルーチン312は、上記で説明されたような、図1において示されるCI/CD開発環境102を実現するためのソフトウェア・ルーチンを含み得る。コード・マージ・ルーチン314は、上記で説明されたような、バージョン管理のもとにあるソフトウェア・ソース・コード・ファイルに対してなされる複数個の変更を調停する動作である、コード・マージング(さらにはインテグレーションと呼ばれる)を実施するためのソフトウェア・ルーチンを含み得る。静的試験ルーチン316は、上記で説明されたような、プログラムを実際に実行することのない、コンピュータ・ソフトウェアの試験および分析を実施するためのソフトウェア・ルーチンを含み得る。ビルド・ルーチン318は、上記で説明されたような、実行され得るコードのセットを形成するための、オブジェクト・コードへのソース・コードのコンパイリング、オブジェクト・コードおよびライブラリ・オブジェクト・コードならびに他のソフトウェア・リソースのリンキング、その他を含む、完全なアプリケーションまたはソフトウェア・システムのビルディングを実施するためのソフトウェア・ルーチンを含み得る。動的試験ルーチン320は、上記で説明されたような、動作におけるソフトウェアの実際の挙動をモニタリングするために現実または仮想プロセッサ上でプログラムを実行することにより実施される、コンピュータ・ソフトウェアの分析を実施するためのソフトウェア・ルーチンを含み得る。展開ルーチン322は、上記で説明されたような、例えば、ソフトウェアが容易にインストールされることを可能とするインストレーション・パッケージの生成、および、ソフトウェア、動作のために要される関連付けられるソフトウェアのインストレーション、その他を含む、コンピュータ・ソフトウェアの展開を実施するためのソフトウェア・ルーチンを含み得る。クラウド本番展開324は、上記で説明されたように、コンピュータ・ソフトウェア・アプリケーションおよびシステムの、活動中すなわち本番動作のための環境を提供するためのソフトウェア・ルーチンを含み得、ユーザ(人々、クライアント・コンピュータ、他のサーバ、その他)が直接的に相互作用し得る環境を提供し得る。クラウド・ワークロード・モニタリング・ルーチン326は、上記で説明されたように、クラウド本番展開における展開されるソフトウェアの動作およびワークロード・パラメータをモニタリングすることを実施するためのソフトウェア・ルーチンを含み得、モニタリングされる動作に基づいて警告を生成し得る。CI/CDインサイト・データ328は、上記で説明されたように、警告履歴などの、CI/CD開発環境102から取得される、展開されるソフトウェアの動作に関する情報を含み得、展開されるソフトウェア、クラウド本番展開の動作に関する増された情報を提供するために利用され得る。オペレーティング・システム330は、総体的なシステム機能性を提供し得る。
【0026】
図3において示されるように、本通信システムおよび方法は、マルチ・プロセッサ、マルチ・タスキング、マルチ・プロセス、またはマルチ・スレッド・コンピューティング、あるいはその組合せを提供する、1つまたは複数のシステム上での実現形態、および、シングル・プロセッサ、シングル・スレッド・コンピューティングのみを提供するシステム上での実現形態を含み得る。マルチ・プロセッサ・コンピューティングは、2つ以上のプロセッサを使用してコンピューティングを実施することを必然的に含む。マルチ・タスキング・コンピューティングは、2つ以上のオペレーティング・システム・タスクを使用してコンピューティングを実施することを必然的に含む。タスクは、オペレーティング・システムにより実行されているプログラム、および、使用されるブックキーピング情報の組合せを指すオペレーティング・システム概念である。プログラムが実行されるときはいつも、オペレーティング・システムは、そのプログラムのために新しいタスクを作成する。タスクは、そのタスクが、タスク番号によってプログラムを識別し、他のブックキーピング情報をそのプログラムに付属させるという点において、プログラムのためのエンベロープのようなものである。多くのオペレーティング・システムは、多くのタスクを同時に走らせる能力をもち、マルチタスキング・オペレーティング・システムと呼ばれる。マルチ・タスキングは、2つ以上の実行可能ファイルを同時に実行するためのオペレーティング・システムの実力である。各実行可能ファイルは、その実行可能ファイル自体のアドレス空間内で走っており、そのことは、実行可能ファイルが、それらの実行可能ファイルのメモリのいずれも共有する手立てを有さないということを意味する。このことは利点を有し、なぜならば、いかなるプログラムも、システム上で走る他のプログラムのいずれかの実行に損害を及ぼすことは不可能であるからである。しかしながら、プログラムは、オペレーティング・システムを通す(または、ファイル・システム上に記憶されるファイルを読み出すことによる)ということを除いて、いかなる情報も交換する手立てを有さない。マルチ・プロセス・コンピューティングは、用語タスクおよびプロセスがしばしば互換的に使用されるので、マルチ・タスキング・コンピューティングと類似であるが、一部のオペレーティング・システムは、それら2つの間で区別をつける。
【0027】
本発明は、統合の任意の可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、本発明の態様を履行することをプロセッサに行わせるためのコンピュータ可読プログラム命令を有する、コンピュータ可読ストレージ媒体(または複数の媒体)を含み得る。コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および記憶し得る有形デバイスであり得る。
【0028】
コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または、前述の任意の適した組合せであり得、ただしそれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的な列挙は、後に続くもの:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック(R)、フロッピ(R)・ディスク、記録された命令を有するパンチ・カードまたは溝内の隆起構造などの機械的にエンコードされたデバイス、および、前述の任意の適した組合せを含む。本明細書において使用される際のコンピュータ可読ストレージ媒体は、本質的には、無線波もしくは他の自由伝搬する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば、光学ファイバ・ケーブルを通って進む光パルス)、または、電線を通して伝送される電気信号などの一過性信号であると解釈されるべきではない。
【0029】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを介して、外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光学伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイスの中のコンピュータ可読ストレージ媒体内での記憶のために、コンピュータ可読プログラム命令を転送する。
【0030】
本発明の動作を履行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態セッティング・データ、集積回路のための構成データ、または、Smalltalk(R)、C++、もしくは類するものなどのオブジェクト指向プログラミング言語、および、「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せにおいて書き表される、ソース・コードもしくはオブジェクト・コードのいずれかであり得る。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アローン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上、および、部分的にリモート・コンピュータ上で、または、全体的にリモート・コンピュータもしくはサーバ上で実行され得る。最後のもののシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続され得、または、接続は、外部コンピュータに対して(例えば、インターネット・サービス・プロバイダを使用して、インターネットを通して)なされ得る。一部の実施形態において、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、電子回路をパーソナライズするために、コンピュータ可読プログラム命令の状態情報を利用することにより、コンピュータ可読プログラム命令を実行し得る。
【0031】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して、本明細書において説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、および、フローチャート図またはブロック図あるいはその両方におけるブロックの組合せが、コンピュータ可読プログラム命令により実現され得るということが理解されることになる。
【0032】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実現するための手段を作り出すように、マシンを生み出すために、汎用コンピュータ、専用コンピュータ、または、他のプログラマブル・データ処理装置のプロセッサに提供され得る。これらのコンピュータ可読プログラム命令は、さらには、記憶された命令を有するコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為の態様を実現する命令を含む製造品の構成物となるように、個別の様式において機能するように、コンピュータ、プログラマブル・データ処理装置、または、他のデバイス、あるいはその組合せに指図し得る、コンピュータ可読ストレージ媒体内に記憶され得る。
【0033】
コンピュータ可読プログラム命令は、さらには、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実現するように、一連の動作ステップが、コンピュータで実現されるプロセスを生み出すように、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実施されることを生じさせるために、コンピュータ、他のプログラマブル・データ処理装置、または、他のデバイス上へとロードされ得る。
【0034】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実現形態のアーキテクチャ、機能性、および動作を例示する。この点について、フローチャートまたはブロック図における各ブロックは、指定される論理機能を実現するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部分を表し得る。一部の代替的実現形態において、ブロックにおいて記される機能は、図において記される順序を外れて現れ得る。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行され得、または、ブロックは、時には、必然的に含まれる機能性に依存して、逆の順序において実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、および、ブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定される機能もしくは行為を実施する、または、専用ハードウェアおよびコンピュータ命令の組合せを履行する、専用ハードウェア・ベースのシステムにより実現され得るということが、さらには指摘されることになる。
【0035】
本発明の特定の実施形態が説明されたが、説明された実施形態と均等である他の実施形態が存在するということが、当業者により理解されることになる。よって、本発明は、特定の例示された実施形態によってではなく、添付の特許請求の範囲によってのみで限定されるべきであるということが理解されるべきである。
図1
図2
図3
【手続補正書】
【提出日】2023-05-11
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサと、前記プロセッサによりアクセス可能なメモリと、前記メモリ内に記憶され前記プロセッサにより実行可能なコンピュータ・プログラム命令とを含むコンピュータ・システムで実現される方法であって、
ソフトウェア・システムに関係する第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの開発中に生成することと、
前記ソフトウェア・システムに関係する第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの展開後の動作中に生成することと、
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき1つまたは複数の性能およびセキュリティ警告を決定することと、
エスカレーションされた性能およびセキュリティ警告を報告することと
を含む、方法。
【請求項2】
前記ソフトウェア・システムに関係する前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記開発中に生成することは、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの静的および動的試験を実施することにより、1つまたは複数の生成された警告の履歴を収集すること、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のサブシステムの第1の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のアプリケーション・ログを生成すること、ならびに、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のユニットの第2の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のエラー・ハンドリング・ログを生成すること
のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記ソフトウェア・システムにおけるルーチンどうしの間の1つまたは複数のコーリング関係性を表す1つまたは複数の生成されたコール・グラフを使用して、前記1つまたは複数の生成された警告の各々を中間ログ・シーケンスと関連付けることをさらに含む、請求項2に記載の方法。
【請求項4】
前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、前記ソフトウェアの前記展開後の動作をモニタリングし、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告を収集することを含む、請求項3に記載の方法。
【請求項5】
前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、1つまたは複数の構成変更に関する情報、および、前記1つまたは複数の構成変更に関する1つまたは複数の生み出された警告のうちの少なくとも1つを収集することを含み、前記照合することは、前記1つまたは複数の構成変更、および、前記1つまたは複数の構成変更に関する前記1つまたは複数の生み出された警告のうちの少なくとも1つに関する前記収集された情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき性能ならびに前記1つまたは複数の性能およびセキュリティ警告を決定することを含む、請求項4に記載の方法。
【請求項6】
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することは、
前記静的および動的試験中に生成された警告の前記履歴を使用して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の根本原因を決定することと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因が、前記静的および動的試験中に生成された前記警告の履歴中の近時の警告と照応することに応答して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告をエスカレーションすること、または、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告と、前記静的および動的試験中に生成された前記警告履歴中の前記警告の両方をエスカレーションすることと
を含む、請求項4に記載の方法。
【請求項7】
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき前記1つまたは複数の性能およびセキュリティ警告を決定することは、
1つまたは複数の類似のログ・シーケンス、および、1つまたは複数のログ・グループのうちの少なくとも1つに基づき、且つ、1つまたは複数の機械学習技術を使用して実施される、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因を前記警告履歴中の前記近時の警告と照合することと、
近時の時間窓を使用して前記1つまたは複数のアプリケーション・ログを調査することにより、前記静的および動的試験中に生成される警告の1つまたは複数のユニット試験エラー・ハンドリング・ログを、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告と照合し、問題の既知のログ・シグネチャとの1つまたは複数の照応を探索し、少なくとも1つの照応が発見されると、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された前記警告の重大度をエスカレーションすることと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記1つまたは複数の警告に関係する情報を、前記静的および動的試験中に生成された前記1つまたは複数の警告を生じさせるソース・コードと関連付けることと
をさらに含む、請求項6に記載の方法。
【請求項8】
システムであって、プロセッサと、前記プロセッサによりアクセス可能なメモリと、コンピュータ・プログラム命令であって、前記メモリ内に記憶され、前記プロセッサにより、
ソフトウェア・システムに関係する第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの開発中に生成することと、
前記ソフトウェア・システムに関係する第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの展開後の動作中に生成することと、
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき1つまたは複数の性能およびセキュリティ警告を決定することと、
エスカレーションされた性能およびセキュリティ警告を報告することと
を実施するように実行可能な、前記コンピュータ・プログラム命令とを含む、システム。
【請求項9】
プログラム命令が具現化された非一過性コンピュータ可読ストレージを含むコンピュータ・プログラムであって、前記プログラム命令は、コンピュータにより実行可能であり、前記コンピュータに、
ソフトウェア・システムに関係する第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの開発中に生成することと、
前記ソフトウェア・システムに関係する第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの展開後の動作中に生成することと、
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき1つまたは複数の性能およびセキュリティ警告を決定することと、
エスカレーションされた性能およびセキュリティ警告を報告することと
を含む方法を実施させる、コンピュータ・プログラム。
【国際調査報告】