Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
hashr — GCP、AWS、およびローカルソースにわたるディスクイメージ、パッケージ、アーカイブからフォレンジックファイルハッシュセットを構築し、重複排除とDFIRワークフロー向けのPostgreSQL/Spannerエクスポートを備えています。 | Kitploit
ツール/GitHubGitHub/google/hashr
ディスクフォレンジックハッシュ分析フォレンジックデジタルフォレンジックインシデントレスポンス
GitHubgoogle/hashr

hashr

GCP、AWS、およびローカルソースにわたるディスクイメージ、パッケージ、アーカイブからフォレンジックファイルハッシュセットを構築し、重複排除とDFIRワークフロー向けのPostgreSQL/Spannerエクスポートを備えています。

リポジトリを見る
1309387ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

HashR: 独自のハッシュセットを生成



目次

  • HashR: 独自のハッシュセットを生成
    • 目次
    • 概要
    • 要件
    • HashRバイナリのビルドとテストの実行
    • HashRのセットアップ
      • dockerを使用したHashR
      • OS設定と必要なサードパーティツール
      • 処理タスク用ストレージのセットアップ
        • PostgreSQLストレージのセットアップ
        • Cloud Spannerのセットアップ
      • インポーターのセットアップ
        • GCP(Google Cloud Platform)
        • AWS(Amazon Web Services)
        • GCR(Google Container Registry)
        • Windows
        • WSUS
        • TarGz
        • Deb
        • RPM
        • Zip(およびZip類似形式)
        • ISO 9660
      • エクスポーターのセットアップ
        • Postgresエクスポーターのセットアップ
        • GCPエクスポーターのセットアップ
      • 追加フラグ

概要

HashRを使用すると、データソースに基づいて独自のハッシュセットを構築できます。入力ソース(例: 生のディスクイメージ、GCEディスクイメージ、ISOファイル、Windows更新プログラムパッケージ、.tar.gzファイルなど)からファイルとハッシュを抽出するツールです。

HashRは次のコンポーネントで構成されています:

  1. インポーター: ソースをローカルストレージにコピーし、必要な前処理を実行します。
  2. コア: image_export.py(Plaso)を使用したソースからのコンテンツの抽出、キャッシュとリポジトリレベルの重複排除、エクスポーター向けに抽出されたファイルの準備を担当します。
  3. エクスポーター: ファイル、メタデータ、ハッシュを指定されたデータシンクにエクスポートします。

現在実装されているインポーター:

  1. GCP: 基本のGCPディスクイメージからファイルを抽出します
  2. Windows: ISO-13346形式のWindowsインストールメディアからファイルを抽出します。
  3. WSUS: Windows Updateパッケージからファイルを抽出します。
  4. GCR: Google Container Registryに保存されているコンテナイメージからファイルを抽出します。
  5. TarGz: .tar.gzアーカイブからファイルを抽出します。
  6. Deb: Debianソフトウェアパッケージからファイルを抽出します。
  7. RPM: RPMソフトウェアパッケージからファイルを抽出します。
  8. Zip: .zip(およびZip類似形式)アーカイブからファイルを抽出します。

ファイルが抽出されハッシュ化されると、結果はエクスポーターに渡されます。現在実装されているエクスポーター:

  1. PostgreSQL: PostgreSQLインスタンスにデータをアップロードします。
  2. Cloud Spanner: GCP Spannerインスタンスにデータをアップロードします。

実行するインポーターを選択できます。それぞれに異なる要件があります。詳細については、以下のセクションを参照してください。

要件

HashRの実行にはLinux OSが必要です。物理マシン、仮想マシン、クラウドマシンのいずれでも構いません。以下は最適なハードウェア要件です:

  1. 8〜16コア
  2. 128GBメモリ
  3. 2TBの高速ローカルストレージ(SSD推奨)

HashRは低スペックのマシンでも実行できる可能性がありますが、これは十分にテストされていません。

HashRバイナリのビルドとテストの実行

hashrバイナリをビルドするには、次のコマンドを実行します:``` shell env GOOS=linux GOARCH=amd64 go build hashr.go

コア hashR パッケージのテストを実行するには、Spanner エミュレータを実行する必要があります:``` shell
gcloud emulators spanner start

その後、すべてのテストを実行するには、次のコマンドを実行します:``` shell go test -timeout 2m ./...

## HashR のセットアップ

### OSDFIR インフラストラクチャにおける HashR

HashR は [OSDFIR Infrastructure プロジェクト](https://github.com/google/osdfir-infrastructure/tree/main/charts/hashr) の一部としてデプロイできます。
このデプロイメントでは、HashR を Kubernetes の cronjob として実行し、Timesketch との簡単な
統合を可能にします。

### Docker を使用した HashR

HashR を Docker コンテナで実行するには、[Docker 固有のガイド](https://github.com/google/hashr/blob/main/docker/README.md) を参照してください。

### OS の設定と必要なサードパーティツール

HashR は、Plaso を使用して、ディスクイメージ、ボリューム、ファイルシステムの解析といった重労働を処理します。以下のコマンドを使用して、Plaso の Docker コンテナをプルする必要があります。``` shell
docker pull log2timeline/plaso

