# Okta Hardening

{{#include ../../banners/hacktricks-training.md}}

## Directory

### People

攻撃者の視点から見ると、これは非常に興味深いです。なぜなら、**登録されているすべてのユーザー**、その**メール**アドレス、**所属グループ**、**プロフィール**、さらには**デバイス**（モバイルとそのOS）を確認できるからです。

ホワイトボックスレビューでは、**「保留中のユーザーアクション」**や**「パスワードリセット」**が複数存在しないことを確認してください。

### Groups

ここでは、Oktaで作成されたすべてのグループを見つけることができます。異なるグループ（**権限のセット**）が**ユーザー**に付与される可能性を理解することは興味深いです。\
**グループに含まれる人々**や**各グループに割り当てられたアプリ**を見ることができます。

もちろん、**admin**という名前のグループは興味深いです。特に**Global Administrators**グループを確認し、最も特権のあるメンバーを特定してください。

ホワイトボックスレビューでは、**グローバル管理者は5人以下であるべきです**（2人または3人が理想です）。

### Devices

ここで、すべてのユーザーの**デバイスのリスト**を見つけることができます。また、それが**積極的に管理されている**かどうかも確認できます。

### Profile Editor

ここでは、名前、姓、メール、ユーザー名などの重要な情報がOktaと他のアプリケーションの間でどのように共有されているかを観察できます。これは、ユーザーが**Oktaでフィールドを修正**（名前やメールなど）できる場合、**外部アプリケーション**がそのユーザーを**識別**するために使用されるため、内部者が他のアカウントを**乗っ取る**可能性があるため、興味深いです。

さらに、Oktaのプロフィール**`User (default)`**では、各**ユーザー**が持つ**フィールド**と、ユーザーが**書き込み可能**なフィールドを確認できます。管理パネルが見えない場合は、**プロフィール情報を更新**するために移動し、どのフィールドを更新できるかを確認してください（メールアドレスを更新するには確認が必要です）。

### Directory Integrations

ディレクトリは、既存のソースから人々をインポートすることを可能にします。ここでは、他のディレクトリからインポートされたユーザーを見ることができると思います。

私はこれを見たことがありませんが、Oktaがユーザーをインポートするために使用している**他のディレクトリ**を見つけるのは興味深いです。もしそのディレクトリを**侵害**すれば、Oktaで作成されたユーザーの属性値を設定し、**Okta環境を侵害**する可能性があります。

### Profile Sources

プロファイルソースは、ユーザープロファイル属性の**真実のソースとして機能するアプリケーション**です。ユーザーは、一度に1つのアプリケーションまたはディレクトリからのみソースされることができます。

私はこれを見たことがないので、このオプションに関するセキュリティやハッキングに関する情報は感謝されます。

## Customizations

### Brands

このセクションの**Domains**タブで、メールを送信するために使用されるメールアドレスと、会社のOkta内のカスタムドメインを確認してください（おそらくすでに知っているでしょう）。

さらに、**Setting**タブでは、管理者であれば、**カスタムサインアウトページを使用**し、カスタムURLを設定できます。

### SMS

ここには特に興味深いことはありません。

### End-User Dashboard

ここで構成されたアプリケーションを見つけることができますが、それらの詳細は後の別のセクションで確認します。

### Other

興味深い設定ですが、セキュリティの観点からは特に興味深いことはありません。

## Applications

### Applications

ここでは、すべての**構成されたアプリケーション**とその詳細を見つけることができます：誰がそれにアクセスできるか、どのように構成されているか（SAML、OpenID）、ログイン用のURL、Oktaとアプリケーション間のマッピング...

**`Sign On`**タブには、ユーザーがアプリケーション設定を確認する際に**パスワードを表示**できる**`Password reveal`**というフィールドもあります。ユーザーパネルからアプリケーションの設定を確認するには、3つのドットをクリックします：

<figure><img src="../../images/image (283).png" alt=""><figcaption></figcaption></figure>

そして、アプリに関する詳細（パスワード表示機能が有効かどうかなど）を確認できます：

<figure><img src="../../images/image (220).png" alt=""><figcaption></figcaption></figure>

## Identity Governance

### Access Certifications

Access Certificationsを使用して、ユーザーのリソースへのアクセスを定期的にレビューし、必要に応じて自動的にアクセスを承認または取り消す監査キャンペーンを作成します。

私はこれが使用されているのを見たことがありませんが、防御的な観点から見ると、良い機能だと思います。

## Security

### General

- **セキュリティ通知メール**：すべて有効にするべきです。
- **CAPTCHA統合**：少なくとも目に見えないreCaptchaを設定することをお勧めします。
- **組織のセキュリティ**：すべてを有効にでき、アクティベーションメールは長くかかるべきではありません（7日間は適切です）。
- **ユーザー列挙防止**：両方とも有効にするべきです。
- ユーザー列挙防止は、以下の条件のいずれかが許可されている場合には効果を発揮しません（詳細は[ユーザー管理](https://help.okta.com/oie/en-us/Content/Topics/users-groups-profiles/usgp-main.htm)を参照してください）：
- セルフサービス登録
- メール認証を伴うJITフロー
- **Okta ThreatInsight設定**：脅威レベルに基づいてログを記録し、セキュリティを強化します。

### HealthInsight

ここでは、正しく構成された**設定**と**危険な**設定を見つけることができます。

### Authenticators

ここでは、ユーザーが使用できるすべての認証方法を見つけることができます：パスワード、電話、メール、コード、WebAuthn... パスワード認証子をクリックすると、**パスワードポリシー**を見ることができます。強力であることを確認してください。

**Enrollment**タブでは、必須またはオプションのものを確認できます：

<figure><img src="../../images/image (143).png" alt=""><figcaption></figcaption></figure>

電話を無効にすることをお勧めします。最も強力なのは、おそらくパスワード、メール、WebAuthnの組み合わせです。

### Authentication policies

すべてのアプリには認証ポリシーがあります。認証ポリシーは、アプリにサインインしようとするユーザーが特定の条件を満たしていることを確認し、それに基づいて要件を強制します。

ここでは、各アプリケーションにアクセスするための**要件**を見つけることができます。各アプリケーションに対して、少なくともパスワードと別の方法を要求することをお勧めします。しかし、攻撃者として、より弱いものを見つけることができれば、それを攻撃することができるかもしれません。

### Global Session Policy

ここでは、異なるグループに割り当てられたセッションポリシーを見つけることができます。例えば：

<figure><img src="../../images/image (245).png" alt=""><figcaption></figcaption></figure>

MFAを要求し、セッションの有効期限を数時間に制限し、ブラウザ拡張機能を通じてセッションクッキーを持続させず、場所とアイデンティティプロバイダーを制限することをお勧めします（可能であれば）。例えば、すべてのユーザーが特定の国からログインする必要がある場合、その場所のみを許可することができます。

### Identity Providers

アイデンティティプロバイダー（IdP）は、**ユーザーアカウントを管理する**サービスです。OktaにIdPを追加すると、エンドユーザーはソーシャルアカウントまたはスマートカードで最初に認証することによって、カスタムアプリケーションに**セルフ登録**できるようになります。

アイデンティティプロバイダーのページでは、ソーシャルログイン（IdP）を追加し、インバウンドSAMLを追加することでOktaをサービスプロバイダー（SP）として構成できます。IdPを追加した後、ユーザーの場所、デバイス、またはメールドメインなどのコンテキストに基づいて、ユーザーをIdPに誘導するルーティングルールを設定できます。

**アイデンティティプロバイダーが構成されている場合**、攻撃者と防御者の視点からその設定を確認し、**ソースが本当に信頼できるかどうか**を確認してください。攻撃者がそれを侵害すれば、Okta環境にアクセスできる可能性があります。

### Delegated Authentication

委任認証により、ユーザーは組織の**Active Directory（AD）またはLDAP**サーバーの資格情報を入力することでOktaにサインインできます。

再度確認してください。攻撃者が組織のADを侵害すれば、この設定のおかげでOktaにピボットできる可能性があります。

### Network

ネットワークゾーンは、**IPアドレス**に基づいて、組織内のコンピュータやデバイスへのアクセスを**付与または制限する**ために使用できる構成可能な境界です。1つまたは複数の個別のIPアドレス、IPアドレスの範囲、または地理的な場所を指定することでネットワークゾーンを定義できます。

1つまたは複数のネットワークゾーンを定義した後、**グローバルセッションポリシー**、**認証ポリシー**、VPN通知、**ルーティングルール**で使用できます。

攻撃者の視点からは、許可されているIPを知ることが興味深いです（および、**特権のあるIPが他にないか確認する**）。攻撃者の視点から、ユーザーが特定のIPアドレスまたは地域からアクセスする必要がある場合、この機能が適切に使用されているか確認してください。

### Device Integrations

- **エンドポイント管理**：エンドポイント管理は、管理されたデバイスがアプリケーションにアクセスできることを保証するために、認証ポリシーに適用できる条件です。
- まだこれが使用されているのを見たことがありません。TODO
- **通知サービス**：まだこれが使用されているのを見たことがありません。TODO

### API

このページでOkta APIトークンを作成し、**作成された**トークン、**権限**、**有効期限**、および**Origin URLs**を確認できます。APIトークンは、トークンを作成したユーザーの権限で生成され、**作成したユーザー**が**アクティブ**である場合にのみ有効です。

**Trusted Origins**は、あなたが制御し信頼するウェブサイトがOkta APIを通じてあなたのOkta組織にアクセスすることを許可します。

APIトークンは多くないべきです。なぜなら、もし多く存在すれば、攻撃者がそれにアクセスし、使用しようとする可能性があるからです。

## Workflow

### Automations

自動化により、エンドユーザーのライフサイクル中に発生する一連のトリガー条件に基づいて実行される自動アクションを作成できます。

例えば、条件は「Oktaでのユーザーの非活動」や「Oktaでのユーザーパスワードの有効期限切れ」であり、アクションは「ユーザーにメールを送信」または「Oktaでのユーザーライフサイクル状態を変更」などです。

## Reports

### Reports

ログをダウンロードします。これらは現在のアカウントの**メールアドレス**に**送信**されます。

### System Log

ここでは、ユーザーによって実行された**アクションのログ**を見つけることができ、Oktaやアプリケーションへのログインなどの詳細が含まれています。

### Import Monitoring

これは、Oktaでアクセスされた**他のプラットフォームからのログをインポート**できます。

### Rate limits

到達したAPIレート制限を確認します。

## Settings

### Account

ここでは、会社名、住所、**メール請求連絡先**、**メール技術連絡先**、およびOktaの更新を受け取るべき人とどのような種類のOktaの更新があるかに関する**一般的な情報**を見つけることができます。

### Downloads

ここでは、他の技術とOktaを同期するためのOktaエージェントをダウンロードできます。

{{#include ../../banners/hacktricks-training.md}}
