デスクトップアプリ
スキャン、セットアップ、伏せ字、仮名化を実際の画面で確認する操作ガイド。
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 は日本語にも切り替えられます。
Run scan の後は Findings を確認。例では Medium が 2 件あり、ブロック閾値未満でも検出結果は残ります。
セットアップの進め方
- Setup を開き、Review and adjust items で適用項目を確認します。
- Apply recommended setup で適用します。個別調整は Advanced settings で行います。
- Git / AI フックを動かすには、CLI のインストールも必要です。
緑の項目と未設定の項目を確認してから適用します。この例は Git リポジトリではないため pre-commit は設定できません。
| 操作 | macOS |
|---|---|
| プロジェクトを開く | ⌘O |
| スキャン | ⌘R |
| マスク画面 | ⌘M |
| 入力欄からマスク実行 | ⌘↵ |
| ようこそ画面 | ⌘⇧N |
Windows / Linux は ⌘ の代わりに Ctrl を使います。
仮名化
まず、共有後に同じ人物・値の対応関係を残したいかで方法を選びます(切り替えは desktop-v0.7.1 以降)。
| 比較 | Redact(伏せ字) | Pseudonymize(仮名化) |
|---|---|---|
| 置き換え方 | 検出値 → [REDACTED] |
氏名・メール・電話 → 一貫したコード |
| 用途 | 機密情報を取り除く | 同じ値の対応を保ち、表の結合や分析に使う |
| プロジェクト | なしでも利用可 | shk.toml のあるプロジェクトが必須 |
| CSV / TSV / Excel | 検出ルールに従ってマスク | 対象列と種類を選択 |
| テキストレイヤー付き PDF(デスクトップ専用) | 非対応 | |
| 復元 | 復元マップなし | ファイル入力のみ、任意の暗号化マップで復元 |
同じプロジェクトの同じキーを使う間は、ファイルをまたいでも CLI とアプリでもコードが一致します。CLI の仮名化と同じエンジンです。
伏せ字の例。Input と Masked output を見比べ、未検出の情報が残っていないか確認してからコピーします。
前提条件
- Mask policy で
shk.tomlのあるプロジェクトを選びます。 - 初回は Create a pseudonymize key for
<project>? で保存先を確認して作成します。キーは[env].secret_storeの資格情報ストア(標準は OS キーリング、または 1Password)に保存され、プロジェクト内には書き込まれません。 - ストアに接続できない場合は理由を表示して失敗します。別の保存先には切り替えません。
仮名化する対象の選択
- 1. 入力ファイルを開く/表を貼り付ける
- 2. 列を選ぶチェックと種類を確認する
- 3. 実行・確認Pseudonymize → 保存/コピー
- Pseudonymize を選び、CSV・TSV・Excel(
.xlsx)を開きます。貼り付けの場合は Pasted content is を CSV table / TSV table にします。 - 表のプレビュー(スクロールで最大 100 行・すべての列を確認できます)を見ながら、対象列にチェックを入れ、種類を選びます。
- Pseudonymize を実行し、処理件数と出力を確認します。
この例は 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 は書式を維持 |
| 仮名化に切り替えると選択を解除。伏せ字のみ対応 |
実行対象はチェックした列だけです。 自動判定やプロジェクト設定は、選んでいない列を追加しません。これは列を自動推定できる 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>キーの確認・ローテーション・削除は 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チェックサムが提供されている場合は検証してください。
curl -LO https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-v0.7.4/shk-desktop.sha256sum
sha256sum -c shk-desktop.sha256summacOS
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 アクティビティ パネルを使用してください。
- 通知をオフにしてもバナーが止まるだけで、監視は止まりません。アプリを開いている間、監査パネルは引き続き更新されます。
アプリ内アップデート
アプリが自動で更新を確認することはありません。確認はトップバーから開始します:
- トップバーの 更新確認 を選びます。アプリは GitHub 上の
desktop-latest/latest.jsonを読み、実行中のバージョンと比較します。 - 最新版であればその旨が表示され、それ以外には何も起こりません。
- 新しいリリースがあればバージョンが表示され、ダウンロードして再起動 が提示されます。確定するとアップデーターパッケージをダウンロードしてインストールし、アプリを再起動します。キャンセルすれば現在のバージョンのままです。確認だけでは何もダウンロードされません。
アップデーターパッケージは、OS のコード署名とは独立して、常にプロジェクトの Tauri アップデーター鍵で署名されており、検証に失敗したパッケージは拒否されます。すべてのリリースが同じ鍵を共有しているため、未署名の早期アクセスビルドを含む古いインストールもその場で更新されます。
アップデーターのメタデータに含まれるのは、macOS の .app(どちらの .dmg でも)、Windows の NSIS setup.exe、そしてその場で置き換えられる Linux の AppImage です。.msi と .deb パッケージは含まれていないため、これらでインストールした場合は 更新確認 を使わないでください。.msi インストールには代わりに NSIS インストーラーが渡され、.deb インストールでは不正なパッケージとしてエラーになります。安定したダウンロードリンク から新しいパッケージをダウンロードし、既存バージョンの上にインストールしてください。
アプリを更新しても CLI は更新されません。CLI は別途最新に保ってください(CLI の更新 を参照)。新しい CLI リリースがある場合は shk status が知らせます。
関連情報
- CLI についてはインストールを、デスクトップのアーティファクトも対象とするアンインストール手順もあわせて参照してください。
- 仮名化、復元マップ、キー管理の CLI 側については
shk mask --pseudonymizeとshk pseudonymizeを、shk.tomlの[pseudonymize]については仮名化の設定を参照してください。 - 同じ監査ログを CLI から確認するには
shk auditを参照してください。 - メンテナー向けのリリース手順は、メインリポジトリの
desktop-release.mdにあります。