また、WSUSインポーターがWindows Updateパッケージの再帰的抽出に使用する7zも、HashRを実行しているマシンにインストールされている必要があります。``` shell sudo apt install p7zip-full

HashRを実行するユーザーに対して、sudo経由で特定のコマンドを実行できるようにする必要があります。ユーザーが `hashr` であると仮定して、ファイル `/etc/sudoers.d/hashr` を作成し、以下を記述してください:``` shell
hashr ALL = (root) NOPASSWD: /bin/mount,/bin/umount,/sbin/losetup,/bin/rm

HashRが実行されるユーザーも、dockerを実行できる必要があります。ユーザーがhashrであると仮定して、次のようにしてdockerグループに追加してください:``` shell sudo usermod -aG docker hashr

### 処理タスク用のストレージの設定

HashRは、処理済みソースに関する情報を保存する必要があります。また、処理タスクに関する追加のテレメトリー(処理時間、抽出されたファイル数など)も保存します。以下のいずれかを選択できます。

1. PostgreSQL
1. Cloud (GCP) Spanner

#### PostgreSQLストレージの設定

PostgreSQLインスタンスを実行・維持する方法は多数ありますが、最も簡単な方法の1つはDockerコンテナで実行することです。以下の手順に従って、PostgreSQL Dockerコンテナをセットアップしてください。

ステップ1: PostgreSQL Dockerイメージをプルします。``` shell
docker pull postgres

ステップ2: PostgreSQLコンテナを初期化してバックグラウンドで実行します。パスワードを必ず調整してください。``` shell docker run -itd -e POSTGRES_DB=hashr -e POSTGRES_USER=hashr -e POSTGRES_PASSWORD=hashr -p 5432:5432 -v /data:/var/lib/postgresql/data --name hashr_postgresql postgres

ステップ 3: 処理ジョブを保存するためのテーブルを作成します。``` shell
cat scripts/CreateJobsTable.sql | docker exec -i hashr_postgresql psql -U hashr -d hashr

PostgreSQL を使用して処理タスクに関する情報を保存するには、次のフラグを指定する必要があります: -storage postgres -postgres_host <host> -postgres_port <port> -postgres_user <user> -postgres_password <pass> -postgres_db <db_name>

Cloud Spanner のセットアップ

処理ジョブに関するデータは Cloud Spanner に保存することもできます。そのためには Google Cloud プロジェクトが必要です。この設定の主な利点は、Google Data Studio を使用してダッシュボードを簡単に作成し、Cloud Spanner インスタンスに直接接続できることです。これにより、PostgreSQL インスタンスに対してクエリを実行しなくても、監視とデバッグが可能になります。

gcloud ツールがターゲットの hashr GCP プロジェクトで設定されていることを前提として、Cloud Spanner を有効にするには、以下の手順を実行する必要があります。

HashR サービス アカウントを作成します:``` shell gcloud iam service-accounts create hashr --description="HashR SA key." --display-name="hashr"

サービスアカウントキーを作成し、ホームディレクトリに保存してください。*<project_name>*をプロジェクト名に設定してください。``` shell
gcloud iam service-accounts keys create ~/hashr-sa-private-key.json --iam-account=hashr-sa@<project_name>.iam.gserviceaccount.com

GOOGLE_APPLICATION_CREDENTIALS 環境変数をサービスアカウントキーに設定してください:``` shell export GOOGLE_APPLICATION_CREDENTIALS=/home/hashr/hashr-sa-private-key.json

Spanner インスタンスを作成し、必要に応じて config と processing-units の値を調整してください:``` shell
gcloud spanner instances create hashr --config=regional-us-central1 --description="hashr" --processing-units=100

Spanner データベースを作成:``` shell gcloud spanner databases create hashr --instance=hashr

サービスアカウントが Spanner データベースを使用できるようにし、*<project_name>* をプロジェクト名に設定してください:``` shell
gcloud spanner databases add-iam-policy-binding hashr --instance hashr --member="serviceAccount:hashr-sa@<project_name>.iam.gserviceaccount.com" --role="roles/spanner.databaseUser"

Spanner データベーススキーマを更新:``` shell gcloud spanner databases ddl update hashr --instance=hashr --ddl-file=scripts/CreateJobsTable.ddl

Cloud Spanner を使用して処理タスクに関する情報を保存するには、次のフラグを指定する必要があります: `-jobStorage cloudspanner -spannerDBPath <spanner_db_path>`

### インポーターの設定

実行するインポーターを指定するには、`-importers` フラグを使用します。指定可能な値: `GCP,targz,windows,wsus,deb,rpm,zip,gcr,iso9660`

#### GCP (Google Cloud Platform)```shell
-importers GCP

このインポーターは、GCPディスクイメージからファイルを抽出できます。これはいくつかのステップで行われます:

  1. ターゲットプロジェクト(例: ubuntu-os-cloud)内の新しいイメージを確認する
  2. 新しい/未処理のイメージをhashR GCPプロジェクトにコピーする
  3. Cloud Buildを実行する。これにより一時的なVMが作成され、コピーしたイメージに対してddが実行され、出力が.tar.gzファイルに保存されます。
  4. raw_disk.tar.gzをhashR GCPプロジェクトのGCSバケットにエクスポートする
  5. raw_disk.tar.gzをGCSからローカルのhashRストレージにコピーする
  6. raw_disk.tar.gzを抽出し、ディスクイメージをPlasoに渡す

公開GCPイメージを含むGCPプロジェクトの一覧は、こちらにあります。このインポーターを使用するには、GCPプロジェクトが必要であり、次の手順を実行する必要があります:

ツールをダウンロード