Python-digital-forensics-investigating-embedded-metadata
埋め込みメタデータの調査
この章では、Pythonデジタルフォレンジックを使用した埋め込みメタデータの調査について詳しく学習します。
前書き
埋め込みメタデータは、同じファイルに格納されているデータに関する情報であり、そのデータによって記述されたオブジェクトを持っています。 つまり、デジタルファイル自体に保存されているデジタル資産に関する情報です。 常にファイルに関連付けられており、分離することはできません。
デジタルフォレンジックの場合、特定のファイルに関するすべての情報を抽出することはできません。 一方、埋め込みメタデータは、調査に重要な情報を提供します。 たとえば、テキストファイルのメタデータには、作成者に関する情報、その長さ、作成日、およびそのドキュメントに関する短い要約が含まれる場合があります。 デジタル画像には、画像の長さ、シャッター速度などのメタデータが含まれる場合があります。
メタデータ属性を含むアーティファクトとその抽出
このセクションでは、メタデータ属性を含むさまざまなアーティファクトとPythonを使用した抽出プロセスについて学習します。
オーディオとビデオ
これらは、メタデータが埋め込まれた2つの非常に一般的なアーティファクトです。 このメタデータは、調査目的で抽出できます。
次のPythonスクリプトを使用して、オーディオまたはMP3ファイルとビデオまたはMP4ファイルから共通の属性またはメタデータを抽出できます。
このスクリプトには、mutagenという名前のサードパーティのPythonライブラリをインストールする必要があります。これにより、オーディオファイルとビデオファイルからメタデータを抽出できるようになります。 それは、次のコマンドの助けを借りてインストールすることができます-
このPythonスクリプトのためにインポートする必要がある便利なライブラリのいくつかは次のとおりです-
コマンドラインハンドラーは、MP3またはMP4ファイルへのパスを表す1つの引数を取ります。 その後、次のようにファイルへのハンドルを開くために* mutagen.file()*メソッドを使用します-
次に、2つのハンドルを使用する必要があります。1つはMP3からデータを抽出し、もう1つはMP4ファイルからデータを抽出します。 次のようにこれらのハンドルを定義できます-
今、私たちは次のようにこのMP4ファイルを反復処理する必要があります-
上記のスクリプトは、MP3ファイルとMP4ファイルに関する追加情報を提供します。
画像
画像には、ファイル形式に応じて異なる種類のメタデータが含まれる場合があります。 ただし、ほとんどの画像にはGPS情報が埋め込まれています。 サードパーティのPythonライブラリを使用して、このGPS情報を抽出できます。 あなたは同じことをするために使用できる次のPythonスクリプトを使用することができます-
まず、次のように* Python Imaging Library(PIL)*という名前のサードパーティのPythonライブラリをダウンロードします-
これは、画像からメタデータを抽出するのに役立ちます。
また、画像に埋め込まれたGPSの詳細をKMLファイルに書き込むこともできますが、このために simplekml という名前のサードパーティPythonライブラリを次のようにダウンロードする必要があります-
このスクリプトでは、最初に次のライブラリをインポートする必要があります-
これで、コマンドラインハンドラーは、基本的に写真のファイルパスを表す1つの位置引数を受け入れます。
次に、座標情報を取り込むURLを指定する必要があります。 URLは gmaps および open_maps です。 また、PILライブラリによって提供される度分秒(DMS)タプル座標を10進数に変換する関数も必要です。 それは次のように行うことができます-
ここで、* image.open()*関数を使用して、ファイルをPILオブジェクトとして開きます。
さて、次のように simplekml ライブラリから kml オブジェクトを開始します-
次のように処理された情報から座標を印刷できるようになりました-
PDFドキュメント
PDFドキュメントには、画像、テキスト、フォームなど、さまざまなメディアがあります。 PDFドキュメントに埋め込まれたメタデータを抽出すると、結果データをExtensible Metadata Platform(XMP)と呼ばれる形式で取得する場合があります。 私たちは次のPythonコードの助けを借りてメタデータを抽出できます-
最初に、 PyPDF2 という名前のサードパーティPythonライブラリをインストールして、XMP形式で保存されたメタデータを読み取ります。 次のようにインストールできます-
今、PDFファイルからメタデータを抽出するために次のライブラリをインポートします-
これで、コマンドラインハンドラーは、基本的にPDFファイルのファイルパスを表す1つの位置引数を受け入れます。
今、我々は次のように利用可能なメタデータを含むオブジェクトを提供するために* getXmpMetadata()*メソッドを使用することができます-
- custom_print()*メソッドを使用して、title、creator、contributorなどの関連する値を抽出および印刷できます。 次のように-
また、次のように複数のソフトウェアを使用してPDFを作成する場合に* custom_print()*メソッドを定義することもできます-
また、次のようにソフトウェアによって保存された他のカスタムプロパティを抽出することができます-
上記のスクリプトはPDFドキュメントを読み取り、そのPDFが作成されたソフトウェアを使用して保存されたカスタムプロパティを含むXMP形式で保存されたメタデータを印刷します。
Windows実行可能ファイル
疑わしい、または不正な実行可能ファイルに遭遇する場合があります。 ただし、調査のためには、メタデータが埋め込まれているため便利です。 その場所、目的、製造業者、編集日などのその他の属性などの情報を取得できます。 次のPythonスクリプトの助けを借りて、コンパイル日、ヘッダーから有用なデータ、インポートされたシンボル、エクスポートされたシンボルを取得できます。
この目的のために、最初にサードパーティのPythonライブラリ pefile をインストールします。 それは次のように行うことができます-
これを正常にインストールしたら、次のように次のライブラリをインポートします-
これで、コマンドラインハンドラは、基本的に実行可能ファイルのファイルパスを表す1つの位置引数を受け入れます。 また、詳細で詳細な方法または単純化された方法で必要な場合でも、出力のスタイルを選択できます。 このためには、以下に示すようにオプションの引数を与える必要があります-
次に、PEクラスを使用して入力実行可能ファイルをロードします。 また、* dump_dict()*メソッドを使用して、実行可能データを辞書オブジェクトにダンプします。
以下に示すコードを使用して、埋め込みオーサーシップ、バージョン、コンパイル時間などの基本的なファイルメタデータを抽出できます-
次のようにヘッダーから有用なデータを抽出できます-
次に、以下に示すように、実行可能ファイルからインポートおよびエクスポートのリストを抽出します-
次に、以下に示すコードを使用して、 exports 、 names 、および addresses を印刷します-
上記のスクリプトは、基本的なメタデータ、Windows実行可能ファイルのヘッダーからの情報を抽出します。
Officeドキュメントのメタデータ
コンピューターでの作業のほとんどは、MS Officeの3つのアプリケーション(Word、PowerPoint、Excel)で行われます。 これらのファイルには膨大なメタデータが含まれており、そのメタデータにより、作成者や履歴に関する興味深い情報が公開されます。
2007形式のword(.docx)、excel(.xlsx)、およびpowerpoint(.pptx)のメタデータはXMLファイルに保存されていることに注意してください。 以下に示すPythonスクリプトを使用して、これらのXMLファイルをPythonで処理できます-
まず、以下に示すように必要なライブラリをインポートします-
次に、ファイルがZIPファイルかどうかを確認します。 それ以外の場合は、エラーが発生します。 今、ファイルを開き、次のコードを使用して処理するための重要な要素を抽出します-
今、メタデータの抽出を開始するための辞書を作成します-
- iterchildren()*メソッドを使用して、XMLファイル内の各タグにアクセスします-
同様に、ドキュメントの内容に関する統計情報を含むapp.xmlファイルに対してこれを行います-
上記のスクリプトを実行した後、特定のドキュメントに関するさまざまな詳細を取得できます。 このスクリプトは、Office 2007以降のバージョンのドキュメントにのみ適用できることに注意してください。