40
プロトコル脆弱性基礎 第一部 門林 雄基 (NAIST)

プロトコル脆弱性基礎 第一部 - crash.academyプロトコル脆弱性(再掲) Youki Kadobayashi / crash.academy (C) 2016 All rights reserved. 2016/04/11 4 通信プロトコルは、信頼できない通信

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • プロトコル脆弱性基礎第一部

    門林 雄基 (NAIST)

  • これまでの講義から

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    2

    サイバーセキュリティ

    サイバーリスク

    脅威 -脅威モデル

    脆弱性 -脆弱性の5分類

    リスク - リスク管理の方法論

    今回: プロトコル脆弱性について理解する どのような脅威と対応するのか

    なぜ、そのような脆弱性が生じるのか

  • 通信プロトコルの参照モデルOSI7階層モデル

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    3

    アプリケーション層

    プレゼンテーション層

    セッション層

    トランスポート層

    ネットワーク層

    データリンク層

    物理層

    IP

    ES (End System) ES (End System)アプリケーション層ゲートウェイ

    TCP

    IP

    TCP

    ファイアウォール等 アプリケーション層

    プレゼンテーション層

    セッション層

    トランスポート層

    ネットワーク層

    データリンク層

    物理層

  • プロトコル脆弱性 (再掲)

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    4

    通信プロトコルは、信頼できない通信相手と安全に通信できなければならない。

    これができない場合、プロトコル脆弱性につながる例:中間者攻撃 (Man in the middle)

    盗聴 (Eavesdropping)

    リプレイ攻撃 (Replay attacks)

    セッション乗っ取り (Session hijacks)

    サービス妨害攻撃 (Denial of service)

  • 中間者攻撃

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    5

    Alice は Bob に話しているつもりが、Charlie に

    Bob は Alice に話しているつもりが、Charlie に

    Charlie が Alice と Bob の間に割って入っている

    二人はそのことに気づいていない

    Alice Charlie Bob

  • 盗聴

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    6

    Alice と Bob の通信はすべて Charlie に筒抜け

    1) Alice と Bob は全く暗号を使っていない

    2) Alice と Bob が使っている暗号鍵が “secret”

    暗号化しているつもりが、すべて解読されている

    Alice Charlie Bob

  • リプレイ攻撃

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    7

    Alice が Bob に電話するときはいつも「私だけど」

    そこで Charlie も Bob に「私だけど」

    Bob は Charlie からの電話を Alice のものだと..

    いわゆる「オレオレ詐欺」

    Alice Charlie Bob

  • セッション乗っ取り

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    8

    Alice は Bob と話しているつもりが

    いつの間にか Charlie に取って代わられている

    Alice Charlie Bob

  • サービス妨害攻撃

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    9

    Charlie が、Bobの番号に何度も電話

    Bob は仕事に手がつかない

    Bob は、Alice からの電話もとれない

    Alice Charlie Bob

  • STRIDE 脅威モデル (再掲)

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    10

    STRIDE

    なりすまし (Spoofing identity)

    データ改ざん (Tampering with data)

    否認 (Repudiation)

    情報漏洩 (Information disclosure)

    サービス妨害 (Denial of service)

    権限昇格 (Elevation of privilege)

  • STRIDE 脅威モデルと OSI 7階層モデルにより

    プロトコル脆弱性を俯瞰する

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    11

    なりすまし 改ざん 否認 情報漏洩 妨害 権限昇格

    アプリケーション層

    セッション層

    トランスポート層

    ネットワーク層

    データリンク層

    以降では上記の表から、代表的なものをとりあげる

  • アプリケーション層におけるなりすまし攻撃:Kaminsky attack による DNSハイジャック

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    12

    www.goog.com? www.goog.com

    is at 1.2.3.4

    www.goog.com

    is at 5.6.7.8

    DNSプロトコルの設計上の欠陥: サーバからの応答が十分にランダムではないため、応答が予測可能であり、結果として偽造可能である

  • アプリケーション層におけるなりすまし:電子メール

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    13

    迷惑メール、フィッシング

  • アプリケーション層における情報漏洩:SQL インジェクション

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    14

    Webserver

    Middle-ware

    DBserver

    sqlExec(“SELECT * FROM USERS WHERE ID=‘%s’”, $user);

    JOE’ OR 1=1

    ID1 PASS1ID2 PASS2ID3 PASS3...

    SELECT * FROM USERS WHERE ID=‘JOE’ OR 1=1”

    攻撃者

  • セッション層における情報漏洩:クロスサイトスクリプティング

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    15

    JavaScript

    HTTP

    DO

    M

    GU

    I

    攻撃者

    被害者

    Webブラウザ

    4. 攻撃コード

    3. 攻撃コードをそのまま返してしまう

    1. 攻撃コード注入

    2. 罠ページをアクセス

    脆弱なWebサイト

  • トランスポート層におけるサービス妨害:TCP SYN flooding

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    16

    Listenerの資源を過度に消費し、応答できなくする

    同一番号に電話をかけ続けるようなもの

    Source: cisco Systems

  • トランスポート層における情報漏洩:ポートスキャン

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    17

    スキャンツールによるポートスキャン

    IPアドレスとTCPポートを範囲指定して、稼働しているサービスを調べる

  • ネットワーク層におけるなりすまし: DDoS

    2016/04/11

    18

    Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

  • データリンク層におけるなりすまし:MAC spoofing

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    19

    MAC アドレス:イーサーネットと Wi-Fi等に与えられた世界中で一意なアドレス

    e.g., 28:cf:e9:48:12:10

    簡単になりすましが可能

    Source: wikiHow.com

  • データリンク層における情報漏洩:中間者攻撃

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    20

    MAC spoofing 等のトリックで、二者間の通信を攻撃者に振り向けることができてしまう

    SV1 SV2

    ?

    PC1 PC2攻撃者

    SV3

  • まとめ

    2016/04/11Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    21

    プロトコル脆弱性の理解

    原因の理解

    脅威との対応の理解

    代表的なプロトコル脆弱性を俯瞰

    STRIDE 脅威モデルとOSI7階層モデルに沿って

    次回: プロトコル脆弱性の抑止手法について学ぶ

  • プロトコル脆弱性基礎第二部

    門林 雄基 (NAIST)

  • 前回の講義から

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    2

    プロトコル脆弱性の理解

    中間者攻撃、盗聴

    リプレイ攻撃、セッション乗っ取り、サービス妨害攻撃

    原因の理解

    脅威との対応の理解

    代表的なプロトコル脆弱性を俯瞰

    STRIDE 脅威モデルとOSI7階層モデルに沿って

    DDoS、 DNSハイジャック等

  • STRIDE 脅威モデルと OSI 7階層モデルにより

    プロトコル脆弱性を俯瞰する

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    3

    なりすまし 改ざん 否認 情報漏洩 妨害 権限昇格

    アプリケーション層Phishing,spam, …

    Man in the middle

    War driving Exploits

    セッション層CSRF XSS

    トランスポート層Port scan SYN

    flooding

    ネットワーク層DDoS Fragmentat

    ion attackRoute hijacks

    データリンク層MAC spoofing

    Wireless attack

    Man in the middle

    ネットワークでの技術的管理策はこれらの脅威を部分的に軽減可能。ただし配置が正しいことが大前提

  • 2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    4

    なりすまし 改ざん 否認 情報漏洩 妨害 権限昇格

    アプリケーション層Phishing,spam, …

    Man in the middle

    War driving Exploits

    セッション層CSRF XSS

    トランスポート層Port scan SYN

    flooding

    ネットワーク層DDoS Fragmentat

    ion attackRoute hijacks

    データリンク層MAC spoofing

    Wireless attack

    Man in the middle

    Web アプリケーション・ファイアウォール

    ファイアウォール、侵入防御システム (IPS)

    技術的管理策による対策

    UTM (unified threat management)

    IDS (intrusion detection system)

  • 様々なネットワークセキュリティ製品:ファイアウォール、IDSだけではない

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    5

    受動的・能動的計測のために

    フロー・サンプリング、アプリケーション識別

    ネットワークレベルでの資産管理

    脆弱性スキャナ、 IT資産のスキャン・監視製品

    ネットワークレベルでの制御

    ファイアウォール、 IDS 、WAF 、UTM 、ルータACL

    被害軽減

    プロキシ、ネットワーク分離、 IPS

  • プロトコル脆弱性に対する技術的管理策

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    6

    ネットワークの分離

    監視と異常検知

    アクセス制御

    レート制御

    認証による権限管理

    プロキシによる検査

    電子署名による改ざん抑止

    暗号化による情報漏洩防止

  • ネットワークの分離

    ファイアウォール、侵入防御システム等 目的次第では、ルータ、スイッチでも実現可能 サービス妨害、権限昇格、なりすましを抑止

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    7

    外部ネットワーク

    開発

    境界領域

    重要情報バックエンド

    FW

    営業

    経理

    人事

    IPS

    サービス系バックエンド

    IPS

  • 監視と異常検知例)フロー・サンプリング

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    8

    Source: FlowScan -- Network Traffic Flow Visualization and Reporting Tool, CAIDA

    急にDBサーバへの通信が増えたら?

    急にWebサーバとの通信が途絶えたら?

  • 脆弱性検査による脆弱プロトコル利用状況の把握

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    9

    Source: sample Nessus report

    なりすまし攻撃や中間者攻撃に悪用可能なプロトコルが組織内や、インターネットとの境界で使われていないか?

  • ルータ ACL (Access control list) による不要トラフィックの排除

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    10

    ルータ、スイッチにおいて、ある種のトラフィックはブロックできる

    ただし、パケットの送信元、宛先、プロトコル種別などで容易に識別可能なものに限られる

    Source: A10 Networks

  • レート制御、優先制御

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    11

    基幹系の通信に対して、他の端末が悪影響を与えることを抑止

    SV1 SV2

    PC1 PC2攻撃者

    SV3

  • 認証による権限管理EAP: Extensible Authentication Protocol

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    12

    EAP

    802.1x 802.11i PPP

    EAP-TLS EAP-TTLS PEAP ...

    無線、有線にかかわらず同じ方法で端末認証が可能

    セキュリティ要件にあわせて様々な認証方法を提供

    IEEE 802.1x, WPA,IEEE 802.11i など

    認証要求

    許可

    認証要求

    EAP over RADIUS(RFC2869)

    許可

    認証スイッチ

    認証サーバ(RADIUS)

    LANアクセス時に認証するので、端末とユーザの紐付けが可能に

    アクセスログ

    利用者

  • プロキシによる検査改ざん・なりすまし検知、DoS対策

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    13

    Webゲートウェイ、WAF

    スパム対策ソフト

    外部ネットワーク 内部ネットワークプロキシ、ゲートウェイ等

    送信者解析

    ヘッダ解析

    コンテンツ解析

    相関分析

    メール、Webアクセス等

    ルールベース、フィードバック

  • 電子署名による改ざん抑止IPsec AH (Authentication Header)

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    14

    通信内容の改ざんを防止する、認証ヘッダ(AH)を付加

    パケットが改ざんされた場合、認証ヘッダに記された一貫性検査値(ICV)が計算結果と一致せず、露呈

    IP TCP データ

    AH TCP データIP

    一貫性の保護

    元のパケット

    認証ヘッダを付加

  • 暗号化による情報漏洩防止IPsec ESP (Encapsulating Security Payload)

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    15

    リプレイ攻撃、なりすまし、改ざん、情報漏洩への対策としてペイロード暗号化を実施

    通信端末間で合意した暗号パラメータを用いて通信内容およびヘッダを暗号化

    IP TCP データ

    ESPヘッダ

    TCP データESP

    trailerESP

    AuthIP

    一貫性の保護

    暗号化

    元のパケット

    ペイロード暗号化を実施

    ペイロード

  • 通信の安全性を向上させるセキュリティプロトコル

    OSI7階層モデル セキュリティ技術(例) 提供される性質(例)

    アプリケーション層 SSH, Kerberos, PGP, DNSSEC

    機密性、一貫性、真正性、可用性、責任追跡性、信頼性

    プレゼンテーション層

    S/MIME, XMLdsig,

    XMLenc機密性、一貫性、真正性、責任追跡性

    セッション層 TLS 機密性、一貫性、真正性、責任追跡性、信頼性

    トランスポート層 TCP SYNCookie 可用性

    ネットワーク層 IPsec AH, ESP 機密性、一貫性、真正性

    データリンク層 IEEE 802.1x, EAP, WPA, WPA2

    機密性、一貫性、真正性

    物理層 電波遮蔽、ラック施錠 可用性、機密性、一貫性

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    16

  • プロトコル脆弱性に関する情報源

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    17

    プロトコル脆弱性は、ほとんどソフトウェア脆弱性データベース (CVE) に記載されない一方、プロトコルの実装に関する脆弱性は

    CVE に記載されるため注意が必要

    論文で発表されることも多い

    非公開の商業カンファレンスで発表されることもプロトコル脆弱性のデータベースは、各社でメンテナンスするしかない状況

    網羅的な知識がないと対策が難しい領域

  • プロトコル脆弱性に関する原論文

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    18

    Steven M. Bellovin, A Look Back at “Security

    Problems in the TCP/IP Protocol Suite”, ACSAC

    2004.

    原論文は 1989年

    この他にも、SSL/TLS, TCP, DNS, IPsec, BGPなど、インターネット、イントラネットを支える基幹プロトコルについて脆弱性が公表されている

  • まとめ

    2016/04/19Youki Kadobayashi / crash.academy (C) 2016 All rights reserved.

    19

    プロトコル脆弱性を俯瞰 セキュリティ製品がパッチワーク的に適用可能

    プロトコル脆弱性に対する技術的管理策 ネットワークの分離 監視と異常検知 アクセス制御 レート制御 認証による権限管理 プロキシによる検査 電子署名による改ざん抑止 暗号化による情報漏洩防止

    情報収集の難しさ