Yuji Ukai, Senior Software Engineer
This presentation is the property of its rightful owner.
Sponsored Links
1 / 38

Yuji Ukai, Senior Software Engineer Ryan Permeh, Founding Software Engineer PowerPoint PPT Presentation


  • 131 Views
  • Uploaded on
  • Presentation posted in: General

Yuji Ukai, Senior Software Engineer Ryan Permeh, Founding Software Engineer Ryoji Kanai, Software Engineer. PacSec 2006 Conference The fourth annual PacSec conference November 27-30 2006, at the Aoyama Diamond Hall in Tokyo, Japan. Retina. Development Core Team. Network Security Scanner.

Download Presentation

Yuji Ukai, Senior Software Engineer Ryan Permeh, Founding Software Engineer

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Yuji ukai senior software engineer ryan permeh founding software engineer

Yuji Ukai, Senior Software Engineer

Ryan Permeh, Founding Software Engineer

Ryoji Kanai, Software Engineer

PacSec 2006 Conference

The fourth annual PacSec conference

November 27-30 2006, at the Aoyama Diamond Hall in Tokyo, Japan.

Retina

Development

Core Team

Network Security Scanner


Yuji ukai senior software engineer ryan permeh founding software engineer

米国防総省がIPv6ネットワークへの移行を宣言米国内でIPv6は大きく注目

システムのIPv6対応が急務セキュリティ製品もIPv6対応は必須

セキュリティスキャナもIPv6対応

IPv4で培ったテクノロジーの多くを利用可能しかし、新たに直面する課題が存在

IPv6対応により、ネットワーク型のセキュリティスキャン技術をベースとしたセュリティリスク管理が直面する課題とその解決法を提案

はじめに


Yuji ukai senior software engineer ryan permeh founding software engineer

国防総省によるIPv6化宣言でIPv6への取り組みが加速 - IPv6 を国防総省関係部局全体で採用- 戦場における兵士の安全や通信を確保新たに購入するネットワーク関連製品は全てIPv6対応

米商務省内でもIPv6利用に関する経済効果を検討 ドイツ、フランス、イギリス、中国、韓国の政府や軍でIPv6対応を推進

各ベンダーやISP、研究機関などはIPv6化を強力に推進

セキュリティリスク管理製品などもIPv6対応が必須課題

ネットワークのIPv6化の動き


Yuji ukai senior software engineer ryan permeh founding software engineer

ネットワークをスキャンし、資産とその脆弱性を把握

脅威、脆弱性、資産の重要度を分析

ネットワークのリスクを把握、対策を推進する

リスクを適切に管理するためには、ネットワークに対して正確かつ迅速なセキュリティスキャンを実施する必要がある→ 高速、高精度

IPv6化に伴い、速度と精度に影響が出る→ ホスト検出技術、リモートOS検出技術

ネットワーク型セキュリティスキャナを用いたセキュリティリスク管理


Yuji ukai senior software engineer ryan permeh founding software engineer

IPv6Host Discovery


Yuji ukai senior software engineer ryan permeh founding software engineer

ICMPや、TCP、UDPパケットにて、ネットワーク内で動作するホストを検出

ネットワーク内の資産把握、および、脆弱性診断対象の取得に必須

広大なアドレススペース

Secure Neighbor Discovery と CGA

Privacy Enhanced Addresses

IPv6化によるセキュリティスキャナへのインパクト - ホスト検出

ホスト検出


Yuji ukai senior software engineer ryan permeh founding software engineer

アドレススペースが128bitに拡張されたため、通常のホスト検出手法は長時間を要す- 代表的なIPv4サブネットは、ホストアドレッシングに8bit1 パケット/秒: 5 分- 代表的なIPv6サブネットは、ホストアドレッシングに64bit1 パケット/秒 :50 億年http://www.6net.org/publications/standards/draft-chown-v6ops-port-scanning-implications- 00.txt

広大なアドレススペース


Secure neighbor discovery cga

