【Oktane26】セッション:How to secure non-human identities from end-to-end
はじめに
皆様こんにちはこんばんは、Oktaneをこよなく愛するネクストモードのおはらふです
SSOやMFAで「表の玄関」はしっかり固めたけれど、「裏口」にパスワードを使ったサービスアカウントが残っている…、そんな心当たりはありませんか?
今回は、そんな非人間ID(Non-Human Identity:NHI)を、Oktaの各製品を組み合わせて発見から統制までエンドツーエンドで守るデモのセッションがありましたので、その様子をお届けしたいと思います
キーワード
Oktane26、非人間ID(NHI)、ISPM、Identity Threat Protection、Okta Workflows、Okta Privileged Access、Okta Identity Governance、ゼロスタンディング特権
セッション概要

登壇者
Paul O'Mahony, Staff Identity Security Engineer, Okta
ちなみにNHIというのは、サービスアカウントやAPIキー、BOTなど「人以外の何か」が使うIDのことです
人のIDに比べて管理の目が届きにくく、権限が強いまま放置されがちなのが課題とされています
「裏口」に潜むNHIの死角
セッションは会場への問いかけから始まりました
- SSO、条件付きアクセス、フィッシング耐性のあるMFAで表玄関を何年も固めてきた人は?
- 静的パスワード、MFAなし、しかも管理者権限のサービスアカウントが裏口に残っている人は?
- 下流のパイプラインや本番の売上に直結するアプリへの影響が読めず、サービスアカウントのパスワードをローテーションするのが怖い人は?
- 組織内のNHIを完全に棚卸しできている自信がある人は?
最後の質問で手が一本も挙がらず、「それが見たかった」と登壇者は満足していました
ここで述べた状態こそが「NHIの死角」であり、今回のデモではそれを次の流れで解消していくとのことです
- ISPMで、存在すら知らなかったシャドーアカウントを発見する
- ITPとWorkflowsで、不正なアクティビティを検知・対応する
- Okta Privileged Access(OPA)で、NHIのクレデンシャルを保護・ローテーションする
- Okta Identity Governance(OIG)で、管理されたチェックアウトによりゼロスタンディング特権を強制する

Discover:ISPMでシャドーアカウントを発見する
最初に登場するのはOkta Identity Security Posture Management(ISPM)です
アイデンティティやセキュリティエンジニアにとって最大の死角は、日々管理しているIDではなく「存在を知らないシャドーID」とのこと
ISPMは環境全体を継続的に可視化し、管理外のID、MFAの未設定、古いパスワードなどのリスクをスキャンしてくれます

デモでは、ISPMがSalesforceテナントでクリティカルなアラートを検出していました
今回はSaaSのサービスアカウントにフォーカスしていますが、同じ考え方はNHI全体に適用できるそうです
検出されたアカウントは次のような状態でした
- Okta管理外のSalesforceローカルサービスアカウント
- 管理者レベルのフル権限
- MFAなし
- パスワードは1年以上ローテーションされていない
ここまで重なると単なる設定ミスではなく「パーフェクトストーム」だと表現していました
典型的な企業では、こうしたアカウントは退職者が作った忘れ去られたスプレッドシートの中にだけ存在し、ペネトレーションテストか、最悪の場合は攻撃者に見つかるまで誰も気づかないとのことです

「アクションのない可視化は、リスク管理台帳の一行が増えるだけ」とし、ISPMの画面からそのまま是正に移ります
ボタンをワンクリックするだけで、バックグラウンドでWorkflowsが動き、このアカウントをOPAにオンボードできます
Detect & Respond:ITPとWorkflowsで不正ログインに即応する
では、是正が間に合う前に攻撃者が裏口アカウントを悪用したらどうなるのか?
デモでは事前にインシデントをシミュレートしていました
シナリオはこうです
退職者がパスワードのコピーを持ち出しており、表玄関はSSOが強制されていると知っているので、Salesforceのログイン画面に直接クレデンシャルを入力して裏口からアクセスした
従来のシステムでは手遅れになるまで気づけず、重要なアラートも大量のログに埋もれてしまいます
セキュリティチームはアラート疲れに苦しんでいるため、必要なのは「即時かつコンテキストを踏まえたアクション」だと述べていました

