Comments
Description
Transcript
クラウド時代の システムセキュリティ
クラウド時代の システムセキュリティ 九州工業大学 光来健一 2 自己紹介 • 光来健一 • 九州工業大学大学院 情報工学研究院 情報創成工学研究系 准教授 • 専門分野 • オペレーティングシステム、システムソフトウェア、 セキュリティ、ディペンダビリティ • 研究テーマ • 仮想マシンを用いたセキュリティ向上、クラウドのセ キュリティ、スマートフォンのセキュリティ、... 3 クラウド • IaaSクラウド • 仮想マシン(VM)をネットワーク経由で提供 • ユーザはVM内にOSやサーバをインストール • SaaSベンダ、PaaSベンダもIaaSクラウドのユーザ • SaaSクラウド、PaaSクラウドを構築 SaaS VM ユーザ PaaS VM VM IaaSクラウド 4 仮想マシン(VM) • 計算機の資源を仮想化することによって作り出され た仮想的な計算機 • 資源とは? • CPU、メモリ • ディスク、ネットワーク • グラフィックスカード • キーボード、マウス • ... VM 仮想 CPU VM 仮想 メモリ 仮想デバイス CPU メモリ 仮想 CPU 仮想 メモリ 仮想デバイス デバイス 5 クラウドでVMを使うメリット • サーバマシンの資源を有効に活用 • 複数のVMで共有することでサーバマシンの平均使用 率を上げる • 従来のサーバマシンの平均使用率は10〜20% • 他のマシンにマイグレーションが可能 • メンテナンス時や負荷分散時にサービスを停止させず に移動させられる • サーバ構築が容易 • VMイメージから高速に構築できる 6 クラウドにおけるセキュリティ • 様々な立場でセキュリティを考える必要がある • サービス提供者(クラウドユーザ) • クラウド管理者 • エンドユーザ(サービスを使うユーザ) VM VM エンドユーザ サービス提供者 クラウド管理者 7 1) サービス提供者の視点 • クラウド管理者が信頼できるとは限らない • 悪意を持った管理者 • VMを管理する権限を悪用 • 誠実だが詮索好きな管理者 • 見られるデータは見てしまう • 攻撃者の侵入を許してしまう管理者 VM クラウドユーザ (サービス提供者) VM クラウド管理者 8 クラウドセキュリティに関する調査 • 内部犯行への懸念が常に上位に挙げられる • CSA Cloud Computing Top Threats in 2016 1. Data Breaches 2. Weak Identity, Credential and Access Management 3. Insecure APIs 4. System and Application Vulnerabilities 5. Account Hijacking 6. Malicious Insiders 7. Advanced Persistent Threats 8. Data Loss 9. Insufficient Due Diligence 10. Abuse and Nefarious Use of Cloud Services 11. Denial of Service 12. Shared Technology Issues 9 内部犯行に関する調査 (1/2) • セキュリティ・インシデントの28%は内部犯行 [PwC'14] • 76%は組織内部で処理 • 90%の組織で月に1回以上 の内部犯行 [Skyhigh'15] • 月に平均9回 法執行 8% 法的措 置 12% 民事訴 訟 3% 内部処 理 76% 10 内部犯行に関する調査 (2/2) • IT管理者の35%は社内の機密情報に無断アクセス したことがある [CyberArk'09] • 74%は監視システムをすり抜けられると回答 • ベネッセ、WikiLeaks、… 11 信頼できないクラウド管理者の例 • Google • サイト信頼性エンジニアがGoogle Voice等の情報を盗 み、ユーザのプライバシを侵害 (2010) 12 情報漏洩の防止の必要性 • ユーザ側はクラウドに情報が漏れないようにしたい • VM内では様々な機密情報を扱う可能性 • 個人情報、顧客の情報 • クラウド側も情報漏洩を防止する仕組みを提供して、 ユーザに安心感を与えたい • 一部の信頼できないクラウド管理者の攻撃を防ぐ 機密情報 信頼できない クラウド管理者 VM 13 2) クラウド管理者の視点 • VM内のシステムが十分にメンテナンスされていると は限らない • 脆弱性のあるVMが踏み台に使われる危険性 • ウィルス感染、乗っ取り • VMが悪用されているかもしれない • クレジットカードを不正利用して契約 攻撃者 VM 被害者 クラウドユーザ クラウド管理者 14 Amazon EC2からの攻撃 出典:JSOC侵入傾向分析レポート vol.14 (2008年〜2009年) 出典:日本IBM 東京SOC調べ (2010年1月〜2011年1月) 15 クラウドの不正利用の事例 • Amazon EC2の不正利用 • 迷惑メール送信、SSH総当たり攻撃、ポートスキャン • PlayStation Networkへの攻撃 (2011) • Shareネットワークへのサービス妨害攻撃 (2009) • Googleクラウドの不正利用 • マルウェアのダウンロード先として利用 (2015) クラウド 攻撃 16 セキュリティの強制の必要性 • クラウド側はVMにセキュリティを強制したい • ユーザ側もクラウドにセキュリティを担保してほしい • できればセキュリティのことを考えたくない • しかし、VM内でセキュリティ・ソフトウェアを動かして もらうのは難しい • 侵入されてしまうと無効化される恐れも セキュリティ ソフトウェア クラウド管理者 VM 17 3) エンドユーザの視点 • 重要なデータをクラウドに置くのは不安 • IDG Enterprise 2016 Cloud Computing Survey • 回答者の50%がセキュリティに不安を感じている • 機密情報・個人情報は手元の端末に保存 • ネットワークに接続できない時にも使えないと困る • 手元のモバイル端末にデータをキャッシュ エンドユーザ ? クラウド 18 スマートフォンの利用 • これまではデスクトップPCやノートPCでのクラウド利 用が主流だった PC 6000 • 近年、スマートフォンによる 5000 ストレージサービス 万人 クラウド利用が増えている • 利用台数はPCを超えている • 例:メール、SNS、 スマートフォン 4000 3000 2000 1000 0 出典:Nielsen (Mobile) NetView 19 盗難のリスク • 盗難にあうリスクが高い • ノートPCより小型軽量 • スマートフォンは盗難にあった時のリスクが高い • 従来の携帯電話より多くの情報を保持 • PDF/Word/Excelファイル、音楽、写真 • より重要な情報も格納 • 個人情報、顧客情報 20 アメリカでの調査 盗難 紛失 120万台→140万台 160万台→310万台 出典:2014 Annual State of the Net Survey 21 日本での統計・調査 • 携帯電話類の届け出件数(東京都, 2013年) • 遺失届け出件数 24万1946件 • 拾得届け出件数 14万3123件 遺失 拾得 30 • 10万件は見つかっていない 25 • Lookout社による調査(2014年) 経験 • 18〜24歳では約45% • そのうちの11%は出てこなかった 万件 • 23%がスマートフォンの紛失を 20 15 10 5 0 22 盗難対策の必要性 • 盗難にあったとしても機密情報や個人情報が漏洩し ないようにしたい • データをすべてクラウドに置くというソリューションは 避けたい • クラウドでの情報漏洩のリスクのほうが低いかもしれな いが... 23 本日の内容 • スマートフォンの盗難対策 • VMの監視 • クラウド管理者からの防御 • 最近の取り組みについても 24 スマートフォンの盗難対策 25 ロック画面による対策 • LinuxやWindowsのログイン 画面に相当 • iOS • パスコード(4桁・6桁・任意桁 の数字、英数字) • 指紋認証 • Android • PIN(4桁以上の数字) • パスワード(英数字) • パターン 26 ディスク暗号化による対策 • アプリのデータやファイルを暗号化 • iOS • デフォルトで暗号化 • Android • 4.4までは設定が必要 • 5.0からデフォルト ロック画面の パスワード ディスク 暗号化の鍵 暗号化ディスク 27 キルスイッチ • 盗まれたスマートフォンを 遠隔操作 • データを消去したり、端末を ロックしたりする • iPhoneを探す • Android Device Manager • インターネットに接続されない と遠隔操作できない 28 コールドブート攻撃の脅威 • メモリ上のデータを無理やり盗み見る攻撃 • 通常はログインできないと何も見られない • 攻撃手順 • メモリを冷却して取り外す(データ破壊を遅らせる) • 攻撃者の端末に取りつけて起動 • メモリ上のあらゆるデータを取得可能 メモリ 29 Android端末においても報告 • PCと違い、メモリは取り外せない • 端末ごと冷やす • バッテリを抜き差しするなどして強制リセット • USB経由で攻撃用システムをインストールして起動 30 コールドブート攻撃はますます容易に • 次世代不揮発性メモリが開発されている • 例:STT-MRAM, ReRAM, PCM • 電源を切っても内容が保持される • メモリを冷やさずとも、端末のリセット後に完全なデー タを取り出せる 31 メモリ上に何がある? • ディスクキャッシュ • ディスクの一部のデータがメモリ上に保持されている • 読み込み時にキャッシュにコピー • ディスクに高速にアクセスできるようにするため • SSD(550 MB/s) vs. メモリ(34 GB/s) → 60倍! アプリ ディスク ページ キャッシュ キャッシュ Android ディスク 32 ディスクキャッシュからの情報漏洩 • コールドブート攻撃によりメモリ上のディスクキャッ シュを盗み見られる • ディスク暗号化を行っていても一部のデータは漏洩 • ディスクキャッシュには復号後のデータが格納される コールド ブート攻撃 ディスク ページ キャッシュ キャッシュ 復号化 攻撃者 Android 暗号化ディスク 33 ディスクキャッシュの暗号化 • ディスクキャッシュを暗号化することでコールドブート 攻撃による情報漏洩を防ぐ • 暗号化ディスクから読み込んだデータを復号せずに ディスクキャッシュに格納 • アプリがアクセスした時に復号 コールド ブート攻撃 復号化 アプリ ? ディスク ページ キャッシュ キャッシュ Android 暗号化ディスク 34 従来 復号化 ディスク ページ キャッシュ キャッシュ アプリ 暗号化 Android 暗号化ディスク 提案手法 復号化 ディスク ページ キャッシュ キャッシュ アプリ 暗号化 Android 暗号化ディスク 35 メモリ上に何がある?(その2) • ディスク暗号化に使われる暗号鍵 • OSはこの鍵を使ってディスク上のデータを復号する • 鍵を盗まれるとディスク全体を復号されてしまう コールド ブート攻撃 Android 暗号化ディスク 36 暗号鍵の保護 • 暗号鍵をCPU内に保持する手法が開発されている • コールドブート攻撃を行われても鍵は盗まれない • 端末のリセット時にCPU内の鍵は自動的に消去される ディスク ページ キャッシュ キャッシュ CPU Android 暗号化ディスク 37 VMの監視 38 IDSオフロード • 侵入検知システム(IDS)をVMの外で動作させる • ホスト型IDSの場合はVM内のシステムを監視 • ネットワーク型IDSの場合はパケットを監視 • クラウドにとって魅力的な手法 • ユーザの協力なしにVMを監視できる VM IDS ディスク OS パケット 39 VMイントロスペクション(VMI) • VMの外側からVM内のシステムの情報を取得 • クラウド側からVMのメモリを参照 • 例:メモリ上にあるOSのデータを取得 • クラウド側からVMのディスクを参照 • ディスクの中のファイル等を取得 VM ディスク IDS メモリ 40 セマンティックギャップの存在 • IDSはVMのメモリやディスクを解析する必要 • VMの外から見えるのは生データだけ • IDSはデータ構造を知る必要がある • オフロードするIDSの開発は大変 • OSに合わせて専用IDSを開発する必要 • OSと同じ低いレベルで作成する必要 VM プロセス 構造体 IDS ? 06 17 50 80 a3 23 7c 93 59 17 92 c4 5b 49 c8 87 35 f1 63 75 60 c3 04 64 b0 61 70 f0 c8 05 41 オフロード実行環境の提供 • IDSを容易にオフロード実行するための環境 • セマンティックギャップを隠蔽 • IDSにシステムコールやファイルシステムなどのOSイン タフェースを提供 • 既存のIDSをそのまま動かせる VM 実行環境 IDS ディスク OSエミュレータ OS VMI パケット 42 システムコールのエミュレーション • VMIを用いてVM内のOSの情報を返す • いくつかのシステムコールだけで十分 • 例:OSのバージョン等の情報取得 • ほとんどはIDSを動作させるOSの機能を利用 VM 実行環境 IDS システムコール OSエミュレータ VMI OS 43 ファイルシステムのエミュレーション • VMIを用いてVM内で参照できるものとまったく同じ内 容のファイルを提供 • VMのディスクとメモリ上のディスクキャッシュを統合 • まだディスクに書き戻されていない変更も監視すること ができる VM 実行環境 IDS OSエミュレータ ディスク VMI ディスク キャッシュ 44 OSエミュレータの開発の困難さ • VMIを行いながらOSと同じ処理を行うコードを記述 • VMIを行う箇所が膨大 • 13,000箇所以上 • OSのバージョンやコンフィグのわずかな違いの影響を 大きく受ける • OSカーネルのデータ構造、シンボル情報が変わる OSのソースコード OSエミュレータ 45 OSエミュレータの半自動生成 • OSのソースコードからOSエミュレータを生成 • アスペクト指向プログラミングを利用 • OSのソースコードとは別にVMIを行うコードを記述 • OSデータのアクセス先をVMのメモリに変更 • OSの構造体、グローバル変数 VMI アスペクト コンフィグ OSエミュレータ OSのソースコード 46 メモリ監視のオーバヘッド大 • リアルタイム性が高いIDSではVMIの性能がシステ ム性能に大きく影響 • 例:きめ細かいパケットフィルタ • VM内の送信元の情報に基づいて通信をピンポイントに 遮断 VM VMI 攻撃 プロセス xFilter 送信 47 ネットワーク性能の大幅低下 • パケット送受信中にVMIでプロセスを探索すると性能 が大きく低下 • 100プロセスでもウェブ性能が 1/180 に xFilter 応答時間(ms) 1000 800 600 400 従来は1ミリ秒 200 0 0 250 500 750 プロセス数 1000 スループット(req/s) 従来 6 5 4 3 2 1 0 従来は966リクエスト/秒 0 250 500 750 プロセス数 1000 48 VMIの最適化 • VMの下で動作しているハイパーバイザでVMIを行う • ハイパーバイザはVMのメモリに直接アクセスできる • 通常はハイパーバイザの機能を使ったメモリマップが必 要 VM プロセス • 1つのデータアクセスに 5回のメモリマップが必要 • ページテーブル:4ページ • データ:1ページ VMI xFilter ハイパーバイザ 他にもパケットフィルタ専用に 様々な最適化を行った 49 最適化による性能向上 • ウェブ性能の低下は 7% • 500プロセスの場合 xFilter 1.4 1.2 1.0 0.8 0.6 0.4 0.2 0.0 スループット(req/s) 応答時間(ms) 従来 0 250 500 750 プロセス数 1000 1200 1000 800 600 400 200 0 0 250 500 750 プロセス数 1000 50 VMマイグレーション • クラウドは様々な目的でVMをホスト間で移動させる • 負荷分散 • 集約して電力削減 • オフロードされたIDSは一緒に移動されない • IDSをマイグレーションするのは難しい 移動元ホスト VM IDS 移動先ホスト 51 IDSオフロード対応マイグレーション • オフロードされたIDSとVMを同時にマイグレーション • IDSを専用VM(IDS VM)の中で動かす • IDS VMごとマイグレーション • 移動先でもIDSがVMを監視し続けられる 移動元ホスト IDS VM IDS VM 移動先ホスト 52 マイグレーション後の監視の継続 • メモリ監視の継続 • メモリマップの情報も送信し、再マップして復元 • ネットワーク監視の継続 • 仮想スイッチにおいてポートミラーリングを再設定 移動元ホスト IDS VM ディスク 移動先ホスト VM IDS ハイパーバイザ ハイパーバイザ 53 同時マイグレーション • IDS VMと監視対象VMの同期をとりながらマイグ レーション • IDS VMは監視対象VMが動いている間は監視を続け なければならない • 監視対象VMが停止するまでIDS VMを停止させない • IDS VMが再開されるまで監視対象VMを再開させない 開始 準備完了 停止 再開 IDS VM 移送 監視対象VM 開始 停止 準備完了 再開 54 クラウド管理者からの防御 55 VMからの情報漏洩 • クラウド管理者はVMから容易に機密情報を盗むこと ができる • VMI技術の負の側面 • VMがクラウド内にあるため • 盗難にあったスマートフォンと同じ状態 VM クラウド 管理者 ディスク メモリ パケット 56 何を信頼するか? • クラウドプロバイダ自体は信頼できるという仮定は広 く受け入れられている • ハイパーバイザは正しく管理されていると考えられる • IaaSクラウドの根幹 • 信頼できるとは限らないクラウド管理者がVMの管理 を行う VM 管理者 ハイパーバイザ 57 想定する仮想化システム • ハイパーバイザ型を想定 • ハードウェアの上で直接ハイパーバイザが動く • ホスト型では信頼すべき部分が大きくなる • ハードウェア+OS+ハイパーバイザ VM VM VM VM VM ハイパーバイザ ハイパーバイザ OS ハードウェア ハードウェア ハイパーバイザ型 ホスト型 VM 58 ハイパーバイザの正常動作の保証 • リモート・アテステーション • 起動時に第三者機関が完全性を検証 • ランタイムチェック • 実行時にハードウェア機構を利用して完全性を検証 • ハイパーバイザ自身による保護 管理者 不正アクセス ハイパーバイザ ハードウェア TPM 検証 サーバ 59 VMのメモリからの情報漏洩 • VM内でメモリ全体を暗号化するのは難しい • システムを正しく動作させられなくなる • メモリ上にある機密情報 • ディスクキャッシュ • ディスクの暗号化に用いられる鍵 VM ディスク キャッシュ 管理者 暗号鍵 60 VMのメモリ暗号化 • ハイパーバイザが2種類のメモリビューを提供 • VMに見せる通常ビュー • 管理者に見せる暗号ビュー • VMを正常に動作させながら、管理者への情報漏洩 を防げる 通常ビュー ? メモリ 管理者 暗号ビュー ハイパーバイザ VM 61 VMマイグレーションも可能 • 暗号ビューがあればVMをマイグレーションできる • 基本的にVMのメモリを転送するだけ • マイグレーション中に中身を参照・変更する必要があ るメモリ領域は暗号化しない • 共有メモリ、ページテーブル 移動元ホスト 暗号ビュー 移動先ホスト 62 VMのディスクからの情報漏洩 • メモリと違い、VM内で暗号化することが可能 • OSのディスク暗号化を利用 • 十分な対策とはいえない • OSカーネルは暗号化できない • クラウド管理者にカーネルを変更されて、ディスク暗号化 を無効化される恐れ • ユーザがディスクを暗号化するとは限らない OS カーネル 管理者 暗号化 ディスク 63 VMのディスク暗号化 • VMによるディスクアクセス時にハイパーバイザが データを暗号化・復号化 • ハイパーバイザがアクセスを横取りし、アクセス要求を 解析 • ユーザに意識させずに、ディスク全体を暗号化可能 VM ? 暗号化 ディスク 管理者 ハイパーバイザ 復号 64 ジレンマ • VMの機密情報を守りながらIDSオフロードを行うの は難しい • VMのメモリやディスクを暗号化すると... • オフロードしたIDSから監視できない • IDSから監視できるようにすると... • クラウド管理者への情報漏洩を防げない VM IDS ? 監視 ディスク 管理者 65 リモートVMI • 信頼できるプライベートクラウド等にIDSをオフロード • 透過的にハイパーバイザと通信してVMIを行う • クラウド管理者はVMIを行うことができない • ハイパーバイザだけがVMIを行える • ただし、クラウド側はIDSの実行を強制できない VM ? IDS ランタイム VMI 暗号通信 信頼できるプライベートクラウド 管理者 ハイパーバイザ 信頼できないパブリッククラウド 66 リモートホストからのVM監視 • メモリのリモート監視 • 要求されたメモリ領域を暗号化して返送 • ディスクのリモート監視 • 暗号化ディスクを復号しながらリモートアクセス • ネットワークのリモート監視 • 定期的にVMが送受信したパケットを転送 IDS ディスクデータ VM VMI ランタイム メモリ・パケット ハイパーバイザ 67 リモートVMIの性能 • 従来のVMIより性能が向上する場合も • chkrootkit: 60%高速化 • Tripwire: 13%高速化 • IDSを動作させたホストが仮想化されていないため • Snort: 検知が5msだけ遅延 chkrootkit 250 80 60 リモートVMI 40 従来のVMI 20 0 time (sec) time (sec) 100 200 150 100 50 0 Tripwire リモート VMI 従来の VMI 68 帯域外リモート管理での情報漏洩 • 仮想デバイスにアクセスすることでVMを管理 • VMの状態に依存せずに管理が行える • ネットワークやファイアウォールの設定ミスがあっても • 入出力情報を盗聴される恐れ • 入力したパスワード、画面に表示された機密情報 VNC クライアント 盗聴 VNC サーバ 仮想デバイス VM 69 リモート入出力の保護 • クライアントとハイパーバイザの間で入出力を暗号化 • VNCサーバと仮想デバイスは暗号化された入出力を 扱う • 管理者は暗号化前・復号化後のデータを盗聴できない VM VNC クライアント 入力の暗号化 出力の復号化 暗号化 入力の復号化 出力の暗号化 VNC サーバ 仮想デバイス ハイパーバイザ 70 最近の取り組み 71 従来手法の問題 • 管理者にとってハイパーバイザを攻撃するのは比較 的容易 • 豊富なインタフェースを悪用しやすい • 信頼できない管理者はシステム全体を管理できない • 信頼するハイパーバイザを管理させるとセキュリティが 担保できなくなる 管理者 ハイパーバイザ VM 72 ネストした仮想化の利用 (Nested Virtualization) • 従来の仮想化システム全体をVM内で動作させ、そ の外側にIDSをオフロード • 管理者は仮想化システムの外部を攻撃できない • 管理者は仮想化システム全体を管理できる 管理者 IDS ハイパーバイザ クラウドハイパーバイザ VM クラウド VM 73 ネストした仮想化におけるVMI • クラウドVMのメモリの中からデータを見つける • 監視対象VMのメモリ領域を特定し、その中にある目 的のデータを探す • パケットを取得する箇所によって検出できる攻撃が 変わる 監視対象 VM IDS パケット ハイパーバイザ クラウド VM VM 74 ネストした仮想化のオーバヘッド • ネストした仮想化により性能が低下 • 仮想化を二重に行うオーバヘッド • オーバヘッドを減らす手法が提案されている • Turtles Project [Azab et al.'10] • 一般的なワークロードを実行した時に6〜8% • TinyChecker [Tan et al.'12] • カーネルコンパイルを行った時に1.3% 75 より安全な帯域外リモート管理 • ネストした仮想化を用いて、仮想化システムの外側で 帯域外リモート管理を実現 • VM外部の仮想デバイスを用いて入出力処理を行う • リモート管理の入出力は仮想化システムに漏洩しない VNC クライアント VNC サーバ VM 管理者 仮想デバイス ハイパーバイザ クラウドハイパーバイザ 76 まとめ • スマートフォンの盗難対策 • コールドブート攻撃への対策が必要 • ディスクキャッシュの暗号化 • クラウドによるVMの監視 • VMのセキュリティ対策は信頼できない • VMIを用いたIDSオフロード • クラウド管理者からの防御 • クラウド管理者は信頼できるとは限らない • ハイパーバイザを信頼する手法・しない手法