JP5639725B2 - ソフトウェアの信頼性を測定する方法及び装置 - Google Patents

ソフトウェアの信頼性を測定する方法及び装置 Download PDF

Info

Publication number
JP5639725B2
JP5639725B2 JP2014056740A JP2014056740A JP5639725B2 JP 5639725 B2 JP5639725 B2 JP 5639725B2 JP 2014056740 A JP2014056740 A JP 2014056740A JP 2014056740 A JP2014056740 A JP 2014056740A JP 5639725 B2 JP5639725 B2 JP 5639725B2
Authority
JP
Japan
Prior art keywords
computer
file
files
software
spreading factor
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
JP2014056740A
Other languages
English (en)
Other versions
JP2014149844A (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.)
NortonLifeLock Inc
Original Assignee
Symantec 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 Symantec Corp filed Critical Symantec Corp
Publication of JP2014149844A publication Critical patent/JP2014149844A/ja
Application granted granted Critical
Publication of JP5639725B2 publication Critical patent/JP5639725B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Description

[0001]本発明は、一般に、コンピュータシステムに関する。特に、本発明は、ソフトウェアの信頼性を測定する方法及び装置に関する。
[0002]消費者及び企業は、機密データを格納するためにコンピュータをますます頼りにしている。したがって、悪意のあるプログラマは、他者のコンピュータ及び機密データに対する不法な支配及びアクセスを得るための活動を頻繁に増やしているように見える。そのような悪意のあるプログラマは、他者の所有物であるコンピュータシステム及び機密データを危険にさらすことが意図されたウィルス、トロイの木馬、ワーム、及び、同様のタイプのプログラムを作り出し続けている。これらの悪意のあるプログラムは、大抵は一般に「マルウェア」と称される。
[0003]セキュリティソフトウェア企業は、アンチ・ウィルス、アンチ・スパイウェア、又は、他のタイプのアンチ・マルウェア製品等の様々なクライアントセキュリティ製品の開発により、高まりつつあるマルウェアの風潮に対抗している。しかしながら、いくつかのアンチ・マルウェア製品は、様々な評価ルールを使用してあらゆるアクセスについてファイル及び他のサブシステムを監視及び解析するように構成されているため、クライアントコンピュータのパフォーマンスに影響を与える。いくつかのアンチ・マルウェア製品は、アクセスされたファイル及びサブシステムについての解析の結果をキャッシュすることがあるが、そのような結果は、評価ルールが変えられた場合には無効にされる。例えば、いくつかのアンチ・ウィルス製品において、アンチ・ウィルスシグネチャーが変化した場合には、以前の評価結果は無効とされる。これは、各ファイル/サブシステムのアクセスが再度解析されることから、クライアントコンピュータのパフォーマンス低下をもたらす。問題は、アンチ・マルウェア製品が通常はマルウェアを有しないコンピュータ上の公知の不良ファイルを探すという事実によってさらに悪化する。したがって、アンチ・マルウェアプログラムは、コンピュータのパフォーマンスを低下させることがあり、大抵のコンピュータシステム及びユーザにとってほとんど利益にならない。
[0004]したがって、クライアントコンピュータにおけるパフォーマンスインパクトを軽減するとともに、ソフトウェアの信頼性を解明する必要が技術的に存在する。
[0005]本発明の態様は、ソフトウェアの信頼性を測定する方法、装置、及び、コンピュータ読み取り可能な媒体に関する。いくつかの実施形態において、信頼性が不明な少なくとも1つのファイルを含むものと識別されたソフトウェアパッケージがクリーンマシンにインストールされる。ソフトウェアパッケージによってクリーンマシンにおいてインストールされた又は変更されたファイルのカタログを含むレポートパッケージが生成される。カタログにおけるファイルのそれぞれについての識別属性が測定される。カタログにおけるファイルのそれぞれは、それらに対して信頼性のレベルを割り当てるように処理される。レポートパッケージは、出力として提供される。
[0006]本発明の上記列挙された特徴が詳細に理解され得るように、上記に簡潔に要約された本発明のより詳細な説明が、そのいくつかが添付された図面において図示される実施形態への言及によってなされる。しかしながら、留意すべきは、添付された図面が、本発明の代表的な実施形態のみを図示しており、したがって、本発明が他の均等な有効な実施形態を認めてもよいことから、その範囲に限定して考慮されるべきではないということである。
本発明の1つ以上の態様に係るコンピュータシステムの例としての実施形態を描いているブロック図である。 本発明のいくつかの実施形態に係るサーバコンピュータを描いているブロック図である。 本発明のいくつかの実施形態に係る検査コンピュータを描いているブロック図である。 本発明の1つ以上の態様に係るソフトウェアの信頼性を測定する方法を描いているフローチャートである。 本発明のいくつかの実施形態に係る検査対象のソフトウェアパッケージを識別する方法を描いているフローチャートである。 本発明のいくつかの実施形態に係る検査対象のソフトウェアパッケージを識別する方法を描いているフローチャートである。 本発明のいくつかの実施形態に係る監視コンピュータを描いているブロック図である。
[0014]図1は、本発明の1つ以上の態様に係るコンピュータシステム100の例としての実施形態を描いているブロック図である。システム100は、クライアントコンピュータ102と、ネットワーク104と、サーバコンピュータ106と、検査コンピュータ108と、データベース110とを含む。いくつかの実施形態において、システム100はまた、監視コンピュータ109を含んでもよい。ネットワーク104は、ハブ、スイッチ、ルータ等の様々なタイプの周知のネットワーク要素によって容易とされるワイヤ、ケーブル、光ファイバ、及び/又は、無線リンクによってコンピュータシステムを接続する通信システムを備える。特に、ネットワーク104は、クライアントコンピュータ102及びサーバコンピュータ106を接続する。ネットワーク104は、情報を通信するために様々な周知のプロトコルを使用してもよい。例えば、ネットワーク104は、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、及び、パケットを伝送するための同類のものを使用してもよい。ネットワーク104は、インターネット等の広域通信網(WAN)の一部、及び/又は、構内通信網(LAN)の全部もしくは一部を構成してもよい。
[0015]クライアントコンピュータ102のそれぞれは、ソフトウェア112及びエージェント113を含む。コンピュータ102は、ソフトウェア112を実行してエージェント113を実装することができる任意のタイプの計算装置を備えてもよい。ソフトウェア112は、1つ以上のオペレーティング・システムを含み、1つ以上のアプリケーションプログラムをさらに含んでもよい。エージェント113は、マルウェアを検出するためにソフトウェア112を監視するように各コンピュータ102によって実行可能なソフトウェアを備えてもよい。エージェント113は、クライアントコンピュータのパフォーマンスを改善するために「ホワイトリスト」を使用するように構成されている。エージェント113は、ソフトウェア112における関心のあるファイルが信頼できるとみなされるかどうかを測定するためにサーバコンピュータ106によって実装されたバックエンド124と協働する。エージェント113は、ホワイトリスト上で信頼され得るファイルを含む。ホワイトリスト上の所定のファイルが変えられていない場合には、エージェント113は、そのようなファイルを監視しない。一般に、ソフトウェア112における数多くのファイルは、正当であり、バックエンド124によって信頼されたとみなされる。さらに、そのようなファイルは、頻繁には変化しない。そのようなものとして、エージェント113によって監視されるソフトウェア112におけるファイルの個数は低減され、これにより、クライアントコンピュータのパフォーマンスを改善する。ソフトウェアの信頼性の測定の実施形態が以下に記載される。
[0016]サーバコンピュータ106は、バックエンド124を実装するように構成されている。図2は、本発明のいくつかの実施形態に係るサーバコンピュータ106を描いているブロック図である。サーバコンピュータ106は、実例的に、プロセッサ202と、メモリ204と、様々なサポート回路206と、I/Oインターフェース208とを含む。プロセッサ202は、当技術分野で知られている1つ以上のマイクロプロセッサを含んでもよい。プロセッサ202用のサポート回路206は、従来のキャッシュ、電源、クロック回路、データレジスタ、及び、I/Oインターフェース等を含む。I/Oインターフェース208は、ネットワーク104及びデータベース110との通信用に構成されてもよい。メモリ204は、1つ以上の以下のランダムアクセスメモリ、読み出し専用メモリ、磁気抵抗読み出し/書き込みメモリ、光読み出し/書き込みメモリ、キャッシュメモリ、及び、磁気読み出し/書き込みメモリ等を含む。
[0017]いくつかの実施形態において、バックエンド124は、本明細書に記載された機能を実行するようにメモリ204に格納され且つプロセッサ202によって実行されるソフトウェアを使用して実装されてもよい。しかしながら、バックエンド124が特定用途向け集積回路(ASIC)等の固有に構成されたハードウェアを使用して実装されてもよいことはいうまでもない。他の実施形態において、バックエンド124は、固有に構成されたハードウェアとソフトウェアとの組み合わせを使用して実装されてもよい。
[0018]図1に戻ると、バックエンド124は、関心のあるファイルが信頼でき、したがってホワイトリストに載っているかどうかを測定するように、クライアントコンピュータ102のそれぞれにおけるエージェント113と協働するように構成されている。特に、バックエンド124は、関心のある特定ファイルの信頼性レベルについてのエージェント113による問い合わせを提供するように構成されている。問い合わせは、関心のあるファイルに関連する識別情報を含んでもよい。いくつかの実施形態において、識別情報は、関心のある各ファイルについての要約を含む。要約は、ハッシュ等のファイル識別子であってもよい。ハッシュは、ハッシュ関数(例えば、任意長のデータストリームの入力をとり、所定の固定サイズの値を有する出力を作り出す関数)を使用して計算された値、コード、サム、又は、他のデータであってもよい。ハッシュ関数は、巡回冗長検査(CRC)ハッシュ関数、暗号学的ハッシュ関数(例えばメッセージ要約アルゴリズム5(MD5)ハッシュ関数)、セキュアハッシュアルゴリズム(SHA)ハッシュ関数等であってもよい。例としてのSHAハッシュ関数は、SHA−0、SHA−1、SHA−2、SHA−256、及び、SHA−512ハッシュ関数を含む。他の周知の又は独占所有権のあるハッシュアルゴリズムがまた、ファイルの要約を測定するために使用されてもよいことはいうまでもない。いくつかの実施形態において、識別情報はまた、ファイル名、規格化したファイルパス、ファイルサイズ等の他のファイル属性を含んでもよい。
[0019]データベース110は、様々なファイルについての信頼性情報を格納するように構成されている。データベース110は、ファイル識別情報を信頼性のレベルと関連付けるリレーショナルデータベース等を備えてもよい。例えば、データベース110は、ファイル要約と信頼性の各レベルとの間の関係を格納してもよい。いくつかの実施形態において、信頼性の各レベルは、複数のレベルから選択される。例えば、ファイルには、プロバイダ信頼、コミュニティ信頼、不信頼、又は、不明から選択された信頼性レベルが割り当てられてもよい。「プロバイダ信頼」は、バックエンド124のプロバイダがファイルを信頼していることを示している。「コミュニティ信頼」は、ユーザのコミュニティがファイルを信頼していることを示している。「不明」は、ファイルが信頼できるかもしれず、又は信頼できないかもしれないことを示している。「不信頼」は、ファイルが信頼されるべきではなくマルウェアであり得ることを示している。バックエンド124は、データベース110に問い合わせるためにファイルについて受信した識別情報を使用し、ファイルについての各信頼性レベルを取得する。データベース110は、サーバコンピュータ106のリソース(例えば図2におけるメモリ204)を使用して実装されてもよい。あるいは、データベース110は、1つ以上の別個の格納装置及び/又はサーバコンピュータを使用して実装されてもよい。
[0020]検査コンピュータ108は、ソフトウェアパッケージを検査してファイルに対して信頼性のレベルを割り当てるために使用される。検査コンピュータ108は、検査部114を実装するように構成されている。図3は、本発明のいくつかの実施形態に係る検査コンピュータ108を描いているブロック図である。検査コンピュータ108は、実例的に、プロセッサ302と、メモリ304と、様々なサポート回路306と、I/Oインターフェース308とを含む。プロセッサ302は、当技術分野で知られている1つ以上のマイクロプロセッサを含んでもよい。プロセッサ302用のサポート回路306は、従来のキャッシュ、電源、クロック回路、データレジスタ、及び、I/Oインターフェース等を含む。メモリ304は、1つ以上の以下のランダムアクセスメモリ、読み出し専用メモリ、磁気抵抗読み出し/書き込みメモリ、光読み出し/書き込みメモリ、キャッシュメモリ、及び、磁気読み出し/書き込みメモリ等を含んでもよい。
[0021]いくつかの実施形態において、検査部114は、本願明細書に記載された機能を実行するようにメモリ304に格納され且つプロセッサ302によって実行されるソフトウェアを使用して実装されてもよい。しかしながら、検査部114が特定用途向け集積回路(ASIC)等の固有に構成されたハードウェアを使用して実装されてもよいことはいうまでもない。他の実施形態において、検査部114は、固有に構成されたハードウェアとソフトウェアとの組み合わせを使用して実装されてもよい。
[0022]図1に戻ると、検査部114は、ソフトウェアパッケージにおけるファイルについての信頼性のレベルを測定するように構成されている。図4は、本発明の1つ以上の態様に係るソフトウェアの信頼性を測定する方法400を描いているフローチャートである。本方法400の実施形態は、図1において示されたコンピュータシステム100を参照して理解される。本方法400は、ステップ402において開始し、検査部114がクリーンマシン118に信頼性が不明な1つ以上のファイルを含むものと識別されたソフトウェアパッケージ116をインストールする。いくつかの実施形態において、クリーンマシン118は、検査コンピュータ108上で実行するVMWARE仮想マシン等の仮想マシンを備える。クリーンマシン118は、オペレーティング・システム以外の他のソフトウェアパッケージがインストールされていないという点で「きれい」である。ソフトウェアパッケージ116がオペレーティング・システムである場合には、ソフトウェアは、クリーンマシン118に全く存在しない(例えば、クリーンマシンが検査コンピュータ108における仮想マシンである場合には、仮想マシンイメージは、オペレーティング・システムが検査されるとして生成されてもよい)。仮想マシンよりもむしろ、クリーンマシン118がハードウェア(例えば、検査コンピュータ108又は検査コンピュータ108に接続された他のコンピュータにおけるハードウェア)を使用して実装されてもよいことはいうまでもない。
[0023]いくつかの実施形態において、ソフトウェアパッケージ116は、サーバコンピュータ106からの出力を使用して識別される。図5は、本発明のいくつかの実施形態に係る検査対象のソフトウェアパッケージを識別する方法500を描いているフローチャートである。本方法500の実施形態は、図1を参照して理解される。本方法500は、ステップ502において開始し、バックエンド124がクライアントコンピュータ102に格納された関心のあるファイルについての識別情報を受信する。識別情報の実施形態は、上述した通りである。ステップ504において、バックエンド124は、クライアントコンピュータ102の間の拡散率(prevalence)によって順序付けられた信頼性が不明なファイルのリストを生成する。いくつかの実施形態において、バックエンド124は、ステップ502において受信した識別情報を使用してファイルの拡散率を測定する。例えば、識別情報は、所定のファイルについての信頼性レベルがリクエストされたクライアントコンピュータ102の台数を示す。信頼性のレベルがより多くのクライアントコンピュータ102によってリクエストされたファイルには、より高い拡散率が割り当てられる。信頼性のレベルがより少ないクライアントコンピュータ102によってリクエストされたファイルには、より低い拡散率が割り当てられる。いくつかの実施形態において、バックエンド124は、拡散率を測定するためにステップ502からの識別情報の代わりに又はそれと組み合わせて他の外部情報506を使用してもよい。外部情報506は、例えば、それらのソフトウェアパッケージの拡散率に関するソフトウェア発行元からの情報を含んでもよい。
[0024]ステップ508において、バックエンド124は、拡散率の閾値があればそれを超えない拡散率を有するそれらのファイルをリストから除去する。例えば、信頼レベルが数台のクライアントコンピュータ102のみによってリクエストされたファイルの個数であってもよい。拡散率の閾値は、ファイルの検査が始まる前に特定台数のクライアントコンピュータのリクエストが必要とされるように設定されてもよい。ステップ510において、バックエンド124は、検査対象のファイルのレポート120を出力する。レポート120は、検査対象のファイルを含む1つ以上のソフトウェアパッケージを識別するために管理者又はユーザによって使用されてもよい。管理者又はユーザは、ソフトウェアパッケージを取得してそれらを格納してもよく、又は、それらを検査コンピュータ108に供給してもよい(例えばソフトウェアパッケージ116)。
[0025]図4のステップ402に戻ると、いくつかの実施形態において、ソフトウェアパッケージ116は、自動的に識別される。図6は、本発明のいくつかの実施形態に係る検査対象のソフトウェアパッケージを識別する方法600を描いているフローチャートである。本方法600の実施形態は、図1を参照して理解される。図1において示されているように、システム100は、ソフトウェアパッケージモニタ130に構成された監視コンピュータ109を含んでもよい。ソフトウェアパッケージモニタ130は、検査対象のソフトウェアパッケージを自動的に識別するために本方法600を実行してもよい。
[0026]図7は、本発明のいくつかの実施形態に係る監視コンピュータ109を描いているブロック図である。監視コンピュータ109は、実例的に、プロセッサ702と、メモリ704と、様々なサポート回路706と、I/Oインターフェース708とを含む。プロセッサ702は、当技術分野で知られている1つ以上のマイクロプロセッサを含んでもよい。プロセッサ702用のサポート回路706は、従来のキャッシュ、電源、クロック回路、データレジスタ、及び、I/Oインターフェース等を含む。I/Oインターフェース708は、ネットワーク104との通信用に構成されてもよい。I/Oインターフェース708はまた、検査コンピュータ108との通信用に構成されてもよい。メモリ704は、1つ以上の以下のランダムアクセスメモリ、読み出し専用メモリ、磁気抵抗読み出し/書き込みメモリ、光読み出し/書き込みメモリ、キャッシュメモリ、及び、磁気読み出し/書き込みメモリ等を含んでもよい。
[0027]いくつかの実施形態において、ソフトウェアパッケージモニタ130は、本願明細書に記載された機能を実行するようにメモリ704に格納され且つプロセッサ702によって実行されるソフトウェアを使用して実装されてもよい。しかしながら、ソフトウェアパッケージモニタ130が特定用途向け集積回路(ASIC)等の固有に構成されたハードウェアを使用して実装されてもよいことはいうまでもない。他の実施形態において、ソフトウェアパッケージモニタ130は、固有に構成されたハードウェアとソフトウェアとの組み合わせを使用して実装されてもよい。
[0028]図1及び図6に戻ると、本方法600は、ステップ602において開始し、ソフトウェアパッケージモニタ130がソフトウェアの信頼できる供給源であるものと示されたベンダーのウェブサイトを監視する。例えば、オペレーティング・システム及び他の周知で人気があるソフトウェアパッケージのベンダーは、ソフトウェアの信頼できる供給源とみなされてもよい。そのようなベンダーは、インターネット上の特定の発行ポイントにおいて新規のソフトウェアパッケージ及び/又は現在のソフトウェアパッケージの更新を公開することがある(留意すべきは、更新は、本記載のためにソフトウェアパッケージであると考えられるということである)。例えば、オペレーティング・システム又は他のアプリケーションのベンダーは、オペレーティング・システム又はアプリケーションについての定期的な更新を提供するウェブサイトをメンテナンスすることがある。ソフトウェアパッケージモニタ130は、検査されていないソフトウェアパッケージを検出するために、そのようなウェブサイトを監視するように構成されてもよい。ステップ604において、ソフトウェアパッケージモニタ130は、検査コンピュータ108にロードするために未検査のソフトウェアパッケージを取得する。例えば、ソフトウェアパッケージモニタ130は、ネットワーク104を介して未検査のソフトウェアパッケージをダウンロードしてもよい。ソフトウェアパッケージモニタ130は、(監視コンピュータ109が検査コンピュータ108に接続されている場合には)未検査のソフトウェアパッケージを直接検査コンピュータ109に送信してもよい。あるいは、管理者又はユーザは、監視コンピュータ109からダウンロードされたソフトウェアパッケージを取り出し、それらを検査コンピュータ108にロードしてもよい。
[0029]図1のステップ402に戻ると、1つの実施形態において、ソフトウェアパッケージ116のインストールは、以下のように開始する。すなわち、ステップ404において、検査部114は、ソフトウェアパッケージ116のインストールに先だって、クリーンマシン118のソフトウェア状態の第1のスナップショットを取得する。例えば、ソフトウェアパッケージ116がアプリケーションである場合には、第1のスナップショットにおけるソフトウェア状態は、アプリケーションがインストールされる前のオペレーティング・システムの状態であってもよい。ソフトウェアパッケージ116がオペレーティング・システムである場合には、ソフトウェア状態は、空であってもよい(すなわち、ソフトウェア状態がない)。ステップ406において、検査部114は、ソフトウェアパッケージ116のインストール後に、クリーンマシン118のソフトウェア状態の第2のスナップショットを取得する。第2のスナップショットは、ソフトウェアパッケージ116のインストールによってインストールされた及び/又は変更されたファイルに起因して、第1のスナップショットとは異なる。
[0030]ステップ408において、検査部114は、ソフトウェアパッケージ116のインストールに基づいてレポートパッケージ135を生成する。レポートパッケージ135は、ソフトウェアパッケージ116によってクリーンマシン118にインストールされた及び/又は変更されたファイルのカタログを含む。いくつかの実施形態において、検査部114は、ステップ404及びステップ406において生成された第1及び第2のスナップショットを比較(例えばスナップショットの前後)することにより、インストールされた及び/又は変更されたファイルのカタログを生成してもよい(ステップ410)。レポートパッケージ135は、バージョン情報や製品ベンダー等のソフトウェアパッケージ116に関連する他の情報を含んでもよい。レポートパッケージ135はまた、ソフトウェアパッケージ116によってインストールされた及び/又は変更されたファイルのバイナリーを含んでもよい。
[0031]ステップ412において、検査部114は、レポートパッケージ135のカタログにおける各ファイルの識別属性を測定する。識別属性は、クライアントコンピュータ102から受信したファイル識別データ、すなわち、要約(例えばSHA−2ハッシュ)、ファイル名、規格化したファイルパス、ファイルサイズ、関連するソフトウェアパッケージ、バージョン情報、及び、ディジタル署名等と同一又は類似であってもよい。
[0032]ステップ414において、検査部114は、ファイルのそれぞれに対して信頼性のレベルを割り当てるように、レポートパッケージ135のカタログにおけるファイルのそれぞれを処理する。信頼性レベルは、様々な方法及び情報を使用して所定ファイルに割り当てられてもよい。いくつかの実施形態において、検査部114は、マルウェアについてのカタログにおけるファイルのそれぞれをスキャンする(ステップ416)。マルウェアについてのファイルをスキャンする技術は、当技術分野で知られている。マルウェアであるものと示されたファイルには、「不信頼」のレベルが割り当てられる。いくつかの実施形態において、検査部114は、レポートパッケージ135のカタログにおける1つ以上のファイルについてのディジタル署名を解析する(ステップ418)。ソフトウェアパッケージ116によってインストールされたいくつかのファイルは、ベンダーによってディジタル的に署名されてもよい。ディジタル署名が検証され得た場合には、各ファイルには、「プロバイダ信頼」又は「コミュニティ信頼」のレベルが割り当てられ得る。いくつかの実施形態において、検査部114は、カタログにおけるファイルの起源を測定し、そのような起源の信頼性の大きさを取得する(ステップ420)。例えば、検査部114は、ファイルのベンダーを識別し、公知のベンダー及び対応する信頼のレベルのリストに対するベンダーを相互参照してもよい。ベンダーには、例えば、「プロバイダ信頼」、「コミュニティ信頼」、「不信頼」、又は、「不明」の間の異なる信頼のレベルが割り当てられてもよい。いくつかの実施形態において、検査部114は、カタログにおけるファイルの統計的解析を実行する(ステップ422)。例えば、検査コンピュータ108は、上述したようにクライアントコンピュータ102によってレポートされた識別情報ファイルを格納してもよいデータベース110との通信用に構成されてもよい。いくつかの実施形態において、データベース110はまた、特定のクライアントコンピュータ102が、多かれ少なかれ、マルウェアによって影響を及ぼされそうであるかどうかを示す「ウィルス予防策評価」等を含むクライアントコンピュータ102についての統計値を保持する。検査部114は、クライアントコンピュータ102上のファイル及びクライアントコンピュータ102についてのウィルス予防策評価の存在に関して、カタログにおけるファイルの統計的解析を実行してもよい。例えば、信頼性が不明のファイルが、悪いウィルス予防策評価(例えば平均して)でクライアントコンピュータ102に格納されることが知られている場合には、ファイルは、よりマルウェアでありそうであるとみなされてもよく、より低い信頼評価が割り当てられてもよい。逆に、信頼性が不明のファイルが、良好なウィルス予防策評価(例えば平均して)でクライアントコンピュータ102に格納されることが知られている場合には、ファイルは、よりマルウェアでなさそうであるとみなされてもよく、より高い信頼評価が割り当てられてもよい。いくつかの実施形態において、検査部114は、レポートパッケージ135のカタログにおけるファイルのそれぞれについての信頼性の全体レベルを測定するために、ステップ416からステップ422の組み合わせを実行する。一般に、ステップ414において測定された信頼のレベルは、レポートパッケージ135のカタログにおけるファイルのそれぞれについての属性として含まれてもよい。
[0033]ステップ424において、検査部114は、出力としてレポートパッケージ135を提供する。そして、レポートパッケージ135は、カタログにおけるファイル及びそれらの信頼性の各レベルに関してデータベース110を更新するために使用されてもよい。いくつかの実施形態において、レポートパッケージ135は、サーバコンピュータ106に対して自動的に提供され、データベース110を更新するようにバックエンド124によって処理されてもよい。あるいは、管理者又は他のユーザは、(例えば、サーバコンピュータ106又は他のコンピュータとの協働を介して)レポートパッケージ135に基づいてデータベース110の更新を開始することができる。
[0034]上述した本発明の実施形態において、サーバコンピュータ106、検査コンピュータ108、及び、監視コンピュータ109の例としての構造が記載されている。他の構造が使用されてもよいことはいうまでもない。一般に、バックエンド124、検査部114、及び、ソフトウェアパッケージモニタ130の機能は、1つ以上のコンピュータ/サーバによって実行されてもよい。いくつかの実施形態において、検査コンピュータ109は、ソフトウェアパッケージ116のインストールが、いくつかの外部影響によってデータを破損するという可能性を未然に防止するために、ネットワーク104及び/又は他のコンピュータから隔離される。
[0035]上述した方法の態様は、コンピュータシステムによって使用するためのプログラム製品として実装されてもよい。プログラム製品のプログラムは、実施形態の機能を定義し、これに限定されないが、(i)書き込み不可能な記憶媒体(例えば、CD−ROMドライブ又はDVDドライブによって読み取り可能なCD−ROM又はDVD−ROMディスク等のコンピュータ内の読み出し専用メモリ装置)に永久に格納された情報、及び、(ii)書き込み可能な記憶媒体(例えば、ディスクドライブ内のフロッピーディスク又はハードディスクドライブ又は読み出し/書き込み可能なCD又は読み出し/書き込み可能なDVD)に格納された可変情報を含む様々なコンピュータ読み取り可能な媒体に含まれ得る。そのようなコンピュータ読み取り可能な媒体は、本発明の機能を指示するコンピュータ読み取り可能な命令を伝える場合に、本発明の実施形態を表す。
[0036]様々な実施形態が上述された一方で、当然のことながら、それらは、例示としてのみ示されており、限定されるものではない。したがって、好ましい実施形態の広さ及び範囲は、いかなる上述した例としての実施形態によっても限定されるべきではなく、以下の特許請求の範囲及びそれらの均等物にしたがってのみ定義されるべきである。
100…コンピュータシステム、102…クライアントコンピュータ、104…ネットワーク、106…サーバコンピュータ、108…検査コンピュータ、109…監視コンピュータ、110…データベース、112…ソフトウェア、113…エージェント、114…検査部、116…ソフトウェアパッケージ、118…クリーンマシン、120…レポート、124…バックエンド、130…ソフトウェアパッケージモニタ、135…レポートパッケージ、202、302、702…プロセッサ、204、304、704…メモリ、206、306、706…サポート回路、208、308、708…I/Oインターフェース。

