JP6116524B2 - プログラム解析装置、プログラム解析方法及びプログラム解析システム - Google Patents

プログラム解析装置、プログラム解析方法及びプログラム解析システム Download PDF

Info

Publication number
JP6116524B2
JP6116524B2 JP2014116780A JP2014116780A JP6116524B2 JP 6116524 B2 JP6116524 B2 JP 6116524B2 JP 2014116780 A JP2014116780 A JP 2014116780A JP 2014116780 A JP2014116780 A JP 2014116780A JP 6116524 B2 JP6116524 B2 JP 6116524B2
Authority
JP
Japan
Prior art keywords
analysis
execution
component
program
behavior
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
JP2014116780A
Other languages
English (en)
Other versions
JP2015230601A (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.)
Hitachi Systems Ltd
Original Assignee
Hitachi Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Systems Ltd filed Critical Hitachi Systems Ltd
Priority to JP2014116780A priority Critical patent/JP6116524B2/ja
Priority to PCT/JP2015/063857 priority patent/WO2015186483A1/ja
Publication of JP2015230601A publication Critical patent/JP2015230601A/ja
Application granted granted Critical
Publication of JP6116524B2 publication Critical patent/JP6116524B2/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Description

本発明は、プログラム解析装置、プログラム解析方法及びプログラム解析システムに関し、プログラムの挙動を解析するプログラム解析装置、プログラム解析方法及びプログラム解析システムに適用して好適なるものである。
昨今、日々多数の新種・亜種マルウェアが出現しており、それらの解析に人的・時間的コストがかかるため、対策までに時間がかかってしまうという現状がある。マルウェアの解析を高速に行う手法としては、被疑検体を計算機上で動作させる動的解析と呼ばれる手法がある。これは、マルウェアを動作させた計算機上で観測されたAPIのコールログやネットワークアクセスログなどを元に、マルウェアの挙動を分析する手法である。
例えば、特許文献1に、上記した動的解析を利用した技術が開示されている。該技術では、複数のコンピュータ内で不審なプログラムを探索し、発見した不審プログラムを検査サーバに送信して検体解析装置で一元的に動的解析を実施する。これにより、複数のコンピュータ内にある同一の不審なプログラムを1台のサーバでまとめて解析できるため、解析の効率を高めることができる。
近年のマルウェアには、特定の構成要素を持つ実行環境でのみ動作するものや、逆に、特定の構成要素を持つ実行環境では動作しないものが存在する。
前者は、例えば、特定のアプリケーションの特定のバージョンのみに存在する脆弱性を突くマルウェアや、特定組織を対象にして、特定の言語のOS上のみで動作するマルウェアなどである。後者は、例えば、仮想化環境であることを検知した場合に不正な動作を中止することで自らの存在を隠ぺいするものや、OSのユーザ権限管理機能などのセキュリティ機構が動作しているために不正な動作に失敗するものである。
特開2010−198054号公報
上述したような実行環境に依存して挙動を変える被疑検体を解析するためには、複数の異なる実行環境を用いて解析する必要がある。しかし、全ての異なる組み合わせの実行環境を順々に試すことは効率が悪く、それを解決する手段は特許文献1では開示されていない。
本発明は以上の点を考慮してなされたもので、不審な挙動を示すプログラムを少ない解析装置で効率よく解析することが可能なプログラム解析装置、プログラム解析方法及びプログラム解析システムを提案しようとするものである。
かかる課題を解決するために本発明においては、計算機プログラムである被疑検体を実行させる解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置であって、前記解析実行装置の実行環境を構成する1つ以上の構成要素を保持し、前記挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算し、前記構成要素寄与率に基づいて1つ以上の前記構成要素を選択し、該構成要素を実行環境として前記解析実行装置に提供することを特徴とする、プログラム解析装置が提供される。
また、かかる課題を解決するために本発明においては、計算機プログラムである被疑検体を実行させる解析実行装置と、前記解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置と、を備えたプログラム解析システムにおけるプログラム解析方法であって、前記解析実行装置が、実行環境を構成するための構成要素を選択して、1つ以上の前記被疑検体を実行する第1のステップと、前記プログラム解析装置が、前記解析実行装置の実行環境を構成する1つ以上の構成要素を保持し、前記第1のステップにおける前記被疑検体の実行時の挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算する第2のステップと、前記プログラム解析装置が、前記構成要素寄与率に基づいて1つ以上の前記構成要素を選択する第3のステップと、前記プログラム解析装置が前記第3のステップにおいて選択された前記構成要素を実行環境として前記解析実行装置に提供する第4のステップとを含むことを特徴とする、プログラム解析方法が提供される。
また、かかる課題を解決するために本発明においては、計算機プログラムである被疑検体を実行させる解析実行装置と、前記解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置と、を備えたプログラム解析システムであって、前記解析実行装置は、実行環境を構成するための構成要素を選択して、1つ以上の前記被疑検体を実行し、前記プログラム解析装置は、前記解析実行装置の実行環境を構成する1つ以上の構成要素を保持し、前記挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算し、前記構成要素寄与率に基づいて1つ以上の前記構成要素を選択し、該構成要素を実行環境として前記解析実行装置に提供することを特徴とする、プログラム解析システムが提供される。
本発明によれば、不審な挙動を示すプログラムを少ない解析装置で効率よく解析して、プログラムの解析効率を向上させることができる。
本発明の第1の実施形態に係るプログラム解析システムの構成を示すブロック図である。 同実施形態にかかる各装置のハードウェア構成を示すブロック図である。 同実施形態にかかる解析装置構成情報の一例を示す図表である。 同実施形態にかかる挙動抽出ロジックの一例を示す図表である。 同実施形態にかかる構成寄与率計算ルールの一例を示す図表である。 同実施形態にかかる脆弱性情報の一例を示す図表である。 同実施形態にかかる解析結果の一例を示す図表である。 同実施形態にかかる統合解析結果閲覧画面の一例である。 同実施形態にかかる検体解析の全体処理を示すフローチャートである。 同実施形態にかかる解析装置選択優先度の計算処理を示すフローチャートである。 同実施形態にかかる構成要素寄与率更新処理を示すフローチャートである。 同実施形態にかかる構成要素の現寄与率を示す図表である。 本発明の第2の実施形態に係るプログラム解析システムの構成を示すブロック図である。 同実施形態にかかる実行状況監視・操作画面の一例である。 同実施形態にかかるプログラム解析処理の詳細を示すフローチャートである。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
本実施の形態では、解析対象のプログラムが不審な挙動を示す実行環境の構成要素が事前にわからない場合に、検体を解析するための解析装置の数を減らすことを目的としている。本実施形態によれば、検体を解析する際に、少ない数の解析装置を用いて、より多数の解析装置を用いて解析した場合と同等の精度で解析することができる。これにより、従来技術と同等の精度の解析結果を得るために必要な解析実行回数を減少させることができるため、1つの検体に掛ける解析時間、あるいは、計算機リソースを減少させることができ、解析の効率が向上する。
(1−1)プログラム解析システムの構成
まず、図1を参照して、本実施の形態にかかるプログラム解析システムの構成について説明する。
図1に示すように、プログラム解析システムは、解析結果統合分析装置1010、解析管理装置1031及び解析実行装置1032がネットワーク1050を介して接続されている。以下、詳細を説明する。
解析結果統合分析装置1010は、解析管理装置1031から被疑検体の解析結果を取得し、解析結果を分析した上で再度被疑検体を解析するための解析装置イメージ1041を選択し、解析要求を行うための装置である。解析結果統合分析装置1010は、本発明のプログラム解析装置の一例である。
図1に示すように、解析結果統合分析装置1010は、解析装置選択機能1011,検体解析要求機能1012、解析結果受信機能1013、挙動抽出機能1014、構成要素寄与率計算機能1015、解析装置選択優先度計算機能1016、統合分析結果出力機能1017及び統合分析開始要求受付機能1018を有する。
解析装置選択機能1011は、後述する選択優先度に基づいて複数の解析装置イメージ1041から一つ以上の解析装置イメージ1041を選択する機能である。検体解析要求機能1012は、選択した解析装置イメージ1041を用いた検体の解析を解析管理装置1031に要求する機能である。解析結果受信機能1013は、解析実行結果を解析管理装置1031から取得する機能である。
挙動抽出機能1014は、解析結果から特定の挙動があったかを抽出する機能である。構成要素寄与率計算機能1015は、上記特定の挙動があった場合にその解析を実施した解析装置イメージ1041に含まれる構成要素の寄与率を計算する機能である。解析装置選択優先度計算機能1016は、各解析装置イメージ1041について、その各構成要素の寄与率を元に当該解析装置イメージ1041の選択優先度を計算する機能である。
統合分析結果出力機能1017は、本システムを利用して検体の解析を行う解析者に対して解析結果を出力する機能である。統合分析開始要求受付機能1018は、本システムを利用して検体の解析を行うための解析要求を受け付けるインタフェース(IF:Interface)となる機能である。
また、解析結果統合分析装置1010は、上述した機能が利用する情報として、図1に示すように、解析装置構成情報1021、挙動抽出ロジック1022、構成寄与率計算ルール1023、脆弱性情報1024及び解析結果1025を保持する。
解析装置構成情報1021は、解析装置イメージ1041の構成情報である。挙動抽出ロジック1022は、検体が行い得る特定の挙動を定義し、かつ、解析結果1025にその定義した挙動が含まれるか否かを分析するためのロジックである。構成寄与率計算ルール1023は、特定の挙動が含まれていた場合にどのように構成寄与率を変更するかを定義する情報である。なお、構成寄与率計算ルール1023は、本発明の構成要素寄与率の計算条件の一例である。
脆弱性情報1024は、各構成要素の脆弱性に関する情報を保持する。これは例えば、CVE(Common Vulnerabilitis and Exposures)などの情報を格納しておくことができる。なお、脆弱性情報1024は、本実施の形態において必ずしも必要な情報ではないが、脆弱性情報1024を保持することにより、統合分析結果出力機能1017が出力する統合解析結果の精度を高めることができる。
解析結果1025は、各解析装置イメージ1041を用いて解析実行装置1032が検体を実行した結果である。
解析管理装置1031は、解析の対象となる被疑検体の解析を1つ以上の解析実行装置1032に実施させ、解析の状況を管理するとともに、挙動のログを取得する機能である。被疑検体は、あらかじめ解析管理装置1031内に保管しておいてもよいし、可搬媒体やネットワーク1050を介して受信してもよい。
上記した解析管理装置1031における解析の状況の管理とは、検体の解析開始時に各解析実行装置1032の実行環境を、解析装置イメージ1041を用いて初期化したり、解析実行装置1032内で検体の動作が一定時間観測できなかった場合にタイムアウトとして解析処理を終了させたりする処理である。
上記した解析管理装置1031における挙動ログの取得とは、解析実行装置1032内でコールされたAPIの情報を取得したり、解析実行装置1032が送信したネットワークパケットを取得したりする処理である。
本実施の形態において、解析管理装置1031は必須の構成要素ではなく、解析結果統合分析装置1010の検体解析要求機能1012と解析結果受信機能1013が、直接、解析実行装置1032の解析を管理するようにしてもよい。
解析管理装置1031を設けることにより、プログラム解析の管理や運用の利便性が向上する。これは、後述する複数の解析実行装置1032がそれぞれ様々な実装形態を取る場合があり、その場合、各実装形態に応じて、解析実行装置1032が、解析管理装置1031が行う解析管理の処理を実装する必要があるためである。なお、上記した複数の解析実行装置1032の実装形態が異なる場合、各実装形態に対応する解析管理装置1031を複数台設けてもよい。
解析実行装置1032は、被疑検体を動作させて挙動を観測するための装置であり、動的解析の分野において「サンドボックス」と呼ばれることもある。
解析実行装置1032は、解析装置イメージ1041のうち1つを選択して計算機としてデプロイし、被疑検体を実行する。通常、解析の実行後はデプロイした計算機を初期化する。これにより、以降の解析時に以前の解析時に実行させた検体の影響が出ないようにしている。ただし、例えば、新たな実行ファイルを生成してOSのスタートアップ処理に登録して次回の計算機の起動時にさらに異なる挙動を示す「ドロッパー」と呼ばれる検体など、複数回にわたって計算機を再起動することで解析を進める必要がある場合には、デプロイした計算機を敢えて初期化しない場合もある。
解析実行装置1032は、仮想計算機として解析装置イメージ1041をデプロイしてもよい。この場合、検体の挙動を観測するために仮想化システムが提供するAPIも活用することができるため、高精度に挙動を観測できるという解析精度の向上効果を得ることがきる。また、同様に、計算機イメージの事前準備やデプロイや初期化などが容易に行えるという管理上の利便性向上効果や、一台の物理計算機上に複数の解析装置イメージ1041をデプロイできるという計算機リソースの運用効率向上効果なども得ることができる。
また、解析実行装置1032としては、仮想計算機ではなく、物理計算機上に解析装置イメージ1041をデプロイしてもよい。この場合、解析実行装置1032が仮想計算機であることを検知して自らの活動を止めて不審な挙動を隠ぺいするような高度なマルウェアについても、挙動を観測することが可能になる。
上記した解析実行装置1032が取りうる、仮想計算機あるいは物理計算機の構成は、本発明においていずれか一方のみを用いる必要はなく、複数の解析実行装置1032のうち何台かは仮想計算機であり、残りは物理計算機であるように、組み合わせて用いることも可能である。
解析装置イメージ1041は、解析実行装置1032を用いて被疑検体を動作させる際の計算機の構成を定義する情報である。
計算機の構成を定義する情報とは、検体を解析する際に、同一の実行環境の計算機を構築するために必要となる情報である。これは、計算機のCPUアーキテクチャ、一時記憶容量、主記憶容量、オペレーティングシステムの製品名とバージョン名、全ての導入済みミドルウェアやアプリケーションの名称とバージョン名、上記全ての設定情報、一時記憶装置や主記憶装置に情報を保持している場合はそれらの内容などを含む。
仮想計算機として解析実行装置1032にデプロイするための解析装置イメージ1041としては、仮想計算機イメージを利用してもよい。物理計算機として解析実行装置1032にデプロイするための解析装置イメージ1041としては、例えば、主記憶装置の内容をマスターブートレコードも含めてすべてダンプしておくことで利用できる。
また、解析装置イメージ1041は、単に、上記計算機の構成を定義する情報であるアプリケーション、OS、スペックなどの構成を定義する文字列であってもよい。この場合、構成を定義された文字列を元に、構成管理ツールを用いてオンデマンドに計算機イメージを構築して、解析実行装置1032にデプロイするようにしてもよい。
また、解析装置イメージ1041としては、上述の計算機イメージと、設定情報を定義する文字列とを組み合わせて、基本的な構成はあらかじめ準備しておき、一部のアプリケーションの導入や、システム設定のみをオンデマンドで構築するハイブリッドな形態を用いてもよい。
なお、本発明の取りうる構成は、上述した構成に限られるものではない。すなわち、各装置がさらに機能ごとに異なる計算機上に実装されており、それらがネットワークや可搬媒体等を介して接続されていてもよいし、複数の装置が1つの計算機上に実装され、プロセス間通信等を用いて密に接続されていてもよい。
(1−2)各装置のハードウェア構成
次に、図2を参照して、各装置のハードウェア構成について説明する。
図2に示すように、各装置は、CPU2001と、メモリ2002と、インターネットやLANを介して他の装置と通信を行うための通信装置2004と、キーボードやマウス等の入力装置2005と、モニタやプリンタ等の出力装置2006と、読取装置2007と、ハードディスク等の外部記憶装置2003とが、インタフェース2008を介して接続されている。また、読取装置2007にはICカードやUSBメモリのような、可搬性を有する記憶媒体2009を接続することができる。
本実施の形態における解析結果統合分析装置1010、解析管理装置1031、または解析実行装置1032は、これらの機能を実現するプログラムがメモリ2002上にロードされ、CPU2001により実行されることにより具現化される。これらのプログラムは、予め上記情報処理装置の外部記憶装置2003に格納されていてもよいし、必要なときに、読取装置2007や通信装置2004と当該情報処理装置とが、利用可能な媒体を介して他の装置から上記外部記憶装置に導入されてもよい。
上記情報処理装置が利用可能な媒体とは、例えば、読取装置2007に着脱可能な記憶媒体2009、または通信装置2004に接続可能なネットワーク2010またはネットワーク2010を伝搬する搬送波やディジタル信号などである。そして、プログラムは、一旦外部記憶装置2003に格納された後、外部記憶装置2003からメモリ2002上にロードされてCPU2001に実行されてもよいし、外部記憶装置2003に格納されることなく、直接メモリ2002上にロードされてCPU2001に実行されてもよい。
(1−3)各種情報
次に、図3〜図8を参照して、解析結果統合分析装置1010の各機能が利用する各種情報について説明する。
図3は、解析結果統合分析装置1010が保持する解析装置構成情報1021の一例である。解析装置構成情報1021は、解析装置イメージ1041の計算機構成を示す情報である。図3に示すように、解析装置構成情報1021は、解析装置ID3001、解析管理製品3002、計算機種別3003、OS3004、ミドルウェアやアプリケーションの一覧を表す情報3005〜3008などを含む。
解析装置ID3001は、解析装置イメージ1041を一意に識別するための識別子である。解析装置ID3001を一つ指定することで、その解析装置ID3001に対応する解析装置イメージ1041の計算機構成を取得することができる。
以降、本実施の形態において、解析装置構成情報1021が保持する計算機構成を表す情報を例示するが、本発明が保持し得る情報はそれらに限るものではない。
解析管理製品3002は、解析装置ID3001に対応する解析装置イメージ1041を解析実行装置1032にデプロイする際の、当該解析実行装置1032を管理する解析管理装置1031の製品種別を識別するための値である。
被疑検体を解析実行装置1032において実行し、APIコールなどの挙動ログを取得する場合の取得方法は、解析管理装置1031を実装する製品の種別によって異なることが多く、また、その種別によって取得できるログの内容が異なり得る。また、取得できるログだけではなく、被疑検体の挙動そのものも変化し得る。これは、解析管理装置1031の実装形態によっては、被疑検体がその存在を検知して不審な挙動を止めてしまう場合が存在することに起因する。
解析管理製品3002は、構成要素寄与率計算機能1015や解析装置選択優先度計算機能1016が、上記した解析管理装置1031の実装形態によって生じる検体挙動の観測結果の変化を、後述する処理の中で活用するために必要な情報である。
また、計算機種別3003は、解析装置ID3001に対応する解析装置イメージ1041を解析実行装置1032上にデプロイする場合の計算機の形態を識別するための値である。計算機種別3003には、解析装置イメージ1041を物理計算機としてデプロイする場合には、例えば「実機」という文字列が保持され、仮想化製品「a」を用いて仮想計算機としてデプロイする場合には例えば「仮想PC製品a」という文字列が保持される。
被疑検体を解析実行装置1032において実行し、APIコールなどの挙動ログを取得する場合、被疑検体の挙動は計算機の形態によって変化し得る。これは、例えば計算機が仮想計算機である場合には、被疑検体がそのことを検知して不審な挙動を止めてしまう場合が存在することに起因する。
計算機種別3003は、構成要素寄与率計算機能1015や解析装置選択優先度計算機能1016が、上記した計算機の形態によって生じる検体挙動の観測結果の変化を、後述する処理の中で活用するために必要な情報である。
また、OS3004は、解析装置ID3001に対応する解析装置イメージ1041に導入するOSの製品名、バージョン名の識別値である。すなわち、OS3004には、解析装置イメージ1041のOSが製品名「OSα」のバージョン「ver.1」である場合には、例えば「OSα ver.1」の文字列が保持され、同様に、製品名「OSβ」のバージョン「v2013」である場合には、例えば「OSβ v2013」などの文字列が保持される。
また、OS3004としては、製品名とバージョン名に加えて、さらに適用済みパッチ名や、対応言語名などの情報を保持してもよい。また、OS3004として、CPE(Common Platform Enumeration)などの標準化された製品識別名などを用いてもよい。
被疑検体を解析実行装置1032において実行し、APIコールなどの挙動ログを取得する場合、被疑検体の挙動は計算機に導入しているOSによって変化し得る。これは、例えば被疑検体が特定のバージョンのOSの場合のみに存在する脆弱性を突くものであることに起因する。
また、特定の言語圏のみを対象に攻撃活動を行うマルウェアである場合には、特定言語のOSが使用されている環境のみで不正活動を行う場合もある。
OS3004は、構成要素寄与率計算機能1015や解析装置選択優先度計算機能1016が、上記した導入OSの差異によって生じる検体挙動の観測結果の変化を、後述する処理の中で活用するために必要な情報である。
また、解析装置構成情報1021は、解析装置ID3001に対応する解析装置イメージ1041に導入済みであるミドルウェアやアプリケーションの一覧を表す情報3005〜3008を保持する。
例えば、図3では、「MWい」及び「MWろ」という名称のミドルウェアや、「Appは」及び「Appに」という名称のアプリケーションの一覧が保持されていることがわかる。また、各ミドルウェアまたはアプリケーションの値が「○」となっているミドルウェアやアプリケーションが当該解析装置イメージ1041に導入されていることを示している。
例えば、図3では、解析装置ID3001「sandbox−A−1」に対応する解析装置イメージ1041には、ミドルウェア製品「い」とアプリケーション製品「は」が導入されていることがわかる。
なお、本実施の形態では単純化のために製品名だけで製品名称だけで区別しているが、実運用上は、さらに、製品バージョンも含めて細分化することが検体の解析精度を向上させるためには望ましい。また、さらに、製品名とバージョン名に加えて、適用済みパッチ名や、対応言語名などの情報を保持してもよい。また、上述のミドルウェア名やアプリケーション製品名として、CPE(Common Platform Enumeration)などの標準化された製品識別名などを用いてもよい。
被疑検体を解析実行装置1032において実行し、APIコールなどの挙動ログを取得する場合、被疑検体の挙動は計算機に導入しているミドルウェアやアプリケーションによって変化し得る。これは、例えば被疑検体が特定のミドルウェアやアプリケーションのみに存在する脆弱性を突くものであることに起因する。
上記した導入済みであるミドルウェアやアプリケーションの一覧を表す情報は、構成要素寄与率計算機能1015や解析装置選択優先度計算機能1016が、検体挙動の観測結果の変化を、後述する処理の中で活用するために必要な情報である。
また、解析装置構成情報1021は、解析装置ID3001に対応する解析装置イメージ1041の設定情報も保持してもよい。
すなわち、例えば、プロキシやDNS(Domain Name System)サーバの設定をしているか否かや、OSが提供するユーザ権限管理機能がオンかオフかといった、マルウェアの動作に多大な影響を与えうる設定情報を保持させてもよい。
そのような情報を保持することにより、それらの情報を、構成要素寄与率計算機能1015や解析装置選択優先度計算機能1016が、後述する処理の中で活用することができる。これにより、例えば、プロキシ設定がなされた解析装置イメージ1041と、プロキシ設定がなされていない解析装置イメージ1041とのそれぞれの解析結果を比較することで、被疑検体がプロキシを超える機能を有するか否かを判別できるようになり、検体の解析精度を向上させることができる。
図4は、解析結果統合分析装置1010が保持する挙動抽出ロジック1022の一例である。図4に示すように、挙動抽出ロジック1022は、結果カテゴリ4001、ルールID4002、抽出ルール4003及び出力定義4004などを含む。
結果カテゴリ4001は、解析実行装置1032を用いて観測した被疑検体の挙動ログの分析結果を分類するための情報である。例えば、「ファイルアクセス」、「レジストリアクセス」、「ネットワークアクセス」、「その他マルウェアに典型的な挙動」などのように分類しておくことで、後述する統合分析結果出力機能1017が出力する統合分析結果を解析者により理解しやすい内容にすることができる。また、後述するように、構成寄与率計算ルール1023でも利用される。
また、ルールID1042は、挙動抽出ロジックを一意に識別するための識別情報である。
抽出ルール4003は、解析実行装置1032で被疑検体を解析した結果、解析結果受信機能1013が取得する解析結果1025から、何の情報をどのように抽出するかを定義するルールである。
抽出ルール4003としては、例えば、解析結果1025が標準技術であるMAEC(Malware Attribute Enumeration and Characterization)で記述されて取得される場合には、どのエレメントを抽出するかXPathを用いて記述することができる。
また、例えば、解析結果1025がJSON(JavaScript(登録商標) Object Notation)などのその他の形式で記述されて取得される場合には、抽出するためのスクリプトを保持してもよい。
また、出力定義4004は、解析実行装置1032で被疑検体を解析した結果、解析結果受信機能1013が取得する解析結果1025から、上記した抽出ルール4003を用いて抽出した結果、どのような情報が取得できるかを定義する情報である。
出力定義4004としては、例えば、サイバー観測事象を広く定義する標準技術であるCybOX(Cyber Observable Expression)のエレメントを用いて記述することができる。また、例えば、抽出ルール4003と出力定義4004を合わせて、引数を解析結果として取り、戻り値を出力定義4004とするような一つのスクリプトとして保持させてもよい。
また、解析実行装置1032や、解析管理装置1031の実装によって出力される解析結果の形式は変わりうるため、解析装置構成情報1021の解析管理製品3002の値の種別ごとに、抽出ルール4003を区別して保持してもよい。これは、例えば、挙動抽出ロジック1022の表に新たに解析管理製品のカラムを追加することで容易に実現可能である。
また、挙動抽出ロジック1022は、検体を解析実行装置1032上で実行させた結果、観測できた動作ログである解析結果1025を元に、どのような振る舞いであったかを分析するために用いる情報である。このため、特に、正規のソフトウェアには見られないが、不正なソフトウェアにのみ見られるような特徴的な挙動を抽出するためのロジックを記載しておくことが望ましい。
挙動抽出ロジック1022としては、例えば、デバッガの存在を検知するためのAPIであるIsDebuggerPresentをコールしたAPIコールログが存在するか否かといったロジックや、別のプロセスのメモリ空間に自身のライブラリを埋め込もうとするような動作が存在するか否かといあったロジックなどが典型的である。
図5は、解析結果統合分析装置1010が保持する構成寄与率計算ルール1023の一例である。構成寄与率計算ルール1023は、図5に示すように、構成寄与率計算ルール1023は、抽出ロジックID5001、更新条件5002、寄与率更新値5003及び更新対象5004などを含む。
抽出ロジックID5001は、挙動抽出ロジック1022のルールID4002として保持している値のうち何れかの値である。
また、更新条件5002は、構成要素寄与率計算機能1015が、構成要素寄与率を更新するか否かを判定するための条件である。具体的に、解析結果1025から、抽出ロジックID5001の値に対応する抽出ルールID4003を用いて抽出した出力が、更新条件5002の条件にマッチするか否か判定される。
また、寄与率更新値5003は、構成要素寄与率計算機能1015が、構成要素寄与率を更新する際に、寄与率値をどれだけ更新するかを定義する値である。
また、更新対象5004は、構成要素寄与率計算機能1015が、構成要素寄与率を更新する際に、どの構成要素の寄与率値を更新するかを定義する値である。
図6は、解析結果統合分析装置1010が保持する脆弱性情報1024の一例である。図6に示すように、脆弱性情報1024は、製品名6001、脆弱性識別情報6002及びリスク値6003などを含む。
製品名6001は、脆弱性が存在する構成要素の名称である。製品名6001としては、例えばCPEなどを用いてもよい。
また、脆弱性識別情報6002は、脆弱性をユニークに識別するための情報である。脆弱性識別情報6002としては、例えばCVEなどを用いてもよい。
また、リスク値6003は、脆弱性識別情報6002を悪用した攻撃のリスクの大きさを表す値であり、その攻撃が成功した場合の影響の大きさや、攻撃の容易さ、解析を実施している時点でその脆弱性が悪用される傾向がどの程度高いか、等を総合した値として保持する。リスク値としては、例えば、CVSS(Common Vulnerability Scoring System)などを用いてもよい。
図7は、解析結果統合分析装置1010が保持する解析結果1025の一例である。図7に示すように、解析結果1025は、検体ID7001、解析装置ID7002、挙動ログ7003及びネットワークログ7004を含む。
検体ID7001は、どの被疑検体を解析した結果であるかを識別するための識別情報である。検体ID7001としては、例えば、被疑検体のハッシュ値を用いることができる。
また、解析装置ID7002とは、検体ID7001に対応する被疑検体を実行させた解析装置イメージの識別情報であり、解析装置構成情報1021の解析装置ID3001の値の中の何れかの値である。
また、挙動ログ7003は、検体ID7001に対応する被疑検体を、解析装置ID7002で実行させた際に、当該計算機上で観測できた挙動に関する情報であり、主にはAPIコールのログなどである。
また、ネットワークログ7004は、検体ID7001に対応する被疑検体を、解析装置ID7002で実行させた際に、当該計算機が試みたネットワークアクセスのキャプチャ情報である。
なお、解析結果1025として保持する情報としては、上記した情報に限るものではなく、例えば被疑検体のバイナリ内に含まれる文字列情報など、他の情報も保持することもできる。
図8は、統合分析結果出力機能1017が出力する統合解析結果の一例である。本実施の形態にかかるプログラム解析システムを利用する解析者は、最終的な解析結果として、統合分析結果閲覧画面8010に示すような情報を得ることができる。
統合分析結果出力機能1017は、検体ID7001を解析対象検体8011として表示する。これは、表示している統合分析結果閲覧画面8010が、どの検体を解析した結果であるかを解析者に通知するために必要な情報である。
また、統合分析結果出力機能1017は、図8に例示したような、観測挙動総合情報8012を出力する。観測挙動総合情報8012は、解析対象検体8011について、それまでに解析を実行した個々の解析結果1025から抽出したファイルアクセス先や、レジストリアクセス先、ネットワークアクセス先などの情報の和集合である。
観測挙動総合情報8012を出力することで、解析者は、多数の解析装置を用いて検体を解析した場合においても、当該検体がどのような挙動を示し得るのかを容易に知ることができる。
また、統合分析結果出力機能1017は、図8に例示したような、寄与率上位構成要素情報8013を出力する。寄与率上位構成要素情報8013は、解析対象検体8011について、それまでに解析を実行した個々の解析結果1025から抽出した挙動に基づいて、構成要素の寄与率を計算した結果、寄与率の値が大きい上位の構成要素である。
寄与率上位構成要素情報8013を出力することにより、解析者は、当該検体を動作する際に、計算機にどのようなソフトウェアが導入されていなければならないか、あるいは、どのような設定がなされていなければならないかを容易に知ることができる。すなわち、解析者は、当該検体がどのような対象を狙って悪意ある活動を働くものであるかを容易に知ることができる。
また、図8に例示したように、寄与率上位構成要素情報8013に出力すべき各構成要素について、脆弱性情報1024に保持している脆弱性情報を併せて表示することにより、解析者は、当該検体が悪用している可能性の高い脆弱性が何であるかについて容易に知ることができる。
また、本実施の形態において、統合分析結果出力機能1017は、図8に例示したような、動作阻害構成要素情報8014を出力する。動作阻害構成要素情報8014は、後述する構成要素寄与率更新処理によって、構成寄与率が閾値未満になった構成要素の名称の一覧である。
動作阻害構成要素情報8014を出力することにより、解析者は、当該検体がどのような構成要素を保持している計算機上では動作しないかを容易に知ることができる。これにより、例えば、プロキシが設定されている環境では動作しない、ということがわかった場合には、解析者は、自組織のネットワークがプロキシを利用している環境であればとりあえずの影響は無いと判断することができる。すなわち、動作阻害構成要素情報8014は、簡易的な対処方法を思案するための材料として活用することができる情報である。
また、統合分析結果出力機能1017は、図8に例示したような、個別解析結果情報8015を出力する。個別解析結果情報8015は、解析対象検体8011について、それまでに解析を実行した個々の解析結果1025から抽出したファイルアクセス先や、レジストリアクセス先、ネットワークアクセス先などの情報を個別に表示したものである。
個別解析結果情報8015を出力することにより、解析者は、個々の解析装置イメージ1041を用いて実行した場合において、どのような解析結果1025が得られたのかを容易に知ることができる。
統合分析結果閲覧画面8010の情報は、後述する解析処理が完全に終了した後に出力してもよいし、解析処理の途中で、処理が終了した解析結果に関する情報から逐次的に出力してもよい。
(1−4)プログラム解析処理の詳細
図9〜図12を参照して、解析結果統合分析装置1010におけるプログラム解析処理の詳細について説明する。
図9は、検体解析の全体処理を示すフローチャートである。図10は、解析装置選択優先度を計算する処理フローの一例であり、図9のステップS9002における解析装置選択優先度計算処理の一例である。図11は、各構成要素の寄与率を更新する処理フローの一例であり、図9のステップS9007における構成要素寄与率更新処理の一例である。図12は、各構成要素の寄与率の、ある時点での計算結果の一例である。
解析者は、まず、統合分析開始要求受付機能1018に対して、本解析システムを用いて被疑検体の解析を行う要求(以下、統合分析開始要求と称する場合もある。)を通知する。これはネットワークを介して通知してもよいし、解析結果統合分析装置1010の入出力コンソールから通知してもよい。
また、解析対象の被疑検体は、上記した統合分析開始要求の通知と共に解析結果統合分析装置1010に送付してもよい。また、その他の方法としては、検体を補完するためのリポジトリを準備しておき、解析結果統合分析装置1010に対しては、当該リポジトリ内の検体にアクセスするためのURLを通知し、解析結果統合分析装置1010が上記通知されたURLから検体を取得する方法でもよい。
また、統合分析開始要求は、必ずしも解析者が解析結果統合分析装置1010に対して主体的に通知する必要はなく、例えば、上記した被疑検体を格納したリポジトの中にまだ統合分析を行っていない検体が存在していれば、解析結果統合分析装置1010が順次取得して統合分析を開始する、といったバッチ処理の形態を取ることもできる。
また、例えば、別のIDS(Intrusion Detection System)やIPS(Intrusion Prevention System)などのセキュリティ装置が不審な検体を発見した場合に、そのアラートを契機として、当該検体の統合分析を開始するようにしてもよい。
図9に示すように、統合分析開始要求受付機能1018は、統合分析の開始要求を受け付けると、まず、構成要素寄与率を初期化する(S9001)。
ステップS9001の構成要素寄与率の初期化処理は、各構成要素の寄与率の初期値を設定する処理であり、例えばすべての構成要素の寄与率の値を同じ値にしてもよい。また、例えば、脆弱性情報1024を用いて、当該構成要素が保持するリスク値6003の値を初期値としてもよい。
脆弱性情報1024を用いることにより、後述する解析装置選択優先度の計算処理(S9002)において、リスク値の大きい脆弱性を持つ構成要素を含む解析装置イメージ1041の選択優先度の初期値を大きくすることができる。このため、後述する、選択優先度が上位の解析装置から解析装置を1つ以上選択する処理(S9004)において、リスク値の大きい脆弱性を持つ構成要素を含む解析装置イメージ1041を用いた解析を、優先的に実施することができる。
次に、解析装置選択優先度計算機能1016は、解析装置選択優先度を計算する(S9002)。図10に、ステップS9002における解析装置選択優先度の計算処理9002の詳細を示す。
図10に示すように、解析装置選択優先度計算機能1016は、まず、まだ解析が未実施であり、かつ、現在の処理において、選択優先度の計算が未実施である解析装置イメージ1041が存在するか否かを判定する(S10001)。
ステップS10001において、一つ以上存在すると判定された場合には、解析装置選択優先度計算機能1016は、選択優先度の計算が未実施の解析装置イメージ1041から一つ選択する(S10002)。
さらに、解析装置選択優先度計算機能1016は、解析装置構成情報1021を用いて、ステップS10002で選択した解析装置イメージ1041を構成する全ての構成要素の一覧を取得する(S10003)。
次に、解析装置選択優先度計算機能1016は、ステップS10003において取得した構成要素の一覧について、現寄与率12003の値を取得し、それらの総和を計算する(S10004)。この総和を処理10002において選択した解析装置イメージ1041の選択優先度とする。
以降、再度ステップS10001の判定に戻り、選択できる解析装置イメージ1041がなくなるまで上記のステップS10002からS10004までを繰り返し、選択できる解析装置イメージ1041がなくなった場合(S10001でNo)には、解析装置選択優先度計算処理を終了する。
図9に戻り、解析装置選択優先度計算機能1016は、解析が未実施かつ、全ての構成要素の現寄与率12003の値が閾値12004以上であり、かつ、最大解析時間を未超過であるか否かを判定する(S9003)。
閾値12004は、当該構成要素が、解析対象の被疑検体が動作を阻害するものであるとして判断するための閾値であり、例えばすべてを同じ値に設定してもよいし、それぞれ異なる値に解析者が設定してもよい。また、同一の構成要素が何個の解析装置イメージ1041に含まれているかに応じて、それぞれ異なる値にしてもよい。
例えば、40個の異なる解析装置イメージの構成要素が、実機である場合には、その閾値を−40としてもよい。これは、多数の解析装置イメージ1041に含まれる構成要素については、ステップS9007における構成要素寄与率の更新処理で値の変動幅が大きくなるためであり、このようにすることで、すぐに当該構成要素の優先度が閾値未満になってしまう問題を解消することができる。
また、最大解析時間とは、本実施形態にかかるプログラム解析システムを用いて検体を解析する際に、解析にかかることを許容する最大の時間であり、解析者が事前に、解析結果統合分析装置の設定情報として指定することができる。これにより、一つの被疑検体の解析にかかる時間を制限して、解析に予想以上の時間を要するなどの事態を回避することができる。
ステップS9003において、判定結果が真であった場合には、解析装置選択機能1011は、解析が未実施である解析装置イメージ1041の中から、選択優先度の値が大きい上位のものから順に、本プログラム解析システムが有する解析実行装置1032の数だけ選択する(S9004)。
次に、検体解析要求機能1012は、ステップS9004において選択した解析装置イメージ1041をすべて解析実行装置1032にデプロイするよう、解析管理装置1031へ要求し、さらに、上記デプロイしたそれぞれの解析装置イメージ1041を用いて解析実行装置1032が被疑検体を解析するよう、解析管理装置1031へ要求を行う(S9005)。
各解析実行装置1032は、検体の解析を実行し、解析結果1025を解析管理装置1031へ送付する。さらに、解析結果受信機能1013は、解析管理装置1031から、全ての上記解析結果1025を取得する。なお、解析結果受信機能1013は、必ずしも解析結果1025を解析管理装置1031から取得する必要はなく、各解析実行装置1032から取得してもよい。
次に、挙動抽出機能1014は、挙動分析を実施する(S9006)。ステップS9006において、挙動抽出機能1014は、ステップS9005の解析処理のそれぞれの解析結果1025について、挙動抽出ロジック1022の抽出ルール4003を順にあてはめて、対応する挙動の有無や、挙動に関する情報を、挙動情報として取得する。
次に、構成要素寄与率計算機能1015は、ステップS9006における挙動分析の結果である挙動情報と、構成寄与率計算ルール1023を用いて構成要素寄与率を更新する(S9007)。
図11を参照して、ステップS9007における構成要素寄与率更新処理について説明する。
図11に示すように、まず、構成要素寄与率計算機能1015は、すべての構成寄与率計算ルールを処理済みか判定する(S11001)。
ステップS11001において、一つ以上の未処理の構成寄与率計算ルールが存在すると判定された場合には、構成要素寄与率計算機能1015は、未処理の構成寄与率計算ルールから一つを選択する(S11002)。
次に、構成要素寄与率計算機能1015は、ステップS11002において選択した構成寄与率計算ルールの更新条件5002のいずれかと、対応する抽出ロジックID5001を用いることで解析結果1025から取得できる挙動情報のいずれかとがマッチするかを判定する。そして、判定結果が真の場合、適合する更新条件5002に対応する寄与率更新値5003の値だけ、当該解析結果1025を観測した解析装置イメージ1041の構成要素のうち、対応する更新対象5004が指定する構成要素の寄与率を変更する(S11003)。
例えば、図7に例示した当該解析結果1025を観測した解析装置イメージ1041がSandbox−A−1である解析結果1025が、図5に例示した抽出ロジックID5001の4−1にマッチした場合には、当該解析装置イメージ1041の計算機種別3003の構成要素である「仮想PC製品a」の現寄与率12003を、寄与率更新値5003が指定する値である−1.0変更する。
次に、ステップS11001の判定処理に戻り、構成要素寄与率計算機能1015は、すべての構成寄与率計算ルールが処理済みとなるまでステップS11002〜S11003の処理を繰り返す。
ステップS11001ですべての構成寄与率計算ルールが処理済みとなった場合には、構成要素寄与率計算機能1015は、上記した構成要素寄与率更新処理において、1つ以上、構成寄与率計算ルールの更新条件5002とマッチするものがあったかを判定する(S11004)。
ステップS11004において、1つ以上更新条件5002とマッチするものがあったと判定された場合には、構成要素寄与率計算機能1015は、構成寄与率更新処理を終了する。
一方、ステップS11004において、1つも更新条件5002とマッチしなかったと判定された場合には、構成要素寄与率計算機能1015は、当該解析結果1025には検体の挙動が表れておらず、検体が一切動作しなかったとして判定して(S11005)、処理を終了する。
ステップS11005において、構成要素寄与率計算機能1015は、規定の処理を行ってから構成寄与率更新処理9007を終了してもよい。例えば、当該解析結果1025を観測した解析装置イメージ1041の全構成要素の現寄与率を−1.0更新するなどしてもよい。
上記した構成要素寄与率更新処理を実行した結果、図12に示す各構成要素の寄与率の計算結果において、現寄与率12003の値が更新される。更新された現寄与率12003の値が、上記したステップS9002における解析装置選択優先度計算処理で利用されることとなる。すなわち、現寄与率12003の値が高い構成要素を有する解析装置イメージ1014が選択優先度の高いものとなる。また、現寄与率12003の値が大きい構成要素は、計算機プログラムが悪用する可能性が高い構成要素であり、現寄与率12003の値が小さい構成要素は、計算機プログラムの動作を阻害する可能性が高い構成要素であることがわかる。
(1−5)本実施の形態の効果
上記したように、本実施の形態によれば構成寄与率更新処理を繰り返すことにより、図12に示す構成要素の現寄与率12003を更新し、さらに、構成要素の現寄与率12003から定まる解析装置イメージ1041の選択優先度を計算する。そして、その計算結果に基づいて、優先度の高い上位複数の解析実行装置1032を選択して解析を実行することができる。これにより、検体の挙動に寄与する可能性が高い計算機の実行環境を選択して、効率的に検体を解析することができる。
(1−6)本実施の形態の他の構成
なお、上記した実施の形態はあくまで本発明の適用方式の一例であって、上記の実施形態に限定されるものではない。例えば、構成要素の現寄与率12003をもとにした、解析装置イメージ1402の選択優先度の計算方式は、上記した現寄与率12003の総和に限るものではない。
具体的な例としては、構成要素種別12001ごとに個別に和を計算した上で、構成要素種別12001ごとの重み付きで最終的な和を計算してもよい。また、構成要素種別12001毎に独立して、解析装置イメージ1041を選択してもよい。すなわち、構成要素種別12001ごとに個別に和を計算した上で、さらに、「解析管理製品」の和が大きいものからいくつかの解析装置イメージ1041を選択し、同様に、「計算機種別」の残りのいくつかの解析装置イメージ1041を選択してもよい。
(2)第2の実施の形態
次に、上記した第1の実施の形態と異なる第2の実施の形態について説明する。本実施の形態においては、第1の実施の形態で示した効果を得ることができることに加え、以下の効果を得ることができる。
すなわち、本実施の形態によれば、解析者は、複数の実行環境の異なる計算機上で並列に被疑検体を解析をする際に、リアルタイムの実行状況を監視することができる。また、解析者は、UI(User Interaction)操作が必要になり、被疑検体の挙動が待機している場合に、そのUI操作を行って、さらなる被疑検体の挙動を観測することができる。また、解析者は、被疑検体が異常停止したため解析実行装置1032がタイムアウト処理になるまで待機状態になっているものについて、当該解析実行装置1032を強制終了させることができ、解析に掛かる時間を短縮することができる。
(2−1)プログラム解析システムの構成
次に、図13を参照して、本実施の形態にかかるプログラム解析システムの構成について説明する。以下では、第1の実施の形態と異なる構成について詳細に説明し、第1の実施の形態と同様の構成については説明を省略する。
図13に示すように、第1の実施の形態とは、解析管理装置1031にデスクトップ操作インタフェース(以下インタフェースをIF(Inter Face)と称して説明する場合もある。)を設けている点と、実行状況監視・操作装置13010を備えている点で異なる。以下、詳細を説明する。
解析管理装置1031のデスクトップ操作IF13001は、解析実行装置1032が被疑検体の解析を実行している最中のデスクトップ画面を出力し、また、操作を受け付けるためのインタフェースである。そのような機能を実現するインタフェースとしては、例えば、RDP(Remote Desktop Protocol)を実装したインタフェースや、RFB(Remote FrameBuffer)プロトコルを実装したインタフェースや、リモートKVM(Keyboard,Video,Mouse)を実装したインタフェースなどが挙げられる。
実行状況監視・操作装置13010は、デスクトップ操作IF13001を介し、解析を実行中の各解析実行装置1032の実行状況を監視し、また、解析者が操作するために利用する装置である。
実行状況監視・操作装置13010は、デスクトップ操作要求IF13011、実行中断処理部13012及び実行状況監視・操作IF13013を備える。
デスクトップ操作要求IF13011は、デスクトップ操作IF13001とのインタフェースとなるデスクトップ操作要求IF13011である。デスクトップ操作IF13011は、デスクトップ操作IF13001の実装形態に対応したクライアントモジュールである。
また、実行中断処理部13012は、解析者からデスクトップ操作要求IF13011を介して入力されたデスクトップ操作を解析管理装置1031に通知する機能である。具体的に、被疑検体が異常停止したため解析実行装置1032がタイムアウト処理になるまで待機状態になっている場合に、該当する解析実行装置1032を強制終了させる要求をデスクトップ操作要求IF13011を介して解析管理装置1031に通知する。また、解析結果統合分析装置1010に対して、当該解析装置イメージ1041では、検体が動作しなかったと判定させるための情報を送信する。
また、実行状況監視・操作IF13013は、解析者が、被疑検体の解析を実行している最中のデスクトップ画面を監視したり、操作を入力したりするためのインタフェースである。
図14に、実行状況監視・操作IF13013が解析者に表示する、実行状況監視・操作IFの一例を示す。
図14に示すように、実行状況監視・操作画面14010は、一つの画面内に、検体を解析中である複数の解析実行装置1032の画面14012を並べて表示する。また、実行状況監視・操作画面14010は、画面14012に対応する解析実行装置1032の解析処理の強制終了処理を、実行中断処理部13012に要求するための、中断ボタン14011を保持する。
例えば、解析者は、実行状況監視・操作画面14010を用いて、必要なアプリケーションが存在しない旨のエラーで待機状態になっている解析実行装置1032のみを選択して、強制的に解析処理を中断させることができる。
なお、実行状況監視・操作画面14010の画面構成は、図14の例に限定されるものではなく、例えば、1つの画面に単一の解析実行装置1032の画面のみ表示させ、一定時間間隔で別の解析実行装置1032の画面に切り替えるようにしてもよい。
(2−2)プログラム解析処理の詳細
次に、図15を参照して、本実施の形態の解析結果統合分析装置1010におけるプログラム解析処理の詳細について説明する。本実施の形態では、第1の実施の形態のプログラム解析処理とは、図9における検体の解析処理のステップS9005の解析実行処理において実行中断処理15001が実施される点で異なる。以下、第1の実施の形態と異なる処理について説明する。
図15に示したステップS15001の実行中断処理は、実行中断処理部13012から実行中断処理要求を受け取ることにより処理が開始される。
実行中断処理が実施されると、解析結果統合分析装置1010は、ステップS9006以降の挙動分析処理を実施することなく、検体が動作しなかったと判定して、ステップS9007の構成要素寄与率更新処理を実施してもよい。
なお、実行中断処理が実施された場合に、ステップS9006の挙動分析処理を飛ばさずに、解析実行装置1032の実行が中断するまでの解析結果1025を用いて、ステップS9006の挙動分析処理を実行してもよい。
(2−3)本実施の形態の効果
上記したように、本実施の形態によれば、上記第1の実施形態と同様の効果を得られるとともに、解析者は、複数の実行環境の異なる計算機上で並列に被疑検体を解析をする際に、リアルタイムの実行状況を監視したり、被疑検体に要求されるUI操作をしたり、待機状態の解析処理を中断させたりすることができるため、より柔軟に適切なプログラム解析処理を実施することが可能となる。
1010 解析結果統合分析装置
1021 解析装置構成情報
1022 挙動抽出ロジック
1023 構成寄与率計算ルール
1024 脆弱性情報
1025 解析結果
1031 解析管理装置
1032 解析実行装置
1041 解析装置イメージ
13010 実行状況監視・操作装置

