Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Security Analysis of Specification / design in SONY’s way #appsecapac2014

OWASP Japan
March 20, 2014
570

Security Analysis of Specification / design in SONY’s way #appsecapac2014

OWASP Japan

March 20, 2014
Tweet

Transcript

  1. ややマニア向け? 仕様・設計のセキュリティ 分析 ソニーデジタルネットワークアプリケーションズ株式会社 松 並 勝 <[email protected]> Copyright 2014

    Sony Digital Network Applications, Inc. 1 開発工程とセキュリティ施策 Copyright 2014 Sony Digital Network Applications, Inc. 2 脆弱性診断 仕様 検証 設計 実装 (コーディング) ソースコード 静的解析 仕様・設計の セキュリティ分析 設計文書 ソース コード 実行 バイナリ 対象 施策 開発 工程
  2. やっている人をあまり知らない Copyright 2014 Sony Digital Network Applications, Inc. 3 仕様

    設計 設計文書 ソース コード 実行 バイナリ 検証 実装 (コーディング) 仕様・設計の セキュリティ分析 誰かと仕様・設計の セキュリティ分析について 熱く語り合いたい! 仕様・設計のセキュリティ分析 Copyright 2014 Sony Digital Network Applications, Inc. 4 【挙手】 やっている人 どなたか いませんか?
  3. 仕様・設計のセキュリティ分析 Copyright 2014 Sony Digital Network Applications, Inc. 5 議論のネタとして、わたし

    がやっている分析方法をお 見せしたいと思います。 オモシロイ!と感じた人は のちほど名刺交換&議論さ せてください! 【分析対象】 ソニーの電子お薬手帳システム Copyright 2014 Sony Digital Network Applications, Inc. 6 ただいま川崎市で実証実験中! http://www.harmo.biz/
  4. 個人情報はサーバーに置かず、ユーザーが 所有するカードから都度取り出して利用。 万一サーバーから情報漏えいが起きても、 個人情報は直接漏えいしない。 とある薬局 もともとセキュリティに 気を配ったアーキテクチャ 薬局端末 サーバー タブレット

    薬歴情報 薬歴情報 個人情報 FeliCa R/W お薬手帳 カード (FeliCa) 個人情報 患者 薬剤師 他の薬局 ・・・ 仕様・設計のセキュリティ分析も! Copyright 2014 Sony Digital Network Applications, Inc. 8 この開発PJでは、アーキテクチャだけで満 足せず、一通りのセキュリティ施策を実施。 脆弱性診断 仕様 検証 設計 実装 (コーディング) ソースコード 静的解析 仕様・設計の セキュリティ分析 設計文書 ソース コード 実行 バイナリ 対象 施策 開発 工程
  5. 仕様・設計のセキュリティ分析 Copyright 2014 Sony Digital Network Applications, Inc. 9 分析方法

    2つの工程 Copyright 2014 Sony Digital Network Applications, Inc. 10 1. セキュリティ要件を 洗い出す 2. セキュリティ要件を 満たすかどうか検証
  6. セキュリティ要件の定番と言えば! Copyright 2014 Sony Digital Network Applications, Inc. 11 https://www.owasp.org/index.php/File:Web_application_security_requirements.pdf

    実際の現場でうまく使えるように、 よくよく考えてバランスよく作られている しかしマニア向きではない セキュリティ要件 Copyright 2014 Sony Digital Network Applications, Inc. 12 資産がどのように保護 されるべきなのか を記述したもの
  7. セキュリティ要件 Copyright 2014 Sony Digital Network Applications, Inc. 13 資産がどういう状態で

    あれば保護されている と考えるのか? を記述したもの セキュリティ要件の記述 Copyright 2014 Sony Digital Network Applications, Inc. 14 次のような形式の文(命題)を列挙 【誰それ】が、 【どんな資産】に対して、 【どんな条件の下で】← 必要なときだけ 【R/W/X/…】な操作を、 【できる/できない】 システムにあるすべての資産について記述
  8. セキュリティ要件の例 Copyright 2014 Sony Digital Network Applications, Inc. 15 資産

    セキュリティ要件 ◦◦情報 ├◦◦X情報 ├◦◦Y情報 └◦◦Z情報 【第三者】は【◦◦情報】を【参照∨作成∨変更∨削除】【できない】 【患者】は【自分の◦◦情報】を【参照∨作成∨変更∨削除】【できる】 【患者】は【他人の◦◦情報】を【参照∨作成∨変更∨削除】【できない】 【薬剤師】は【お薬手帳カードが提供されたとき】【◦◦情報】を【参照】【できる】 【薬剤師】は【お薬手帳カードが提供されないとき】【◦◦情報】を【参照】【できない】 【薬剤師】は【◦◦情報】を【作成∨変更∨削除】【できない】 【ソニー】は【◦◦情報】を【参照∨作成∨変更∨削除】【できる】 △△情報 【第三者】は【△△情報】を【参照∨作成∨変更∨削除】【できない】 【患者】は【自分の△△情報】を【参照∨作成∨変更∨削除】【できる】 【患者】は【他人の△△情報】を【参照∨作成∨変更∨削除】【できない】 【薬剤師】は【自局患者の△△情報】を【参照∨作成∨変更∨削除】【できる】 【薬剤師】は【非自局患者の△△情報】を【参照∨作成∨変更∨削除】【できない】 【ソニー】は【△△情報】を【参照∨作成∨変更∨削除】【できる】 □□情報 ├□□X情報 ├□□Y情報 └□□Z情報 【第三者】は【□□情報】を【参照∨作成∨変更∨削除】【できない】 【患者】は【自分の□□情報】を【参照】【できる】 【患者】は【自分の□□情報】を【作成∨変更∨削除】【できない】 【患者】は【他人の□□情報】を【参照∨作成∨変更∨削除】【できない】 【薬剤師】は【カードが提供されたときは】【自局発行の□□情報】を【参照】【できる】 【薬剤師】は【自局発行の□□情報】を【作成∨変更∨削除】【できる】 【薬剤師】は【カードが提供されたときは】【他局発行の自局患者の□□情報】を【参照】【できる】 【薬剤師】は【カードが提供されないときは】【他局発行の自局患者の□□情報】を【参照】【できない】 【薬剤師】は【他局発行の自局患者の□□情報】を【作成∨変更∨削除】【できない】 【薬剤師】は【他局発行の非自局患者の□□情報】を【参照∨作成∨変更・削除】【できない】 【ソニー】は【□□情報】を【参照∨作成∨変更∨削除】【できる】 それぞれが 命題で表現 されている。 すべての命題が 常に成立すれば、 このシステムは セキュアである と解釈。 これは、実際のシステム構成から独立した、 業務観点のセキュリティ要件。最上位要件。 発表用に加工済み セキュリティ要件の例 Copyright 2014 Sony Digital Network Applications, Inc. 16 システム観点のセキュリティ要件。システ ム構成要素にもセキュリティ要件がある。 セキュリティ要件 サーバー証明書 【第三者∨患者∨薬剤師】は【お薬手帳サーバーのサーバー証明書】を【作成∨変更∨削除】【できない】 【ソニー】は【お薬手帳サーバーのサーバー証明書】を【変更】【できる】 プライベート鍵 【第三者∨患者∨薬剤師】は【お薬手帳サーバーのプライベート鍵】を【参照∨作成∨変更∨削除】【できない】 クライアント認証鍵 【第三者∨患者∨薬剤師】は【お薬手帳サーバーのクライアント認証鍵】を【作成∨変更∨削除】【できない】 クライアント署名鍵 【第三者∨患者∨薬剤師】は【クライアント署名鍵】を【参照∨作成∨変更∨削除】【できない】 ◦◦API 【第三者∨患者】は【◦◦API】を【利用】【できない】 SSHサーバー 【第三者∨患者∨薬剤師】は【お薬手帳サーバーのSSHサーバー】を【利用】【できない】 【ソニー】は【お薬手帳サーバーのSSHサーバー】を【利用】【できる】 OS認証情報 【第三者∨患者∨薬剤師】は【お薬手帳サーバーのOS認証情報】を【参照∨作成∨変更∨削除】【できない】 【ソニー】は【お薬手帳サーバーのOS認証情報】を【参照∨作成∨変更∨削除】【できる】 クライアント証明書 【第三者∨患者∨薬剤師】は【薬局内端末のクライアント証明書】を【作成∨変更∨削除】【できない】 プライベート鍵 【第三者∨患者∨薬剤師】は【薬局内端末のプライベート鍵】を【参照∨作成∨変更∨削除】【できない】 Webアプリ 【第三者∨患者】は【薬局内端末のWebアプリ】を【利用】【できない】 【薬剤師】は【薬局内端末のWebアプリ】を【利用】【できる】 OS認証情報 【第三者∨患者∨薬剤師】は【薬局内端末のOS認証情報】を【参照∨作成∨変更∨削除】【できない】 タブレット Webアプリ認証情報 【第三者∨患者∨ソニー】は【薬局内端末のWebアプリ認証情報】を【参照∨作成∨変更∨削除】【できない】 【薬剤師】は【薬局内端末のWebアプリ認証情報】を【参照∨作成∨変更∨削除】【できる】 資産 お薬手帳サーバー 薬局内端末 発表用に加工済み
  9. セキュリティ要件の例 Copyright 2014 Sony Digital Network Applications, Inc. 17 今回のシステムでは、

    約60件の要件となった。 実際には単純組み合わ せだと500件を超える が、うまいこと工夫し て約60件まで抑えた。 業務観点の セキュリティ要件 システム観点の セキュリティ要件 セキュリティ要件 Copyright 2014 Sony Digital Network Applications, Inc. 18 どうやって洗い出すか?
  10. セキュリティ要件の洗い出し手順 Copyright 2014 Sony Digital Network Applications, Inc. 19 下図は大まかな流れ。実際には行ったり来

    たりしながら、各情報をUpdateしていく。 設計資料 開発者 ヒアリング メモ・ログ DFD データフロー図 資産 アクター セキュリティ要件 • セキュリティ要件の 抽出を目指して、そ の手がかりとなる情 報を収集 • アクター、資産、 DFDは要件の抽出 に役立つ中間情報 入力 出力 中間情報 メモ・ログ Copyright 2014 Sony Digital Network Applications, Inc. 20 ひとまず分かった情報、気になった情報は すべて記録。思考のログでもある。 分析対象 発見箇所 分析対象からコピペ(あとで検索できるように) 関連情報タイプ 関連情報の内容 ID 抜粋資料(システム全体の概要).pptx p.1 お薬手帳データ 情報資産 あるユーザーに関する薬歴情報。プライバシー情報。 ステークホルダー 患者 セキュリティ要件 患者は自分のお薬手帳データをRできるべき セキュリティ要件 患者は自分のお薬手帳データをWできてはならない セキュリティ要件 患者は他人のお薬手帳データをRWできてはならない ステークホルダー 薬剤師 セキュリティ要件 薬剤師は自分の薬局の患者のお薬手帳データをRWできるべき セキュリティ要件 薬剤師は他の薬局の患者のお薬手帳データをRWできてはならない 要確認 薬剤師は患者の同席なし(お薬手帳カードなし)で患者のお薬手帳データをRWで きてよいのか?→できない(FeliCa内の◦◦情報がなければならない、お薬手帳 サーバーのWeb APIの仕様) 8/5 MTGにて:参照できてはならない。そのために患者がカードを持参しない と、つまりFeliCa内の◦◦情報が無いと薬剤師であっても参照系のAPIがデータを 返さないようになっている。 ただしカードを忘れた患者への救済のために、変更、削除は許すことになってい る。 ステークホルダー 第三者 セキュリティ要件 第三者はお薬手帳データをRWできてはならない 個人別設定 情報資産 モバイルアプリの設定情報? 要確認 モバイルアプリの設定情報とはアプリの設定情報のことでしょうか? セキュリティ要件 患者以外が設定を参照・変更できてはならない 分析対象において、セキュリティ視点で気になった箇所の記録 リスク関連情報の記録 発表用に加工済み
  11. アクター Copyright 2014 Sony Digital Network Applications, Inc. 21 アクターはシステムに関与できる人・モノ。

    アクターはシステムの正当な利用者(ステーク ホルダー)だけでなく攻撃者も含む。 名称 説明 第三者 • お薬手帳カードを持っていない人 • 薬局内端末に物理的に接触可能 患者 • お薬手帳カードを持っている人 薬剤師 • 電子お薬手帳システムを導入している薬局に属する薬剤師 • 薬局内タブレットを使用し、薬局内端末上の電子お薬手帳 Webアプリを使用する(ID/PWDを知っている) ソニー • お薬手帳システムを開発・運用・管理する限られたソニーの 関係者 発表用に加工済み ソニー 薬剤師 患者 第三者 第三者(はアクセスできる) 患者 薬剤師 ソニー 患者 第三者 システム俯瞰図 ルータ インターネット お薬手帳サーバー • 全薬局の全患者の情報 • HTTPS証明書、鍵 薬局内端末 レセコン • 全患者の個人情報 • 共有フォルダ... • HTTPS証明書、鍵 タブレット • 認証情報 • 一時的な患者情報 • 薬局内端末用API • モバイルアプリ用API • Webサーバー • タブレット用Webアプリ • Webサーバー お薬手帳カード FeliCa R/W • 患者の個人情報 モバイルアプリ • 認証情報 • 一時的な患者情報 管理用PC • SSH鍵 WiFiルータ WiFi 有線 薬局内イントラ(有線) DFD(データフロー図) Copyright 2014 Sony Digital Network Applications, Inc. 22 システム俯瞰図をつくり情報資産と機能資産、 アクターを配置。情報資産はフローも作図。 ソニー 薬剤師 患者 第三者 第三者(はアクセスできる) 患者 薬剤師 ソニー 患者 第三者 □□情報 ルータ インターネット お薬手帳サーバー 薬局内端末 レセコン タブレット お薬手帳カード FeliCa R/W モバイルアプリ 管理用PC WiFiルータ WiFi 有線 薬局内イントラ(有線) 3 4 6 1 2 5 ソニー 薬剤師 患者 第三者 第三者(はアクセスできる) 患者 薬剤師 ソニー 患者 第三者 △△情報 ルータ インターネット お薬手帳サーバー 薬局内端末 レセコン タブレット お薬手帳カード FeliCa R/W モバイルアプリ 管理用PC WiFiルータ WiFi 有線 薬局内イントラ(有線) 処方箋 (紙) 1 2 3 4 5 6 7 8 9 ソニー 薬剤師 患者 第三者 第三者(はアクセスできる) 患者 薬剤師 ソニー 患者 第三者 ◦◦情報 ルータ インターネット お薬手帳サーバー 薬局内端末 レセコン タブレット お薬手帳カード FeliCa R/W モバイルアプリ 管理用PC WiFiルータ WiFi 有線 薬局内イントラ(有線) 5 4 6 7 2 3 1 発表用に加工済み
  12. セキュリティ要件を命題表現 Copyright 2014 Sony Digital Network Applications, Inc. 23 組合せ(アクター,

    資産, 資産の操作)につ いて、できるべき?できちゃだめ?を検討 ステークホルダ(開発者など)に 「この要件で合っているか?」と確認・調整 資産 セキュリティ要件 ◦◦情報 ├◦◦X情報 ├◦◦Y情報 └◦◦Z情報 【第三者】は【◦◦情報】を【参照∨作成∨変更∨削除】【できない】 【患者】は【自分の◦◦情報】を【参照∨作成∨変更∨削除】【できる】 【患者】は【他人の◦◦情報】を【参照∨作成∨変更∨削除】【できない】 【薬剤師】は【お薬手帳カードが提供されたとき】【◦◦情報】を【参照】【できる】 【薬剤師】は【お薬手帳カードが提供されないとき】【◦◦情報】を【参照】【できない】 【薬剤師】は【◦◦情報】を【作成∨変更∨削除】【できない】 【ソニー】は【◦◦情報】を【参照∨作成∨変更∨削除】【できる】 △△情報 【第三者】は【△△情報】を【参照∨作成∨変更∨削除】【できない】 【患者】は【自分の△△情報】を【参照∨作成∨変更∨削除】【できる】 【患者】は【他人の△△情報】を【参照∨作成∨変更∨削除】【できない】 【薬剤師】は【自局患者の△△情報】を【参照∨作成∨変更∨削除】【できる】 【薬剤師】は【非自局患者の△△情報】を【参照∨作成∨変更∨削除】【できない】 【ソニー】は【△△情報】を【参照∨作成∨変更∨削除】【できる】 □□情報 ├□□X情報 ├□□Y情報 └□□Z情報 【第三者】は【□□情報】を【参照∨作成∨変更∨削除】【できない】 【患者】は【自分の□□情報】を【参照】【できる】 【患者】は【自分の□□情報】を【作成∨変更∨削除】【できない】 【患者】は【他人の□□情報】を【参照∨作成∨変更∨削除】【できない】 【薬剤師】は【カードが提供されたときは】【自局発行の□□情報】を【参照】【できる】 【薬剤師】は【自局発行の□□情報】を【作成∨変更∨削除】【できる】 【薬剤師】は【カードが提供されたときは】【他局発行の自局患者の□□情報】を【参照】【できる】 【薬剤師】は【カードが提供されないときは】【他局発行の自局患者の□□情報】を【参照】【できない】 【薬剤師】は【他局発行の自局患者の□□情報】を【作成∨変更∨削除】【できない】 【薬剤師】は【他局発行の非自局患者の□□情報】を【参照∨作成∨変更・削除】【できない】 【ソニー】は【□□情報】を【参照∨作成∨変更∨削除】【できる】 発表用に加工済み 2つの工程 Copyright 2014 Sony Digital Network Applications, Inc. 24 1. セキュリティ要件を 洗い出す 2. セキュリティ要件を 満たすかどうか検証
  13. 要件を満たすかどうか検証 Copyright 2014 Sony Digital Network Applications, Inc. 25 【目的】

    1. システムが要件を満たすように作られて いるか証拠を集め、見える化する 2. 満たせていない場合は、その原因を明ら かにして、対策を考える基礎情報とする 3. 対策を施したら、それを踏まえて1.へ 以上を要件ごとに実施。全要件について! どうやってやるか? Copyright 2014 Sony Digital Network Applications, Inc. 26 各要件について、命題を(意味を保ちなが ら)分解。 システムの仕様・設計に合わせて分解。 終端ノードはシステムの仕様・設計・実装 に関する事実の記述。 AはBである AND CはDである … EはFである …
  14. 命題の分解例 Copyright 2014 Sony Digital Network Applications, Inc. 27 とある情報資産(データ)の存在しうる場

    所全てにおいて、命題を分解 ソニー 薬剤師 患者 第三者 第三者(はアクセスできる) 患者 薬剤師 ソニー 患者 第三者 ルータ インターネット お薬手帳サーバー 薬局内端末 レセコン タブレット FeliCa R/W モバイルアプリ 管理用PC WiFiルータ WiFi 有線 薬局内イントラ(有線) 処方箋 (紙) 1 2 3 4 5 6 7 8 9 命題の分解例 Copyright 2014 Sony Digital Network Applications, Inc. 28 とある情報資産(データ)の存在しうる場 所全てにおいて、命題を分解 第三者は◦◦をRead できてはならない AND WiFi通信で第三者は◦◦をReadできない TRUE WPA-PSK設定している 専用端末で第三者は◦◦をReadできな い TRUE 物理的に隔離 構内有線LANで第三者は◦◦をReadでき ない GWで第三者は◦◦をReadできない インターネットで第三者は◦◦をReadで きない AND 通信はすべてHTTPS サーバーの証明書は自己 署名証明書じゃない クライアントは証明書エ ラーを無視していない センターサーバーで第三者は◦◦をRead できない などなど … … …
  15. 実際にはXLSで階層構造を記述 Copyright 2014 Sony Digital Network Applications, Inc. 29 発表用に加工済み

    ある要件の階層構造を図にすると Copyright 2014 Sony Digital Network Applications, Inc. 30 発表用に加工済み
  16. 部分木で命題を分解する方法を少々解説 Copyright 2014 Sony Digital Network Applications, Inc. 31 セキュリティ要件を、その意味を保ったまま、

    システムの設計情報を使って、別の式で表現していく。 システム構成の知識を使って、 左の命題を右の命題で表現 HTTPS活用における 既知の注意点の知識を使って、 左の命題を右の命題群で表現 設計情報を使って、 左の命題の論理値を確定 発表用に加工済み 命題を分解して事実確認していく 過程が、セキュリティ対策を促す Copyright 2014 Sony Digital Network Applications, Inc. 32 プライベート鍵の不適切な管理が見つかっ た様子(架空です念のため) この後、934の命題をTRUEにするため、 下位命題群へ分解し、TRUEになるための必要条件を洗い出し、 それらを設計に反映していく。 発表用に加工済み
  17. Copyright 2014 Sony Digital Network Applications, Inc. 35 ところで Web以外の分野でもセキュリティの

    重要性が叫ばれる時代になりました Copyright 2014 Sony Digital Network Applications, Inc. 36 http://it.impressbm.co.jp/e/2014/02/28/5605 http://techtarget.itmedia.co.jp/tt/news/1403/18/news05.html
  18. こんな車に乗りたいですか? こんな医療機器で手術受けたいですか? Copyright 2014 Sony Digital Network Applications, Inc. 37

    脆弱性診断 仕様 検証 設計 実装 (コーディング) ソースコード 静的解析 設計文書 ソース コード 実行 バイナリ え? 対象 施策 開発 工程 まとめ Copyright 2014 Sony Digital Network Applications, Inc. 38 • マニア向け?な仕様・設計のセキュリティ分析 方法をご紹介しました • この方法もまだまだ課題がたくさんあります • ほかにも、いろんな分析方法があります • みなさんと議論を深めて、よりよい分析ができ るようになりたいと思っています オモシロイ!と思った方、 ぜひ名刺交換&議論をさせてください。