【IBM Security Verify】パスワード・インテリジェンス機能を使って、辞書攻撃に対応する①

# はじめに

2023年4月のアップデートで、パスワード・インテリジェンス機能管理機能とパスワード・インテリジェンス・レポート機能が実装されました。
Japan テナントはまだ機能未反映ですが、EUのテナントには機能反映されていたため、早速試してみました。
![qiita (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/5caf6416-aabd-1ea3-1dab-557be2abd548.png)

[セキュリティー] -> [パスワードの管理] -> [インテリジェンス・リスト]に設定があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/5535c8ab-488f-a976-98fc-aa92bf89f310.png)
![qiita (28).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/66dc2bd0-5f4b-f03c-8e5e-fed06f83a804.png)


# 1.機能概要
- [パスワード・インテリジェンスの管理](https://www.ibm.com/docs/ja/security-verify?topic=passwords-managing-password-intelligence)
    - 2つの機能が追加された。2つを併用することも可能。
        - 「IBM Security X-forceを利用したパスワードの利用を制御する機能」
        - 「ユーザーが定義したカスタム・リストを用いたパスワード利用の制御する機能」
    - 制御したパスワードを利用している場合のアクションが定義できる。
        - アクションは 監査　＜　警告　＜　強制　の3段階ある。強制が一番高い優先度になる。
    
- [パスワード・インテリジェンス・レポートの生成](https://www.ibm.com/docs/ja/security-verify?topic=reports-generating-password-intelligence-report)
    - 上記パスワードインテリジェンスの動作結果をレポートする機能

# 2.カスタム・リストによるパスワード使用制御設定

設定できる項目はパスワードのリストデータと、2つのフローです。

|項目|選択肢|補足|
|---|---|---|
|CSVファイル|用意したCSVファイルをアップロードする|<ul><li>サポートされるファイル・タイプは .CSV</li><li>1列目のデータのみ利用されるためコンマ区切りである必要はない。</li><li>最大ファイル・サイズは <del>500Kb</del>設定画面では500KBと注記あるが、4MBのファイルのアップロードができた。マニュアル上は20MBと記載されている。</li><li> パスワードの最大数は 1,000,000 </li><li>改行コードはCRLF</li><li>comma などの特殊文字を含む値は二重引用符で囲む必要がある</li><li>1行目はヘッダーで必ずpassword を指定する。</li></ul> |
|ユーザー・ログイン・フロー  |<ul><li>監査</li><li>メッセージでユーザーに警告します。</li><li>ログインを禁止し、ユーザーをパスワード変更エクスペリエンスにリダイレクトします。</li></ul>     |ー| 
|アカウントの作成、パスワードのリセット、およびパスワードの変更のフロー  |<ul><li>監査</li><li>メッセージでユーザーに警告します。</li><li>アクションをブロックし、よりセキュアなパスワードを使用するようにユーザーに要求します。</li></ul>      |ユーザーログインフローで、「ログインを禁止し、ユーザーをパスワード変更エクスペリエンスにリダイレクトします。」を指定した場合、「アクションをブロックし、よりセキュアなパスワードを使用するようにユーザーに要求します。」が自動的に選択される。|

# 3.カスタム・リストの生成、アップロード
OpenWallの無償版辞書をベースに、ダウンロードしたPassword_intelligence_list.csvを更新します。
無料版には約3500件くらいのデータがあります。

https://www.openwall.com/wordlists/
https://download.openwall.net/pub/wordlists/passwords/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/83749e82-268b-9eb1-0b84-e7f64d87a92f.png)

Password_intelligence_list_mod.csvを作成しました。
```
password
123456
12345
password
password1
123456789
12345678
1234567890
abc123
computer
tigger
1234
qwerty
money
~~~
```

ファイルをアップロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/c7ecedf8-eda3-e686-696a-5e0b9a7336e3.png)

リスト内に同じパスワードが含まれているとアップロード時にエラーになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/44a70b4d-e820-86ee-fd25-c41a8f6f010a.png)
```
例）123456が重複
password
123456
123456
~~~
```

1行目のヘッダーにあたる部分がpasswordでないCSVをアップロードするとエラーになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/5b39ca38-1e06-0869-e564-e88f45d47903.png)
```
例）一行目が password ではない
123456
~~~
```

# 4.ユーザー・ログイン・フロー動作確認
カスタム・リストを利用して、各アクションごとにどのような画面が表示されるか確認しました。
※動作検証のため、IBM Security Verifyのパスワード要件はパスワードの長さ：8桁のみに設定しています。