Claims (10)

  1. 計算機プログラムである被疑検体を実行させる解析実行装置における前記被疑検体の実行時の挙動ログを解析するプログラム解析装置であって、
    前記解析実行装置の実行環境を構成する1つ以上の構成要素を保持し、
    前記挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算し、
    前記構成要素寄与率に基づいて1つ以上の前記構成要素を選択し、該構成要素を実行環境として前記解析実行装置に提供する
    ことを特徴とする、プログラム解析装置。
  2. 前記構成要素寄与率の高い構成要素を前記解析実行装置の実行環境として選択する
    ことを特徴とする、請求項1に記載のプログラム解析装置。
  3. 1つ以上の前記解析実行装置の実行環境を構成する各々の構成要素を取得し、該構成要素の構成要素寄与率を、前記解析実行装置の実行環境として前記構成要素を選択するための選択優先度とする、
    ことを特徴とする、請求項2に記載のプログラム解析システム。
  4. 1つ以上の前記解析実行装置の実行環境を構成する各々の構成要素のすべてを取得し、該構成要素のすべての構成要素寄与率の総和を、前記解析実行装置の実行環境として前記構成要素を選択するための選択優先度とする、
    ことを特徴とする、請求項3に記載のプログラム解析装置。
  5. 1つ以上の前記解析実行装置の実行環境を構成する各々の構成要素のすべてを取得し、該構成要素を分類する種別ごとに所定の重み付けをして、該重み付けした構成要素のすべての構成要素寄与率の総和を、前記解析実行装置の実行環境として前記構成要素を選択するための選択優先度とする、
    ことを特徴とする、請求項3に記載のプログラム解析装置。
  6. 前記構成要素寄与率の値の大きい構成要素を、上記計算機プログラムが悪用する可能性が高い構成要素とする
    ことを特徴とする、請求項4または5のいずれかに記載のプログラム解析装置。
  7. 前記構成要素寄与率の値の小さい構成要素を、上記計算機プログラムの動作を阻害する可能性が高い構成要素とする
    ことを特徴とする、請求項4または5のいずれかに記載のプログラム解析装置。
  8. 前記特定の挙動情報と前記構成要素寄与率とが対応付けられた構成要素寄与率の計算条件を保持し、
    前記解析実行装置における被疑検体の実行時の前記挙動ログに前記特定の挙動情報が含まれる場合に、前記構成要素寄与率の計算条件をもとに、前記解析実行装置の実行環境を構成する各構成要素の構成要素寄与率を更新する
    ことを特徴とする、請求項1に記載のプログラム解析装置。
  9. 計算機プログラムである被疑検体を実行させる解析実行装置と、前記解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置と、を備えたプログラム解析システムにおけるプログラム解析方法であって、
    前記解析実行装置が、実行環境を構成するための構成要素を選択して、1つ以上の前記被疑検体を実行する第1のステップと、
    前記プログラム解析装置が、前記解析実行装置の実行環境を構成する1つ以上の構成要素を保持し、前記第1のステップにおける前記被疑検体の実行時の挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算する第2のステップと、
    前記プログラム解析装置が、前記構成要素寄与率に基づいて1つ以上の前記構成要素を選択する第3のステップと、
    前記プログラム解析装置が前記第3のステップにおいて選択された前記構成要素を実行環境として前記解析実行装置に提供する第4のステップと
    を含むことを特徴とする、プログラム解析方法。
  10. 計算機プログラムである被疑検体を実行させる解析実行装置と、
    前記解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置と、
    を備えたプログラム解析システムであって、
    前記解析実行装置は、
    実行環境を構成するための構成要素を選択して、1つ以上の前記被疑検体を実行し、
    前記プログラム解析装置は、
    前記解析実行装置の実行環境を構成する1つ以上の構成要素を保持し、
    前記挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算し、
    前記構成要素寄与率に基づいて1つ以上の前記構成要素を選択し、該構成要素を実行環境として前記解析実行装置に提供する
    ことを特徴とする、プログラム解析システム。