Neighbor Discovery (ND) に対する攻撃に対処するNDはステートレス。Hijacking攻撃に脆弱

暗号技術を利用した安全なアドレッシングスキーム

コリジョン攻撃の検出と回避

http://research.microsoft.com/users/tuomaura/Publications/arkko+-wise02.pdf

Secure Neighbor Discovery と CGA

アドレスが予測不能。検出対象アドレスを絞り込めない。


Privacy enhanced addresses

ランダムなアドレスビットを生成するIETFスキーム

IEEE identifier (i.e., a link-layer MAC address)の代わりに利用するプライバシー保護など

ランダムなアドレスビットを生成し、時間とともに値が変化同じ値が再現する確立は非常に低い

ブート時、あるいは、定期的に変化

Privacy Enhanced Addresses

64 bits

64 bits

現在のアドレス

Seed、もしくはHistory

md5

64 bits

64 bits

新しいアドレス

新しいHistory

新しいグローバルアドレスを生成するため、bit 6を0にする

アドレスが予測不能。検出対象アドレスを絞り込めない。


Yuji ukai senior software engineer ryan permeh founding software engineer

マルチキャスト

Neighbor Discovery

Ethernet ベンダーID

DHCPv6 ステートテーブル

Neighbor Cache

IPv4の利用

ローカル検出と分散アーキテクチャ

IPv6 ホスト検出手法


Ipv6 3

マルチキャストは、IPv6のコアコンポーネント

マルチキャストを利用することで生きているアドレスをいくつか収集できる

サイトローカル、あるいはリンクローカル限定

IPv6ノードの必須機能として、マルチキャスト機能が仕様に含まれているこのため、レスポンスを得られる可能性が比較的高い

一般的なグループ:

FF02:0:0:0:0:0:0:1 – リンクローカル・スコープ 全ノード

FF02:0:0:0:0:0:0:2 – リンクローカル・スコープ 全ルーター

FF02:0:0:0:0:0:1:2 – リンクローカル・スコープ DHCPエージェント

IPv6 レイヤー 3 – マルチキャスト


Ipv6 3 neighbor discovery

Neighbor Discoveryは、ICMPv6独自のサービス

ピア探索 (Neighbor Solicitation )IP アドレスを使用してリンク層アドレスを判定する (Layer-3 ARP)Neighbor Discoveryは、ローカルpingと同様、ホスト検出に利用できる。いくつかのホストではマルチキャストpingをブロックしてもNeighbor Solicitationはブロックしていない可能性がある。

ルータ探索ルーターに、Router Advertisementパケットをすぐに送信するよう要求

IPv6 レイヤー 3 – Neighbor Discovery


Ethernet id

IPv6アドレスの下位64ビットは、多くの場合、Interface IDとなっている

Interface IDは、イレヤー2アドレスのEUI-64表記となっている。

このInterface IDの一部は推測できる(Layer-2 ベンダーID)検索スペースを削減できる

EUI-64 : http://standards.ieee.org/regauth/oui/tutorials/EUI64.html

ベンダーID : http://standards.ieee.org/regauth/oui/oui.txt

Ethernet ベンダーID

00-01-02

00-07-E9

00-05-B5

00-E0-4C


Dhcpv6

DHCPv6は、IPアドレスの付与状態を保持する必要がある

メモリ、あるいはファイルに保持されている付与状態をチェックする事で、生存しているIPアドレスを抽出できる

ログ、SQLデータベース、アプリケーションAPI、あるいは、サーバプロセスのフック

サーバへのアクセスと権限が必要

DHCPv6 ステートテーブル

MSDN:

DWORD DHCP_API_FUNCTIONDhcpEnumSubnetClients(

DHCP_CONST WCHAR*ServerIpAddress,

DHCP_IP_ADDRESSSubnetAddress,

DHCP_RESUME_HANDLE*ResumeHandle,

DWORDPreferredMaximum,

LPDHCP_CLIENT_INFO_ARRAY*ClientInfo,

DWORD*ClientsRead,

DWORD*ClientsTotal );