|アクション|ユーザー視点の画面変化|画面サンプル　　　　　　　　　　　　　　　　　　　　　　　　　　　|
|---|---|---|
|監査|ユーザーの見た目の変化はなし|![qiita (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/7bedd424-2c68-0b40-190c-fdc048e01efb.png)![qiita (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/ae7add82-9e69-ae09-6283-65cad948dad7.png)|
|メッセージでユーザーに警告します|ログイン後にパスワード変更を促す画面が表示される|![qiita (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/c9d1bade-e48b-e920-51c3-967396fb324e.png)　![qiita (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/3e7b8134-abb3-7a47-ffe1-cb68922c3c49.png)　![qiita (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/86a7db35-c316-8e95-b83a-db69103f3e2b.png)|
|ログインを禁止し、ユーザーをパスワード変更エクスペリエンスにリダイレクトします。|パスワード変更画面が表示される。|![password-000022.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/3cd5abbf-21ea-c2b7-f4d1-517b16a76753.png)　![password-000023.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/7e17da3c-0894-59a4-486e-42007f1b49a8.png)|


# 5.パスワード変更フローの動作確認
カスタム・リストを利用して、ユーザーがパスワード変更するときに、各アクションごとにどのような画面が表示されるか確認しました。
※動作検証のため、IBM Security Verifyのパスワード要件はパスワードの長さ：8桁のみに設定しています。


|項目|ユーザー視点の画面変化|画面サンプル　　　　　　　　　　　　　　　　　　　　　　　　　　　|
|---|---|---|
|監査|ユーザーの見た目の変化はなし|![qiita (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/f36c7d86-779b-86d7-051c-345e45e1ab6d.png) ![qiita (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/02e3779a-6bca-fa85-9ef0-2cf180d3c9a2.png)|
|メッセージでユーザーに警告します|パスワード変更は成功する。警告が表示される。|![qiita (12).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/7df8e4ce-0c5a-1841-7d42-5079d54cd4b0.png) ![qiita (13).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/ffd44254-3e08-f5b4-b281-1c40ffd322d1.png)|
|アクションをブロックし、よりセキュアなパスワードを使用するようにユーザーに要求します。|パスワード変更が失敗する。|![qiita (14).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/746fc037-d7d6-79a7-a397-b0783aebee08.png) ![qiita (15).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/687f54d9-ba83-257d-03aa-8e125f8665d8.png)|


# 6.パスワードリセットフローの動作確認
カスタム・リストを利用して、ユーザーがパスワードリセットするときに、各アクションごとにどのような画面が表示されるか確認しました。
※動作検証のため、IBM Security Verifyのパスワード要件はパスワードの長さ：8桁のみに設定しています。


|項目|ユーザー視点の画面変化|画面サンプル　　　　　　　　　　　　　　　　　　　　　　　　　　　|
|---|---|---|
|監査|ユーザーの見た目の変化はなし|![qiita (16).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/e649a5b7-394b-65f2-7eb0-bd819afa8d7a.png) ![qiita (17).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/d5ec165c-5218-36ec-da70-3150b77ddb42.png) ![qiita (18).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/9d62d887-0a35-78af-95e5-faf59c88aacf.png) ![qiita (19).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/fbc2d395-f55c-81da-6a52-cc894d380d77.png) ![qiita (20).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/3ee85154-6265-1f7f-b400-e4daaa6051f4.png) ![qiita (21).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/c68e36d1-5f87-6d50-9208-14f6950854a0.png)|
|メッセージでユーザーに警告します|パスワード変更は成功する。警告が表示される。|※パスワードリセットURLにアクセスするまでの画面遷移は割愛します。 ![qiita (22).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/4d0ff37a-a360-6e6c-77af-e3e0daeaa928.png) ![qiita (23).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/0cdc67f9-8a5b-4bda-61ee-f7dca13798ed.png) ![qiita (24).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/7faa43f4-767c-0031-1317-62a61a3859b0.png)|
|アクションをブロックし、よりセキュアなパスワードを使用するようにユーザーに要求します。|パスワード変更が失敗する。|※パスワードリセットURLにアクセスするまでの画面遷移は割愛します。 ![qiita (25).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/f6295e57-5ab9-eb58-0d5a-cbbab92aff5c.png) ![qiita (26).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/fe018e15-1de5-1e52-0156-e765b1189ebf.png) |

# 最後に

次回は、IBM Security X-forceを利用したパスワードの利用を制御する機能を確認したいと思います。

5/11 更新
- [【IBM Security Verify】パスワード・インテリジェンス機能を使って、辞書攻撃に対応する①](https://qiita.com/fitz/items/86de0400e346a8c70c88)
- [【IBM Security Verify】パスワード・インテリジェンス機能を使って、辞書攻撃に対応する②](https://qiita.com/fitz/items/bbcfa712de1dc7cda343)
- [【IBM Security Verify】パスワード・インテリジェンス機能を使って、辞書攻撃に対応する③](https://qiita.com/fitz/items/bb6b85883dfc63d2c6bf)