Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IPv6セキュリティ はじめの一歩

1,488 views

Published on

第12回名古屋情報セキュリティ勉強会(2017/03/19)資料

Published in: Internet
  • Hey guys! Who wants to chat with me? More photos with me here 👉 http://www.bit.ly/katekoxx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

IPv6セキュリティ はじめの一歩

  1. 1. IPv6セキュリティ はじめの一歩 徳島大学 大平健司 https://en.wikipedia.org/wiki/File:Aldrin_Apollo_11.jpg
  2. 2. 身も蓋もない結論 • 心構え –ほとんどの対策はIPv4と変わらない L2以下とL4以上は(本来)変わらない L3がIPv4であることを前提にした各種作り込みに なっていなければ そう、IPv4同様の対策ができる実装なら... –IPv6なんて使ってないはずという油断は敵 穴はいくらでも開けられる March 19, 2017 第12回名古屋情報セキュリティ勉強会 2
  3. 3. 本日の内容 • イントロダクション • IPv6アドレス体系 • IPv6アドレスと経路の設定 • IPv6とフィルタリング • 複数のIPv6アドレス • IPv6とIPv4の混在 • 落穂ひろい March 19, 2017 第12回名古屋情報セキュリティ勉強会 3
  4. 4. 避けたい状況 March 19, 2017 第12回名古屋情報セキュリティ勉強会 4 http://www.itu.int/en/ITU-D/Regional-Presence/AsiaPacific /Documents/s11-ipv6-securingtransitionmechanisms.pdf
  5. 5. IPv6とIPv4で違うところ • IPアドレス(32ビット→128ビット) –広大なアドレス空間を利用した使い捨て –自動設定方法 –スコープ(リンクローカルアドレス等) • マルチキャストへの依存度 –ブロードキャストは廃止 March 19, 2017 第12回名古屋情報セキュリティ勉強会 5
  6. 6. IPv6未導入のはずのリンクにて March 19, 2017 第12回名古屋情報セキュリティ勉強会 6
  7. 7. 見えていたもの • IPv6パケット –リンクローカルアドレス(fe80::...) –マルチキャストアドレス(ff02::...) • IPv6で話をしようとしている機器がいる –今のところは特に悪いことはなさそう –これらに偽設定情報を食わせると... March 19, 2017 第12回名古屋情報セキュリティ勉強会 7
  8. 8. IPv6で考えるべき「複数の**」 • IPバージョン • リンク • スコープ • アドレス • プレフィクス • ルータ(上流、ルータ広告(RA)) • DHCPv6サーバ/リレー March 19, 2017 第12回名古屋情報セキュリティ勉強会 8
  9. 9. IPv6アドレス体系 March 19, 2017 第12回名古屋情報セキュリティ勉強会 9
  10. 10. IPv6アドレス (1/2) March 19, 2017 第12回名古屋情報セキュリティ勉強会 10 アドレス範囲 用途 ::/128 Unspecified Address ::1/128 Loopback Address ::ffff:0:0/96 IPv4-mapped Address 64:ff9b::/96 IPv4-IPv6 Translation 100::/64 Discard-Only Address Block 2000::/3 Global Unicast 2001::/23 IETF Protocol Assignments 2001::/32 TEREDO 2001:1::1/128 Port Control Protocol Anycast 2001:1::2/128 Traversal Using Relays around NAT Anycast 2001:2::/48 Benchmarking [1] https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml [2] https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml
  11. 11. IPv6アドレス (2/2) March 19, 2017 第12回名古屋情報セキュリティ勉強会 11 アドレス範囲 用途 2001:3::/32 AMT 2001:4:112::/48 AS112-v6 2001:5::/32 EID Space for LISP (Managed by RIPE NCC) 2001:10::/28 Deprecated (previously ORCHID) 2001:20::/28 ORCHIDv2 2001:db8::/32 Documentation 2002::/16 6to4 2620:4f:8000::/48 Direct Delegation AS112 Service fc00::/7 Unique Local Unicast fe80::/10 Linked-Scoped Unicast ff00::/8 Multicast [1] https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml [2] https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml
  12. 12. IPv6アドレスとスコープ • スコープ一覧 (RFC 4291, 7346) • リンクローカルアドレスが多用される – <address>%<zone_id> の形で表現 – 「サイト出口」での追跡・制御は不可能 March 19, 2017 第12回名古屋情報セキュリティ勉強会 12 番号 名前 1 Interface-Local scope 2 Link-Local scope 3 Realm-Local scope 4 Admin-Local scope 5 Site-Local scope 8 Organization-Local scope e Global scope
  13. 13. IPv6マルチキャスト • IPv6アドレス –ff0x::/8 (xはスコープ) • MACアドレス –33-33-xx-xx-xx-xx (IPv6アドレスの下位32ビット) • 送信者制御 –L2機器でのClient separation • 受信者(Multicast Listener)制御 –L2機器でのMLD snooping March 19, 2017 第12回名古屋情報セキュリティ勉強会 13
  14. 14. 頻出マルチキャストアドレス • ff02::1 (All Node) • ff02::2 (All Router) • ff02::16 (MLDv2) • ff02::1:2 (All DHCPv6 server/relay) • ff02::1:3 (Link-local Multicast Name Resolution) • ff02::1:ffxx:xxxx (Solicited Node) • ff05::1:3 (All DHCPv6 server) March 19, 2017 第12回名古屋情報セキュリティ勉強会 14
  15. 15. IPv6アドレス空間と攻撃耐性 • IPアドレスの全数探索(brute force)には なかなかヒットしない – ルータに近隣探索させることになり、 結局負荷は上がる(DoS意図は成就する) – 標的と同一リンクに入ってしまえば マルチキャストパケット一発で終わり – RFC 7707にあるような手法で探索量を削減 • 攻撃者側もIPアドレスは多数ある (嘘もつき放題) – フィルタ粒度、エントリ数 フィルタの自動生成も怖い rate-limitくらいしか手はなさそうだが対象範囲の 適切な設定は難しそう March 19, 2017 第12回名古屋情報セキュリティ勉強会 15
  16. 16. IPv6アドレスと経路の設定 March 19, 2017 第12回名古屋情報セキュリティ勉強会 16
  17. 17. IPv6アドレス自動設定1 • ステートレス型 –ICMPv6 Router Advertisement (RFC 4862) プレフィクス64ビットとホスト自身が決めた 64ビットを結合 Privacy Extension (RFC 4941)によりアドレス数 が膨れ上がる (Valid lifetime) / (Preferred lifetime) 端末側からの新規コネクションには使わないが 待受アドレスとしては有効 Neighbor cacheも消費 March 19, 2017 第12回名古屋情報セキュリティ勉強会 17
  18. 18. RAメッセージの例1 (1/2) March 19, 2017 第12回名古屋情報セキュリティ勉強会 18
  19. 19. RAメッセージの例1 (2/2) March 19, 2017 第12回名古屋情報セキュリティ勉強会 19
  20. 20. RAにより設定されたアドレス March 19, 2017 第12回名古屋情報セキュリティ勉強会 20
  21. 21. RAへの攻撃 • 攻めどころ –誰でも(諸々偽装して)送信できる –高優先度での送信 –Lifetime=0を用いた正規RAの無効化 • 対策 –RA Guard (RFC 6105, 7113) L2機器での対策(物理ポートを限定) –SEND (RFC 3971) 暗号的生成アドレス、RSA署名 March 19, 2017 第12回名古屋情報セキュリティ勉強会 21
  22. 22. IPv6アドレス自動設定2 • ステートフル型 –DHCPv6 (RFC 3315) • アドレス割当の管理をしっかり行いたい ならDHCPv6で、と言いたいところだが… March 19, 2017 第12回名古屋情報セキュリティ勉強会 22
  23. 23. DHCPv6も色々問題が • プロトコル的な問題 –RAとの連携要(なくても動くかも※1だが) 経路設定はDHCPv6ではされない※2 RAベースのアドレス割当を避けるように設定要 –MACアドレスとの対応がわからない 払い出しアドレスと対応付けられるのはDUID • 実装上の問題 –AndroidとWindows –詳細後述 March 19, 2017 第12回名古屋情報セキュリティ勉強会 23 ※1: RFC 4862 §5.5.2 ※2: draft-ietf-mif-dhcpv6-route-option-05 (expired)
  24. 24. DHCPv6を展開したネットワーク例 March 19, 2017 第12回名古屋情報セキュリティ勉強会 24 240b:251:c080:16::/64 240b:251:c080:14::/64 PC Router & DHCPv6 Server Catalyst 3560 Router & DHCPv6 Relay Wireless AP Client PC (Windows 10)
  25. 25. RAベースのアドレス割当抑制 (1/2) • radvd.conf (Linux PCルータ) March 19, 2017 第12回名古屋情報セキュリティ勉強会 25 interface enp0s2 { AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on; prefix 240b:251:c080:14::/64 { AdvOnLink on; AdvAutonomous off; AdvRouterAddr off; AdvValidLifetime 3600; AdvPreferredLifetime 1800; }; };
  26. 26. RAベースのアドレス割当抑制 (2/2) • Cisco IOS March 19, 2017 第12回名古屋情報セキュリティ勉強会 26 interface GigabitEthernet0/10 no ip address ipv6 enable ipv6 nd ra suppress all interface Vlan6 no ip address ipv6 address 240B:251:C080:16::1/64 ipv6 enable ipv6 nd prefix default 3600 1800 no-autoconfig no-rtr-address ipv6 nd managed-config-flag ipv6 nd other-config-flag ipv6 nd ra lifetime 3600 ipv6 dhcp relay destination 240B:251:C080:14::1
  27. 27. RAメッセージの例2 (1/2) March 19, 2017 第12回名古屋情報セキュリティ勉強会 27
  28. 28. RAメッセージの例2 (2/2) March 19, 2017 第12回名古屋情報セキュリティ勉強会 28
  29. 29. DHCPv6によるアドレス割当 • dhcpd.conf (ISC DHCPd) March 19, 2017 第12回名古屋情報セキュリティ勉強会 29 subnet6 240b:251:c080:14::/64 { range6 240b:251:c080:14::1000:0 240b:251:c080:14::1000:20; } subnet6 240b:251:c080:16::/64 { range6 240b:251:c080:16::1000:0 240b:251:c080:16::1000:1000; option dhcp6.name-servers 2001:4860:4860::8888; }
  30. 30. DHCPv6メッセージの例 March 19, 2017 第12回名古屋情報セキュリティ勉強会 30
  31. 31. DHCPv6により設定されたアドレス March 19, 2017 第12回名古屋情報セキュリティ勉強会 31
  32. 32. IPv6アドレスとMACアドレスの紐付け • Neighbor cache –ip -6 neighbor –netsh interface ipv6 show neighbors –show ipv6 neighbors • DHCPサーバでの記録 –DHCP(v4)ではMACアドレスとIPv4アドレス –DHCPv6ではDUIDとIPv6アドレス • DUIDとMACアドレスの紐づけ –DHCP relay越しでは対応付けが難しい March 19, 2017 第12回名古屋情報セキュリティ勉強会 32
  33. 33. DHCPv6実装の問題 • Android –そもそもDHCPv6が実装されていない –http://www.techrepublic.com/article/android s-lack-of-dhcpv6-support-poses-security- and-ipv6-deployment-issues/ • Windows 10 –Renewに失敗する –手動 ipconfig /renew6 連打により暫定対処 –https://social.technet.microsoft.com/Forums /windows/en-US/4d167816-bc56-4003- bc97-232b9dbcc1ca/ March 19, 2017 第12回名古屋情報セキュリティ勉強会 33
  34. 34. DHCPv6への攻撃 • 攻めどころ –マルチキャストグループに誰でもJOIN可能 • 対策 –L2機器での物理ポート限定 –DHCPv6 Shield (RFC 7610)によるヘッダ チェック –Delayed Authentication(遅延認証)の導入 サーバとクライアントの間で秘密鍵を共有 Dibbler DHCPv6では実装されている模様 March 19, 2017 第12回名古屋情報セキュリティ勉強会 34
  35. 35. プレフィクス割当 (1/2) • エンドサイトがプロバイダから得る 標準的なアドレス空間は/56 –https://www.nic.ad.jp/doc/jpnic-01167.html –大学とかの規模であれば/48の場合も http://w4a.sinet.ad.jp/service/network/l3/ipv6/as signment/ • 1リンクは標準的に/64 • サイト内のアドレス(プレフィクス)割当 –集約しやすさを考慮に入れる必要有 March 19, 2017 第12回名古屋情報セキュリティ勉強会 35
  36. 36. プレフィクス割当 (2/2) • 動的割当プロトコル –DHCPv6-PD (RFC 3633) • 経路制御 –RIPng (RFC 2080) –OSPFv3 (RFC 5340) March 19, 2017 第12回名古屋情報セキュリティ勉強会 36
  37. 37. トンネルあれこれ • IP in IP、GRE • 6to4、6rd • Teredo • ISATAP • MPLS • その他独自方式のトンネル • 予期しない上流への抜け穴はいくらでも 作れる March 19, 2017 第12回名古屋情報セキュリティ勉強会 37
  38. 38. IPv6とフィルタリング March 19, 2017 第12回名古屋情報セキュリティ勉強会 38
  39. 39. 流入フィルタ • uRPF (unicast Reverse Path Forwarding) –RFC 3704 (BCP 84) March 19, 2017 第12回名古屋情報セキュリティ勉強会 39 240b:251:c080:16::/64 240b:251:c080:14::/64 Router Router Wireless AP Client PC × Src=240b:251:c080:16::xxxx Strict uRPFの例
  40. 40. ICMPv6 • IPv4ではICMPを原則止めてしまう運用が 多くなされている –IPv6でも同様の運用をしかねない • ICMPへの依存度・メッセージの種類は IPv4より増している –アドレス割当 –アドレス解決(近隣探索、ARP相当) –ルータ探索 –マルチキャストグループ管理(IGMP相当) March 19, 2017 第12回名古屋情報セキュリティ勉強会 40
  41. 41. 近隣探索 (RFC 4861) • ICMPv6 –Neighbor Solicitation (Type 135) 送信元:送信元IFに付されたアドレス 又は :: 宛先:ターゲットのアドレス 又は 対応する 要請ノードマルチキャストアドレス –Neighbor Advertisement (Type 136) 送信元:送信元IFに付されたアドレス 宛先:対応するNSの送信元アドレス NSの送信元が::の場合はff02::1へ March 19, 2017 第12回名古屋情報セキュリティ勉強会 41
  42. 42. ICMPv6メッセージのフィルタリング • オススメのやり方がRFC 4890に –ブリッジ型とルータ型の各FW –リンクローカルとグローバル –ip6tablesでの具体的な設定方法の付録付き March 19, 2017 第12回名古屋情報セキュリティ勉強会 42
  43. 43. 複数のIPv6アドレス March 19, 2017 第12回名古屋情報セキュリティ勉強会 43
  44. 44. 複数のIPv6アドレス • 個々の通信において送信元・宛先として どれを使うか決めなければならない • getaddrinfo()に介入 –送信元アドレス選択 –宛先アドレス選択 –標準的な選択基準:RFC 6724 March 19, 2017 第12回名古屋情報セキュリティ勉強会 44
  45. 45. 送信元アドレス選択 • 所与の宛先(D)に対する送信元(S)を一つ算出 1. S=DであるSを優先 2. 適切なスコープであるSを優先 3. 廃止されたアドレスであるSを回避 4. ホームアドレスであるSを優先 5. 送出インタフェースに付されたSを優先 5. 次ホップから広告されたプレフィクスのSを優先 6. SとDのラベルが一致するSを優先 7. 一時アドレスであるSを優先 8. SとDのプレフィクス一致が最長のSを優先 March 19, 2017 第12回名古屋情報セキュリティ勉強会 45
  46. 46. 宛先アドレス選択 • 宛先リストの並べ替え 1. 到達不能なDやDに対応するSが未定義なもの を回避 2. SとDのスコープが一致するものを優先 3. Sが廃止されたアドレスとなるものを回避 4. Sがホームアドレスとなるものを優先 5. SとDのラベルが一致するものを優先 6. 優先度の高いDを優先 7. ネイティブトランスポートのものを優先 8. スコープの小さいDを優先 9. SとDのプレフィクス一致が最長のものを優先 10. 元の順番を変えない March 19, 2017 第12回名古屋情報セキュリティ勉強会 46
  47. 47. ラベルと優先度 • 設定変更可能 –Linux: /etc/gai.conf – Windows: netsh interface ipv6 show prefixpolicies March 19, 2017 第12回名古屋情報セキュリティ勉強会 47 ループバック その他 IPv4射影アドレス 6to4 TEREDO ユニークローカル サイトローカル(廃止) 6bone(廃止) IPv4互換アドレス(廃止)
  48. 48. IPv6とIPv4の混在 March 19, 2017 第12回名古屋情報セキュリティ勉強会 48
  49. 49. Happy Eyeballs • 目的:IPv4フォールバックの時間を短く • 規約:RFC 6555 – IPv4のSYNとIPv6のSYNを両方投げる 少しだけIPv6を優先する  各SYNは150-250ms間隔(推奨値) IPv6での接続成否を一定期間記憶 A/AAAAが複数ある場合、下記優先順 1. 最優先のIPv6アドレス 2. IPv4アドレス 3. その他のIPアドレス – 先にSYN+ACKが返ってきた方を使う – アプリケーションでの実装がシンプル OSでの実装の場合、RFC6724と要調整 March 19, 2017 第12回名古屋情報セキュリティ勉強会 49
  50. 50. 落穂ひろい March 19, 2017 第12回名古屋情報セキュリティ勉強会 50
  51. 51. 攻撃(にも使える)ツール • THC-IPV6 –https://www.thc.org/thc-ipv6/ –http://tools.kali.org/information- gathering/thc-ipv6 • SI6 Networks’ IPv6 Toolkit –https://www.si6networks.com/tools/ipv6tool kit/ • scapy –http://www.idsv6.de/Downloads/IPv6Packet CreationWithScapy.pdf March 19, 2017 第12回名古屋情報セキュリティ勉強会 51
  52. 52. おわりに • IPv6を気に掛けよう –各ホストではIPv6対応したファイアウォー ルソフトを入れる IPv6関連の設定を再度確認する –デフォルトそのままの運用は大穴かも 全通しや全落としになっている可能性 • さっさとnative IPv6を導入してしまうの が実はセキュア化の早道かもしれない –リンクを乗取られる前に先手を打って整備 March 19, 2017 第12回名古屋情報セキュリティ勉強会 52
  53. 53. 参考文献 • Philip Smith, ``IPv6 Security,’’ ITU/APNIC/MICT IPv6 Security Workshop, May 2016. • 志田智ら, ``マスタリングTCP/IP IPv6編 第2版,’’ オーム社, 2013. • Scott Hogg, et al., ``IPv6 Security,’’ Cisco Press, 2009. March 19, 2017 第12回名古屋情報セキュリティ勉強会 53

×