ドキュメントガイド

デスクトップアプリ

スキャン、セットアップ、伏せ字、仮名化を実際の画面で確認する操作ガイド。

目次

shk Desktop はスキャン・マスク・セットアップ・監査をまとめたローカルアプリです。CLI と同じ検出エンジンとポリシーを使います。フックが AI の操作をブロックすると、起動中のアプリから OS 通知も届きます。

アプリでできること

やりたいこと 画面・操作 確認するもの
プロジェクトを登録 New project → フォルダを開く/Git をクローン サイドバーのプロジェクト、最終スキャン時刻
検出結果を確認 Run scan → Findings 重要度、ルール、ファイル、行番号
保護を設定 Setup → Review and adjust items ポリシー、ignore、Git / AI フック、暗号化、npm 強化、スキル
AI へ渡す内容をマスク Mask for AI → Redact / Pseudonymize 入力と出力を見比べてからコピー
ブロックを調べる Overview → Blocked AI activity .shk/audit.log のメタデータ
普段のツールで開く Open in… Cursor、VS Code、Antigravity、Claude Desktop、ChatGPT

UI は日本語にも切り替えられます。

Findings 画面。重要度別の件数と、contacts.csv のメールアドレス検出 2 件。

Run scan の後は Findings を確認。例では Medium が 2 件あり、ブロック閾値未満でも検出結果は残ります。

セットアップの進め方

  1. Setup を開き、Review and adjust items で適用項目を確認します。
  2. Apply recommended setup で適用します。個別調整は Advanced settings で行います。
  3. Git / AI フックを動かすには、CLI のインストールも必要です。

Setup 画面。推奨設定の項目、適用ボタン、詳細設定。

緑の項目と未設定の項目を確認してから適用します。この例は Git リポジトリではないため pre-commit は設定できません。

操作 macOS
プロジェクトを開く ⌘O
スキャン ⌘R
マスク画面 ⌘M
入力欄からマスク実行 ⌘↵
ようこそ画面 ⌘⇧N

Windows / Linux は ⌘ の代わりに Ctrl を使います。

仮名化

まず、共有後に同じ人物・値の対応関係を残したいかで方法を選びます(切り替えは desktop-v0.7.1 以降)。

比較 Redact(伏せ字) Pseudonymize(仮名化)
置き換え方 検出値 → [REDACTED] 氏名・メール・電話 → 一貫したコード
用途 機密情報を取り除く 同じ値の対応を保ち、表の結合や分析に使う
プロジェクト なしでも利用可 shk.toml のあるプロジェクトが必須
CSV / TSV / Excel 検出ルールに従ってマスク 対象列と種類を選択
PDF テキストレイヤー付き PDF(デスクトップ専用) 非対応
復元 復元マップなし ファイル入力のみ、任意の暗号化マップで復元

同じプロジェクトの同じキーを使う間は、ファイルをまたいでも CLI とアプリでもコードが一致します。CLI の仮名化と同じエンジンです。

Redact 画面。左のサンプルメールアドレスが、右では REDACTED に置き換わっている。

伏せ字の例。Input と Masked output を見比べ、未検出の情報が残っていないか確認してからコピーします。

前提条件

  • Mask policy で shk.toml のあるプロジェクトを選びます。
  • 初回は Create a pseudonymize key for <project>? で保存先を確認して作成します。キーは [env].secret_store の資格情報ストア(標準は OS キーリング、または 1Password)に保存され、プロジェクト内には書き込まれません。
  • ストアに接続できない場合は理由を表示して失敗します。別の保存先には切り替えません。

仮名化する対象の選択

  1. 1. 入力ファイルを開く/表を貼り付ける
  2. 2. 列を選ぶチェックと種類を確認する
  3. 3. 実行・確認Pseudonymize → 保存/コピー
  1. Pseudonymize を選び、CSV・TSV・Excel(.xlsx)を開きます。貼り付けの場合は Pasted content is を CSV table / TSV table にします。
  2. 表のプレビュー(スクロールで最大 100 行・すべての列を確認できます)を見ながら、対象列にチェックを入れ、種類を選びます。
  3. Pseudonymize を実行し、処理件数と出力を確認します。

