脅威分析
(仕様と設計のセキュリティ分析)
2016 年 2 ⽉ 4 ⽇
Application Security Briefing & Discussion 2016
〜 セキュリティ・バイ・デザインはIoT時代を救うか
ソニーデジタルネットワークアプリケーションズ 松並 勝
1
Copyright 2016 Sony Digital Network Applications, Inc.
⾒つけた脆弱性をすべて修正すれば安⼼できるでしょうか。
もっと直接的に、守るべきものがどのような脅威からどのよう
に守られているかを確認したほうが安⼼できるのではないで
しょうか。
⾃⼰紹介
•
松並 勝
Chief Security Technology Officer
Sony Digital Network Applications, Inc.
•
踏み台攻撃の被害者
2000年秋にレンタルサーバーが踏み台攻撃
に遭い
、
セキュリティ技術を学ぶために
2001年1⽉からセキュリティ業界へ
•
セキュアなソフト開発
セキュアコーディング
、
セキュリティ設計分
析といった
、
ソフトウェアを最初からセキュ
アにつくる⽅法論の普及啓発活動に取り組む
。
主な成果物に以下のようなものがある
2002年 IPA セキュア・プログラミング講座
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/2012年 JSSEC Androidアプリのセキュア
設計・セキュアコーディングガイド
https://www.jssec.org/report/securecoding.htmlあまり他では語られることのない、 現場で静的解析ツールを効率よく運 ⽤するノウハウを講演で公開。
ソースコード静的解析ツールのよい使い方
ソニーデジタルネットワークアプリケーションズ株式会社 Chief Security Technology Officer 松並 勝 <[email protected]>
C opyrigh t 2 0 1 4 S on y D igital N etw ork A pplication s, In c. 1
上流でやれば ちゃんと安全を確保できる
C opyrigh t 2 0 1 4 S on y D igital N etw ork A pplication s, In c. 1 3
企画 設計 コーディング 検証 出 荷 ハッピーゾーン 危険ゾーン (セキュア) 安全 (脆弱) 危険 グレー 安全かどうか? 危険かどうか? 安全かどうかは分からない JAXA/IPA クリティカルソフトウェア ワークショップ2015にて 「設計」のセキュリティ分析⼿法を発表し、 最優秀賞を受賞。 12thWOCS2 1/21/2015 ソニーの電子お薬手帳システムに 適用したセキュリティ設計分析手法 ソニーデジタルネットワークアプリケーションズ C h ief S ecu rity Tech n olog y O fficer 松並 勝 Copyright © 2015 Sony Digital Network Applications, Inc. All Rights Reserved. 1 Androidのセキュアコーディング ノウハウを編纂したガイドブックを ⽇本スマートフォンセキュリティ協会から無償公開。 この活動が国際セキュリティ資格団体ISC2から表彰。
「セキュアなソフト開発」の普及啓発いろいろ
Copyright 2016 Sony Digital Network Applications, Inc.
3
•
脆弱性診断
(疑似攻撃)仕様
設計
(コーディング)実装
検証
•
ソースコード
静的解析
•
セキュアコーディング
•
脅威分析
(仕様と設計のセキュリティ分析)設計⽂書
ソース
コード
バイナリ
実⾏
分析対象
セキュリティ施策
開発⼯程
かれこれ
10
年以上も
脅威分析
に取り組んでいます
Copyright 2016 Sony Digital Network Applications, Inc.
5
脅威分析
脅威分析の位置づけと役割
•
従来施策だけでは不⼗分
、
脅威分析がそれを補う
•
「説明責任」を果たすには
、
脅威分析が必須
脆弱性診断
(疑似攻撃)
仕様
設計
(コーディング)実装
検証
ソースコード
静的解析
脅威分析
(仕様・設計のセキュリティ分析)
設計⽂書
ソース
コード
バイナリ
実⾏
分析
対象
施策
開発
⼯程
•
脆弱なコーディングを
発⾒
•
脆弱な仕様や設計を発⾒
•
システムが安全であるこ
とを説明
従来施策
従来施策(コード解析や疑似攻撃)で⾒つかる問題
コード脆弱性(セキュリティの考慮が不⾜した
コーディング)に関するものが多い
•
クロスサイトスクリプティング脆弱性
•
バッファオーバーフロー脆弱性
•
SQLインジェクション脆弱性
•
整数オーバーフロー脆弱性
•
ディレクトリトラバーサル脆弱性
•
ハードコードパスワードの脆弱性
•
アクセス制御設定不備の脆弱性
•
SSL証明書検証不備の脆弱性
、
等
従来施策では⾒つからない/⾒つけにくい問題の例
このような問題は仕様や設計をセキュリティ観点
で分析しなければ
、
なかなか発⾒できない
問題
被害の例
必要な対策の例
のぞき⾒(ショ
ルダーハック)
きわめてプライベートな情報をスマホ画⾯に
表⽰するとき、第三者がユーザーの背後から
スマホ画⾯を覗き⾒てしまう
のぞき⾒されると不味い情報を表
⽰する直前にUI上で「のぞき⾒注
意」と表⽰する
偽アプリ
ユーザーがアプリマーケットからダウンロー
ドしたアプリが実は偽アプリで、サーバーア
クセスするための認証情報を盗まれてしまう
サービス提供企業の正規のHTTPS
Webサイトにて、正規アプリの
URLをQRコードで配布する
中古市場
サーバーアクセスのための認証情報をスマホ
内に保存したまま、ユーザーがスマホを転売
してしまい、第三者がユーザーに成りすまし
てサーバーログインしてあれやこれやしてし
まう
アプリに設定消去の機能を設け、
マニュアル説明⽂でその機能を説
明し、さらにサーバー側ではログ
イン可能なスマホを1つに制限する
製造⼯程
機器の製造⼯程で機器に書き込む機器固有の
鍵が漏えいしたり、バックドアを仕掛けられ
たりしてしまう
製造⼯程もセキュリティ観点で分
析して設計する
設計をしっかり分析しなければ発⾒できない問題の例
スマホから温⽔を発射指⽰できる便器システム
Copyright 2016 Sony Digital Network Applications, Inc.
9
Bluetooth
ペアリング暗号通信
スマホ連携
温⽔の出る便器
スマホ
温⽔便器
専⽤アプリ
発射命令!
発射機能
温⽔
Bluetoothのセキュリティ
機能で保護されている
設計をしっかり分析しなければ発⾒できない問題の例
実はBluetoothのペアリングはOS層で処理されて
いるので・・・
スマホ連携
温⽔の出る便器
スマホ
温⽔便器
専⽤アプリ
Bluetooth
ペアリング暗号通信
OS層
OS層
マルウェア
温⽔
発射機能
発射命令!発射命令!
発射命令!発射命令!
発射命令!発射命令!
Bluetoothのセキュリティで守られていると思考停⽌してはダメ。
そのセキュリティを破る隙がないかよく考える必要がある。
脅威分析の真価はセキュリティ対策の
説明⼒
にある
Copyright 2016 Sony Digital Network Applications, Inc.
11
脅威分析の位置づけと役割
C opyrigh t 2 0 1 6 S on y D igital N etw ork A pplication s, In c.
7
• 従来施策だけでは不十分、脅威分析がそれを補う
• 「説明責任」を果たすには、脅威分析が必須
脆弱性診断
(疑似攻撃)仕様
設計
実装
検証
(コーディング)ソースコード
静的解析
脅威分析
(仕様・設計のセキュリティ分析)設計文書
ソース
コード
実行
バイナリ
分析
対象
施策
開発
工程
•
脆弱なコーディングを
発⾒
•
脆弱な仕様や設計を発⾒
•
システムが安全であるこ
とを説明
従来施策
脅威分析とは
、
何をすることなのか?
起きてほしくない事象の明確化
そのシステム上で⽣じる事象のう
ち
、
誰かが「被害」が⽣じたと考
える事象(脅威事象
、
⼜は脅威)
を明らかにする
資産 脅威事象 ○○情報 ├○○X情報 ├○○Y情報 └○○Z情報 【第三者】が【○○情報】を【読取】する 【第三者】が【○○情報】を【書込】する 【患者】が【他の患者の○○情報】を【読取】する 【患者】が【自分の○○情報】を【書込】する 【患者】が【他の患者の○○情報】を【書込】する 【薬剤師】が【お薬手帳カードがないとき】【○○ 情報】を【読取】する 【薬剤師】が【○○情報】を【書込】する △△情報 ├△△X情報 ├△△Y情報 └△△Z情報 【第三者】が【△△情報】を【読取】する 【第三者】が【△△情報】を【書込】する 【患者】が【他の患者の△△情報】を【読取】する 【患者】が【自分の△△情報】を【書込】する 【患者】が【他の患者の△△情報】を【書込】する 【薬剤師】が・・・ □□情報 ├□□X情報 ├□□Y情報 └□□Z情報 【第三者】が【□□情報】を【読取】する 【第三者】が【□□情報】を【書込】する 【患者】が【自分の□□情報】を【書込】する 【患者】が・・・脅威事象が⽣じる条件の明確化
→ 攻撃を失敗させる防御設計
脅威事象の顕在化条件(攻撃成功
条件)を明らかにして
、
顕在化条
件をことごとく防御設計で潰して
いくことで
、
攻撃を失敗させる
防御設計 成功条件 攻撃⼿段 脅威事象脅威事象 攻撃1 条件1 防御設計1 条件2 防御設計2 条件3 防御設計3 攻撃2 条件4 防御設計4 条件5 防御設計5
この2つの明確化によってシステムが安全であることを説明
脅威分析の派⽣形の⼀つ
セキュリティ設計分析
セキュリティ要求の明確化
システムがセキュアであるとはど
ういうことかを明らかにすること
システムが要求を満たすこ
との証明・説明
システムの仕様・設計・実装・運
⽤がどのようになっているかとい
う根拠によって
、
要求が満たされ
ていることを説明すること
Copyright 2016 Sony Digital Network Applications, Inc.
13
資産 セキュリティ要件 ○○情報 ├○○X情報 ├○○Y情報 └○○Z情報 【第三者】は【○○情報】を【R EA D 】できない 【第三者】は【○○情報】を【W R IT E】できない 【患者】は【他人の○○情報】を【R EA D 】できない 【患者】は【他人の○○情報】を【W R IT E】できない 【薬剤師】は【お薬手帳カードが提供されないとき】【○○情報】を【R EA D 】できない 【薬剤師】は【○○情報】を【W R IT E】できない △△情報 【第三者】は【△△情報】を【R EA D 】できない 【第三者】は【△△情報】を【W R IT E】できない 【患者】は【他人の△△情報】を【R EA D 】できない 【患者】は【他人の△△情報】を【W R IT E】できない 【薬剤師】は【非自局患者の△△情報】を【R EA D 】できない 【薬剤師】は【非自局患者の△△情報】を【W R IT E】できない □□情報 ├□□X情報 ├□□Y情報 └□□Z情報 【第三者】は【□□情報】を【R EA D 】できない 【第三者】は【□□情報】を【W R IT E】できない 【患者】は【自分の□□情報】を【W R IT E】できない 【患者】は【他人の□□情報】を【R EA D 】できない 【患者】は【他人の□□情報】を【W R IT E】できない 【薬剤師】は【カードが提供されないときは】【他局発行の自局患者の□□情報】を【R EA D 】できない 【薬剤師】は【他局発行の自局患者の□□情報】を【W R IT E】できない 【薬剤師】は【他局発行の非自局患者の□□情報】を【R EA D 】できない 【薬剤師】は【他局発行の非自局患者の□□情報】を【W R IT E】できない ▽▽情報 【第三者】は【▽▽情報】を【R EA D 】できない 【第三者】は【▽▽情報】を【W R IT E】できない 【患者】は【他人の▽▽情報】を【R EA D 】できない 【患者】は【▽▽情報】を【W R IT E】できない 【ソニー】は【▽▽情報】を【R EA D 】できない 【ソニー】は【▽▽情報】を【W R IT E】できない
(ソニーDNA⽅式)
脅威分析の位置づけと役割
•
従来施策だけでは不⼗分
、
脅威分析がそれを補う
•
「説明責任」を果たすには
、
脅威分析が必須
脆弱性診断
(疑似攻撃)
仕様
設計
(コーディング)実装
検証
ソースコード
静的解析
脅威分析
(セキュリティ設計分析)
設計⽂書
ソース
コード
バイナリ
実⾏
分析
対象
施策
開発
⼯程
•
脆弱なコーディングを
発⾒
•
脆弱な仕様や設計を発⾒
•
システムが安全であるこ
とを説明
従来施策
脅威分析の⼤切さがわかりましたか?
Copyright 2016 Sony Digital Network Applications, Inc.
15
脅威分析技術の構成要素
脅威分析技術にはさまざまな流派があるが
、
⼤体
この3つの要素で構成されている
脅威の
識別
リスク
評価
対策の
実施
対策の頑張り度合いを決定する すべての脅威事象に⼿厚く対策を実 施するのは現実的ではないので、脅 威事象ごとにリスクの⼤きさを評価 したうえで、対策レベルを決定する リスク算定 ・インパクト×発⽣可能性 ・いろいろ 対策レベル ・やる/やらない ・技術防御/運⽤施策/検知・・・ ・いろいろマイクロソフト 「脅威モデル Threat Modeling」
脅威分析技術の中ではもっとも有名なもの
Panasonic
倉内さんの脅威分析技術もこれを発展させたもの
STRIDE
MicrosoftのTreat Modelingが広めた脅威識別法
DFDを描き
、
箱
および
⽮印
にSTRIDE脅威分類を
当てはめて脅威事象を洗い出す
脅威の
識別
リスク
評価
対策の
実施
S
poofing
なりすまし
T
ampering
改ざん
R
epudiation
否認
I
nformation
Disclosure
情報漏えい
D
enial-of-Service
サービス妨害
E
levation of
Privilege
権限の昇格
STRIDE脅威分類
DFD(データフロー図)
STRIDE
図を描けば
、
半⾃動で脅威の識別ができる
Copyright 2016 Sony Digital Network Applications, Inc.
19
脅威の
識別
リスク
評価
対策の
実施
①図を描くと
②脅威⼀覧が⾃動⽣成されて
③⼀つを選んで⾒てみると
Web Clientは攻撃者かもよ
h"ps://www.microso?.com/en-us/download/details.aspx?id=49168
DREAD → Bug Bar
各々の脅威について重要度を算定
MSはかつてDREADを運⽤していたが
、
DREADは
客観性を⽋くとのことで
、
最近はBug Barを運⽤
脅威の
識別
リスク
評価
対策の
実施
緊急 ユーザーの操作なしでコード
実⾏の悪⽤が⾏われる・・・
重要 ユーザーデータの機密性、完
全性または可⽤性が侵害され
る可能性がある・・・
警告 認証要件、または、⾮デフォ
ルト設定に対してのみ適⽤性
があるなど・・・
注意 影響は・・・包括的に緩和さ
れる・・・
Bug Bar(深刻度評価システム)
D
amage potential 想定される被害
の⼤きさ
R
eproducibility
攻撃成功の再現
しやすさ
E
xploitability
攻撃の簡単さ
A
ffected users
影響ユーザー規
模
D
iscoverability
脆弱性の発⾒さ
れやすさ
DREAD High(3), Med(2), Low(1)
Mitigation
それぞれの脅威について
、
個別のセキュリティ対
策を実施する
STRIDEに対応した標準的なセキュリティ対策が
指針として⽤意されている
Copyright 2016 Sony Digital Network Applications, Inc.
21
脅威の
ソニーDNA「セキュリティ設計分析」
脅威分析技術の他の例としてご紹介
「資産」を⾒つける
システムの設計資料を確認し
、
資産を洗い出す
•
設計資料上の情報(データ)と機能(処理)の
単語を⾒つける
•
下表の⾃⼰質問でYESがあればその単語は資産
例)[情報] 処⽅箋情報、調剤薬情報、患者アレルギー情報 …
[機能] 薬局内端末⽤API、モバイルアプリ⽤API …
Copyright 2015 Sony Digital Network Applications, Inc.
23
単語の種類
資産を発⾒する⾃⼰質問
情報(データ) その情報は誰かに勝⼿に読取・受信されたら困る情報か?
その情報は利⽤者が確実に読取・受信できないと困る情報か?
その情報は誰かに勝⼿に作成・変更・削除・送信されたら困る情報か?
その情報は利⽤者が確実に作成・変更・削除・送信できないと困る情報か?
機能(処理)
その機能は誰かに勝⼿にそのプログラムロジックを読取されたら困る機能か?
その機能は誰かに勝⼿にそのプログラムロジックを変更されたら困る機能か?
その機能は誰かに勝⼿に実⾏されたら困る機能か?
その機能は利⽤者が確実に実⾏できないと困る機能か?
脅威の
識別
リスク
評価
対策の
実施
「⼈」を⾒つける
システムの設計資料を確認し
、
⼈を洗い出す
•
システムにアクセスし得る⼈物を⾒つける
•
ステークホルダに加え
、
その気になればシステム
にアクセスできる⼈物も含む
人
人の説明(権限の違いなど)
第三者
•
お薬⼿帳カードを持っていない⼈
•
薬局内端末に物理的に接触可能
患者
•
お薬⼿帳カードを持っている⼈
薬剤師
•
電⼦お薬⼿帳システムを導⼊している薬局に属する薬剤師
•
薬局内タブレットを使⽤し、薬局内端末上の電⼦お薬⼿帳
Webアプリを使⽤する(ID/PWDを知っている)
ソニー
•
お薬⼿帳システムを開発・運⽤・管理する限られたソニー
の関係者
ス
テ
ー
ク
ホ
ル
ダ
脅威の
識別
リスク
評価
対策の
実施
⼈ × 資産 × RWX
⼈と資産をスロット【】に当てはめることで
、
脅
威事象をパターンで導出
•
DFDが不要なので開発の初期段階でも実施可能
Copyright 2016 Sony Digital Network Applications, Inc.
25
脅威の
識別
リスク
評価
対策の
実施
R
EAD
W
RITE
E
X
ECUTE
悪⽤系
脅威事象
【攻撃者】が【情報資産】
を読取/受信する
【攻撃者】が【情報資産】
を書込/送信する
妨害系
脅威事象
【被害者】が【情報資産】
を【読取/受信】できない
【被害者】が【情報資産】
を書込/送信できない
R
EAD
W
RITE
E
X
ECUTE
悪⽤系
脅威事象
【攻撃者】が【機能資産】
のプログラムロジックを読
取/受信する
【攻撃者】が【機能資産】
のプログラムロジックを書
込/送信する
【攻撃者】が【機能資産】
を実⾏する
妨害系
脅威事象
【被害者】が【機能資産】
を実⾏できない
情報(データ)の資産に対して
機能(処理)の資産に対して
セキュリティ要求の導出
資産の⼀覧
資産 脅威事象 セキュリティ要求 ○○情報 ├○○X情報 ├○○Y情報 └○○Z情報 【第三者】が【○○情報】を【読取】する 【第三者】が【○○情報】を【書込】する 【患者】が【他の患者の○○情報】を【読取】する 【患者】が【自分の○○情報】を【書込】する 【患者】が【他の患者の○○情報】を【書込】する 【薬剤師】が【お薬手帳カードがないとき】【○○ 情報】を【読取】する 【薬剤師】が【○○情報】を【書込】する 【第三者】は【○○情報】を【読取】できない 【第三者】は【○○情報】を【書込】できない 【患者】は【他の患者の○○情報】を【読取】できない 【患者】は【自分の○○情報】を【書込】できない 【患者】は【他の患者の○○情報】を【書込】できない 【薬剤師】は【お薬手帳カードがないとき】【○○情報】 を【読取】できない 【薬剤師】は【○○情報】を【書込】できない資産を脅かす脅威事象の⼀覧
システムが満たすべきセキュリティ要求
…
…
…
説明を割愛するが
、
以下のような⼿順で実施
•
脅威事象 → 想定される具体的な被害内容を記述
•
被害内容 → 深刻度を評価
•
(
脅威事象
,
深刻度
)
→ 適度なセキュリティ要求を設定
例:妨害については「妨害⾏為が⽌むと機能回復するのであれば
、
その
妨害被害は受容する」といった調整を⼊れたり
、
被害事象の発⽣監
脅威の
識別
リスク
評価
対策の
実施
セキュリティ要求 【第三者】は【○○情報】を【読取】できない 【第三者】は【○○情報】を【書込】できない 【患者】は【他の患者の○○情報】を【読取】できない 【患者】は【自分の○○情報】を【書込】できない 【患者】は【他の患者の○○情報】を【書込】できない 【薬剤師】は【お薬手帳カードがないとき】【○○情報】 を【読取】できない 【薬剤師】は【○○情報】を【書込】できない
セキュリティ分析グラフ
要求を満たせる仕様・設計になっているかを調べ
、
要求を満たせることを⽰すグラフを作図
•
実際には要求を満たせない設計が⾒つかるので
、
設計を修正してセキュリティを確保
•
すべての要求を満たせるまで作図&設計修正
Copyright 2016 Sony Digital Network Applications, Inc.
27
脅威の
識別
リスク
評価
対策の
実施
この部分を作図
セキュリティ分析グラフ
守るべきものがどのような脅威からどのように守られているか
を説明する資料になる
グラフ展開のパターン化
分解パターンにより
、
グラフ展開が⽐較的容易に
•
グラフの展開に専⾨知識が必要で難しかった
脅威の
識別
リスク
評価
対策の
実施
→ 【情報資産】が存在し得るすべての場所で
∧
展開
• すべての防御が成立したとき親ノードがT R U E となるので∧
【攻撃者】は【情報資産】を読取/受信できない
分解パターンの例
分解パターンを知識DB化
分解パターンを充実させることで
、
セキュリティ
の知識がない⼈でも脅威分析ができるようになる
Copyright 2016 Sony Digital Network Applications, Inc.
29
脅威の
さまざまな脅威分析技術
他にもさまざまなアプローチの脅威分析技術がある
h"ps://docs.google.com/viewer?
a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxzaWdzdGF3ZWJ8Z3g6MTY5ZmRmN
TU1NWZkNDNlNQ
脅威分析研究会 第1回会合資料より
Copyright 2016 Sony Digital Network Applications, Inc.
31
脅威分析研究会 SIG★STA
脅威分析技術の理解を
深め
、
普及啓発を図る
オ ー プ ン な コ ミ ュ ニ
ティで誰でも参加可能
この三⼈で運営
https://sites.google.com/site/sigstaweb/
情セ⼤
⼤久保 隆夫
⽥⼝ 研治
産総研
ソニーDNA
松並 勝
第2回会合 4⽉15⽇@横浜 ぜひご参加を!
⽇程:
2016
年
4
⽉
15
⽇午後
会場: 情報セキュリティ⼤学院⼤学
神奈川県横浜市神奈川区鶴屋町2-14-1
https://www.iisec.ac.jp/access/
備考: 懇親会も予定
プログラム(調整中):
•
MS
Threat
Modeling
本勉強会
•
実務でセキュリティ設計を(ほぼ)ひとりで格闘してみた
•
セキュリティ特性
CIA
、脅威分類
STRIDE
、要するにどういうこと?
•
OASIS
の脅威モデル
w/ STIX
•
⾞両開発における脅威分析プロセスの提案
Copyright 2016 Sony Digital Network Applications, Inc.