ぎじゅつめも

とある工学系学生が学んだことをメモするだけのブログです。

【情報秘匿技術】ファイル偽装とマジックナンバー

バイナリとは

人間にとって意味のある文字の羅列をテキストといいます。対して、コンピュータにとって意味のある文字の羅列をバイナリといいます。厳密には0,1の2進数で表現されたデータ形式を指します。バイナリファイルには、音声ファイル、画像ファイル、実行ファイルなどがあります。

マジックナンバー

バイナリファイルには、そのファイルの種類を表す識別子が表記されています。これをマジックナンバーもしくはファイル識別子と呼びます。主要なマジックナンバーは以下サイト様などが調べてくださっています。

マジックナンバーまとめ - Qiita

バイナリエディタ

ファイルのバイナリ情報を閲覧するにはバイナリエディタを利用します。WindowsであればBZなどがあります。

ファイル偽装

ファイル偽装(File Camouflage)とは、あるファイル中に別のファイルを埋め込むもので、言わば情報を秘匿する手法(情報秘匿技術)です。これにより別ファイルが埋め込まれたファイルをインプラントファイルもしくは偽装ファイルと呼ぶこともあります。ファイル形式によっては、何が付加されていても問題を及ぼさない領域があり、ここに別のファイルを埋め込むことによって実現されます。このとき、埋め込むファイルを暗号化し専用のプログラムによって取りだすものもあれば、暗号化されず埋め込まれてバイナリファイル解読により人の手で取りだせる物もあります。

仲間内もしくは自身だけが埋め込まれたファイルを取りだせるような用途で用いられ、悪意のある用途としては、商用ソフトウェアや著作権画像などを、何の変哲もないファイルに埋め込むことで、一見、違法性の無いファイルに偽装することなどが挙げられます。商用ソフトウェアをインプラントファイルに埋め込み、非合法に配布する行為はWarezと呼ばれています。

非暗号化埋め込みデータを取りだす手法

 インプラントファイルをバイナリエディタで開きます。見かけ上のファイル形式を表すマジックナンバーが現れた後に、再びマジックナンバーが現れる箇所を探し出します。そこが埋め込みデータの先頭である可能性が高いので、そこから埋め込み末尾と思われる箇所までを別ファイルに保存し、マジックナンバーに沿った拡張子をつけます。

※時間がある際に実際の埋め込みデータの取り出しを追記しようと思います。