CSV の列選択画面。email だけがチェックされ、Email address と自動判定されている。

この例は email 列だけが対象です。name と team は未選択なのでそのまま残ります。氏名も隠す場合は name 列を選び、種類を Person’s name にします。

列の種類 使い方
Email address / Phone number / Person’s name メール・電話番号・氏名を指定
Other 独自ラベル(例: member_id)。英小文字で始まり、英小文字・数字・_ のみ。コードの接頭辞になる
Leave as is / 未選択 変更せずにコピー
Formula (kept as is) 数式列。選択不可で、定数に変換しない

選択の補助と入力ごとの違い

項目 動作
Auto-detected / Project setting サンプルからの推定(一致率付き)/[pseudonymize.columns] の設定。読み込み時に選択済み
Use all suggestions 推奨の選択に戻す
Set all to "Leave as is" 全列の選択を解除
Excel の複数シート 選択したシートだけを処理
見出しのない表 ヘッダー設定を変更し、列を 1、2、3… で指定
文章・Markdown・Word・PowerPoint 列選択なし。検出した氏名・メール・電話を置換し、他の検出は [REDACTED]。Word / PowerPoint は書式を維持
PDF 仮名化に切り替えると選択を解除。伏せ字のみ対応

実行対象はチェックした列だけです。 自動判定やプロジェクト設定は、選んでいない列を追加しません。これは列を自動推定できる CLI と異なります。伏せ字で表ファイルを選んだ場合は、仮名化への切り替えも案内されます。

出力と復元

出力 保存内容・扱い
<name>.pseudo.<ext> 保存ダイアログで指定。元の拡張子を保ち、元ファイルの隣を提案。プロジェクト外にも保存可
<output>.shk-meta.json 出力の隣に作成。列名と種類、件数、キーのフィンガープリントを記録し、元の値・コードは含まない
<name>.shk-map(任意) Advanced options → Also save a restore map。ファイル入力のみ。出力の隣に保存し、AI には渡さない
貼り付けた内容 入力の下に結果と Copy masked text / AI アプリへの導線を表示。ディスクへの保存も復元マップもなし
[UNPARSED] 指定した種類として読めなかった値。復元不可

完了画面で、処理行数・種類別の置換件数・[UNPARSED] の件数を確認します。作成ファイルには Copy path があります。

復元マップとキーは非公開で保管してください。 両方があれば元の値を復元できます。

復元とキー管理は CLI で行います。

shk pseudonymize restore --file <pseudonymized> --map <map> --output <restored>
bash

キーの確認・ローテーション・削除は shk pseudonymize key show / rotate / delete を参照してください。

インストール

デスクトップアプリは CLI とは別に配布されていますが、CLI の代替ではなく追加です。スキャンとマスクはアプリ単体で動作しますが、クイックセットアップがインストールする Git フックと AI ツールフックは shk コマンドを実行するため、CLI も併せてインストールしてください。PATH に CLI が無い場合、フックは何もせず、アプリには「shk コマンドがパソコンにインストールされていません」という警告が表示されます。リリースは desktop-vX.Y.Z(または統合された shk-vX.Y.Z)タグから、GitHub Releases 上の shk-desktop_* アセットとして公開されます。desktop-v0.6.0 以降、macOS ビルドは Developer ID で署名、公証(notarize)、ステープルされています。Windows インストーラーは現在 Authenticode 署名されていません。

インストーラーの選択

プラットフォーム アセットのパターン 備考
Linux x86_64 shk-desktop_*_x86_64-unknown-linux-gnu_*.AppImage または *.deb AppImage には chmod +x が必要
Linux aarch64 shk-desktop_*_aarch64-unknown-linux-gnu_*.AppImage または *.deb 上記と同じ
macOS Intel shk-desktop_*_x86_64-apple-darwin_*.dmg 署名・公証済み。shk.app を /Applications にドラッグ
macOS Apple Silicon shk-desktop_*_aarch64-apple-darwin_*.dmg 上記と同じ
Windows x86_64 shk-desktop_*_x86_64-pc-windows-msvc_*setup.exe または *.msi 現在は未署名