ここからWorkflowsの動きを順に見ていきます
まず、検知用のフローが通常の通信経路外(Out-of-band)のログインを捕捉し、異常な振る舞いとしてフラグを立て、是正用のフローを呼び出します
是正フローではまず対象アカウントを特定し、次の2点を確認します
- フェデレーションされたアカウントか(Universal Directoryに存在するか)
- OPAで管理されているアカウントか
結果は「どちらにも該当しない=野良アカウント」
アカウントをリスク台帳に登録し、是正アクションへ進みます
フェデレーションされたアカウントだった場合は?
ここで登壇者が補足していたのが、フロー内のIdentity Threat Protection(ITP)のアクションです
もしフェデレーションされたアカウントで、リスクが「高」と判定された場合は、ITP側で是正が行われます
デモ画面では、リスク「高」でセッション保護違反が検出されているものの、ステータスは監視モードでした
これを強制モードにすれば、Universal Logout、セッション終了、アプリへのアクセス拒否といった手段で対処できるとのことです
野良のSaaSサービスアカウントの場合
今回はフェデレーションされていないSalesforceのサービスアカウントなので、Workflowsの続きに戻ります
- Salesforceアカウントを凍結
- リスク台帳を更新
- 別のフローを呼び出し、アカウントをOPAにオンボード
- OPAのSalesforceプロジェクトにアカウントを割り当て
- OPAがパスワードをローテーションし、「管理済み」ステータスを返す
- 管理下に入ったのでアカウントの凍結を解除
- リスク台帳を更新
- セキュリティチームへ通知
数秒のうちに、侵害された静的な裏口アカウントを、ゼロスタンディング特権の動的なアカウントへと変えていました
なお、会場ではスマホで撮影する人が多く、「このWorkflowsは公開する予定」とのアナウンスもありました
Secure:OPAでクレデンシャルを保管・ローテーションする
続いてOkta Privileged Access(OPA)の画面です

オンボードされた瞬間にパスワードはローテーションされているため、漏洩・悪用されたクレデンシャルはもう使えません
裏口は閉じられ、今このパスワードを知っているのはOPAだけ、人間は誰も知らない状態です
Govern:OIG×OPAで排他的チェックアウトとJITアクセス
セキュリティチームはこれで一安心ですが、Salesforceエンジニアが業務でこのアカウントを使う必要がある場合はどうするのか?
そこで登場するのが「排他的チェックアウト」と「ゼロスタンディング特権」です
ちなみに、ゼロスタンディング特権(Zero Standing Privileges)というのは、特権を常時付与しておかず、必要なときに必要な時間だけ与える考え方のことです
OPA側の設定
OPAのSalesforceプロジェクトでは、配下で保護されているすべてのアカウントに対してチェックアウトが有効化されています
さらにセキュリティポリシーで、クレデンシャルを表示する前に満たすべきJIT(Just-In-Time)アクセス条件が設定されていました
エンジニア視点での利用フロー
ここで登壇者が「Salesforceエンジニア」に役割を切り替えてデモを進めます
従来であれば、静的なパスワードをチーム内で共有し、必要なときにコピーして使ってそのまま…というのがよくある運用でした
OPAでは、エンジニアの画面にパスワードは表示されておらず、アクセス条件を満たすためにリクエストが必要です
「セキュリティがビジネスの足を止めてはいけない」とし、アクセスをリクエストするとOIGを経由して承認者に直接届きます
エンジニアの画面に戻ると、クレデンシャルがチェックアウト可能になっていました
ここでは2つの重要なコントロールが効いています
排他的チェックアウト
同時にクレデンシャルを保持できるのは1人だけ
これにより、このアカウントに対する厳格な否認防止(誰が使ったかを言い逃れできない状態)が担保されます
時間制限
チェックアウトの残り時間は1時間
「クレデンシャルを所有しているのではなく、リースしているだけ」と表現していました

パスワードをコピーしてSalesforceにログインし、必要な作業を終えたらログアウトしてチェックイン
チェックインした瞬間、もしくはタイマーが切れた時点で、OPAがSalesforce側のパスワードを再度ローテーションします
つまり、30秒前にクリップボードにあったパスワードはもう使えません
そして、一連の操作はすべて監査証跡として残ります
これがJITとゼロスタンディング特権の実践だと締めくくり、デモパートが終了しました
まとめ
最後にスライドに戻り、振り返りがありました

- 出発点は、裏口に潜む「管理外かつ高権限のSaaSサービスアカウント」という企業の大きな死角
- ISPMで可視化・リスク特定し、その場から先回りして是正
- ITPとWorkflowsで、SSOを迂回したログインを捕捉して是正アクションを実行
- OPAでクレデンシャルを保管・保護
- OIGとOPAで排他的チェックアウトのライフサイクルを確立
管理外のSaaSの脆弱性を、エンジニアリングの速度を落とすことなく完全に統制された資産へと変え、攻撃者に盗むものを何も残さない
これがこのセッションのメッセージでした
おわりに
ISPM、ITP、Workflows、OPA、OIGと、Oktaの製品を横断してNHIのライフサイクルを一気に回す、見応えのあるデモセッションでした
個別の機能を知る機会やセッションはあるのですが、組み合わせて何ができるかを理解するにはとても良いセッションでした