DWORD DHCP_API_FUNCTIONDhcpEnumSubnets(

DHCP_CONST WCHAR*ServerIpAddress,

DHCP_RESUME_HANDLE*ResumeHandle,

DWORDPreferredMaximum,

LPDHCP_IP_ARRAY*EnumInfo,

DWORD*ElementsRead,

DWORD*ElementsTotal );


Neighbor cache

IPv6ルーターとホストは、 Neighbor Cacheを保持している生きているIPアドレスをいくつか得ることができる

IPv4のARPキャッシュに相当

生存しているIPアドレスと、対応したレイヤー2アドレスが含まれる

SNMPや、OS、アプリケーション独自のAPIでアクセス可能

SNMP OID –

.1.3.6.1.2.1.55.1.12

Windows –

C:\research>netsh interface ipv6 show neighbors

Interface 6: Local Area Connection

Internet Address Physical Address Type

fe80::210:a4ff:feb6:b972 00-10-a4-b6-b9-72 Stale

fe80::211:25ff:fe5a:cd63 00-11-25-5a-cd-63 Permanent

Linux –

# ip -6 neigh show

fe80::201:23ff:fe45:6789 dev eth0 lladdr 00:01:23:45:67:89 router nud reachable

Neighbor Cache


Yuji ukai senior software engineer ryan permeh founding software engineer

混在モードのネットワークでは、通常、IPv4とIPv6の両方のアドレスが存在する。その場合はIPv4アドレスを利用する

IPv6移行アドレッシングスキームではIPv4アドレスが組み込まれる事が多く、サーチアドレススペースを減少させることができる(ISATAP , 6to4 Transitional Addresses)

IPv4の利用


Yuji ukai senior software engineer ryan permeh founding software engineer

IPv6は、内部からの見通しは良いが、外部からの見通しは悪い

内部ネットワークにおけるホスト検出は比較的容易

外部からはやや困難

複数のスキャナを分散して設置

個々のスキャナを、NDやマルチキャストが利用できる範囲内に設置

負荷を複数のスキャナで分散する

ローカル検出と分散アーキテクチャ


Yuji ukai senior software engineer ryan permeh founding software engineer

IPv6OS Detection


Ipv6 os

対象のOSを、リモートからクレデンシャル無しで検出する技術

ネットワーク内の資産把握、および、対象の正確な脆弱性診断に必須

TCP/IPの実装の違いや、各サービスのバナーなどを利用し、OSを特定→ IPv4時代のICMP OS 検出技術が利用できなくなる 全てのTCP、UDPポートが閉じている状態だと、OS検出が不可

IPv6化によるセキュリティスキャナへのインパクト - リモートOS検出

リモートOS検出


Yuji ukai senior software engineer ryan permeh founding software engineer

TCP/IPスタックの実装の違いから対象OSを推測する

いくつかのテストパケットを送信し、そのレスポンスを解析

リモートOS検出技術の基礎

TCP OS 検出 (Nmap法)

- TCPポートにパケットを送信し、そのレスポンスを解析

- Window SizeやTCPオプションの違いでOSを識別

ICMPv4 OS 検出 (Xprobe法)

- 対象から送信されるICMPパケットを解析

- 様々なタイプのICMPパケットに対する応答やIPヘッダ値の違いでOSを識別

- TCP OS 検出と異なり、オープンポートの有無に左右されない

ICMPv6 OS検出

- 対象から送信されるICMPv6パケットを解析

- IPv6ではICMPv4をサポートしないので、IPv6独自のOS検出が必要


Icmpv4 os

ICMPv4 OS検出技術

テストパケット

  • UDP Unreachable Port

  • ICMP Echo Request

  • ICMP Timestamp Request

  • ICMP Information Request

  • ICMP Netmask Request