JP2014116780A 2014-06-05 2014-06-05 プログラム解析装置、プログラム解析方法及びプログラム解析システム Active JP6116524B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014116780A JP6116524B2 (ja) 2014-06-05 2014-06-05 プログラム解析装置、プログラム解析方法及びプログラム解析システム
PCT/JP2015/063857 WO2015186483A1 (ja) 2014-06-05 2015-05-14 プログラム解析装置、プログラム解析方法及びプログラム解析システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014116780A JP6116524B2 (ja) 2014-06-05 2014-06-05 プログラム解析装置、プログラム解析方法及びプログラム解析システム

Publications (2)

Publication Number Publication Date
JP2015230601A JP2015230601A (ja) 2015-12-21
JP6116524B2 true JP6116524B2 (ja) 2017-04-19

Family

ID=54766560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014116780A Active JP6116524B2 (ja) 2014-06-05 2014-06-05 プログラム解析装置、プログラム解析方法及びプログラム解析システム

Country Status (2)

Country Link
JP (1) JP6116524B2 (ja)
WO (1) WO2015186483A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016117317A1 (ja) * 2015-01-22 2017-11-02 日本電気株式会社 ソフトウェア判定装置、ソフトウェア判定方法、ソフトウェア判定プログラム、ソフトウェア解析装置、及び、マルウェア診断装置
JP6711000B2 (ja) * 2016-02-12 2020-06-17 日本電気株式会社 情報処理装置、ウィルス検出方法及びプログラム
JP6626804B2 (ja) * 2016-09-12 2019-12-25 株式会社日立アドバンストシステムズ 計算機、選定方法、および選定プログラム
KR102204222B1 (ko) * 2018-11-23 2021-01-19 주식회사 이스트시큐리티 독립된 장치를 이용한 악성코드 분석 시스템
WO2021240770A1 (en) * 2020-05-29 2021-12-02 Nec Corporation Knowledge generation apparatus, control method, and storage device
WO2022259528A1 (ja) * 2021-06-11 2022-12-15 日本電信電話株式会社 生成装置、生成方法及び生成プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8479286B2 (en) * 2009-12-15 2013-07-02 Mcafee, Inc. Systems and methods for behavioral sandboxing
JP5912074B2 (ja) * 2012-10-30 2016-04-27 株式会社日立製作所 プログラム解析システム及び方法
US9106692B2 (en) * 2013-01-31 2015-08-11 Northrop Grumman Systems Corporation System and method for advanced malware analysis

