アーティファクトレポート
ローカルシステムでのPythonコマンドのインストールと実行に慣れてきたので、フォレンジックの概念について詳しく見ていきましょう。この章では、Pythonデジタルフォレンジックでアーティファクトを処理する際のさまざまな概念について説明します。
レポート作成の必要性
デジタルフォレンジックのプロセスには、第3フェーズとしてのレポートが含まれます。これは、デジタルフォレンジックプロセスの最も重要な部分の1つです。以下の理由により、レポートの作成が必要です。
これは、デジタルフォレンジック審査官が調査プロセスとその調査結果を概説した文書です。
優れたデジタルフォレンジックレポートは、別の審査官が参照して、同じリポジトリを指定して同じ結果を得ることができます。
これは、デジタル証拠の1と0の中に見つかった事実を含む技術的および科学的文書です。
レポート作成の一般的なガイドライン
レポートは読者に情報を提供するために書かれており、しっかりとした基盤から始める必要があります。レポートが一般的なガイドラインや基準なしで作成された場合、調査員は調査結果を効率的に提示するのが困難になる可能性があります。デジタルフォレンジックレポートを作成する際に従う必要のある一般的なガイドラインを以下に示します。
Summary −読者がレポートの目的を確認できるように、レポートには情報の簡単な要約が含まれている必要があります。
Tools used −デジタルフォレンジックのプロセスを実行するために使用されてきたツールについて、その目的を含めて言及する必要があります。
Repository −誰かのコンピューターを調査し、証拠の要約と、電子メール、内部検索履歴などの関連資料の分析を調査した場合、ケースを明確に提示できるように、それらをレポートに含める必要があります。
Recommendations for counsel −報告書には、報告書の調査結果に基づいて調査を継続または中止するための弁護士への推奨事項が含まれている必要があります。
さまざまなタイプのレポートの作成
上記のセクションでは、デジタルフォレンジックにおけるレポートの重要性と、レポートを作成するためのガイドラインについて説明しました。さまざまな種類のレポートを作成するためのPythonの形式のいくつかを以下で説明します-
CSVレポート
レポートの最も一般的な出力形式の1つは、CSVスプレッドシートレポートです。以下に示すように、Pythonコードを使用してCSVを作成し、処理されたデータのレポートを作成できます。
まず、スプレッドシートを作成するための便利なライブラリをインポートします-
from __future__ import print_function
import csv
import os
import sys
ここで、次のメソッドを呼び出します-
Write_csv(TEST_DATA_LIST, ["Name", "Age", "City", "Job description"], os.getcwd())
サンプルデータ型を表すために、次のグローバル変数を使用しています-
TEST_DATA_LIST = [["Ram", 32, Bhopal, Manager],
["Raman", 42, Indore, Engg.],
["Mohan", 25, Chandigarh, HR],
["Parkash", 45, Delhi, IT]]
次に、次の操作に進む方法を定義しましょう。ファイルを「w」モードで開き、改行キーワード引数を空の文字列に設定します。
def Write_csv(data, header, output_directory, name = None):
if name is None:
name = "report1.csv"
print("[+] Writing {} to {}".format(name, output_directory))
with open(os.path.join(output_directory, name), "w", newline = "") as \ csvfile:
writer = csv.writer(csvfile)
writer.writerow(header)
writer.writerow(data)
上記のスクリプトを実行すると、report1.csvファイルに次の詳細が保存されます。
名前 | 年齢 | 市 | 指定 |
---|---|---|---|
羊 | 32 | ボパール | マネージャー |
ラマン | 42 | インドール | Engg |
モハン | 25 | チャンディーガル | 人事 |
パーカッシュ | 45 | デリー | それ |
Excelレポート
レポートのもう1つの一般的な出力形式は、Excel(.xlsx)スプレッドシートレポートです。Excelを使用して、テーブルを作成し、グラフをプロットすることもできます。以下に示すように、Pythonコードを使用してExcel形式で処理済みデータのレポートを作成できます-
まず、スプレッドシートを作成するためのXlsxWriterモジュールをインポートします-
import xlsxwriter
次に、ブックオブジェクトを作成します。このためには、Workbook()コンストラクターを使用する必要があります。
workbook = xlsxwriter.Workbook('report2.xlsx')
次に、add_worksheet()モジュールを使用して新しいワークシートを作成します。
worksheet = workbook.add_worksheet()
次に、次のデータをワークシートに書き込みます-
report2 = (['Ram', 32, ‘Bhopal’],['Mohan',25, ‘Chandigarh’] ,['Parkash',45, ‘Delhi’])
row = 0
col = 0
このデータを繰り返し処理して、次のように書き込むことができます-
for item, cost in (a):
worksheet.write(row, col, item)
worksheet.write(row, col+1, cost)
row + = 1
それでは、close()メソッドを使用してこのExcelファイルを閉じましょう。
workbook.close()
上記のスクリプトは、次のデータを持つreport2.xlsxという名前のExcelファイルを作成します-
羊 | 32 | ボパール |
モハン | 25 | チャンディーガル |
パーカッシュ | 45 | デリー |
調査取得メディア
調査員は、調査結果を正確に思い出したり、すべての調査をまとめたりするために、詳細な調査メモを用意することが重要です。スクリーンショットは、特定の調査のために実行された手順を追跡するのに非常に役立ちます。次のPythonコードを使用して、スクリーンショットを撮り、将来使用するためにハードディスクに保存できます。
まず、次のコマンドを使用してpyscreenshotという名前のPythonモジュールをインストールします-
Pip install pyscreenshot
次に、図のように必要なモジュールをインポートします-
import pyscreenshot as ImageGrab
次のコード行を使用してスクリーンショットを取得します-
image = ImageGrab.grab()
次のコード行を使用して、スクリーンショットを指定された場所に保存します-
image.save('d:/image123.png')
ここで、スクリーンショットをグラフとしてポップアップする場合は、次のPythonコードを使用できます-
import numpy as np
import matplotlib.pyplot as plt
import pyscreenshot as ImageGrab
imageg = ImageGrab.grab()
plt.imshow(image, cmap='gray', interpolation='bilinear')
plt.show()