(57)【要約】【課題】ファイルのパス名のうち、センシティブな情報を表す部分を精度良く検出する。【解決手段】情報処理装置２０００は、パス名文字列１２から１つ以上の判定対象文字列１４を抽出し、各判定対象文字列１４についてマスクの要否を判定する。マスク要否の判定は、対象システム３０で扱われる複数のファイルのパス名文字列から抽出される文字列群４０における判定対象文字列１４の出現数に基づいて行われる。【選択図】図１
2019175334.tif 000002
【特許請求の範囲】
【請求項１】
パス名を表すパス名文字列を取得し、前記取得したパス名文字列から判定対象の文字列を抽出する抽出部と、
複数のファイルの前記パス名文字列から抽出される文字列の集合における、前記判定対象の文字列の出現数に基づいて、その判定対象の文字列のマスクの要否を判定する判定部と、を有する情報処理装置。
【請求項２】
前記パス名文字列から抽出される文字列は、そのパス名文字列を構成するディレクトリの名前及びファイルの名前いずれか一方の一部又は全体である、請求項１に記載の情報処理装置。
【請求項３】
前記判定部は、前記集合における前記判定対象の文字列の出現数が所定の閾値以下である場合に、その判定対象の文字列をマスクする必要があると判定する、請求項１又は２に記載の情報処理装置。
【請求項４】
前記判定部は、前記集合における各文字列の出現数に基づいて、センシティブな情報を表す文字列の出現数とセンシティブな情報を表さない文字列の出現数との境界値を算出し、前記境界値を前記所定の閾値とする、請求項３に記載の情報処理装置。
【請求項５】
前記判定部は、前記集合における文字列を、出現数が少ない文字列を含む第１クラスタと、出現数が多い文字列を含む第２クラスタに分割し、前記第１クラスタに含まれる文字列の出現数の最大値と、前記第２クラスタに含まれる文字列の出現数の最小値とに基づいて、前記境界値を算出する、請求項４に記載の情報処理装置。
【請求項６】
マスクが必要である文字列及びマスクが不要である文字列の少なくとも一方を示す情報である事前定義リストを取得する取得部を有し、
前記判定部は、
前記事前定義リストにおいてマスクが必要であると示されている前記判定対象の文字列については、マスクが必要であると判定し、
前記事前定義リストにおいてマスクが不要であると示されている前記判定対象の文字列については、マスクが不要であると判定し、
前記事前定義リストに示されていない前記判定対象の文字列については、その判定対象の文字列の出現数に基づいてマスクの要否を判定する、請求項１乃至５いずれか一項に記載の情報処理装置。
【請求項７】
前記判定部は、
前記集合における各文字列の出現数、前記事前定義リストにおいてマスクが必要であると示されている文字列の前記集合における出現数の分布、及び前記事前定義リストにおいてマスクが必要でないと示されている文字列の前記集合における出現数の分布に基づいて、センシティブな情報を表す文字列の出現数とセンシティブな情報を表さない文字列の出現数との境界値を算出し、
前記集合における前記判定対象の文字列の出現数が前記境界値以下である場合に、その判定対象の文字列をマスクする必要があると判定する、請求項６に記載の情報処理装置。
【請求項８】
前記判定部は、前記集合における各文字列の出現数を、その文字列をパス名文字列に含むファイルを扱っているマシン又はユーザに付された重みに従ってカウントする、請求項１乃至７いずれか一項に記載の情報処理装置。
【請求項９】
マスクが必要と判定された判定対象の文字列がマスクされた前記パス名文字列を出力する出力部を有する、請求項１乃至８いずれか一項に記載の情報処理装置。
【請求項１０】
コンピュータによって実行される制御方法であって、
パス名を表すパス名文字列を取得し、前記取得したパス名文字列から判定対象の文字列を抽出する抽出ステップと、
複数のファイルの前記パス名文字列から抽出される文字列の集合における、前記判定対象の文字列の出現数に基づいて、その判定対象の文字列のマスクの要否を判定する判定ステップと、を有する制御方法。
【請求項１１】
パス名を表すパス名文字列を取得し，前記取得したパス名文字列から判定対象の文字列を抽出する抽出ステップと、
複数の各ファイルの前記パス名文字列から抽出される文字列の集合における、前記判定対象の文字列の出現数に基づいて、その判定対象の文字列のマスクの要否を判定する判定ステップと、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はファイルのパス名のマスクに関する。
【背景技術】
【０００２】
コンピュータシステム上に存在する各ファイルのパス名を対象として、セキュリティ分析やシステム障害分析などの分析が行われることがある。ここで、パス名の要素であるディレクトリ名やファイル名は、その中にあるデータの特徴を表す名前がつけられることが多いため、個人情報や機密情報などといったセンシティブな情報を含みうる。例えば、或るプロジェクトに関連するデータがまとめて格納されているディレクトリの名前には、そのプロジェクトの名前やそのプロジェクトに携わっている企業の名前などが含まれることがある。このような情報は、たとえシステムの分析を行う分析者に対してであっても、開示されることが好ましくないことも多い。以下、システムの分析者も含め、第３者に開示されるべきでない情報を、「センシティブな情報」と呼ぶ。
【０００３】
パス名に含まれるセンシティブな情報が分析者に対して開示されないようにするための方法として、パス名を構成する文字列の少なくとも一部を他の文字（例えばアスタリスクなどの記号）で置換して隠蔽するという方法がある。以下、このようにパス名を構成する文字を他の文字で置換することを「マスク」と呼ぶ。
【０００４】
データのマスクに関する技術を開示している先行技術文献として、特許文献１と特許文献２がある。特許文献１は、個人情報を表すキーワード又は文字列パターンを予め定義しておき、入力されたデータのうち、そのキーワード又は文字列パターンに合致する部分をマスクする技術を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９-１９９３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ディレクトリやファイルの名前はユーザ独自の基準で決められることも多いため、パス名の中には特定のキーワードやパターンに合致しないセンシティブな情報も多く存在しうる。そのため、パス名に含まれるセンシティブな情報をキーワードやパターンで特定すると、キーワードやパターンにマッチしないセンシティブな情報がマスクされずに開示されてしまう恐れがある。
【０００７】
本発明は、上記の課題に鑑みてなされたものである。本発明の目的の一つは、ファイルのパス名の中からセンシティブな情報を表す部分を精度良く検出する技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、１）パス名を表すパス名文字列を取得し、取得したパス名文字列から判定対象の文字列を抽出する抽出部と、２）複数のファイルのパス名文字列から抽出される文字列の集合における、判定対象の文字列の出現数に基づいて、その判定対象の文字列のマスクの要否を判定する判定部と、を有する。
【０００９】
本発明の制御方法は、コンピュータによって実行される制御方法である。当該制御方法は、１）パス名を表すパス名文字列を取得し、取得したパス名文字列から判定対象の文字列を抽出する抽出ステップと、２）複数のファイルのパス名文字列から抽出される文字列の集合における、判定対象の文字列の出現数に基づいて、その判定対象の文字列のマスクの要否を判定する判定ステップと、を有する。
【００１０】
本発明のプログラムは、本発明の制御方法が有する各ステップをコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、ファイルのパス名の中からセンシティブな情報を表す部分を精度良く検出する技術が提供される。
【図面の簡単な説明】
【００１２】
【図１】実施形態１の情報処理装置の動作の概要を表す図である。
【図２】実施形態１の情報処理装置の構成を例示する図である。
【図３】情報処理装置を実現するための計算機を例示する図である。
【図４】実施形態１の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図５】マスク閾値を例示する図である。
【図６】文字列の出現数を表すグラフを例示する図である。
【図７】出力部を有する情報処理装置を例示するブロック図である。
【図８】実施形態２の情報処理装置の機能構成を例示する図である。
【図９】事前定義リストをテーブル形式で例示する図である。
【図１０】実施形態２の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図１１】文字列ごとの出現数を表すグラフを例示する図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００１４】
［実施形態１］
＜概要＞
図１は、実施形態１の情報処理装置の動作の概要を表す図である。図１は情報処理装置２０００の動作についての理解を容易にするための概念的な図であり、情報処理装置２０００の動作を具体的に限定するものではない。
【００１５】
情報処理装置２０００は、パス名文字列１２を取得し、パス名文字列１２に含まれる１つ以上の文字列について、マスクの要否を判定する。ここで、文字列のマスクとは、その文字列を他の文字列に変更することを意味する。
【００１６】
パス名文字列１２は、分析対象のシステム（対象システム３０）で扱われるファイルのパス名を表す文字列である。パス名文字列１２は、対象システム３０の分析に利用される。対象システム３０は、１つ以上のマシンで構成されるコンピュータシステムである。１つのマシンは、一人のユーザで専有されてもよいし、複数のユーザで共有されてもよい。
【００１７】
例えば対象システム３０について行われる分析は、サイバー攻撃に関する分析である。例えば、対象システム３０におけるプロセスの活動のログを分析して、各プロセスがどのファイルにどのようにアクセスしたかを分析することで、マルウエアの検出や挙動解析を行うという分析がある。その際、アクセスされたファイルのパス名の分析が行われる。ただし、対象システム３０について行われる分析は、セキュリティに関するものには限定されない。例えば、システム障害の原因を探るための分析などが行われうる。
【００１８】
情報処理装置２０００は、パス名文字列１２のうち、センシティブな情報を表す部分がマスクされるようにする。そのために、情報処理装置２０００は、パス名文字列１２から１つ以上の判定対象文字列１４を抽出し、各判定対象文字列１４についてマスクの要否を判定する。判定対象文字列１４は、例えば、パス名文字列１２によって表されるパスを構成する各ディレクトリ及びファイルそれぞれの名前を表す文字列である。例えば、「/dir1/dir2/clientA.txt」というパス名文字列１２から抽出される判定対象文字列１４は、「dir1」、「dir2」、及び「clientA.txt」である。
【００１９】
情報処理装置２０００は、対象システム３０で扱われる複数のファイルのパス名文字列から抽出される文字列の集合（以下、文字列群４０）における判定対象文字列１４の出現数に基づいて、各判定対象文字列１４のマスクの要否を判定する。
【００２０】
ここで、ユーザが独自に作成したディレクトリやファイルと比較し、OS（Operating System）やアプリケーションに関連づけて予め用意されているディレクトリやファイルの名前は、センシティブな情報を表さない蓋然性が高いと言える。そのようなディレクトリやファイルの例として、OS やアプリケーションの実行ファイルや設定ファイル、及びそれらを格納するディレクトリなどがある。このように OS やアプリケーションに関連づけて予め用意されているディレクトリやファイルの名前は、同じ OS やアプリケーションを利用している複数のマシンやユーザにおいて共通で現れるため、対象システム３０における出現数が多い。
【００２１】
一方で、ユーザが独自に作成したディレクトリやファイルの名前は、センシティブな情報を表す蓋然性が高いと言える。そして、このようにユーザが独自に作成したディレクトリやファイルの名前は、同じ OS やアプリケーションを利用している複数のマシンやユーザの間でも共通しないことが多いため、対象システム３０における出現数が少ない。
【００２２】
このようにディレクトリやファイルの名前がセンシティブな情報を表す蓋然性と、その名前の対象システム３０における出現数（すなわち、文字列群４０における出現数）には、相関があると考えられる。
【００２３】
そこで情報処理装置２０００は、文字列群４０における出現数が比較的少ない判定対象文字列１４についてはマスクが必要であると判定し、文字列群４０における出現数が比較的多い判定対象文字列１４についてはマスクでないと判定する。このように文字列群４０における出現数を基準としてマスクの要否を判定することで、センシティブな情報を表す文字列やそのパターンを予め特定しておくことが難しい状況であっても、パス名文字列１２に含まれるセンシティブな情報を適切に検出することができる。
【００２４】
なお、センシティブな情報を確実にマスクするシンプルな方法として、パス名を構成する全ての文字をマスクしてしまうという方法が考えられる。このようにすれば、センシティブな情報は一切第３者に開示されなくなる。しかしながらこの方法では、パス名を分析して有用な情報を得ることができなくなってしまう。
【００２５】
この点、情報処理装置２０００によれば、文字列群４０における出現数が比較的多い判定対象文字列１４についてはマスクされない。こうすることで、パス名文字列１２のうち、分析に有用な部分をできる限り残しつつ、センシティブな情報を隠蔽できる。すなわち、情報処理装置２０００によれば、パス名文字列１２を用いたシステムの分析の実現とセンシティブな情報の隠蔽を両立させることができる。
【００２６】
以下、本実施形態の情報処理装置２０００についてさらに詳細に説明する。
【００２７】
＜情報処理装置２０００の機能構成の例＞
図２は、実施形態１の情報処理装置２０００の構成を例示する図である。情報処理装置２０００は、抽出部２０２０及び判定部２０４０を有する。抽出部２０２０は、パス名文字列１２から判定対象文字列１４を抽出する。判定部２０４０は、文字列群４０における判定対象文字列１４の出現数に基づいて、判定対象文字列１４に対するマスクの要否を判定する。
【００２８】
＜情報処理装置２０００のハードウエア構成＞
情報処理装置２０００の各機能構成部は、各機能構成部を実現するハードウエア（例：ハードワイヤードされた電子回路など）で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ（例：電子回路とそれを制御するプログラムの組み合わせなど）で実現されてもよい。以下、情報処理装置２０００の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【００２９】
図３は、情報処理装置２０００を実現するための計算機１０００を例示する図である。計算機１０００は任意の計算機である。例えば計算機１０００は、Personal Computer（PC）、サーバマシン、タブレット端末、又はスマートフォンなどである。計算機１０００は、情報処理装置２０００を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【００３０】
計算機１０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０を有する。バス１０２０は、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ１０４０などを互いに接続する方法は、バス接続に限定されない。プロセッサ１０４０は、CPU（Central Processing Unit）、GPU（Graphics Processing Unit）、又は FPGA（Field-Programmable Gate Array）などのプロセッサである。メモリ１０６０は、RAM（Random Access Memory）などを用いて実現される主記憶装置である。ストレージデバイス１０８０は、ハードディスクドライブ、SSD（Solid State Drive）、メモリカード、又は ROM（Read Only Memory）などを用いて実現される補助記憶装置である。ただし、ストレージデバイス１０８０は、RAM など、主記憶装置を構成するハードウエアと同様のハードウエアで構成されてもよい。
【００３１】
入出力インタフェース１１００は、計算機１０００と入出力デバイスとを接続するためのインタフェースである。ネットワークインタフェース１１２０は、計算機１０００を通信網に接続するためのインタフェースである。この通信網は、例えば LAN（Local Area Network）や WAN（Wide Area Network）である。ネットワークインタフェース１１２０が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
【００３２】
ストレージデバイス１０８０は、情報処理装置２０００の機能構成部を実現するプログラムモジュールを記憶している。プロセッサ１０４０は、これら各プログラムモジュールをメモリ１０６０に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
【００３３】
＜処理の流れ＞
図４は、実施形態１の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。抽出部２０２０は、パス名文字列１２を取得する（Ｓ１０２）。抽出部２０２０は、パス名文字列１２から判定対象文字列１４を抽出する（Ｓ１０４）。
【００３４】
Ｓ１０６からＳ１１０は、パス名文字列１２から抽出された判定対象文字列１４それぞれを対象として実行されるループ処理である。Ｓ１０６において、抽出部２０２０は、まだループ処理の対象とされていない判定対象文字列１４が存在するか否かを判定する。まだループ処理の対象とされていない判定対象文字列１４が存在する場合、抽出部２０２０は、その中の１つを選択する。ここで選択される判定対象文字列１４を、判定対象文字列１４ｉと表記する。その後、図４の処理はＳ１０８に進む。一方、既に全ての判定対象文字列１４についてループ処理が行われた場合、図４の処理は終了する。
【００３５】
Ｓ１０８において、判定部２０４０は、文字列群４０における判定対象文字列１４ｉの出現数に基づいて、判定対象文字列１４ｉのマスクが必要であるか否かを判定する。Ｓ１１０はループ処理の終端であるため、図４の処理はＳ１０６に戻る。
【００３６】
＜パス名文字列１２の取得：Ｓ１０２＞
抽出部２０２０は、パス名文字列１２を取得する（Ｓ１０２）。前述したように、パス名文字列１２は、対象システム３０で扱われるファイルのパス名を表す文字列である。なお、パス名文字列１２は、相対パスであってもよいし、絶対パスであってもよい。
【００３７】
抽出部２０２０がパス名文字列１２を取得する方法は様々である。例えば、抽出部２０２０は、対象システム３０によって扱われている各ファイルのパス名を特定し、特定した各パス名を表す文字列をパス名文字列１２として取得する。この場合、例えば抽出部２０２０は、対象システム３０によって扱われているファイルを管理しているファイルシステムにアクセスすることで、対象システム３０によって扱われている各ファイルのパス名を特定する。
【００３８】
その他にも例えば、抽出部２０２０は、対象システム３０におけるファイルアクセスのログ（例えば、プロセスの動作のログ）を解析することで、アクセスされたファイルのパス名をそのログから抽出し、そのパス名をパス名文字列１２として扱う。ここで、パス名文字列１２として絶対パスを扱う場合において、ログに記録されているパス名が相対パスであることもある。この場合、抽出部２０２０は、ログから抽出した相対パスを絶対パスに変換したものをパス名文字列１２として扱う。なお、相対パスを絶対パスに変換する方法には、既存の方法を利用することができる。
【００３９】
その他にも例えば、パス名文字列１２を示す情報を予め記憶装置に記憶させておいてもよい。この場合、抽出部２０２０は、この情報を記憶装置から読み出すことで、パス名文字列１２を取得する。上記情報に複数のパス名文字列１２が示されている場合、情報処理装置２０００は、この情報に含まれるパス名文字列１２それぞれについて処理を行う。
【００４０】
＜判定対象文字列１４の抽出：Ｓ１０４＞
抽出部２０２０は、パス名文字列１２から判定対象文字列１４を抽出する。具合的には、抽出部２０２０は、パス名文字列１２から、ディレクトリ名又はファイル名を表す文字列をそれぞれ抽出し、抽出した各文字列を判定対象文字列１４として扱う。なお、パス名からディレクトリ名やファイル名を抽出する技術には、既存の技術を利用することができる。
【００４１】
なお、ファイル名を表す判定対象文字列１４は、拡張子も含めたファイル名全体であってもよいし、ファイル名全体から拡張子を除いたものであってもよい。また、判定対象文字列１４をファイル名から拡張子を除いたものとする場合、この判定対象文字列１４をマスクする際には、拡張子も含めてファイル名全体をマスクしてもよいし、拡張子はマスクしないようにしてもよい。
【００４２】
＜マスク要否の判定：Ｓ１０８＞
判定部２０４０は、判定対象文字列１４のマスクの要否を判定する（Ｓ１０８）。前述したように、判定部２０４０は、文字列群４０における判定対象文字列１４の出現数に基づいて、判定対象文字列１４のマスクの要否を判定する。例えば判定部２０４０は、判定対象文字列１４の出現数が、文字列群４０における各文字列の出現数に基づいて定まる閾値（以下、マスク閾値）以上であるか否かを判定する。そして、判定部２０４０は、判定対象文字列１４の出現数がマスク閾値以上である場合にはマスクが必要ないと判定し、判定対象文字列１４の出現数がマスク閾値未満である場合にはマスクが必要であると判定する。
【００４３】
図５は、マスク閾値を例示する図である。図５のグラフは、横軸に出現数の昇順でソートした文字列を示し、縦軸に対応する文字列の出現数を示すグラフである（具体的な文字列や出現数の表示は省略されている）。このグラフに示すように、センシティブな情報を表さない文字列の出現数と、センシティブな情報を表す文字列の出現数との間には、大きな乖離が存在する蓋然性が高い。そこで例えば、文字列群４０に含まれる文字列の分布において、このように出現数に大きな乖離が存在する部分に基づいて、マスク閾値を定めることができる。
【００４４】
ここで、マスク閾値は、事前に任意のタイミングで決定しておいてもよいし、判定部２０４０が一つ目の判定対象文字列１４について判定を行う際に決定してもよい。前者の場合、マスク閾値は、情報処理装置２０００以外の装置によって決定されてもよい。以下では、説明を分かりやすくするため、マスク閾値が判定部２０４０によって決定されるものと仮定して説明を進める。
【００４５】
マスク閾値の具体的な決定方法は様々である。例えば判定部２０４０は、文字列群４０に含まれる各文字列を、文字列群４０における出現数の大きさを基準として２つのクラスタに分割する。ここで、出現数が多い文字列が格納されるクラスタを第１クラスタと呼び、出現数が少ない文字列が格納されるクラスタを第２クラスタと呼ぶ。判定部２０４０は、第１クラスタにおける最小の出現数と第２クラスタにおける最大の出現数とに基づいて、マスク閾値を決定する。例えば判定部２０４０は、第１クラスタにおける最小の出現数と第２クラスタにおける最大の出現数とのいずれかを、マスク閾値とする。その他にも例えば、判定部２０４０は、第１クラスタにおける最小の出現数と第２クラスタにおける最大の出現数の平均値を、マスク閾値とする。
【００４６】
ここで、必ずしも文字列群４０に含まれる文字列は、図５に示すように出現数が多いものと少ないものに２分されるとは限らない。図６は、文字列の出現数を表すグラフを例示する図である。図６のグラフでは、図５のグラフと異なり、文字列の出現数の増加が大きい部分が複数箇所存在する。
【００４７】
そこで判定部２０４０は、クラスタ数を事前に特定せずに、文字列群４０に含まれる文字列をその出現数が近いもの同士でクラスタリングしてもよい。この場合、例えば判定部２０４０は、出現数の順で隣接するいずれか２つのクラスタを選択し、選択した２つのクラスタを前述した第１クラスタ及び第２クラスタと同様に扱って、マスク閾値を決定する。
【００４８】
ここで、２つのクラスタを選択する方法は様々である。例えば、判定部２０４０は、隣接する２つのクラスタをランダムに選択する。その他にも例えば、判定部２０４０は、最も多い出現数のクラスタと、次に多い出現数のクラスタとを選択してもよい。その他にも例えば、判定部２０４０は、隣接する２つのクラスタを、出現数の乖離の大きさに基づいて選択してもよい。具体的には、判定部２０４０は、隣接するクラスタのペアそれぞれについて、出現数の昇順で先に位置するクラスタにおける出現数の最大値と、後に位置するクラスタにおける出現数の最小値との差分を算出する。この差分は、図６において出現数が急激に増加している部分における増加の大きさに相当する。そして判定部２０４０は、この差分が最も大きいクラスタのペアを、前述した第１のクラスタ及び第２のクラスタと同様に扱って、マスク閾値を決定する。
【００４９】
＜文字列群４０について＞
文字列群４０は、対象システム３０で扱われる複数のファイルのパス名文字列から抽出される文字列の集合である。パス名文字列１２の全体を判定対象文字列１４として扱う場合、文字列群４０に含まれる各文字列は、対象システム３０で扱われる各ファイルのパス名文字列全体である。すなわち、文字列群４０は、対象システム３０で扱われる各ファイルのパス名文字列の集合となる。一方、パス名文字列１２から抽出される各ディレクトリ名やファイル名を判定対象文字列１４として扱う場合、文字列群４０に含まれる各文字列は、対象システム３０で扱われる各ファイルのパス名文字列から抽出されるディレクトリ名やファイル名である。すなわち、文字列群４０は、対象システム３０で扱われる各ファイルのパス名文字列から抽出されるディレクトリ名とファイル名の集合となる。
【００５０】
＜文字列の出現数について＞
文字列群４０における文字列の出現数をカウントする方法について説明する。文字列群４０における文字列の出現数は、単純にパス名文字列に現れた回数をカウントすることで得られる数としてもよいし、一定の規則の下で重複を排除してカウントすることで得られる数としてもよい。後者の場合、例えば文字列の出現数は、同一のマシンや同一のユーザについては重複してカウントしないようにする。すなわち、文字列の出現数を出現するマシン数又は出現するユーザ数としてカウントする。こうすることで、文字列群４０における文字列の出現数が、その文字列がどの程度のマシン又はユーザにおいて共通で利用されているのかを表す指標となる。以下、マシン数としてカウントするケースとユーザ数としてカウントするケースの双方について説明する。
【００５１】
＜＜マシン数としてカウントするケース＞＞
同一のマシンについては同一の文字列の出現数を重複してカウントしないようにする。言い換えれば、１つのマシンに記憶されているファイルのパス名文字列から得られる各文字列について出現数をカウントする際、その出現数は１（出現する）か０（出現しない）となる。こうすることで、文字列の出現数は、その文字列をファイルのパス名に利用しているマシン数を意味することとなる。
【００５２】
例えば、同一のマシンに、「/dir1/dir2/dir3/a.txt」と「/dir1/dir2/dir4/b.txt」というファイルがあったとする。前者のパス名文字列は「dir1」、「dir2」、「dir3」、「a.txt」という４つの文字列に分解され、後者のパス名文字列は「dir1」、「dir2」、「dir4」、「b.txt」という４つの文字列に分解される。ここで、単純に文字列の出現数をカウントすると、dir1 と dir2 が２つで、dir3、dir4、a.txt、b.txt が１つである。しかし、文字列の出現数を出現するマシン数でカウントするため、dir1 とdir2 の出現数も１となる。
【００５３】
＜＜ユーザ数としてカウントするケース＞＞
同一のユーザについては同一の文字列の出現数を重複してカウントしないようにする。言い換えれば、一人のユーザが所有する（そのユーザのユーザディレクトリ以下にある）ファイルのパス名文字列から得られる各文字列について出現数をカウントする際、その出現数は１（出現する）か０（出現しない）となる。こうすることで、文字列の出現数が、その文字列をファイルのパス名に利用しているユーザ数を意味することとなる。
【００５４】
例えば、同一のマシンが複数のユーザによって利用されているとする。そして、「/dir1/user1/dir2/a.txt」、「dir1/user1/dir2/b.txt」、「/dir1/user2/dir2/c.txt」というファイルがあったとする。user1 はユーザ１のユーザディレクトリであり、その配下の各ファイルはユーザ１が所有するファイルである。同様に、user2 はユーザ２のユーザディレクトリであり、その配下の各ファイルはユーザ２が所有するファイルである。
【００５５】
上記３つのパス名文字列から得られる文字列を単純にカウントすると、dir1 と dir2 が３つ、user1 が２つ、user2、a.txt、b.txt、及び c.txt が１つである。一方で、同一のユーザについては同じ文字列を重複してカウントしないという規則の下では、dir1 と dir2 のカウント数が２となり、user1 のカウント数が１となる。user2、a.txt、b.txt、及び c.txt については、変わらず１となる。
【００５６】
＜＜出現数の重み付け＞＞
文字列群４０における各文字列の出現数をカウントする際、文字列の出現数に重みを付してカウントしてもよい。例えば、文字列の出現数をマシン数としてカウントするケースにおいて、その文字列をファイルのパス名に利用しているマシンに応じた重みでカウントする。例えば文字列の出現数を、以下の数式（１）に従ってカウントする。
【数１】
2019175334.tif 000003
・・・（１）
【００５７】
数式（１）において、i は文字列に割り当てた識別子である。c[i] は、文字列ｉの出現数である。j は、マシンの識別子である。flag[j] は、マシンｊがファイルのパス名に文字列ｉを利用していると１となり、利用していないと０となる。w[j] は、マシンｊがファイルのパス名に文字列ｉを利用している場合に、その出現数をいくつ増加させるかを表す。すなわち、数式（１）に従って文字列ｉの出現数をカウントする方法では、マシンｊがファイルのパス名に文字列ｉを利用している場合に、文字列ｉの出現数を１増加させるのではなく、w[j] 増加させる。こうすることで、マシンごとに定められた重みを考慮して、文字列ｉの出現数がカウントされる。
【００５８】
ここで、各マシンの重みを決定する方法は様々である。例えば、各マシンに固定の重みを予め定めておく。その他にも例えば、マシンの重みは、マシンの特徴に基づいて自動的に決定されてもよい。
【００５９】
マシンの特徴に基づいて重みを決める方法は様々である。例えば、サーバマシンとして動作するマシンの重みを大きくし、クライアントマシンとして動作するマシンの重みを小さくする。これは、対象システム３０の分析をする上で、サーバマシンの方が分析対象としての重要度が大きいことが多いためである。或るマシンがサーバマシンとクライアントマシンのどちらであるかは、例えば、そのマシンで稼働している OS の種類やアプリケーションの種類に基づいて推定することができる。また、各マシンがサーバマシンとクライアントマシンのどちらであるかを示す情報を、予め記憶装置に記憶させておいてもよい。
【００６０】
その他にも例えば、ネットワークの通信量が多いマシンほど重みを大きくしてもよい。これは、対象システム３０の分析をする上で、ネットワークの通信量の多いマシンほど分析対象としての重要度が大きいことが多いためである。各マシンのネットワークの通信量を把握する技術には、既存の技術を利用することができる。
【００６１】
その他にも例えば、マシンが所属するネットワークに応じて、マシンの重みを決めてもよい。例えば、マシンが所属する LAN ごとにマシンの重みを決める。こうすることで、例えば、対象システム３０の分析をする上で重要なネットワークに所属するマシンほど重みを大きくするといったことが可能となる。ここで、会社においては部署ごとにネットワークが異なることもあるため、そのような環境では、ネットワークごとに重みを変えることで、部署ごとに重みを変えるといったことが可能となる。なお、マシンが所属するネットワークは、例えば、そのマシンの IP アドレスで特定することができる。
【００６２】
マシンの重みは、上述した種々のマシンの特徴に基づく重みを複数組み合わせて決めてもよい。例えば、或るマシンの重みは、そのマシンの各特徴に基づいて定まる複数の重みを掛け合わせることで決定されるようにする。
【００６３】
ここで、文字列の出現数をユーザ数としてカウントするケースにおいても同様に、文字列の出現数を、その文字列をファイルのパス名に利用しているユーザに応じた重みでカウントしてもよい。この場合にも、上述した数式（１）を利用することができる。ただし、ｊはマシンではなくユーザに割り当てた識別子とする。また、w[j] はユーザｊに割り当てた重みとする。さらに、flag[j] は、ユーザｊがファイルのパス名に文字列ｉを利用していると１とし、利用していないと０とする。
【００６４】
ここで、各ユーザの重みを決定する方法は様々である。例えば、各ユーザに固定の重みを予め定めておく。その他にも例えば、ユーザの重みは、ユーザの特徴に基づいて自動的に決定されてもよい。例えば、ユーザが管理者と一般ユーザのどちらであるかや、ユーザがどのグループに所属しているかなどによって、ユーザの重みを決定する。
【００６５】
＜マスクの実行＞
情報処理装置２０００は、パス名文字列１２について、マスクが必要であると判定された判定対象文字列１４のマスクを行い、マスク後のパス名文字列１２を出力してもよい。この機能を有する機能構成部を出力部２０６０と呼ぶ。図７は、出力部２０６０を有する情報処理装置２０００を例示するブロック図である。
【００６６】
ここで、文字列をマスクする方法には、既存の種々の方法を利用できる。例えば、文字列を構成する各文字をアスタリスクなどの記号で置き換えるといったマスクの方法がある。なお、マスク前の文字列とマスク後の文字列の長さは、互いに同じであってもよいし、互いに異なっていてもよい。
【００６７】
パス名文字列１２の出力先は様々である。例えば出力部２０６０は、パス名文字列１２を所定の記憶装置に記憶させる。この記憶装置に記憶されたパス名文字列１２が、対象システム３０の分析に利用される。その他にも例えば、判定部２０４０は、パス名文字列１２をディスプレイ装置に表示させたり、他の装置に対して送信したりしてもよい。
【００６８】
［実施形態２］
図８は、実施形態２の情報処理装置２０００の機能構成を例示する図である。以下で説明する事項を除き、実施形態２の情報処理装置２０００は、実施形態１の情報処理装置２０００と同様の機能を有する。
【００６９】
実施形態２の情報処理装置２０００は取得部２０８０を有する。取得部２０８０は、事前定義リストを取得する。事前定義リストは、マスクが必要な文字列及びマスクが不要な文字列のうち、いずれか一方又は双方を示す。以下、マスクが必要な文字列のみを示す事前定義リストをブラックリストと呼び、マスクが不要な文字列のみを示す事前定義リストをホワイトリストと呼ぶ。取得部２０８０が取得する事前定義リストは、ブラックリストとホワイトリストのいずれか一方又は双方で構成される。
【００７０】
図９は、事前定義リストをテーブル形式で例示する図である。図９のテーブルをテーブル２００と呼ぶ。テーブル２００は、文字列２０２及びフラグ２０４をいう２つの列を有する。フラグ２０４は、文字列２０２に示される文字列について、マスクの要否を示す。図９において、「１」はマスクが必要であることを意味しており、「０」はマスクが不要であることを意味している。
【００７１】
実施形態２の判定部２０４０は、まず、判定対象文字列１４が事前定義リストに含まれるか否かを判定する。判定対象文字列１４が事前定義リストに含まれない場合、判定部２０４０は、文字列群４０における判定対象文字列１４の出現数に基づいて、判定対象文字列１４のマスクの要否を判定する（実施形態１参照）。一方、判定対象文字列１４が事前定義リストに含まれる場合、判定部２０４０は、事前定義リストに基づいて、判定対象文字列１４のマスクの要否を判定する。
【００７２】
具体的には、事前定義リストにおいて、判定対象文字列１４が、マスクが必要な文字列として定義されている場合（判定対象文字列１４がブラックリストに示されている場合）、判定部２０４０は、判定対象文字列１４のマスクが必要であると判定する。一方、事前定義リストにおいて、判定対象文字列１４が、マスクが不要な文字列として定義されている場合（判定対象文字列１４がホワイトリストに示されている場合）、判定部２０４０は、判定対象文字列１４のマスクが不要であると判定する。
【００７３】
＜作用効果＞
マスクの要否を全ての文字列について事前に定義しておくことは難しい。一方で、マスクの要否が事前に分かっているものについては、その事前の情報に従ってマスクの要否を決定することが好ましいといえる。
【００７４】
本実施形態の情報処理装置２０００によれば、判定対象文字列１４が事前定義リストに定義されている文字列であれば、事前定義リストに従ってマスクの要否が判定される。こうすることで、マスクが必要であると予め分かっている文字列について確実にマスクするようにする一方、マスクが不要であると予め分かっている文字列については確実にマスクをしないようにすることができる。さらに、事前定義リストに定義されていない判定対象文字列１４については、実施形態１で説明した方法により、文字列群４０における判定対象文字列１４の出現数に従ってマスクの要否を判定される。こうすることで、マスクの要否を事前に決めておくことができない文字列については、高い精度でそのマスクの要否を判定することができる。
【００７５】
＜ハードウエア構成の例＞
実施形態２の情報処理装置２０００を実現する計算機のハードウエア構成は、実施形態１と同様に、例えば図３によって表される。ただし、本実施形態の情報処理装置２０００を実現する計算機１０００のストレージデバイス１０８０には、本実施形態の情報処理装置２０００の機能を実現するプログラムモジュールがさらに記憶される。
【００７６】
＜処理の流れ＞
図１０は、実施形態２の情報処理装置２０００によって実行される処理の流れの一部を例示するフローチャートである。図１０には、図４におけるループ処理の中身（Ｓ１０６とＳ１１２の間）のみが示されている。Ｓ１０６の後、判定部２０４０は、事前定義リストにおいて、判定対象文字列１４ｉのマスクが必要であると示されているか否かを判定する（Ｓ２０２）。事前定義リストにおいて、判定対象文字列１４ｉのマスクが必要であると示されている場合（Ｓ２０２：ＹＥＳ）、判定部２０４０は、判定対象文字列１４ｉのマスクが必要であると判定する（Ｓ２０４）。一方、事前定義リストにおいて、判定対象文字列１４ｉのマスクが必要であると示されていない場合（Ｓ２０２：ＮＯ）、図１０の処理はＳ２０６に進む。
【００７７】
判定部２０４０は、判定対象文字列１４ｉのマスクが不要であると示されているか否かを判定する（Ｓ２０６）。事前定義リストにおいて、判定対象文字列１４ｉのマスクが不要であると示されている場合（Ｓ２０６：ＹＥＳ）、判定部２０４０は、部分文字列１４ｉのマスクが不要であると判定する（Ｓ２０８）。一方、事前定義リストにおいて、判定対象文字列１４ｉのマスクが不要であると示されていない場合（Ｓ２０４：ＮＯ）、図１０の処理はＳ１０６に進む。その結果、実施形態１で説明した方法により、判定対象文字列１４ｉのマスクの要否が判定される。
【００７８】
＜事前定義リストのその他の用途＞
事前定義リストは、マスク閾値の決定に利用されてもよい。前述したように、マスク閾値を決定する方法の一つとして、クラスタ数を事前に特定せずに、文字列群４０に含まれる文字列をその出現数が近いもの同士でクラスタリングするという方法を採用しうる。そしてこの場合、複数のクラスタから、出現数の順で隣接するいずれか２つのクラスタを選択し、選択したクラスタに基づいてマスク閾値を決定する。
【００７９】
図１１は、文字列ごとの出現数を表すグラフを例示する図である。図１１では、文字列の出現数が大きく増加する部分が４箇所ある。そのため、文字列の出現数に基づいて文字列をクラスタリングすると、４つのクラスタができる。そして、これら４つのクラスタの境界のいずれか１つを、マスク閾値として利用する。
【００８０】
ここで、ホワイトリストに示されている文字列は、センシティブな情報を表さない文字列であるため、対象システム３０における出現数が多いと考えられる。そのため、ホワイトリストに示されている文字列は、図１１のグラフにおいて右寄りに分布する。図１１において、白色の四角形で表される棒グラフは、ホワイトリストに示されている文字列の出現頻度を表すヒストグラムである。
【００８１】
一方、ブラックリストに示されている文字列は、センシティブな情報を表す文字列であるため、対象システム３０における出現数が少ないと考えられる。そのため、ブラックリストに示されている文字列は、図１１のグラフにおいて左寄りに分布する。図１１において、ドット柄の四角形で表される棒グラフは、ブラックリストに示されている文字列の出現頻度を表すヒストグラムである。
【００８２】
このように、ホワイトリストに示されている文字列の出現頻度を表すヒストグラムは、出現数が多い文字列の方に寄ったものになる一方で、ブラックリストに示されている文字列の出現頻度を表すヒストグラムは、出現数が少ない文字列の方に寄ったものになる。そして、これら２つのヒストグラムの大小関係が逆転する部分は、センシティブな情報を表す蓋然性が高い文字列と、センシティブな情報を表す蓋然性が低い文字列との境界を表している蓋然性が高い。
【００８３】
そこで判定部２０４０は、上記２つのヒストグラムの大小関係に基づいて、マスク閾値を決定してもよい。例えば判定部２０４０は、各クラスタについて、ホワイトリストに示されている文字列の数（以下、ホワイト数）と、ブラックリストに示されている文字列の数（以下、ブラック数）の双方を算出する。このようにすると、クラスタを文字列の出現数の昇順に並べた場合に、前方（図１１における左寄り）のクラスタでは「ブラック数＞ホワイト数」となり、後方（図１１における右寄り）のクラスタでは「ホワイト数＞ブラック数」となる。そこで、判定部２０４０は、隣接する２つのクラスタのうち、一方が「ブラック数＞ホワイト数」であり他方が「ホワイト数＞ブラック数」となる２つのクラスタを選択し、これらの境界をマスク閾値として用いる。
【００８４】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、又は上記以外の様々な構成を採用することもできる。
【００８５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
１．  パス名を表すパス名文字列を取得し、前記取得したパス名文字列から判定対象の文字列を抽出する抽出部と、
複数のファイルの前記パス名文字列から抽出される文字列の集合における、前記判定対象の文字列の出現数に基づいて、その判定対象の文字列のマスクの要否を判定する判定部と、を有する情報処理装置。
２．  前記パス名文字列から抽出される文字列は、そのパス名文字列を構成するディレクトリの名前及びファイルの名前いずれか一方の一部又は全体である、１．に記載の情報処理装置。
３．  前記判定部は、前記集合における前記判定対象の文字列の出現数が所定の閾値以下である場合に、その判定対象の文字列をマスクする必要があると判定する、１．又は２．に記載の情報処理装置。
４．  前記判定部は、前記集合における各文字列の出現数に基づいて、センシティブな情報を表す文字列の出現数とセンシティブな情報を表さない文字列の出現数との境界値を算出し、前記境界値を前記所定の閾値とする、３．に記載の情報処理装置。
５．  前記判定部は、前記集合における文字列を、出現数が少ない文字列を含む第１クラスタと、出現数が多い文字列を含む第２クラスタに分割し、前記第１クラスタに含まれる文字列の出現数の最大値と、前記第２クラスタに含まれる文字列の出現数の最小値とに基づいて、前記境界値を算出する、４．に記載の情報処理装置。
６．  マスクが必要である文字列及びマスクが不要である文字列の少なくとも一方を示す情報である事前定義リストを取得する取得部を有し、
前記判定部は、
前記事前定義リストにおいてマスクが必要であると示されている前記判定対象の文字列については、マスクが必要であると判定し、
前記事前定義リストにおいてマスクが不要であると示されている前記判定対象の文字列については、マスクが不要であると判定し、
前記事前定義リストに示されていない前記判定対象の文字列については、その判定対象の文字列の出現数に基づいてマスクの要否を判定する、１．乃至５．いずれか一つに記載の情報処理装置。
７．  前記判定部は、
前記集合における各文字列の出現数、前記事前定義リストにおいてマスクが必要であると示されている文字列の前記集合における出現数の分布、及び前記事前定義リストにおいてマスクが必要でないと示されている文字列の前記集合における出現数の分布に基づいて、センシティブな情報を表す文字列の出現数とセンシティブな情報を表さない文字列の出現数との境界値を算出し、
前記集合における前記判定対象の文字列の出現数が前記境界値以下である場合に、その判定対象の文字列をマスクする必要があると判定する、６．に記載の情報処理装置。
８．  前記判定部は、前記集合における各文字列の出現数を、その文字列をパス名文字列に含むファイルを扱っているマシン又はユーザに付された重みに従ってカウントする、１．乃至７．いずれか一つに記載の情報処理装置。
９．  マスクが必要と判定された判定対象の文字列がマスクされた前記パス名文字列を出力する出力部を有する、１．乃至８．いずれか一つに記載の情報処理装置。
【００８６】
１０．  コンピュータによって実行される制御方法であって、
パス名を表すパス名文字列を取得し、前記取得したパス名文字列から判定対象の文字列を抽出する抽出ステップと、
複数のファイルの前記パス名文字列から抽出される文字列の集合における、前記判定対象の文字列の出現数に基づいて、その判定対象の文字列のマスクの要否を判定する判定ステップと、を有する制御方法。
１１．  前記パス名文字列から抽出される文字列は、そのパス名文字列を構成するディレクトリの名前及びファイルの名前いずれか一方の一部又は全体である、１０．に記載の制御方法。
１２．  前記判定ステップにおいて、前記集合における前記判定対象の文字列の出現数が所定の閾値以下である場合に、その判定対象の文字列をマスクする必要があると判定する、１０．又は１１．に記載の制御方法。
１３．  前記判定ステップにおいて、前記集合における各文字列の出現数に基づいて、センシティブな情報を表す文字列の出現数とセンシティブな情報を表さない文字列の出現数との境界値を算出し、前記境界値を前記所定の閾値とする、１２．に記載の制御方法。
１４．  前記判定ステップにおいて、前記集合における文字列を、出現数が少ない文字列を含む第１クラスタと、出現数が多い文字列を含む第２クラスタに分割し、前記第１クラスタに含まれる文字列の出現数の最大値と、前記第２クラスタに含まれる文字列の出現数の最小値とに基づいて、前記境界値を算出する、１３．に記載の制御方法。
１５．  マスクが必要である文字列及びマスクが不要である文字列の少なくとも一方を示す情報である事前定義リストを取得する取得ステップを有し、
前記判定ステップにおいて、
前記事前定義リストにおいてマスクが必要であると示されている前記判定対象の文字列については、マスクが必要であると判定し、
前記事前定義リストにおいてマスクが不要であると示されている前記判定対象の文字列については、マスクが不要であると判定し、
前記事前定義リストに示されていない前記判定対象の文字列については、その判定対象の文字列の出現数に基づいてマスクの要否を判定する、１０．乃至１４．いずれか一つに記載の制御方法。
１６．  前記判定ステップにおいて、
前記集合における各文字列の出現数、前記事前定義リストにおいてマスクが必要であると示されている文字列の前記集合における出現数の分布、及び前記事前定義リストにおいてマスクが必要でないと示されている文字列の前記集合における出現数の分布に基づいて、センシティブな情報を表す文字列の出現数とセンシティブな情報を表さない文字列の出現数との境界値を算出し、
前記集合における前記判定対象の文字列の出現数が前記境界値以下である場合に、その判定対象の文字列をマスクする必要があると判定する、１５．に記載の制御方法。
１７．  前記判定ステップにおいて、前記集合における各文字列の出現数を、その文字列をパス名文字列に含むファイルを扱っているマシン又はユーザに付された重みに従ってカウントする、１０．乃至１６．いずれか一つに記載の制御方法。
１８．  マスクが必要と判定された判定対象の文字列がマスクされた前記パス名文字列を出力する出力ステップを有する、１０．乃至１７．いずれか一つに記載の制御方法。
【００８７】
１９．  パス名を表すパス名文字列を取得し，前記取得したパス名文字列から判定対象の文字列を抽出する抽出ステップと、
複数の各ファイルの前記パス名文字列から抽出される文字列の集合における、前記判定対象の文字列の出現数に基づいて、その判定対象の文字列のマスクの要否を判定する判定ステップと、をコンピュータに実行させるプログラム。
２０．  前記パス名文字列から抽出される文字列は、そのパス名文字列を構成するディレクトリの名前及びファイルの名前いずれか一方の一部又は全体である、１９．に記載のプログラム。
２１．  前記判定ステップにおいて、前記集合における前記判定対象の文字列の出現数が所定の閾値以下である場合に、その判定対象の文字列をマスクする必要があると判定する、１９．又は２０．に記載のプログラム。
２２．  前記判定ステップにおいて、前記集合における各文字列の出現数に基づいて、センシティブな情報を表す文字列の出現数とセンシティブな情報を表さない文字列の出現数との境界値を算出し、前記境界値を前記所定の閾値とする、２１．に記載のプログラム。
２３．  前記判定ステップにおいて、前記集合における文字列を、出現数が少ない文字列を含む第１クラスタと、出現数が多い文字列を含む第２クラスタに分割し、前記第１クラスタに含まれる文字列の出現数の最大値と、前記第２クラスタに含まれる文字列の出現数の最小値とに基づいて、前記境界値を算出する、２２．に記載のプログラム。
２４．  マスクが必要である文字列及びマスクが不要である文字列の少なくとも一方を示す情報である事前定義リストを取得する取得ステップを前記コンピュータに実行させ、
前記判定ステップにおいて、
前記事前定義リストにおいてマスクが必要であると示されている前記判定対象の文字列については、マスクが必要であると判定し、
前記事前定義リストにおいてマスクが不要であると示されている前記判定対象の文字列については、マスクが不要であると判定し、
前記事前定義リストに示されていない前記判定対象の文字列については、その判定対象の文字列の出現数に基づいてマスクの要否を判定する、１９．乃至２３．いずれか一つに記載のプログラム。
２５．  前記判定ステップにおいて、
前記集合における各文字列の出現数、前記事前定義リストにおいてマスクが必要であると示されている文字列の前記集合における出現数の分布、及び前記事前定義リストにおいてマスクが必要でないと示されている文字列の前記集合における出現数の分布に基づいて、センシティブな情報を表す文字列の出現数とセンシティブな情報を表さない文字列の出現数との境界値を算出し、
前記集合における前記判定対象の文字列の出現数が前記境界値以下である場合に、その判定対象の文字列をマスクする必要があると判定する、２４．に記載のプログラム。
２６．  前記判定ステップにおいて、前記集合における各文字列の出現数を、その文字列をパス名文字列に含むファイルを扱っているマシン又はユーザに付された重みに従ってカウントする、１９．乃至２５．いずれか一つに記載のプログラム。
２７．  マスクが必要と判定された判定対象の文字列がマスクされた前記パス名文字列を出力する出力ステップを前記コンピュータに実行させる、１９．乃至２６．いずれか一つに記載のプログラム。
【符号の説明】
【００８８】
１２  パス名文字列
１４  判定対象文字列
３０  対象システム
４０  文字列群
２００  テーブル
２０２  文字列
２０４  フラグ
１０００  計算機
１０２０  バス
１０４０  プロセッサ
１０６０  メモリ
１０８０  ストレージデバイス
１１００  入出力インタフェース
１１２０  ネットワークインタフェース
２０００  情報処理装置
２０２０  抽出部
２０４０  判定部
２０６０  出力部
２０８０  取得部
【図１】
2019175334.tif 000004
【図２】
2019175334.tif 000005
【図３】
2019175334.tif 000006
【図４】
2019175334.tif 000007
【図５】
2019175334.tif 000008
【図６】
2019175334.tif 000009
【図７】
2019175334.tif 000010
【図８】
2019175334.tif 000011
【図９】
2019175334.tif 000012
【図１０】
2019175334.tif 000013
【図１１】
2019175334.tif 000014