@@ -92,13 +92,15 @@ problems:
92
92
D 社は, Web アプリケーションを用いたチャットサービスを提供する日本の中小企業である。利用者は, ブラウザを用いてチャットサービス(以下, サービス Dという)にアクセスして,
93
93
他の利用者やりとりをする。他の利用者と一対一でチャットを行える機能(以下, ダイレクトメッセージ機能という)に加え,
94
94
複数の利用者でチャットを行える機能(以下, グループチャット機能という)も提供している。
95
- Web アプリケーションから送信されたメッセージ情報は D 社サーバに蓄積され, 送信者と受信者の間でやりとりされる。
96
- サービス D は組織での利用も想定しており, 組織内の利用者同士でのみチャットを行える機能(以下, 組織内チャット機能という)を提供している。
95
+ Web アプリケーションから送信されたメッセージ情報は D 社サーバに蓄積され, 送信者と受信者の間でやりとりされる。
96
+
97
+ サービス D は組織での利用も想定しており, 組織内の利用者同士でのみチャットを行える機能(以下, 組織内チャット機能という)を提供している。
97
98
組織内チャット機能においては, 組織によって管理された複数のグループが存在し, 利用者はそれぞれのグループ内でチャットを行える。
98
99
さらにセキュリティ対策の観点から, 指定したユーザのみが所属できるグループ(以下, 関係者グループという)を設定できるようにしている。
99
100
また, 組織内チャット機能においては, 公開グループと非公開グループの2種類のグループが存在し,
100
- 前者はサービス D に実装された一覧表示機能により不特定多数の利用者が参加可能であるが, 後者はそうではない。
101
- また D 社内では, D サービスの組織内チャット機能を利用して, 他の従業員や部署とのコミュニケーションを行っている。
101
+ 前者はサービス D に実装された一覧表示機能により不特定多数の利用者が参加可能であるが, 後者はそうではない。
102
+
103
+ また D 社内では, D サービスの組織内チャット機能を利用して, 他の従業員や部署とのコミュニケーションを行っている。
102
104
さらに利用者からの直接的なフィードバックを得るために, 公開グループ(以下, D 社公開グループという)を設けている。
103
105
D 社公開グループは, 全従業員および任意で参加した一般利用者が参加している。
104
106
@@ -121,14 +123,14 @@ D 社公開グループは, 全従業員および任意で参加した一般利
121
123
サービス S は, インターネット上での情報漏洩を監視し, 漏洩情報を D 社に通知するサービスである。D 社では, これに加えて,
122
124
利用者のプロフィールや送信されたメッセージも監視対象にし, 認証トークン漏洩の早期発見を目指している。
123
125
サービス D から発行された認証トークンは, すべてハッシュ化されてサービス S に送信され, 漏洩の検出対象に登録される。
124
- サービス S からの通知を受けた D 社は, 自動的に通知情報を解析し, 漏洩した可能性のある認証トークンを失効させるなどの対応を行っている。
126
+ サービス S からの通知を受けた D 社は, 自動的に通知情報を解析し, 漏洩した可能性のある認証トークンを失効させるなどの対応を行っている。
125
127
126
128
## 【脆弱性を悪用したセッション情報の持ち出し】
127
129
128
130
ある日, D 社公開グループの利用者から, 本文が空のメッセージが表示されているという報告が相次いでいることが判明した。
129
- 翌日 , 開発部の G さんが報告のあったグループのチャット画面を自身のアカウントを用いて閲覧したところ, 利用者 X からのメッセージが表示されていた。
130
- さらに, G さんがメッセージを表示して間もなく, 同じ送信者から新たなメッセージが送信され, いづれも本文が空であることが確認された 。
131
- 以下に G さんが取得したチャット画面のスクリーンショットを示す。
131
+ 後日 , 開発部の G さんが報告のあったグループのチャット画面を自身のアカウントを用いて閲覧したところ, 利用者 X からのメッセージが表示されていた。
132
+ さらに, G さんがメッセージを表示して間もなく, 同じ利用者から新たなメッセージが1件送信され, これらはいづれも本文が空であることが確認された 。
133
+ 以下に G さんが取得したチャット画面のスクリーンショットを示す。
132
134
133
135
![ 図1] ( /images/sc-problems/web-chat-and-encryption/fig1.png )
134
136
↑図1:利用者 X からのメッセージを含むグループチャット機能の画面
@@ -200,7 +202,7 @@ G さんは, 利用者 X は `[ A ]` と呼ばれる脆弱性を悪用す
200
202
## 【開発機密の漏洩】
201
203
202
204
ある日, D 社の開発部門の担当者である H さんが, インターネット上に D 社の開発機密が漏洩していることを確認した。
203
- D 社は重大なインシデントが発生したと判断し, ` [ B ] ` であることを考慮して, 社内規定に基いて各部門の長で構成された緊急対策本部を設置した 。
205
+ D 社は重大なインシデントが発生したと判断し, ` [ B ] ` であることを考慮して, 社内規定に基いて経営者及び各部門の長で構成された緊急対策本部を設置した 。
204
206
緊急対策本部は, 漏洩した情報を確認し, 漏洩の原因を調査することにした。
205
207
表1に, 同日のサービス D の接続ログ(一部抜粋)を以下に示す。
206
208
@@ -223,12 +225,12 @@ D 社は重大なインシデントが発生したと判断し, `[ B ]`
223
225
↑ 表1:同日のサービス D の接続ログ(一部抜粋)
224
226
注記:` aaa.bbb.ccc ` , ` xxx.yyy.zzz ` から始まる IP アドレスは, それぞれ国内のアドレス, 国外のアドレスを示す。
225
227
226
- 上記のログより, 緊急対策本部は G さんの認証トークンが漏洩していたと結論付け, 初動対応として G さんのトークンを含むすべてのトークンを失効させた。
227
- さらに, セッションの管理方法を是正するため, 開発部に対して, ログインをした ` [ C ] ` と, リクエストをした ` [ C ] ` が異なる場合は,
228
+ 上記のログより, 緊急対策本部は G さんの認証トークンが漏洩していたと結論付け, 初動対応として G さんのトークンを含むすべてのトークンを失効させた。
229
+ さらに, セッションの管理方法を是正するため, 開発部に対して, ログインをした ` [ C ] ` と, リクエストをした ` [ C ] ` が異なる場合は,
228
230
そのリクエストを拒否して認証トークンを失効させるよう指示した。
229
231
230
- この是正措置により, これ以上の情報漏洩を防げたことが確認され, 緊急対策本部は解散した。
231
- D 社は, 現在運用されているサービス D のセキュリティを見直すことにした。
232
+ この是正措置により, これ以上の情報漏洩を防げたことが確認され, 緊急対策本部は解散した。
233
+ D 社は, 現在運用されているサービス D のセキュリティを見直すことにした。
232
234
233
235
<!-- problems-->
234
236
0 commit comments