チェックする項目

  • レスポンスの有無

  • IP Length

  • IP Identification

  • IP TOS

  • IP Flags

  • IP Fragment Offset

  • IP TTL

  • Checksum

X remote ICMP based OS fingerprinting techniques

Ofir Arkin and Fyodor Yarochikin

http://www.sys-security.com/


Icmpv6 os

ICMPv6 Echo Request

ICMPv6 Echo Request (Invalid Code)

UDP Unreachable Port

ICMPv6 Multicast Listener Discovery

ICMPv6 Neighbor Solicitation

Windows XP SP2

Windows Vista Beta 2 Build 5384

Solaris 10

Linux Fedora 2.6.15

FreeBSD 6.0

ICMPv6 OS検出技術 - テストパケットと実験対象

テストパケット

テスト対象OS


Icmpv6 echo request hoplimit probe response

Type = 129

Check sum

Code = 0

Identifier

Sequence Number

Data . . .

ICMPv6 Echo request / HopLimit - Probe&Response

・ Probe- ICMPv6 Echo Request

Type = 128

Check sum

Code = 0

ICMPv6

Echo Request

Identifier

Sequence Number

Data . . .

・ Response - ICMPv6 Echo Reply

Version

Traffic Class

Flow Label

IPv6

Payload Length

Next Header

Hop Limit

ICMPv6

Echo Reply


Icmpv6 echo request hoplimit characteristics

ICMPv6 Echo request / HopLimit - Characteristics

・ Responseパケット HopLimit値の比較

ICMPv6 Echo Reply HopLimit

128

64

255

Windows XP

Windows Vista

Linux

FreeBSD

Solaris


Icmpv6 echo request invalid code probe response

ICMPv6 Echo request / Invalid Code - Probe&Response

・ Probe- ICMPv6 Echo Request (不正なCode値)

Type = 128

Check sum

Code = 1

ICMPv6

Echo Request

Identifier

Sequence Number

Data . . .

ICMPv6 Echo Request の Code値は 0 と指定されている(RFC2463)

しかし実際には、多くの実装は Code値をチェックしていない


Icmpv6 echo request invalid code characteristics

ICMPv6 Echo request / Invalid Code - Characteristics

・ Responseパケットの有無

ICMPv6 Echo Reply HopLimit

128

64

255

Windows XP

Windows Vista

Solaris

ICMPv6 Echo Reply

Invalid Code

Yes

No

FreeBSD

Linux


Udp port unreachable probe response

UDP Port Unreachable / Probe&Response

・ Probe- クローズしているポートに対してUDPパケット(Over IPv6)を送信

Version

Traffic Class

Flow Label

IPv6

Payload Length

Next Header

Hop Limit

Source Port

Destination Port

UDP

UDP Data Length

UDP Check Sum

Data . . .

Closed Port を指定

・ Response -通常、ICMPv6 Destination Unreachable Message が帰ってくる。

Port Unreachable

Type = 1

Check sum

Code = 4

ICMPv6

Destination

Unreachable

Unused

最小IPv6 MTUを超えない範囲での送信パケット


Udp port unreachable characteristics

UDP Port Unreachable / Characteristics

RFC2463

"A destination node SHOULD send a Destination Unreachable message with Code 4 in response to a packet for which the transport protocol (e.g., UDP) has no listener, if that transport protocol has no alternative means to inform the sender."

→ MUSTではない

ICMPv6 Echo Reply HopLimit

・ Responseパケットの有無

128

64

255

UDP

Port Unreachable

Solaris

ICMPv6 Echo Reply

Invalid Code

Yes

No

Windows

XP

Windows

Vista

Yes

No

FreeBSD

Linux


Icmpv6 multicast listener discovery probe response

ICMPv6 Multicast Listener Discovery / Probe&Response

ルーターが、ローカルのリンクにマルチキャストのメンバーが存在するかを調べるプロトコル

・ Probe- 以下のMulticast Listener Discovery (MLDv1)パケットを対象に送信

Type = 130

Check sum

