Python-digital-forensics-important-artifacts-in-windows
Windows-Iの重要なアーティファクト
この章では、Microsoft Windowsのフォレンジックに関連するさまざまな概念と、調査プロセスで調査者が取得できる重要なアーティファクトについて説明します。
前書き
アーティファクトとは、コンピューターユーザーが実行したアクティビティに関連する重要な情報を持つコンピューターシステム内のオブジェクトまたは領域です。 この情報の種類と場所は、オペレーティングシステムによって異なります。 フォレンジック分析中、これらのアーティファクトは、調査員の観察の承認または不承認において非常に重要な役割を果たします。
フォレンジックのためのWindowsアーティファクトの重要性
Windowsのアーティファクトは、次の理由により重要であると想定しています-
- 世界のトラフィックの約90%は、Windowsをオペレーティングシステムとして使用しているコンピューターからのものです。 そのため、デジタルフォレンジック検査官にとって、Windowsアーティファクトは非常に重要です。
- Windowsオペレーティングシステムには、コンピューターシステムでのユーザーアクティビティに関連するさまざまな種類の証拠が保存されます。 これは、デジタルフォレンジックにとってWindowsアーティファクトの重要性を示すもう1つの理由です。
- 多くの場合、調査員は、ユーザーが作成したデータのような古い領域と従来の領域を中心に調査を展開します。 Windowsのアーティファクトは、システムが作成したデータやアーティファクトのような非伝統的な領域に調査を導くことができます。
- 調査担当者だけでなく、非公式の調査を行う企業や個人にも役立つ、大量のアーティファクトがWindowsによって提供されます。
- 近年のサイバー犯罪の増加は、Windowsアーティファクトが重要であるもう1つの理由です。
WindowsアーティファクトとPythonスクリプト
このセクションでは、Windowsアーティファクトとそれらから情報を取得するPythonスクリプトについて説明します。
ごみ箱
フォレンジック調査のための重要なWindowsアーティファクトの1つです。 Windowsのごみ箱には、ユーザーによって削除されたが、まだシステムによって物理的に削除されていないファイルが含まれています。 ユーザーがファイルをシステムから完全に削除したとしても、それは調査の重要なソースとなります。 これは、削除されたファイルから、審査官が元のファイルパスやごみ箱に送信された時刻などの貴重な情報を抽出できるためです。
ごみ箱の証拠の保存は、Windowsのバージョンに依存することに注意してください。 次のPythonスクリプトでは、2つのファイルを作成するWindows 7を扱います。リサイクルファイルの実際のコンテンツを含む $ R ファイルと、元のファイル名、パス、ファイルサイズを含む $ I ファイルファイルが削除されたとき。
Pythonスクリプトの場合、サードパーティのモジュール、つまり pytsk3、pyewf および unicodecsv をインストールする必要があります。 pip を使用してそれらをインストールできます。 次の手順に従って、ごみ箱から情報を抽出できます-
- まず、再帰メソッドを使用して $ Recycle.bin フォルダーをスキャンし、 $ I で始まるすべてのファイルを選択する必要があります。
- 次に、ファイルの内容を読み取り、使用可能なメタデータ構造を解析します。
- 次に、関連する$ Rファイルを検索します。
- 最後に、レビューのために結果をCSVファイルに書き込みます。
この目的のためにPythonコードを使用する方法を見てみましょう-
まず、次のPythonライブラリをインポートする必要があります-
次に、コマンドラインハンドラーの引数を指定する必要があります。 以下に示すように、ここでは3つの引数を受け入れることに注意してください。最初は証拠ファイルへのパス、2番目は証拠ファイルのタイプ、3番目はCSVレポートへの望ましい出力パスです-
ここで、すべての処理を処理する* main()関数を定義します。 次のように *$ I ファイルを検索します-
さて、 $ I ファイルが見つかった場合は、* process_dollar_i()関数に送信する必要があります。この関数は、以下に示すように、 *$ I ファイルのリストと tsk_util オブジェクトを受け入れます。
今、次のように$ Rファイルを検索します-
次に、* read_dollar_i()メソッドを定義して、 *$ I ファイルを読み取ります。つまり、メタデータを解析します。 * read_random()メソッドを使用して、署名の最初の8バイトを読み取ります。 署名が一致しない場合、これはnoneを返します。 その後、有効なファイルである場合は、 *$ I ファイルから値を読み取って展開する必要があります。
今、これらのファイルを抽出した後、以下に示すように* sizeof_fmt()*関数を使用して整数を人間が読める値に解釈する必要があります-
今、私たちは次のように* sizeof_fmt()*関数を定義する必要があります-
今、次のようにフォーマットされた日付と時刻に解釈された整数の関数を定義します-
今、私たちは次のように処理された結果をCSVファイルに書き込むために* write_csv()*メソッドを定義します-
上記のスクリプトを実行すると、$ Iおよび$ Rファイルからデータが取得されます。
ポストイット
Windows付箋は、ペンと紙で書くという現実の習慣を置き換えます。 これらのノートは、色、フォントなどのさまざまなオプションを使用してデスクトップに浮かびました。 Windows 7では、付箋ファイルはOLEファイルとして保存されるため、次のPythonスクリプトでは、このOLEファイルを調査して付箋からメタデータを抽出します。
このPythonスクリプトでは、サードパーティのモジュール、つまり olefile、pytsk3、pyewf 、unicodecsvをインストールする必要があります。 コマンド pip を使用してそれらをインストールできます。
付箋ファイルから情報を抽出するために、以下で説明する手順、つまり StickyNote.sn を実行できます-
- まず、証拠ファイルを開き、すべてのStickyNote.sntファイルを見つけます。
- 次に、OLEストリームからメタデータとコンテンツを解析し、RTFコンテンツをファイルに書き込みます。
- 最後に、このメタデータのCSVレポートを作成します。
Pythonコード
この目的のためにPythonコードを使用する方法を見てみましょう-
まず、次のPythonライブラリをインポートします-
次に、このスクリプト全体で使用されるグローバル変数を定義します-
次に、コマンドラインハンドラーの引数を指定する必要があります。 ここでは、3つの引数を受け入れることに注意してください。1つ目は証拠ファイルへのパス、2つ目は証拠ファイルのタイプ、3つ目は次のような望ましい出力パスです-
さて、以下に示すように、前のスクリプトに似た* main()*関数を定義します-
次に、結果のファイルを反復処理します。 次に、* parse_snt_file()関数を呼び出してファイルを処理し、次に write_note_rtf()*メソッドを使用してRTFファイルを書き込みます。
次に、このスクリプトで使用されるさまざまな関数を定義する必要があります。
まず、 pytsk ファイルオブジェクトを取得して、ファイルのサイズを読み取る* create_file_like_obj()関数を定義します。 次に、入力としてファイルのようなオブジェクトを受け入れ、付箋ファイルの読み取りと解釈に使用される parse_snt_file()*関数を定義します。
次に、次のように* write_note_rtf()*関数を定義してRTFファイルを作成します
次に、ネストされた辞書を、CSVスプレッドシートにより適した辞書のフラットリストに変換します。 * prep_note_report()関数を定義することにより実行されます。 最後に、 write_csv()*関数を定義します。
上記のスクリプトを実行した後、Sticky Notesファイルからメタデータを取得します。
レジストリファイル
Windowsレジストリファイルには、法医学アナリストにとって貴重な情報の宝庫のような多くの重要な詳細が含まれています。 これは、オペレーティングシステムの構成、ユーザーアクティビティ、ソフトウェアのインストールなどに関する詳細を含む階層型データベースです。 次のPythonスクリプトでは、 SYSTEM および SOFTWARE ハイブから共通のベースライン情報にアクセスします。
このPythonスクリプトでは、サードパーティのモジュール、つまり pytsk3、pyewf および registry をインストールする必要があります。 pip を使用してそれらをインストールできます。
私たちは、Windowsレジストリから情報を抽出するための以下の手順に従うことができます-
- 最初に、名前とパスで処理するレジストリハイブを見つけます。
- 次に、StringIOおよびレジストリモジュールを使用してこれらのファイルを開きます。
- 最後に、すべてのハイブを処理し、解析した値を解釈のためにコンソールに出力する必要があります。
Pythonコード
この目的のためにPythonコードを使用する方法を見てみましょう-
まず、次のPythonライブラリをインポートします-
次に、コマンドラインハンドラーの引数を指定します。 ここでは2つの引数を受け入れます-最初に証拠ファイルへのパス、2番目に証拠ファイルのタイプ、以下に示すように-
次のように /Windows/System32/config フォルダー内の SYSTEM および SOFTWARE ハイブを検索するための* main()*関数を定義します-
次に、レジストリファイルを開くための関数を定義します。 この目的のために、次のように pytsk メタデータからファイルのサイズを収集する必要があります-
今、次の方法の助けを借りて、私たちは SYSTEM> ハイブを処理できます-
今、私たちは次のようにフォーマットされた日付と時刻に整数を解釈するための関数を定義する必要があります-
今、次の方法の助けを借りて、*ソフトウェア*ハイブを処理できます-
上記のスクリプトを実行した後、メタデータをWindowsレジストリファイルに保存します。