Claims (20)

  1. ソフトウェアの信頼性の解析を優先させる方法であって、
    少なくとも一つのサーバコンピュータが、クライアントコンピュータに格納された、信頼性が不明のファイルに関連する情報を受信するステップと、
    前記少なくとも一つのサーバコンピュータが、前記クライアントコンピュータに格納された前記ファイルのうちの少なくとも一つのファイルの拡散率を測定するステップと、
    前記少なくとも一つのサーバコンピュータが、前記ファイルに関連する情報から、前記拡散率が拡散率の閾値を下回る少なくとも一つのファイルに関連する情報を除去するステップと、
    前記少なくとも一つのサーバコンピュータが、前記測定された少なくとも一つのファイルの拡散率に基づいて、拡散率の検査対象となるファイルのリストを生成するステップと
    を含む方法。
  2. 前記検査対象となるファイルのリストが、前記拡散率の閾値を超える前記少なくとも一つのファイルの前記測定された拡散率に基づいて生成される、
    請求項1に記載の方法。
  3. 前記検査対象となるファイルのリストが、クライアントコンピュータからの、前記少なくとも一つのファイルの検査の要求の特定個数に基づいて生成される、
    請求項1に記載の方法。
  4. 前記検査対象となるファイルのリストが、前記少なくとも一つのファイルを含むソフトウェアパッケージの前記拡散率に関連するソフトウェア発行元からの情報に基づいて生成される、
    請求項1に記載の方法。
  5. 前記検査対象となるファイルのリストが、ソフトウェアを検査コンピュータに提供するためにユーザにより使用される、
    請求項1に記載の方法。
  6. 査対象のソフトウェアがソフトウェアパッケージモニタにより検査コンピュータ提供される、
    請求項1に記載の方法。
  7. 前記検査コンピュータが仮想マシンを備える、
    請求項6に記載の方法。
  8. 前記少なくとも一つのファイルを含むソフトウェアパッケージが、前記生成されたファイルのリスト中にリストされた、
    請求項1に記載の方法。
  9. 少なくとも一つの監視コンピュータが、ソフトウェアの信頼できる供給源であるものと示されたベンダーのウェブサイトを監視するステップと、
    前記少なくとも一つの監視コンピュータが、検査のために前記ウェブサイトからソフトウェアパッケージを識別するステップと
    をさらに含む請求項1に記載の方法。
  10. 前記少なくとも一つの監視コンピュータが、前記識別されたソフトウェアパッケージをダウンロードするステップと、
    前記少なくとも一つの監視コンピュータが、前記識別されたソフトウェアパッケージを検査コンピュータに提供するステップと
    をさらに含む請求項9に記載の方法。
  11. プロセッサにより実行された時に、該プロセッサに、ソフトウェアの信頼性の解析を優先させる方法を実行させる命令を記録する非一時的なコンピュータ読取り可能な記録媒体であって、
    前記方法が、
    ソフトウェアの信頼性の解析を優先させる方法であって、
    クライアントコンピュータに格納された、信頼性が不明のファイルに関連する情報を受信するステップと、
    少なくとも一つのコンピュータプロセッサを用いて、前記クライアントコンピュータに格納された前記ファイルのうちの少なくとも一つのファイルの拡散率を測定するステップと、
    前記ファイルに関連する情報から、前記拡散率が拡散率の閾値を下回る少なくとも一つのファイルに関連する情報を除去するステップと、
    前記測定された少なくとも一つのファイルの拡散率に基づいて、拡散率の検査対象となるファイルのリストを生成するステップと
    を含む、
    記録媒体。
  12. ソフトウェアの信頼性の解析を優先させる装置であって、
    クライアントコンピュータに格納された、信頼性が不明のファイルに関連する情報を受信し、
    少なくとも一つのコンピュータプロセッサを用いて、前記クライアントコンピュータに格納された前記ファイルのうちの少なくとも一つのファイルの拡散率を測定し、
    前記ファイルに関連する情報から、前記拡散率が拡散率の閾値を下回る少なくとも一つのファイルに関連する情報を除去し、
    前記測定された少なくとも一つのファイルの拡散率に基づいて、拡散率の検査対象となるファイルのリストを生成する
    少なくとも一つのコンピュータプロセッサを備える装置。
  13. 前記検査対象となるファイルのリストが、前記拡散率の閾値を超える前記少なくとも一つのファイルの前記測定された拡散率に基づいて生成される、
    請求項12に記載の装置。
  14. 前記検査対象となるファイルのリストが、クライアントコンピュータからの、前記少なくとも一つのファイルの検査の要求の特定個数に基づいて生成される、
    請求項12に記載の装置。
  15. 前記検査対象となるファイルのリストが、前記少なくとも一つのファイルを含むソフトウェアパッケージの前記拡散率に関連するソフトウェア発行元からの情報に基づいて生成される、
    請求項12に記載の装置。
  16. 査対象のソフトウェアがソフトウェアパッケージモニタにより検査コンピュータ提供される、
    請求項12に記載の装置。
  17. 前記検査コンピュータが仮想マシンを備える、
    請求項16に記載の装置。
  18. 前記少なくとも一つのファイルを含むソフトウェアパッケージが、前記生成されたファイルのリスト中にリストされた、
    請求項12に記載の装置。
  19. 前記コンピュータプロセッサがさらに、
    ソフトウェアの信頼できる供給源であるものと示されたベンダーのウェブサイトを監視し、
    検査のために前記ウェブサイトからソフトウェアパッケージを識別する、
    請求項12に記載の装置。
  20. 前記コンピュータプロセッサがさらに、
    前記識別されたソフトウェアパッケージをダウンロードし、
    前記識別されたソフトウェアパッケージを検査コンピュータに提供する、
    請求項19に記載の装置。