Also Published As

Publication number Publication date
WO2015186483A1 (ja) 2015-12-10
JP2015230601A (ja) 2015-12-21

Similar Documents

Publication Publication Date Title
JP6116524B2 (ja) プログラム解析装置、プログラム解析方法及びプログラム解析システム
US11368432B2 (en) Network containment of compromised machines
US10075455B2 (en) Zero-day rotating guest image profile
US10083294B2 (en) Systems and methods for detecting return-oriented programming (ROP) exploits
US11055410B2 (en) Malicious program identification based on program behavior
JP6499380B2 (ja) ログ分析装置、ログ分析方法およびログ分析プログラム
Vidas et al. A5: Automated analysis of adversarial android applications
Wang et al. Gatekeeper: Monitoring Auto-Start Extensibility Points (ASEPs) for Spyware Management.
US10382468B2 (en) Malware identification via secondary file analysis
EP2701092A1 (en) Method for identifying malicious executables
JP2009031859A (ja) 情報収集システムおよび情報収集方法
EP3971751A1 (en) Method and system for real time detection and prioritization of computing assets affected by publicly known vulnerabilities based on topological and transactional monitoring data
US20160048686A1 (en) System, method, and computer program product for monitoring an execution flow of a function
US20220046030A1 (en) Simulating user interactions for malware analysis
EP2985716B1 (en) Information processing device and identifying method
JP2018200642A (ja) 脅威検出プログラム、脅威検出方法および情報処理装置
Miller et al. Insights gained from constructing a large scale dynamic analysis platform
US10375576B1 (en) Detection of malware apps that hijack app user interfaces
US10685115B1 (en) Method and system for implementing cloud native application threat detection
US10635811B2 (en) System and method for automation of malware unpacking and analysis
US20230096108A1 (en) Behavior analysis based on finite-state machine for malware detection
US11914711B2 (en) Systems and methods for automatically generating malware countermeasures
JP2020005234A (ja) 生成装置、生成方法及び生成プログラム
Smestad Towards Understanding Systems Through User Interactions
Vidas et al. A5: Automated Analysis of Adversarial Android Applications (CMU-CyLab-13-009)(Revised June 3, 2014)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170113

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170321

R150 Certificate of patent or registration of utility model

Ref document number: 6116524

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