開発の現場では、APIキーやトークンが端末の中に平文のまま置かれます。ホームディレクトリーの.sshにある暗号化されていない秘密鍵、プロジェクトの直下に置いたままの.envファイルがその典型です。持ち出しや端末の紛失が起きたとき、これらは保管庫の中身とは別の経路で漏洩します。1Password Businessには、端末を走査して平文のシークレットを見つけ、本人に直してもらうまでを追える仕組みがあります。このページでは、何が検出されるか、有効にする前の準備、ポリシーの設定、レポートの読み方、本人への連絡と追跡、検出の範囲を説明します。
何が見つかるか
検出できるのは2種類です。暗号化されていないSSHの秘密鍵と、機微な値が書かれている.envファイルです。どちらを対象にするかはポリシーで選べます。
見つかるのは、そのシークレットの名前、種類、置かれているファイルのパス、端末の名前、そして端末にサインインしている人です。値そのものは収集されません。レポートに出るのは、どこに何という名前のものがあるかまでです。
.envファイルは、中身に機微そうな値が入っているものだけが対象になります。動作モードの指定のような、明らかに秘密ではない値しか含まないファイルは出てきません。既に1Passwordで管理している値も対象外です。
有効にする前の準備
走査の対象は、会社のアカウントにサインインしているデスクトップアプリが入った端末です。私物の端末を業務で使っていて、そこに会社のアカウントを追加している場合も含まれます。
この点が、他のレポートと性格が違うところです。管理コンソールの中の状態を数えるのではなく、従業員の端末のファイルを見に行きます。有効にする前に、何を目的に、どの範囲を、どのように見るのかを説明してください。私物端末の業務利用を認めている組織では、対象になる端末の条件もあわせて伝える必要があります。
ポリシーを有効にできるのは、所有者、管理者、または設定の管理のパーミッションを持つグループの人です。できあがったレポートを見られるのは所有者とセキュリティのグループに限られます。この2つがずれていると、設定はしたが見る人の画面に出てこない状態になります。グループの設計は組み込みグループの役割で扱います。
ローカルディスクのスキャンを有効にする
サイドバーのポリシーを開き、共有と許可のポリシーの管理に進みます。ローカルディスクのスキャンのセクションで、走査を許可する設定をオンにします。
オンにすると、法令や社内規程の要件を満たす責任が自社にあることを確認するチェックボックスが出ます。これにチェックを入れて先に進むと、検出する対象の種類を選ぶ画面になります。SSHの秘密鍵か、.envファイルか、両方かを選び、ページの末尾で保存します。
後からポリシーをオフにすると、レポートは表示されなくなります。それまでに集めた履歴は消えず、オンに戻せば元の内容が見えるようになります。
レポートを読む
サイドバーのレポートを開き、セキュリティリポートのセクションにある開発者シークレットの検出レポートを表示します。

1行が1つのシークレットです。同じ名前のシークレットが複数の端末にある場合はまとめて1行になり、何人が持っているか、そのうち何件が直ったかが出ます。件数が多いときは、名前の一部で検索するか、種類で絞り込んでください。表示したままの状態をCSVで書き出せます。絞り込みをかけている場合、書き出されるのは絞り込んだ後の行だけです。
数字を見るときの注意が1つあります。この一覧は端末の状態を映したもので、危険度の順ではありません。本番環境の鍵も検証用の使い捨ての値も同じ1行として並びます。名前から用途を見分けて、優先順位は自分で付けることになります。
本人に連絡して直してもらう
管理者が代わりに消すことはできません。該当者に伝えて、本人に1Passwordへ取り込んでもらう流れになります。
誰の端末にあるかを開く
一覧で該当人数のリンクを開くと、その人の名前、端末の名前、ファイルのパス、最後に検出した日時、是正の状況が出ます。同じ人が同じシークレットを複数の場所に持っている場合は、場所ごとに行が分かれます。

連絡用の文面を作る
各行の操作から、本人に送る文面を確認できます。シークレットの名前、置かれている端末とパス、取るべき対応が入ったものが用意されるので、内容を確認してコピーし、メールやチャットに貼って送ります。
1人が複数の場所に持っている場合、文面は場所ごとに分かれます。件数が多いときに1件ずつ送るのは現実的ではないので、部門の窓口にまとめて渡す形を検討してください。まとめ方はインサイト通知の設計で扱います。
進み方を追う
連絡した後は、一覧の状況の列で全体の進み方を見ます。該当人数のリンクを開くと、既定では未対応のものだけが表示されます。絞り込みを切り替えると、対応済みのものや両方を並べられます。
対応済みになった後もデータは残ります。いつ検出され、いつ解消したかを後から示せるようにするためです。
検出の範囲と限界
対象はMac、Windows、Linuxのデスクトップアプリだけです。iOSとAndroidの端末は走査されません。
走査するのはホームディレクトリーの中の決まった場所だけです。SSHの鍵は.sshの配下を3階層まで、.envファイルは開発用としてよく使われるいくつかのディレクトリーの中を見ます。シンボリックリンクは追わず、外付けのドライブも見に行きません。これらの外に置かれた平文のシークレットは、このレポートには出てきません。
走査が走るのは、デスクトップアプリのロックが解除されたときと、利用者がアプリ側のWatchtowerで更新を実行したときです。状態に変化がなくても、24時間ごとに同じ内容が再送されます。

【注意】 その端末で会社のアカウントからサインアウトすると、未対応のまま残っていたシークレットは未対応の表示のまま固定されます。1Passwordがその端末の状態を確認できなくなるためです。退職者の端末や、業務での利用をやめた私物端末がこの状態になります。未対応の件数が減らないときは、まず対象者がまだサインインしているかを確認してください。
【運用のポイント】 このレポートは、平文のシークレットをなくすための入口であって、それ自体は対策ではありません。件数を減らすには、シークレットを置く先を先に用意しておく必要があります。開発者が使える保管庫と、そこから値を読み出す方法を決めてから有効にしてください。範囲の線引きは開発者向け機能の位置付けで扱います。