対象タグのリリースページからダウンロードしてください。例:

https://github.com/Kazuki-tam/security-harness-kit/releases/tag/desktop-v0.7.4
text

チェックサムが提供されている場合は検証してください。

curl -LO https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-v0.7.4/shk-desktop.sha256sum
sha256sum -c shk-desktop.sha256sum
bash

macOS

desktop-v0.6.0 以降のインストーラーは Developer ID で署名・公証されており、Gatekeeper は回避策なしでそれらを開きます。古い未署名の早期アクセスビルドをまだ使用している場合は、署名済みの .dmg インストールに置き換えてください。すべてのリリースが同じ Tauri アップデーター署名鍵を共有しているため、アプリ内アップデーターも既存のインストールを移行します。

Windows SmartScreen

Windows インストーラーは現在 Authenticode 署名されていないため、SmartScreen が Windows によって PC が保護されました と表示することがあります。リリースのチェックサムとアテステーション(証明)を信頼できる場合は、詳細情報 → 実行 を選択してください。

ブロックされたアクティビティの通知

アプリを開いている間、サイドバーにあるすべてのプロジェクトの .shk/audit.log を監視(tail)し、フックが AI アクティビティをブロックすると OS の通知を表示します。トップバーのベルメニューから通知をオフにしたり、1 種類のブロックだけに絞り込んだりできます。デフォルトでは両方の種類がオンになっています。

知っておくと役立つ詳細:

  • 通知されるのは、プロジェクトがサイドバーに表示された後に記録されたブロックのみです。既存の履歴が通知の山を生むことはありません。
  • 数秒以内に到着したブロックは 1 つの通知にまとめられます。
  • 通知のテキストは、ブロックの理由、リスクのあるアクションのカテゴリ、AI ツールに限定されます。通知はロック画面に表示され、OS によって保存されるため、ファイルパスは意図的に除外されています。ファイルパスを確認するには ブロックされた AI アクティビティ パネルを使用してください。
  • 通知をオフにしてもバナーが止まるだけで、監視は止まりません。アプリを開いている間、監査パネルは引き続き更新されます。

アプリ内アップデート

アプリが自動で更新を確認することはありません。確認はトップバーから開始します:

  1. トップバーの 更新確認 を選びます。アプリは GitHub 上の desktop-latest/latest.json を読み、実行中のバージョンと比較します。
  2. 最新版であればその旨が表示され、それ以外には何も起こりません。
  3. 新しいリリースがあればバージョンが表示され、ダウンロードして再起動 が提示されます。確定するとアップデーターパッケージをダウンロードしてインストールし、アプリを再起動します。キャンセルすれば現在のバージョンのままです。確認だけでは何もダウンロードされません。

アップデーターパッケージは、OS のコード署名とは独立して、常にプロジェクトの Tauri アップデーター鍵で署名されており、検証に失敗したパッケージは拒否されます。すべてのリリースが同じ鍵を共有しているため、未署名の早期アクセスビルドを含む古いインストールもその場で更新されます。

アップデーターのメタデータに含まれるのは、macOS の .app(どちらの .dmg でも)、Windows の NSIS setup.exe、そしてその場で置き換えられる Linux の AppImage です。.msi と .deb パッケージは含まれていないため、これらでインストールした場合は 更新確認 を使わないでください。.msi インストールには代わりに NSIS インストーラーが渡され、.deb インストールでは不正なパッケージとしてエラーになります。安定したダウンロードリンク から新しいパッケージをダウンロードし、既存バージョンの上にインストールしてください。

アプリを更新しても CLI は更新されません。CLI は別途最新に保ってください(CLI の更新 を参照)。新しい CLI リリースがある場合は shk status が知らせます。