(57)【要約】【課題】メモリダンプ内の秘匿対象データの情報漏洩を防止すること。【解決手段】情報処理装置１００は、実行中のソフトウェアＳＷの異常を検出する。ソフトウェアＳＷは、例えば、ＯＳ、ミドルウェアなどのシステムやアプリケーションである。情報処理装置１００は、ソフトウェアＳＷの異常を検出すると、メモリダンプ内の秘匿対象データを特定する。情報処理装置１００は、特定した秘匿対象データを書き換えるマスク処理を施す。マスク処理は、秘匿対象データを別データに書き換えて、元の情報を解読不可能とする処理である。情報処理装置１００は、マスク処理を施したメモリダンプを出力する。【選択図】図１
2017207876.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
ソフトウェアの異常を検出すると、メモリダンプ内の秘匿対象データを特定し、
特定した前記秘匿対象データを書き換えるマスク処理を施し、
前記マスク処理を施した前記メモリダンプを出力する、
処理を実行させることを特徴とするダンプマスクプログラム。
【請求項２】
前記特定する処理は、
前記ソフトウェアに定義されたデータ構造を参照して、秘匿対象に指定されたデータ項目に対応するメモリ内のデータを秘匿対象データとして特定する、ことを特徴とする請求項１に記載のダンプマスクプログラム。
【請求項３】
前記特定する処理は、
前記メモリダンプ内のテキスト部分を抽出し、秘匿対象となり得る情報の構造を表す所定のパターンを記憶する記憶部を参照して、抽出した前記テキスト部分と前記所定のパターンとを比較し、前記所定のパターンに合致するテキスト部分を秘匿対象データとして特定する、ことを特徴とする請求項１または２に記載のダンプマスクプログラム。
【請求項４】
前記マスク処理を施す処理は、
特定した前記秘匿対象データを黒塗り状態にする所定のコードに書き換える、ことを特徴とする請求項１〜３のいずれか一つに記載のダンプマスクプログラム。
【請求項５】
前記マスク処理を施す処理は、
特定した前記秘匿対象データを当該秘匿対象データの種類を示す文字列データに書き換える、ことを特徴とする請求項１〜３のいずれか一つに記載のダンプマスクプログラム。
【請求項６】
コンピュータが、
ソフトウェアの異常を検出すると、メモリダンプ内の秘匿対象データを特定し、
特定した前記秘匿対象データを書き換えるマスク処理を施し、
前記マスク処理を施した前記メモリダンプを出力する、
処理を実行することを特徴とするダンプマスク方法。
【請求項７】
ソフトウェアの異常を検出すると、メモリダンプ内の秘匿対象データを特定し、
特定した前記秘匿対象データを書き換えるマスク処理を施し、
前記マスク処理を施した前記メモリダンプを出力する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダンプマスクプログラム、ダンプマスク方法、および情報処理装置に関する。
【背景技術】
【０００２】
従来、システム運用時にトラブルが発生した場合、トラブル調査のために、トラブルが発生した時点のシステムの状況を把握することを目的として、メモリ上に展開されているデータを収集することがある。収集されるデータとしては、例えば、メモリダンプ、トレース情報、ログなどがある。
【０００３】
先行技術としては、例えば、顧客計算機システムで発生した障害に関するメモリダンプを保守センタの計算機システムから診断する場合、機密情報が格納されている領域、あるいは、その空間全体の予め定めた領域の情報を除く他のメモリダンプ情報のみをセンタ計算機システムに送信するものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平３−３４０３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、メモリダンプに含まれる機密情報（顧客の個人情報など）の漏洩を防ぐことが難しい。例えば、機密情報を含む領域を非収集対象の領域とすると、機密情報を含む領域全体が非収集対象となり、機密情報ではない情報までが収集されなくなって、トラブル調査の際に情報不足を起こすおそれがある。
【０００６】
一つの側面では、本発明は、メモリダンプ内の秘匿対象データの情報漏洩を防止することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、ソフトウェアの異常を検出すると、メモリダンプ内の秘匿対象データを特定し、特定した前記秘匿対象データを書き換えるマスク処理を施し、前記マスク処理を施した前記メモリダンプを出力するダンプマスクプログラム、ダンプマスク方法、および情報処理装置が提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、メモリダンプ内の秘匿対象データの情報漏洩を防止することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１にかかるダンプマスク方法の一実施例を示す説明図である。
【図２】図２は、システム２００のシステム構成例を示す説明図である。
【図３】図３は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、ソフトウェアＳＷの作成手順の一例を示す説明図である。
【図５】図５は、ソースプログラムの具体例を示す説明図である。
【図６】図６は、実施の形態２にかかる情報処理装置１００の機能的構成例を示すブロック図である。
【図７】図７は、データの配置イメージを示す説明図である。
【図８】図８は、メモリダンプの表示例を示す説明図（その１）である。
【図９】図９は、実施の形態２にかかる情報処理装置１００のダンプマスク処理手順の一例を示すフローチャートである。
【図１０】図１０は、実施の形態３にかかる情報処理装置１００の機能的構成例を示すブロック図である。
【図１１】図１１は、対応表１１００の具体例を示す説明図である。
【図１２】図１２は、メモリダンプの表示例を示す説明図（その２）である。
【図１３】図１３は、実施の形態３にかかる情報処理装置１００のダンプマスク処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかるダンプマスクプログラム、ダンプマスク方法、および情報処理装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態１）
図１は、実施の形態１にかかるダンプマスク方法の一実施例を示す説明図である。図１において、情報処理装置１００は、メモリダンプ内の秘匿対象データに対してマスク処理を施すコンピュータである。
【００１２】
ここで、メモリダンプとは、システム運用時にトラブルが発生した際、トラブルの原因究明や検証のために、トラブルが発生した時点のメモリの一部あるいは全部の内容を記録したバイナリ形式の情報である。システムは、例えば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ミドルウェアなどのソフトウェアである。
【００１３】
メモリダンプは、例えば、命令コードやデータを含む。命令コードは、実行するためにメモリ上にロードされたプログラム本体のコードである。データは、命令コードで利用するためにメモリ上に置かれたデータや、ＤＢ（Ｄａｔａｂａｓｅ）やファイルの処理のためにメモリ上にロード（展開）されたデータである。命令コードで利用されるデータとしては、例えば、関数に指定されたパラメータ、戻り値、プログラム内で定義された変数、他システムとのデータのやりとりの内容などがある。
【００１４】
一方、メモリダンプには、重要情報（機密情報）が含まれている場合がある。重要情報としては、例えば、顧客の氏名、住所、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、マイナンバーなどの個人情報が挙げられる。ところが、メモリ上のデータにはファイルやＤＢで実施されるようなセキュリティ対策は行われない。このため、メモリ上に展開されたデータは、たとえ重要情報であっても一括してダンプデータとして収集され、以下のような行為が可能となって重要情報が漏洩するおそれがある。
【００１５】
例えば、ＤＢやファイル上ではロックされているデータであっても、メモリ上ではアクセス可能となるため、採取した全データの第三者（例えば、トラブル調査者）による参照が可能となる。具体的には、例えば、顧客の個人情報は、テキストデータであることが多く、バイナリエディタを利用すれば文字として表示され容易に読むことが可能となる。
【００１６】
さらに、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の記録媒体を利用して、第三者によって顧客先から重要情報が持ち出されて悪用されるおそれがある。したがって、たとえトラブル調査者であっても重要情報については見えないようにすることが望ましい。
【００１７】
そこで、本実施の形態では、メモリダンプ内の秘匿対象データに対してマスク処理を施して、元の情報を解読不可能とすることで、メモリダンプ内の秘匿対象データの情報漏洩を防止するダンプマスク方法について説明する。以下、情報処理装置１００の処理例について説明する。
【００１８】
（１）情報処理装置１００は、実行中のソフトウェアＳＷの異常を検出する。ここで、ソフトウェアＳＷは、例えば、ＯＳ、ミドルウェアなどのシステムやアプリケーションである。検出対象となる異常は、例えば、異常終了などのトラブル調査でダンプ収集が行われる可能性がある異常である。
【００１９】
（２）情報処理装置１００は、ソフトウェアＳＷの異常を検出すると、メモリダンプ内の秘匿対象データを特定する。ここで、秘匿対象データは、第三者に見られないようにすることが望ましい重要情報であり、例えば、顧客の氏名、住所、マイナンバー、ＩＰアドレスなどの個人情報である。
【００２０】
具体的には、例えば、情報処理装置１００は、メモリ（例えば、後述する図３に示すメモリ３０２）から必要なデータを順次読み出して、ファイル１１０に格納する前に、当該データに重要情報が含まれるか否かを判断することにより、秘匿対象データを特定する。図１の例では、秘匿対象データＤ１〜Ｄ４が特定された場合を想定する。
【００２１】
なお、情報処理装置１００は、例えば、メモリダンプを一旦取得して一時ファイルに格納した後、一時ファイル内のデータ（ダンプデータ）を順次読み出して、当該データに重要情報が含まれるか否かを判断することにより、秘匿対象データを特定することにしてもよい。
【００２２】
（３）情報処理装置１００は、特定した秘匿対象データを書き換えるマスク処理を施す。ここで、マスク処理とは、秘匿対象データを別データ（例えば、別の文字、数字、記号）に書き換えて、元の情報を解読不可能とする処理である。
【００２３】
図１の例では、秘匿対象データＤ１〜Ｄ４が黒塗り用コードＤ１’〜Ｄ４’に書き換えられて、ファイル１１０に格納されている。黒塗り用コードＤ１’〜Ｄ４’は、秘匿対象データＤ１〜Ｄ４を黒塗り状態、すなわち、文字として表示される際に黒塗り表示にするコードである。
【００２４】
（４）情報処理装置１００は、マスク処理を施したメモリダンプを出力する。具体的には、例えば、情報処理装置１００は、黒塗り用コードＤ１’〜Ｄ４’を含むファイル１１０を、トラブル調査者のコンピュータ、あるいは、トラブル調査者のコンピュータがアクセス可能なサーバなどに出力する。
【００２５】
このように、実施の形態１にかかる情報処理装置１００によれば、ソフトウェアＳＷの異常を検出すると、メモリダンプ内の秘匿対象データを特定することができる。そして、情報処理装置１００によれば、特定した秘匿対象データを書き換えるマスク処理を施して、マスク処理を施したメモリダンプを出力することができる。
【００２６】
これにより、メモリダンプ内の秘匿対象データの情報漏洩を防止することができる。例えば、メモリダンプ内の顧客の重要情報を黒塗り状態にして元の情報を解読不可能にすることで、トラブル調査の際に、たとえトラブル調査者であっても重要情報の内容が参照できなくなり、顧客の氏名、住所などが漏洩して悪用されるのを防ぐことができる。
【００２７】
（実施の形態２）
つぎに、実施の形態２にかかる情報処理装置１００について説明する。実施の形態２では、ソフトウェアＳＷのメモリマップが判っている、すなわち、メモリの使い方が判っている場合を想定する。なお、実施の形態１で説明した箇所と同様の箇所については、同一符号を付して説明を省略する。
【００２８】
まず、実施の形態２にかかるシステム２００のシステム構成例について説明する。
【００２９】
図２は、システム２００のシステム構成例を示す説明図である。図２において、システム２００は、情報処理装置１００と、調査用端末２０１と、を含む。システム２００において、情報処理装置１００および調査用端末２０１は、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００３０】
情報処理装置１００は、ソフトウェアＳＷを実行するコンピュータであり、実行中のソフトウェアＳＷに異常が発生した際に、メモリダンプ内の秘匿対象データに対してマスク処理を施して、マスク処理を施したメモリダンプを出力する。情報処理装置１００は、例えば、サーバである。
【００３１】
調査用端末２０１は、トラブル調査者が使用するコンピュータであり、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ノートＰＣ、タブレットＰＣなどである。なお、トラブル調査者は、ソフトウェアＳＷに異常が発生した原因の究明や検証を行う者である。
【００３２】
（情報処理装置１００のハードウェア構成例）
図３は、情報処理装置１００のハードウェア構成例を示すブロック図である。図３において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、ディスクドライブ３０４と、ディスク３０５と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００３３】
ここで、ＣＰＵ３０１は、情報処理装置１００の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００３４】
Ｉ／Ｆ３０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータ（例えば、図２に示した調査用端末２０１）に接続される。Ｉ／Ｆ３０３は、ネットワーク２１０と装置内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３５】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリード／ライトを制御する。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する。ディスク３０５としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００３６】
なお、情報処理装置１００は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、キーボード、マウス、ディスプレイなどを有することにしてもよい。また、図２に示した調査用端末２０１についても、情報処理装置１００と同様のハードウェア構成により実現することができる。ただし、調査用端末２０１は、上述した構成部のほかに、キーボード、マウス、ディスプレイなどを有する。
【００３７】
（ソフトウェアＳＷの作成の手順）
つぎに、図４および図５を用いて、本ダンプマスクプログラムを含むソフトウェアＳＷの作成の手順について説明する。
【００３８】
図４は、ソフトウェアＳＷの作成手順の一例を示す説明図である。図４において、（ｉ）作成者は、ソフトウェアＳＷのソースプログラムの作成でデータ定義を行う際に、図５に示すように、重要情報にｃｏｎｆｉｄｅｎｔｉａｌを指定して、「このデータは重要情報である」と宣言する。
【００３９】
図５は、ソースプログラムの具体例を示す説明図である。図５において、ソースプログラム５００は、ソフトウェアＳＷのソースプログラムの一部を抜粋して表示したものである。ｎａｍｅ［２０］、ｚｉｐ［９］、ａｄｄｒｅｓｓ［５０］、ａｇｅは、それぞれ名前、郵便番号、住所、年齢を示すデータ項目である。［］内の数字は、データ長（バイト数）を示す。
【００４０】
図５の例では、名前（ｎａｍｅ［２０］）、郵便番号（ｚｉｐ［９］）、住所（ａｄｄｒｅｓｓ［５０］）、年齢（ａｇｅ）の順に、各データ項目のデータが指定されている。また、名前（ｎａｍｅ［２０］）、郵便番号（ｚｉｐ［９］）、住所（ａｄｄｒｅｓｓ［５０］）のデータ項目が重要情報、すなわち、秘匿対象のデータ項目として指定されている。
【００４１】
図４の説明に戻り、（ｉｉ）情報処理装置１００は、プリプロセッサにより、本ダンプマスクプログラムの異常監視機能Ｆ１およびマスク機能Ｆ２を生成して、ソフトウェアＳＷに組み込む。プリプロセッサは、コンパイル前に前処理を行うプログラムである。
【００４２】
異常監視機能Ｆ１は、実行中のソフトウェアＳＷの異常を検出する機能である。マスク機能Ｆ２は、ソフトウェアＳＷの異常が発生した時にメモリダンプ内の秘匿対象データに対してマスク処理を施す機能である。これにより、本ダンプマスクプログラムの異常監視機能Ｆ１およびマスク機能Ｆ２が組み込まれたソフトウェアＳＷが作成される。
【００４３】
（ｉｉｉ）情報処理装置１００は、コンパイラにより、ソフトウェアＳＷのソースプログラムをコンパイルする。これにより、ソフトウェアＳＷをコンピュータが実行可能な形式に変換することができる。
【００４４】
（情報処理装置１００の機能的構成例）
図６は、実施の形態２にかかる情報処理装置１００の機能的構成例を示すブロック図である。図６において、情報処理装置１００は、検出部６０１と、特定部６０２と、書換部６０３と、出力部６０４と、を含む構成である。各機能部６０１〜６０４は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【００４５】
検出部６０１は、ソフトウェアＳＷの異常を検出する。ここで、検出対象となる異常は、発生時にトラブル調査のためにダンプ収集が行われる可能性がある異常であり、任意に設定可能である。なお、図４に示した異常監視機能Ｆ１は、例えば、検出部６０１により実現される。
【００４６】
特定部６０２は、メモリダンプ内の秘匿対象データを特定する。具体的には、例えば、特定部６０２は、ソフトウェアＳＷの異常が検出された場合に、ソフトウェアＳＷに割り当てられたメモリ３０２内のデータ域の先頭アドレスを取得する。そして、特定部６０２は、取得したデータ域の先頭アドレスに基づいて、ソフトウェアＳＷに定義されたデータ構造を参照して、秘匿対象に指定されたデータ項目に対応するメモリ３０２内のデータを秘匿対象データとして特定する。
【００４７】
ここで、図７を用いて、特定部６０２の具体的な処理内容について説明する。
【００４８】
図７は、データの配置イメージを示す説明図である。図７において、ソースプログラム５００（図５参照）で定義されたデータ構造に従ってメモリ３０２上に配置されるデータの配置イメージが示されている。具体的には、名前（ｎａｍｅ［２０］）、郵便番号（ｚｉｐ［９］）、住所（ａｄｄｒｅｓｓ［５０］）、年齢（ａｇｅ）の順に、各データ項目のデータが配置されている。
【００４９】
この場合、例えば、メモリ３０２内のデータ域の先頭アドレスから２０バイト分のデータは、秘匿対象のデータ項目として指定された名前（ｎａｍｅ［２０］）のデータである。このため、特定部６０２は、データ域の先頭アドレスから２０バイト分のデータ（データ項目：ｎａｍｅ）を秘匿対象データとして特定する。
【００５０】
また、次の９バイト分のデータは、秘匿対象のデータ項目として指定された郵便番号（ｚｉｐ［９］）のデータである。このため、特定部６０２は、次の９バイト分のデータ（データ項目：ｚｉｐ）を秘匿対象データとして特定する。以降同様にして秘匿対象データを特定することができる。
【００５１】
図６の説明に戻り、書換部６０３は、特定された秘匿対象データを書き換えるマスク処理を施す。具体的には、例えば、書換部６０３は、特定された秘匿対象データを黒塗り状態にする所定のコード（黒塗り用コード）に書き換えることにしてもよい。これにより、元の情報（例えば、氏名、郵便番号、住所）を解読不可能にマスキングすることができる。
【００５２】
なお、書換部６０３は、書換前後のデータ長を合わせて、元の情報の長さは維持するものとする。また、所定のコードは、ソフトウェアＳＷに定義されていてもよく、また、メモリ３０２、ディスク３０５などの記憶装置から読み出されることにしてもよい。
【００５３】
また、書換部６０３は、例えば、特定された秘匿対象データを当該秘匿対象データの種類を示す文字列データに書き換えることにしてもよい。ここで、秘匿対象データの種類は、秘匿対象データがどのような特徴、性質のデータであるかを判別するためのものであり、例えば、秘匿対象データのデータ項目である。
【００５４】
例えば、秘匿対象データとして、名前（ｎａｍｅ［２０］）のデータが特定されたとする。この場合、書換部６０３は、秘匿対象データを当該秘匿対象データのデータ項目「ｎａｍｅ」を示す文字列データに書き換えることにしてもよい。これにより、トラブル調査者に対して元の情報の種類を提示して、マスクされた箇所にどのような情報があったのかを判別可能にすることができる。
【００５５】
なお、図４に示したマスク機能Ｆ２は、例えば、特定部６０２および書換部６０３により実現される。
【００５６】
出力部６０４は、秘匿対象データにマスク処理が施されたメモリダンプを出力する。出力部６０４の出力形式としては、例えば、メモリ３０２、ディスク３０５などの記憶装置への記憶、Ｉ／Ｆ３０３による外部装置（例えば、図２に示した調査用端末２０１）への送信、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。
【００５７】
具体的には、例えば、出力部６０４は、秘匿対象データにマスク処理が施されたメモリダンプを格納したダンプファイルを、調査用端末２０１に送信することにしてもよい。これにより、調査用端末２０１において、秘匿対象データが解読不可能にマスキングされた状態のメモリダンプを表示することができる。
【００５８】
（メモリダンプの出力例）
つぎに、メモリダンプの出力例について説明する。ここでは、調査用端末２０１のディスプレイ（不図示）に表示されるメモリダンプの表示例を例に挙げて説明する。また、バイナリエディタなどを利用して、メモリダンプの内容が文字として表示されている場合を想定する。
【００５９】
図８は、メモリダンプの表示例を示す説明図（その１）である。図８において、メモリダンプ８１０は、マスク処理が施される前のメモリダンプを示している。また、メモリダンプ８２０は、メモリダンプ８１０内の秘匿対象データ８１１，８１２，８１３にマスク処理（黒塗り）が施された後のメモリダンプを示している。
【００６０】
調査用端末２０１には、秘匿対象データ８１１，８１２，８１３が黒塗り表示されたメモリダンプ８２０が表示される。これにより、トラブル調査の際に、たとえトラブル調査者であっても秘匿対象データ８１１，８１２，８１３の内容が参照できなくなり、顧客の氏名、郵便番号、住所などの重要情報が漏洩するのを防ぐことができる。
【００６１】
（情報処理装置１００のダンプマスク処理手順）
つぎに、情報処理装置１００のダンプマスク処理手順について説明する。
【００６２】
図９は、実施の形態２にかかる情報処理装置１００のダンプマスク処理手順の一例を示すフローチャートである。図９のフローチャートにおいて、まず、情報処理装置１００は、ソフトウェアＳＷの異常を検出したか否かを判断する（ステップＳ９０１）。
【００６３】
ここで、情報処理装置１００は、ソフトウェアＳＷの異常を検出するのを待つ（ステップＳ９０１：Ｎｏ）。そして、情報処理装置１００は、ソフトウェアＳＷの異常を検出した場合（ステップＳ９０１：Ｙｅｓ）、ソフトウェアＳＷに割り当てられたメモリ３０２内のデータ域の先頭アドレスを取得する（ステップＳ９０２）。
【００６４】
つぎに、情報処理装置１００は、ソフトウェアＳＷに定義されたデータ構造を参照して、メモリ３０２からデータを読み出す（ステップＳ９０３）。そして、情報処理装置１００は、読み出したデータがｃｏｎｆｉｄｅｎｔｉａｌとして指定されたデータであるか否かを判断する（ステップＳ９０４）。
【００６５】
ここで、ｃｏｎｆｉｄｅｎｔｉａｌとして指定されたデータの場合（ステップＳ９０４：Ｙｅｓ）、情報処理装置１００は、読み出したデータを書き換えるマスク処理を施す（ステップＳ９０５）。そして、情報処理装置１００は、マスク処理を施したデータをディスク３０５（図３参照）上のダンプファイルに格納して（ステップＳ９０６）、ステップＳ９０７に移行する。
【００６６】
また、ステップＳ９０４において、ｃｏｎｆｉｄｅｎｔｉａｌとして指定されたデータではない場合（ステップＳ９０４：Ｎｏ）、情報処理装置１００は、読み出したデータをディスク３０５上のダンプファイルに格納する（ステップＳ９０６）。つぎに、情報処理装置１００は、メモリ３０２からのデータの読み出しが終了したか否かを判断する（ステップＳ９０７）。
【００６７】
ここで、データの読み出しが終了していない場合（ステップＳ９０７：Ｎｏ）、情報処理装置１００は、ステップＳ９０３に戻る。一方、データの読み出しが終了した場合（ステップＳ９０７：Ｙｅｓ）、情報処理装置１００は、ダンプファイルを出力して（ステップＳ９０８）、本フローチャートによる一連の処理を終了する。
【００６８】
これにより、顧客の氏名、郵便番号、住所などの秘匿対象データを解読不可能にマスキングしてからメモリダンプ（ダンプファイル）を出力することができる。
【００６９】
以上説明したように、実施の形態２にかかる情報処理装置１００によれば、ソフトウェアＳＷに定義されたデータ構造を参照して、秘匿対象に指定されたデータ項目に対応するメモリ３０２内のデータを秘匿対象データとして特定することができる。そして、情報処理装置１００によれば、特定した秘匿対象データを書き換えるマスク処理を施して、マスク処理を施したメモリダンプを出力することができる。
【００７０】
これにより、ソフトウェアＳＷのメモリマップが判っている場合には、ソフトウェアＳＷの作成時に、ソースプログラム上で秘匿対象となるデータ項目を予め指定しておくことで、メモリダンプ内の秘匿対象データを精度よく特定することができる。また、顧客の重要情報等の秘匿対象データをピンポイントでマスク処理できるため、重要情報ではない部分がマスキングされるのを防いで、トラブル調査の際の情報不足を回避できる。
【００７１】
また、実施の形態２にかかる情報処理装置１００によれば、特定した秘匿対象データを黒塗り状態にする所定のコードに書き換えることができる。これにより、元の情報（例えば、氏名、郵便番号、住所）を解読不可能にマスキングすることができる。
【００７２】
また、実施の形態２にかかる情報処理装置１００によれば、特定した秘匿対象データを当該秘匿対象データの種類を示す文字列データに書き換えることができる。これにより、トラブル調査者等に対して元の情報の種類を提示して、マスクされた箇所にどのような情報があったのかを判別可能にすることができる。
【００７３】
（実施の形態３）
つぎに、実施の形態３にかかる情報処理装置１００について説明する。実施の形態３では、ソフトウェアＳＷのメモリマップが判っていない、すなわち、メモリの使い方が判っていない場合を想定する。なお、実施の形態１，２で説明した箇所と同様の箇所については、同一符号を付して説明を省略する。
【００７４】
まず、実施の形態３にかかる情報処理装置１００の機能的構成例について説明する。
【００７５】
図１０は、実施の形態３にかかる情報処理装置１００の機能的構成例を示すブロック図である。図１０において、情報処理装置１００は、検出部６０１と、第２の特定部１００１と、第２の書換部１００２と、出力部６０４と、を含む構成である。各機能部６０１，６０４，１００１，１００２は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【００７６】
以下、実施の形態２にかかる情報処理装置１００と異なる機能部について説明する。なお、実施の形態３にかかる情報処理装置１００についても、実施の形態２にかかる情報処理装置１００が有する特定部６０２と同様の機能部を有することにしてもよい。
【００７７】
第２の特定部１００１は、メモリダンプ内の秘匿対象データを特定する。具体的には、例えば、第２の特定部１００１は、ソフトウェアＳＷの異常が検出された場合に、メモリ３０２上にロード（展開）された必要なデータを収集して一時ファイルに格納することにより、メモリダンプを取得する。
【００７８】
つぎに、第２の特定部１００１は、取得したメモリダンプ内のテキスト部分（テキストデータ）を抽出する。ここで、重要情報（顧客の個人情報など）は、一般的にはテキストで表現されており、メモリ３０２上では、そのテキストが、コンピュータが処理可能なバイナリで展開されている。このため、重要情報である秘匿対象データを特定するために、まず、第２の特定部１００１はテキスト部分を抽出する。
【００７９】
そして、第２の特定部１００１は、構造パターンＤＢ１０１０を参照して、抽出したテキスト部分と、所定のパターンとを比較する。より詳細に説明すると、例えば、第２の特定部１００１は、抽出したテキスト部分を自然言語処理（形態素解析、構文解析、意味解析等）して得られる文字列（単語、文等）と、所定のパターンとを比較する。そして、第２の特定部１００１は、所定のパターンに合致するテキスト部分を秘匿対象データとして特定する。
【００８０】
ここで、構造パターンＤＢ１０１０は、秘匿対象となり得る情報（重要情報）の構造を表す所定のパターンを記憶する。構造パターンＤＢ１０１０は、例えば、メモリ３０２、ディスク３０５などの記憶装置により実現される。重要情報は、例えば、郵便番号、住所、ＩＰアドレス、コンピュータ名、氏名、マイナンバーなどである。例えば、所定のパターンは、郵便番号、住所およびＩＰアドレスのうちの少なくともいずれかを正規表現したものである。また、所定のパターンは、既存の郵便番号、住所（市区町村レベル）、コンピュータ名を表す文字列であってもよい。
【００８１】
以下、秘匿対象データとなり得る情報として、郵便番号、住所、ＩＰアドレスおよび氏名を例に挙げて、第２の特定部１００１の具体的な処理例について説明する。
【００８２】
・郵便番号
第２の特定部１００１は、構造パターンＤＢ１０１０を参照して、テキスト部分と既存の郵便番号とを比較して、既存の郵便番号に合致したテキスト部分を秘匿対象データとして特定する。また、第２の特定部１００１は、構造パターンＤＢ１０１０を参照して、テキスト部分と郵便番号の正規表現とを比較して、郵便番号の正規表現に合致したテキスト部分を秘匿対象データとして特定する。
【００８３】
郵便番号の正規表現としては、例えば、「〒￥ｄ｛３｝−￥ｄ｛４｝」を用いることができる。この正規表現は、〒（記号）と数字３桁と−（ハイフン）と数字４桁を表す。ただし、郵便番号記号を省略して郵便番号が記憶されている場合がある。このため、郵便番号の正規表現として、「￥ｄ｛３｝￥−￥ｄ｛４｝」も用いることにしてもよい。この正規表現は、数字３桁と−（ハイフン）と数字４桁を表す。
【００８４】
これにより、メモリダンプ内の郵便番号を示すデータを秘匿対象データとして特定することができる。
【００８５】
・住所
第２の特定部１００１は、構造パターンＤＢ１０１０を参照して、テキスト部分と既存の住所とを比較して、既存の住所に合致したテキスト部分を秘匿対象データとして特定する。また、第２の特定部１００１は、構造パターンＤＢ１０１０を参照して、テキスト部分と住所の正規表現とを比較して、住所の正規表現に合致したテキスト部分を秘匿対象データとして特定する。
【００８６】
住所の正規表現としては、例えば、「＾（（北海道｜東京都｜（大阪｜京都）府｜（神奈川｜和歌山｜鹿児島）県｜［＾￥ｓ￥ｗ￥ｄ］｛２｝県）［＾￥ｓ￥ｗ￥ｄ］｛１，４｝［市郡区町村］［＾￥ｓ￥ｗ￥ｄ］｛１，１５｝）」を用いることができる。ここで、北海道｜東京都｜（大阪｜京都）府｜（神奈川｜和歌山｜鹿児島）県は、北海道、都道府、３文字の県を示す。
【００８７】
また、［＾￥ｓ￥ｗ￥ｄ］｛２｝県は、２文字の県のパターンを示す。￥ｓは、リターン、タブなどの制御文字である。￥ｗは、アルファベット／アラビア数字／アンダーバー、すなわち「［ａ−ｚＡ−Ｚ＿０−９］である。￥ｄは、数字、すなわち［０−９］である。また、［＾￥ｓ￥ｗ￥ｄ  ］｛１，４｝［市郡区町村］は、４文字以内の市郡区町村名を示す。また、［＾￥ｓ￥ｗ￥ｄ  ］｛１，１５｝）は、市郡区町村の後に続く詳細な地名を示す（長さは１５よりも長くてもよい）。
【００８８】
これにより、メモリダンプ内の住所を示すデータを秘匿対象データとして特定することができる。なお、第２の特定部１００１は、例えば、郵便番号と住所の関係ＤＢを持ち、抽出した郵便番号と住所が合致しているか否かをチェックすることにしてもよい。
【００８９】
・ＩＰアドレス
第２の特定部１００１は、構造パターンＤＢ１０１０を参照して、テキスト部分とＩＰアドレスの正規表現とを比較して、ＩＰアドレスの正規表現に合致したテキスト部分を秘匿対象データとして特定する。
【００９０】
ＩＰアドレス（ＩＰｖ４）の正規表現としては、例えば、「／＾（￥ｄ｜［０１］？￥ｄ￥ｄ｜２［０−４］￥ｄ｜２５［０−５］）￥．（￥ｄ｜［０１］？￥ｄ￥ｄ｜２［０−４］￥ｄ｜２５［０−５］）￥．（￥ｄ｜［０１］？￥ｄ￥ｄ｜２［０−４］￥ｄ｜２５［０−５］）￥．（￥ｄ｜［０１］？￥ｄ￥ｄ｜２［０−４］￥ｄ｜２５［０−５］）＄／」を用いることができる。
【００９１】
最初の「／＾」は、ＩＰアドレスの先頭からマッチさせることを示す。最後の「＄／」は、ＩＰアドレスの末尾までマッチさせることを示す。「￥．」は、ＩＰアドレスの表現形式２５５．２５５．２５５の中の数値を区切る「．」を示す。「￥ｄ」は、１文字の数字０〜９を示す。「？」は、その直前の表現が０個か１個であることを示す。「｜」は、または（ｏｒ）を示す。
【００９２】
すなわち、「￥ｄ｜［０１］？￥ｄ￥ｄ｜２［０−４］￥ｄ｜２５［０−５］」は、［０−９］または［０１］？［０−９］［０−９］または２［０−４］［０−９］または２５［０−５］を示す。［０−９］は、０〜９を示し、［０１］？［０−９］［０−９］は、００〜１９９を示し、２［０−４］［０−９］は、２００〜２４９を示し、２５［０−５］は、２５０〜２５５を示す。
【００９３】
また、ＩＰアドレス（ＩＰｖ４）の形式を示す正規表現としては、例えば、「（￥ｄ｛１，３｝）￥．（￥ｄ｛１，３｝）￥．（￥ｄ｛１，３｝）￥．（￥ｄ｛１，３｝）」を用いることができる。｛  ｝は、前にある文字の指定した回数を示す。￥ｄ｛１，３｝は、数値が１回以上で３回以下繰り返されたものにマッチ（１，１２，２３４）させることを示す。ａｂ｛２｝は、ａｂｂにマッチさせることを示す。ａｂ｛２，｝は、２回以上繰り返されたものにマッチ（ａｂｂ，ａｂｂｂｂ，ａｂｂｂｂｂｂｂｂなど）させることを示す。ａｂ｛２，４｝は、２回以上で４回以下のものにマッチ（ａｂｂ，ａｂｂｂ，ａｂｂｂｂ）させることを示す。
【００９４】
これにより、メモリダンプ内のＩＰアドレスを示すデータを秘匿対象データとして特定することができる。なお、ここでは、ＩＰｖ４のＩＰアドレスを例に挙げて説明したが、ＩＰｖ６のＩＰアドレスについても同様にして特定することができる。
【００９５】
・名前
第２の特定部１００１は、抽出したテキスト部分を自然言語処理（形態素解析、構文解析、意味解析等）して得られる単語の後ろに敬称（例えば、さん、様、殿）が付加されているか否かを判断する。ここで、敬称が付加されている場合、第２の特定部１００１は、敬称の前の単語部分を、名前を示す秘匿対象データとして特定することにしてもよい。
【００９６】
また、構造パターンＤＢ１０１０に、既存の氏名を名前辞書として登録しておくことにしてもよい。この場合、第２の特定部１００１は、例えば、敬称が付加された単語が名前辞書に登録されていれば、敬称の前の単語部分（敬称部分を含めてもよい）を、名前を示す秘匿対象データとして特定することにしてもよい。また、第２の特定部１００１は、テキスト部分を自然言語処理して得られる各単語と名前辞書の氏名とを比較して、名前辞書の氏名に合致した単語を、名前を示す秘匿対象データとして特定することにしてもよい。
【００９７】
これにより、メモリダンプ内の名前（氏名）を示すデータを秘匿対象データとして特定することができる。
【００９８】
なお、特定された秘匿対象データの情報は、例えば、図１１に示すような対応表１１００に記憶される。ここで、対応表１１００の具体例について説明する。
【００９９】
図１１は、対応表１１００の具体例を示す説明図である。図１１において、対応表１１００は、距離、種類および通番のフィールドを有し、各フィールドに情報を設定することで、各秘匿対象データの対応情報（例えば、対応情報１１００−１〜１１００−６）をレコードとして記憶する。
【０１００】
距離は、メモリダンプにおける秘匿対象データの位置を示す情報であり、メモリダンプの先頭からの距離（相対的なアドレス）を示す。種類は、秘匿対象データの種類である。通番は、メモリダンプの先頭から順に秘匿対象データにつけられる一続きの番号である。ただし、データ内容が同じ秘匿対象データ同士には同じ番号が付与される。
【０１０１】
例えば、対応情報１１００−１は、メモリダンプの先頭から距離ｄ１に種類「ＩＰアドレス」、通番「００１」の秘匿対象データが存在することを示す。また、対応情報１１００−４は、メモリダンプの先頭から距離ｄ４に種類「ＩＰアドレス」、通番「００１」の秘匿対象データが存在することを示す。すなわち、距離ｄ１，ｄ４にデータ内容が同じ種類「ＩＰアドレス」の秘匿対象データが存在していることがわかる。
【０１０２】
図１０の説明に戻り、第２の書換部１００２は、特定された秘匿対象データを書き換えるマスク処理を施す。具体的には、例えば、第２の書換部１００２は、図６に示した書換部６０３と同様に、特定された秘匿対象データを黒塗り状態にする所定のコード（黒塗り用コード）に書き換えることにしてもよい。また、例えば、第２の書換部１００２は、特定された秘匿対象データを当該秘匿対象データの種類を示す文字列データに書き換えることにしてもよい。
【０１０３】
また、第２の書換部１００２は、特定された秘匿対象データを、当該秘匿対象データの種類および通番を示す文字列データに書き換えることにしてもよい。ここで、通番とは、上述したように、メモリダンプの先頭から順に秘匿対象データにつけられる一続きの番号であり、データ内容が同じ秘匿対象データ同士は同じ番号となる。
【０１０４】
具体的には、例えば、第２の書換部１００２は、図１１に示した対応表１１００を参照して、メモリダンプ内の秘匿対象データを、当該秘匿対象データの種類および通番を示す文字列データ（例えば、ＩＰ００１）に書き換える。ただし、書換前後のデータ長を合わせて、元の情報の長さは維持するものとする。
【０１０５】
これにより、元の情報の種類を判別可能にするとともに、メモリダンプ内に同じ内容の秘匿対象データが存在する場合に、元の情報が同じ内容であったマスク箇所を判別可能にすることができる。
【０１０６】
なお、上述した説明では、メモリダンプを対象として秘匿対象データを特定してマスク処理を施す場合について説明したが、これに限らない。例えば、ソフトウェアＳＷの異常発生時に出力されるログ・トレースファイルなどを対象として、秘匿対象データを特定してマスク処理を施すことにしてもよい。
【０１０７】
（メモリダンプの出力例）
つぎに、メモリダンプの出力例について説明する。ここでは、調査用端末２０１（図２参照）のディスプレイ（不図示）に表示されるメモリダンプの表示例を例に挙げて説明する。また、バイナリエディタなどを利用して、メモリダンプの内容が文字として表示されている場合を想定する。
【０１０８】
図１２は、メモリダンプの表示例を示す説明図（その２）である。図１２において、メモリダンプ１２１０は、マスク処理が施される前のメモリダンプを示している。また、メモリダンプ１２２０は、メモリダンプ１２１０内のテキスト部分１２１１〜１２１８のうちの秘匿対象データ１２１１，１２１２，１２１３，１２１５，１２１６，１２１７にマスク処理が施された後のメモリダンプを示している。なお、図１２中の「…」部分は、文字データではない部分とする。
【０１０９】
具体的には、秘匿対象データ１２１１が、秘匿対象データ１２１１の種類「ＩＰアドレス」および通番「００１」を示す文字列データ１２２１に書き換えられている。秘匿対象データ１２１２が、秘匿対象データ１２１２の種類「郵便番号」および通番「００１」を示す文字列データ１２２２に書き換えられている。秘匿対象データ１２１３が、秘匿対象データ１２１３の種類「住所」および通番「００１」を示す文字列データ１２２３に書き換えられている。秘匿対象データ１２１５が、秘匿対象データ１２１５の種類「ＩＰアドレス」および通番「００１」を示す文字列データ１２２４に書き換えられている。秘匿対象データ１２１６が、秘匿対象データ１２１６の種類「ＩＰアドレス」および通番「００２」を示す文字列データ１２２５に書き換えられている。秘匿対象データ１２１７が、秘匿対象データ１２１７の種類「名前」および通番「００１」を示す文字列データ１２２６に書き換えられている。
【０１１０】
調査用端末２０１には、メモリダンプ１２２０が表示される。これにより、トラブル調査の際に、たとえトラブル調査者であっても秘匿対象データ１２１１，１２１２，１２１３，１２１５，１２１６，１２１７の内容が参照できなくなり、顧客の氏名、郵便番号、住所、ＩＰアドレスなどの重要情報が漏洩するのを防ぐことができる。
【０１１１】
また、元の情報の種類が提示されるため、トラブル調査者は、マスクされた箇所にどのような情報があったのかを判別することができる。さらに、同じ内容の秘匿対象データには同じ番号の通番が付与されるため、トラブル調査者は、元の情報が同じ内容であったマスク箇所を判別することができる。図１２の例では、トラブル調査者は、文字列データ１２２１，１２２４が元は同じＩＰアドレスであったことが分かり、トラブルの原因究明や検証に役立てることができる。
【０１１２】
（情報処理装置１００のダンプマスク処理手順）
つぎに、情報処理装置１００のダンプマスク処理手順について説明する。
【０１１３】
図１３は、実施の形態３にかかる情報処理装置１００のダンプマスク処理手順の一例を示すフローチャートである。図１３のフローチャートにおいて、まず、情報処理装置１００は、ソフトウェアＳＷの異常を検出したか否かを判断する（ステップＳ１３０１）。
【０１１４】
ここで、情報処理装置１００は、ソフトウェアＳＷの異常を検出するのを待つ（ステップＳ１３０１：Ｎｏ）。そして、情報処理装置１００は、ソフトウェアＳＷの異常を検出した場合（ステップＳ１３０１：Ｙｅｓ）、メモリ３０２上のデータを収集して一時ファイルに格納することにより、メモリダンプを取得する（ステップＳ１３０２）。
【０１１５】
つぎに、情報処理装置１００は、取得したメモリダンプ内のデータを先頭から読み込む（ステップＳ１３０３）。そして、情報処理装置１００は、読み込んだデータがテキスト部分であるか否かを判断する（ステップＳ１３０４）。ここで、テキスト部分ではない場合（ステップＳ１３０４：Ｎｏ）、情報処理装置１００は、ステップＳ１３０８に移行する。
【０１１６】
一方、テキスト部分の場合には（ステップＳ１３０４：Ｙｅｓ）、情報処理装置１００は、構造パターンＤＢ１０１０を参照して、読み込んだデータと所定のパターンとを比較することにより、当該データが秘匿対象データであるか否かを判断する（ステップＳ１３０５）。
【０１１７】
ここで、秘匿対象データの場合（ステップＳ１３０５：Ｙｅｓ）、情報処理装置１００は、読み込んだデータ（テキスト部分）を書き換えるマスク処理を施す（ステップＳ１３０６）。そして、情報処理装置１００は、マスク処理を施したデータをディスク３０５（図３参照）上のダンプファイルに格納して（ステップＳ１３０７）、ステップＳ１３０８に移行する。
【０１１８】
また、ステップＳ１３０５において、秘匿対象データではない場合（ステップＳ１３０５：Ｎｏ）、情報処理装置１００は、読み込んだデータをディスク３０５上のダンプファイルに格納する（ステップＳ１３０７）。そして、情報処理装置１００は、メモリダンプ内のデータの読み込みが終了したか否かを判断する（ステップＳ１３０８）。
【０１１９】
ここで、データの読み込みが終了していない場合（ステップＳ１３０８：Ｎｏ）、情報処理装置１００は、ステップＳ１３０３に戻る。一方、データの読み込みが終了した場合（ステップＳ１３０８：Ｙｅｓ）、情報処理装置１００は、ダンプファイルを出力して（ステップＳ１３０９）、本フローチャートによる一連の処理を終了する。
【０１２０】
これにより、顧客の氏名、郵便番号、住所、ＩＰアドレスなどの秘匿対象データを解読不可能にマスキングしてからメモリダンプ（ダンプファイル）を出力することができる。
【０１２１】
以上説明したように、実施の形態３にかかる情報処理装置１００によれば、メモリダンプ内のテキスト部分を抽出することができる。また、情報処理装置１００によれば、構造パターンＤＢ１０１０を参照して、抽出したテキスト部分と所定のパターンとを比較して、所定のパターンに合致するテキスト部分を秘匿対象データとして特定することができる。所定のパターンは、例えば、既存の郵便番号、住所、氏名、あるいは、郵便番号、住所およびＩＰアドレスを正規表現したものである。そして、情報処理装置１００によれば、特定した秘匿対象データを書き換えるマスク処理を施して、マスク処理を施したメモリダンプを出力することができる。
【０１２２】
これにより、ソフトウェアＳＷのメモリマップが判っていない場合には、メモリダンプ内のテキスト部分と構造パターンＤＢ１０１０内のパターンとのパターンマッチングにより、メモリダンプ内の秘匿対象データを特定することができる。例えば、ソフトウェアＳＷが、ＯＳや他人の作成したプログラム部分を含むメモリマップが判らないものであっても、メモリダンプ内の郵便番号、住所、氏名、ＩＰアドレスなどの秘匿対象データを特定してマスク処理を施すことができる。
【０１２３】
また、実施の形態３にかかる情報処理装置１００によれば、メモリダンプの先頭から順に、データ内容が同じ秘匿対象データ同士は同じ番号となるように、特定した秘匿対象データに通番を付与することができる。そして、情報処理装置１００によれば、秘匿対象データを当該秘匿対象データの種類および通番を示す文字列データに書き換えることができる。
【０１２４】
これにより、トラブル調査の際に、元の情報の種類を判別可能にするとともに、メモリダンプ内に同じ内容の秘匿対象データが存在する場合に、元の情報が同じ内容であったマスク箇所を判別可能にして、トラブルの原因究明や検証を支援することができる。
【０１２５】
なお、本実施の形態で説明したダンプマスク方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ダンプマスクプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ダンプマスクプログラムは、インターネット等のネットワークを介して配布してもよい。
【０１２６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１２７】
（付記１）コンピュータに、
ソフトウェアの異常を検出すると、メモリダンプ内の秘匿対象データを特定し、
特定した前記秘匿対象データを書き換えるマスク処理を施し、
前記マスク処理を施した前記メモリダンプを出力する、
処理を実行させることを特徴とするダンプマスクプログラム。
【０１２８】
（付記２）前記特定する処理は、
前記ソフトウェアに定義されたデータ構造を参照して、秘匿対象に指定されたデータ項目に対応するメモリ内のデータを秘匿対象データとして特定する、ことを特徴とする付記１に記載のダンプマスクプログラム。
【０１２９】
（付記３）前記特定する処理は、
前記メモリダンプ内のテキスト部分を抽出し、秘匿対象となり得る情報の構造を表す所定のパターンを記憶する記憶部を参照して、抽出した前記テキスト部分と前記所定のパターンとを比較し、前記所定のパターンに合致するテキスト部分を秘匿対象データとして特定する、ことを特徴とする付記１または２に記載のダンプマスクプログラム。
【０１３０】
（付記４）前記マスク処理を施す処理は、
特定した前記秘匿対象データを黒塗り状態にする所定のコードに書き換える、ことを特徴とする付記１〜３のいずれか一つに記載のダンプマスクプログラム。
【０１３１】
（付記５）前記マスク処理を施す処理は、
特定した前記秘匿対象データを当該秘匿対象データの種類を示す文字列データに書き換える、ことを特徴とする付記１〜３のいずれか一つに記載のダンプマスクプログラム。
【０１３２】
（付記６）前記所定のパターンは、郵便番号、住所およびＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスのうちの少なくともいずれかを正規表現したものである、ことを特徴とする付記３に記載のダンプマスクプログラム。
【０１３３】
（付記７）前記マスク処理を施す処理は、
前記メモリダンプの先頭から順に、データ内容が同じ秘匿対象データ同士は同じ番号となるように、特定した前記秘匿対象データに通番を付与し、
前記秘匿対象データを当該秘匿対象データの種類および通番を示す文字列データに書き換える、ことを特徴とする付記３に記載のダンプマスクプログラム。
【０１３４】
（付記８）コンピュータが、
ソフトウェアの異常を検出すると、メモリダンプ内の秘匿対象データを特定し、
特定した前記秘匿対象データを書き換えるマスク処理を施し、
前記マスク処理を施した前記メモリダンプを出力する、
処理を実行することを特徴とするダンプマスク方法。
【０１３５】
（付記９）ソフトウェアの異常を検出すると、メモリダンプ内の秘匿対象データを特定し、
特定した前記秘匿対象データを書き換えるマスク処理を施し、
前記マスク処理を施した前記メモリダンプを出力する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【０１３６】
１００  情報処理装置
２００  システム
２０１  調査用端末
２１０  ネットワーク
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  Ｉ／Ｆ
３０４  ディスクドライブ
３０５  ディスク
５００  ソースプログラム
６０１  検出部
６０２  特定部
６０３  書換部
６０４  出力部
８１０，８２０，１２１０，１２２０  メモリダンプ
１００１  第２の特定部
１００２  第２の書換部
１０１０  構造パターンＤＢ
１１００  対応表
【図１】
2017207876.tif 000003
【図２】
2017207876.tif 000004
【図３】
2017207876.tif 000005
【図４】
2017207876.tif 000006
【図５】
2017207876.tif 000007
【図６】
2017207876.tif 000008
【図７】
2017207876.tif 000009
【図８】
2017207876.tif 000010
【図９】
2017207876.tif 000011
【図１０】
2017207876.tif 000012
【図１１】
2017207876.tif 000013
【図１２】
2017207876.tif 000014
【図１３】
2017207876.tif 000015