Code = 0

ICMPv6

Multicast Listener

Discovery

Maximum Response Delay (0x0000)

Reserved

Multicast Address (全て0x00)

・ Response -通常、Multicast Listener Reportが帰ってくる。

Type = 131 or 143

Check sum

Code = 0

ICMPv6

Multicast Listener

Discovery

Multicast Listener Report (Typeフィールドに依存)


Mldv1 vs mldv2

MLDv1 vs MLDv2

・ MLDv2 - MLDv1に送信者情報(ソースアドレス)指定機能を追加したもの

・ MLDv1 QueryとMLDv2 Queryは同じICMPv6 Type(130)。端末はパケット長により両者を識別。

・ 一部実装では、 MLDv1 Queryに対して MLDv2 Reportで応答。一部実装では応答を返さない。

Type = 131

Check sum

Code = 0

ICMPv6 MLDv1

Multicast Listener

Report

Maximum Response Delay

Reserved

Multicast Address

Type = 143

Check sum

Code = 0

Reserved

Multicast Address Recordの数

ICMPv6 MLDv2

Multicast Listener

Report

Multicast Address Record [1]

Multicast Address Record [n]


Icmpv6 multicast listener report characteristics

ICMPv6 Multicast Listener Report / Characteristics

・ Responseパケット

ICMPv6 Echo Reply HopLimit

128

64

255

MLD Query

Solaris

MLD Query

v1

None

Windows

XP

Windows

Vista

v1

v2

FreeBSD

Linux


Icmpv6 multicast listener report ipv6 hop by hop option

ICMPv6 Multicast Listener Report / IPv6 Hop-By-Hop Option

・ MLD Report パケットには、IPv6 Hop-By-Hop Optionが付随される

・ オプションの並びが実装によって異なる

Version

Traffic Class

Flow Label

IPv6

Payload Length

Next Header = 0

Hop Limit

Next Header = 58

Header Ext Len

IPv6

Hop-by-Hop

Option

ICMPv6

Hop-by-Hop Option

Hop-by-Hop

Option

Type = 131

Check sum

Code = 0

ICMPv6

Multicast Listener

Discovery

Multicast Listener Report (Typeフィールドに依存)


Ipv6 hop by hop option characteristics

Type

Length

Data

IPv6 Hop-By-Hop Option / Characteristics

・ オプションフォーマット

Type 8bit オプションタイプ

Length 8bit オプションデータ長

Data オプションタイプに応じたオプションデータ

・ オプションタイプ

・ オプションの並び方


Icmpv6 neighbor solicitation probe response

Type = 136

Check sum

ICMPv6

Neighbor Advertisement

Code = 0

Reserved

S

O

R

ルーターフラグ

Target Address

要請フラグ

上書きフラグ

Option

(キャッシュされたアドレス更新)

ICMPv6 Neighbor Solicitation / Probe&Response

同一リンク内の他ノードに対し、リンクレイヤアドレスの通知を要求するメッセージ

・ Probe- Neighbor Solicitation(近隣要請)パケットを対象に送信

Type = 135

Check sum

Code = 0

ICMPv6

Neighbor Solicitation

Reserved

Target Address = Source IPv6 Address

Option

・ Response - Neighbor Advertisement(近隣通知)が帰ってくる


Icmpv6 neighbor solicitation characteristics

ICMPv6 Neighbor Solicitation / Characteristics

・ Overrideフラグ


Fingerprint

Fingerprint


Icmpv6 os1

OS検出精度の測定- まだ多くのOSにアルゴリズムを適用していない- Fingerprintの収集

OS検出精度の向上- OSのバージョン差が認識できないケースが多い- より有用な特徴パラメータの抽出を試みる- Mobile IPやセキュリティ(IPSec)の実装は新しいため要解析

ICMPv6 OS検出 - 今後の課題


Thank you for your attention

Thank you for your attention !

Question ?

Contact : Yuji Ukai <[email protected]>


  • Login