JP2014056740A 2008-09-25 2014-03-19 ソフトウェアの信頼性を測定する方法及び装置 Active JP5639725B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/237,416 US8196203B2 (en) 2008-09-25 2008-09-25 Method and apparatus for determining software trustworthiness
US12/237,416 2008-09-25

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009220613A Division JP5507176B2 (ja) 2008-09-25 2009-09-25 ソフトウェアの信頼性を測定する方法及び装置

Publications (2)

Publication Number Publication Date
JP2014149844A JP2014149844A (ja) 2014-08-21
JP5639725B2 true JP5639725B2 (ja) 2014-12-10

Family

ID=41320079

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009220613A Active JP5507176B2 (ja) 2008-09-25 2009-09-25 ソフトウェアの信頼性を測定する方法及び装置
JP2014056740A Active JP5639725B2 (ja) 2008-09-25 2014-03-19 ソフトウェアの信頼性を測定する方法及び装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009220613A Active JP5507176B2 (ja) 2008-09-25 2009-09-25 ソフトウェアの信頼性を測定する方法及び装置

Country Status (3)

Country Link
US (2) US8196203B2 (ja)
EP (1) EP2169582B1 (ja)
JP (2) JP5507176B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8201244B2 (en) * 2006-09-19 2012-06-12 Microsoft Corporation Automated malware signature generation
US8196203B2 (en) * 2008-09-25 2012-06-05 Symantec Corporation Method and apparatus for determining software trustworthiness
US20100199350A1 (en) * 2009-02-04 2010-08-05 Mark David Lilibridge Federated Scanning of Multiple Computers
US8392379B2 (en) * 2009-03-17 2013-03-05 Sophos Plc Method and system for preemptive scanning of computer files
US8001606B1 (en) * 2009-06-30 2011-08-16 Symantec Corporation Malware detection using a white list
US8352484B1 (en) * 2010-07-02 2013-01-08 Symantec Corporation Systems and methods for hashing executable files
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
US9075993B2 (en) * 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
JP2012175552A (ja) * 2011-02-23 2012-09-10 Seiko Instruments Inc 情報処理装置、及び情報処理プログラム
CN104732142B (zh) * 2011-06-27 2017-12-12 北京奇虎科技有限公司 一种文件解锁的方法及装置
US8943595B2 (en) 2011-07-15 2015-01-27 International Business Machines Corporation Granular virus detection
RU2011138462A (ru) * 2011-09-20 2013-04-10 Закрытое акционерное общество "Лаборатория Касперского" Использование решений пользователей для обнаружения неизвестных компьютерных угроз
EP2584488B1 (en) * 2011-09-20 2016-02-10 Kaspersky Lab, ZAO System and method for detecting computer security threats based on verdicts of computer users
US8683598B1 (en) * 2012-02-02 2014-03-25 Symantec Corporation Mechanism to evaluate the security posture of a computer system
US9043920B2 (en) 2012-06-27 2015-05-26 Tenable Network Security, Inc. System and method for identifying exploitable weak points in a network
US9088606B2 (en) 2012-07-05 2015-07-21 Tenable Network Security, Inc. System and method for strategic anti-malware monitoring
US11126720B2 (en) 2012-09-26 2021-09-21 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
US9292688B2 (en) * 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US9467464B2 (en) 2013-03-15 2016-10-11 Tenable Network Security, Inc. System and method for correlating log data to discover network vulnerabilities and assets
US8966471B2 (en) * 2013-03-28 2015-02-24 International Business Machines Corporation Software signature discovery
US9065849B1 (en) * 2013-09-18 2015-06-23 Symantec Corporation Systems and methods for determining trustworthiness of software programs
JP6000465B2 (ja) * 2013-09-25 2016-09-28 三菱電機株式会社 プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法
US10831895B2 (en) * 2013-12-13 2020-11-10 International Business Machines Corporation Running local virtual disks containing applications with limited licenses
US9916171B2 (en) 2014-07-10 2018-03-13 International Business Machines Corporation Application discovery in virtual machines using temporal clustering of installation files
US9313218B1 (en) * 2014-07-23 2016-04-12 Symantec Corporation Systems and methods for providing information identifying the trustworthiness of applications on application distribution platforms
US9372992B1 (en) * 2014-09-10 2016-06-21 The Boeing Company Ensuring integrity of a software package installer
US9832216B2 (en) 2014-11-21 2017-11-28 Bluvector, Inc. System and method for network data characterization
US20170177863A1 (en) * 2015-12-16 2017-06-22 Wind River Systems, Inc. Device, System, and Method for Detecting Malicious Software in Unallocated Memory
KR101937933B1 (ko) * 2016-11-08 2019-01-14 한국전자통신연구원 오픈 소스 소프트웨어 패키지의 안전성 정량화 장치, 최적화 장치 및 최적화 방법
RU2750628C2 (ru) * 2019-06-28 2021-06-30 Акционерное общество "Лаборатория Касперского" Система и способ определения уровня доверия файла
US11175907B2 (en) 2019-07-18 2021-11-16 International Business Machines Corporation Intelligent application management and decommissioning in a computing environment

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182942A (ja) * 2000-12-18 2002-06-28 Yokogawa Electric Corp コンテンツ認証システム
US20020147659A1 (en) * 2001-04-10 2002-10-10 Hong Se June Certified web site business
JP4145582B2 (ja) * 2002-06-28 2008-09-03 Kddi株式会社 コンピュータウィルス検査装置およびメールゲートウェイシステム
US20040153644A1 (en) * 2003-02-05 2004-08-05 Mccorkendale Bruce Preventing execution of potentially malicious software
US20050050115A1 (en) * 2003-08-29 2005-03-03 Kekre Anand A. Method and system of providing cascaded replication
US20050066015A1 (en) * 2003-09-09 2005-03-24 Dandekar Shree A. Method and system for automated validation, scripting, dissemination and installation of software
EP1549012A1 (en) * 2003-12-24 2005-06-29 DataCenterTechnologies N.V. Method and system for identifying the content of files in a network
US20050172284A1 (en) * 2004-01-30 2005-08-04 Dandekar Shree A. Method and system for automated generation of customized factory installable software
WO2005116797A1 (en) * 2004-05-19 2005-12-08 Computer Associates Think, Inc. Method and system for isolating suspicious email
US20050278395A1 (en) * 2004-05-28 2005-12-15 Lucent Technologies, Inc. Remotely identifying software on remote network nodes by discovering attributes of software files and comparing software file attributes to a unique signature from an audit table
US10043008B2 (en) * 2004-10-29 2018-08-07 Microsoft Technology Licensing, Llc Efficient white listing of user-modifiable files
US20060136374A1 (en) * 2004-12-17 2006-06-22 Microsoft Corporation System and method for utilizing a search engine to prevent contamination
US9235703B2 (en) * 2005-09-30 2016-01-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virus scanning in a computer system
US8196205B2 (en) * 2006-01-23 2012-06-05 University Of Washington Through Its Center For Commercialization Detection of spyware threats within virtual machine
JP4745858B2 (ja) * 2006-02-20 2011-08-10 富士通株式会社 セキュリティ管理プログラム、およびセキュリティ管理方法
US7702953B2 (en) * 2007-01-04 2010-04-20 International Business Machines Corporation Storage management in cascaded replication of data
US8196203B2 (en) * 2008-09-25 2012-06-05 Symantec Corporation Method and apparatus for determining software trustworthiness

