前提
PHPカンファレンスに参加してきたので、
セッションを聞いた感想というかレポート記事になります。
その他の記事は ここにあります。
この記事はオニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法について記載します。
このセッションの概要
オニギリペイという架空のバーコード決済サービスのセキュリティ事故事例から、
安全なサービスの構築法をお話しいただきました。
オニギリペイで発生した試練
1.21%キャンペーンで景品表示法違反に引っかかった
2.ログインIDを発番したが、不正ログインが多発した
3.二段階認証を強制したのに不正ログインが止まらない
4.ヘルプデスクへのパスワード再発行で変更後のパスワードを電話口で伝えてしまった
5.開発ベンダーがパスワードを平文で設置していた
6.iOS版にAndroidの情報が含まれていたため、App storeから削除された
7.OSコマンドインジェクションで不正アクセスされた
8.WAFを導入した結果SSRF脆弱性が発生していた
※各詳細はスライドがありますので以下からご確認ください。
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法
各プロセスでの検討内容とインシデント例
プロセス | 検討内容 | インシデント例 |
---|---|---|
サービス企画 | 法律、各種ガイドライン、業界慣行への準拠 | 試練1 |
プラットフォーム設計 | プラットフォーム固有の問題 | 試練8 |
業務設計 | 業務上の脆弱性 | 試練4 |
機能仕様 | 機能上の脆弱性、デベロッパー規約 | 試練2、試練6 |
実装設計 | 実装設計上の脆弱性 | 試練3、試練5 |
プログラミング | プログラミング上の脆弱性 | 試練7 |
自分はWebアプリケーションの運用・保守をメインで行っているため、
サービス企画や業務設計の部分でのインシデント例はあまり考えたことがなかったです。
ただ、新規サービスに携わりたいと考えてもいるため、
上記のことも考慮する必要があるのだと気付かされました。
とはいえ、何を考えればいいのかがわからないのですが、
以下の書籍が参考になるとのことでした。
リスクアセスメントの方法
リスクアセスメントについてWikiより。
リスクアセスメント(英: Risk assessment)とは、リスク特定、リスク分析、リスク評価を網羅するプロセス全体を指す [1] [2] [3] [4] [5] 。
リスク特定 (risk identification) - リスクを発見し、認識し、記述するプロセス
リスク分析 (risk analysis) - リスクの特質を理解し、リスクレベルを決定するプロセス
リスク評価 (risk evaluation) - リスク(とその大きさ)が受容可能か(許容可能か)を決定するためにリスク分析の結果をリスク基準と比較するプロセス
徳丸さんいわく上記の方法論について以下の方法論があるとのこと。
1.ベースラインアプローチ
既存の標準や基準を元にベースライン(自組織の対策基準)を策定し、チェックしていく。
徳丸本を基準にするなど。
2.非形式的アプローチ
コンサルタントまたは組織や担当者の経験、判断により実施
3.詳細リスク分析
情報試算に対し「資産価値」「脅威」「脆弱性」「セキュリティ要件」を識別し、リスクを評価
4.組み合わせアプローチ
上記いずれか複数のアプローチを併用する。
また、その他の具体的な方法としては、
概要レベルの業務フローチャートを記載し、各箇所に「ツッコミ」を入れていく。
その「ツッコミ」をもとに業務レベルの脅威分析表としてまとめるなど。
発注がセキュリティを左右する
インシデント例でいう実装設計にあたりますが、
ベンダーを選定する際は発注がセキュリティを左右します。
RFP(提案仕様書)がシステムの大枠・概略予算となるため、RFPの段階ではセキュリティが明確になっている必要があります。
また、発注者が提案書の内容に関与できるのはRFPだけでもあります。
例えば脆弱性に関しては、
○○などと記載するのではなく、
別紙で一覧を設けるといった方法を取る必要がある。
分析を具体的にすすめるには?
IPAのIot開発におけるセキュリティ設計の手引がよくまとまっているので、
参考になる。
Iot開発におけるセキュリティ設計の手引
おわり
抽象論だけではなく、
具体的な方法論にまで落とし込まれていて大変わかりやすかったです。
改めてセキュリティ周りに関しては考慮すべきことが膨大すぎるなと思うのですが、
そう考えるのは自分だけでなく、
ある程度体系的にまとめられたものもあるので、
そういったものを参考に進めるのが一旦はいいのかなと感じました。
ベースラインだけですべてをまかなえるわけはないので、
自分でも知識をつけることは重要ですね。
徳丸本読み切れてないけど、
徳丸試験(Webセキュリティ試験)受けるのもありですね。