Also Published As

Publication number Publication date
EP2169582A1 (en) 2010-03-31
US8595833B2 (en) 2013-11-26
JP5507176B2 (ja) 2014-05-28
US20100077479A1 (en) 2010-03-25
EP2169582B1 (en) 2018-06-06
US8196203B2 (en) 2012-06-05
US20120246721A1 (en) 2012-09-27
JP2014149844A (ja) 2014-08-21
JP2010092469A (ja) 2010-04-22

Similar Documents

Publication Publication Date Title
JP5639725B2 (ja) ソフトウェアの信頼性を測定する方法及び装置
JP5793764B2 (ja) マルウェアの誤検出を低減する方法及び装置
US11677764B2 (en) Automated malware family signature generation
US9679136B2 (en) Method and system for discrete stateful behavioral analysis
US11520901B2 (en) Detecting firmware vulnerabilities
US9147071B2 (en) System and method for proactive detection of malware device drivers via kernel forensic behavioral monitoring and a back-end reputation system
Oberheide et al. CloudAV: N-Version Antivirus in the Network Cloud.
US7904278B2 (en) Methods and system for program execution integrity measurement
JP5631988B2 (ja) ウイルス対策スキャン
US11714910B2 (en) Measuring integrity of computing system
US8474039B2 (en) System and method for proactive detection and repair of malware memory infection via a remote memory reputation system
US20120102568A1 (en) System and method for malware alerting based on analysis of historical network and process activity
US8370942B1 (en) Proactively analyzing binary files from suspicious sources
US20110185430A1 (en) Method and system for discrete stateful behavioral analysis
JP2009500706A (ja) マルウェアに対処する方法及び装置
US20110283358A1 (en) Method and system to detect malware that removes anti-virus file system filter driver from a device stack
US9317687B2 (en) Identifying rootkits based on access permissions
KR101588542B1 (ko) 멀웨어 위험 스캐너
US8499351B1 (en) Isolated security monitoring system
US8490195B1 (en) Method and apparatus for behavioral detection of malware in a computer system
JP5386015B1 (ja) バグ検出装置およびバグ検出方法
Huh et al. An empirical study on the software integrity of virtual appliances: are you really getting what you paid for?
JP5425980B2 (ja) バグ判定装置およびバグ判定方法

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140901

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141024

R150 Certificate of patent or registration of utility model

Ref document number: 5639725

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250