SDNに基づく欺瞞防御システム
2023年2月7日(火)情報セキュリティ大学院大学
情報セキュリティ専攻情報セキュリティ研究科
博士前期課程2年 大久保研究室 陳鑫

目次• 本研究について• 関連技術• 提案と実現• 検証実験
• 現時点の問題• 今後の課題2

本研究について• サイバー攻撃の手段が巧妙化され、完全に防ぐことが困難になり、侵入されることを前提にした欺瞞防御が提案されていた。
• 本研究は「ラテラルムーブメント」の偵察行動が主な段階に注目し、セキュリティ対策を築くことを狙う。SDNを用い、OpenFlowでパケットヘッダフィールダのマッチングを利用して、とある通信を元のルートから分離させ、その宛先を偽造する。
• IPの書き換えることで、攻撃者に誤った判断を下させ、重要のホストを攻撃者の視点から隠ぺいする3

目次• 本研究について• 関連技術• 提案と実現• 検証実験
• 現時点の問題• 今後の課題

4

SDNとはネットワーク機械のデータ伝送機能を分離し、制御機能を集約する機械を遠隔制御するためのプロトコルを標準化し（OpenFlowなど）、ソフトウェアに定義することが可能になる

出典：情セ大講義 ネットワーク設計とセ
キュリティ運用 13回「SDNとOpenFlow」
5欺瞞とは情報の送り手が受け手に誤った信念や解釈を抱くことを目的として故意に情報を伝達する行為である• 攻撃者を混乱、妨害、遅延させる• 囮を用いて侵入検知する• 攻撃者が得る情報の価値を落とす

6

縦深防御
ネットワークへの侵入や情報システムへの感染を前提とする防御手法である。
サイバーキルチェーンより、攻撃者は最終目的に達成する前にいくつの段階がある。その各段階で様々な欺瞞の仕組みを仕掛けて攻撃者を欺き、攻撃者が目標情報を窃取やシステム破壊等の攻撃目標の達成に至るまでのコストを押し上げる

出典：角丸貴洋「組織ネットワークにおける内部攻撃に対する模擬的欺瞞方式」
7

目次• 本研究について• 関連技術• 提案と実現• 検証実験
• 現時点の問題• 今後の課題8

提案と実現• 「ラテラルムーブメント」の偵察段階に注目し、セキュリティ対策を築くことを目指す。
• 攻撃者が得られる情報に一部を操作して、重要なホストを攻撃者の視点から隠蔽する• OpenFlowでパケットのヘッダフィールダをマッチングし、特定ポート番号の通信を抽出し、Deception Serverに転送する。Deception Serverが受けたパケットのIPアドレスを事前に設定されたルールによって書き換える形で、重要のホストを攻撃者の視点から隠ぺいする。
9

実験環境• 仮想ソフト「VMware® Workstation 16Pro」で、四つの「ubuntu 22.04」のサーバーを起動し、実験環境を築く• テスト用のホストを四つ、DeceptionServerを一つ、SDN switchを一つ用意し、全部ホストのOSは「ubuntu22.04」に設定する

10

フローテーブルの設定• ネットワークの通信過程は、簡単にすると大きく「請求」と「応答」の二つの状態に分けられる。ある通信の通信先を書き換えると、通信本体に影響を及ぼずため、「請求」の「宛先」を書き換えるだけではなく、「応答」の「送信元」も処理する必要がある。
• 架空ホストの場合（宛先「10.10.10.10」）に、ホストは実際に存在しないため、そのIPへの通信はすべてがDeception Serverで処理する必要があるが、SDN switchにポート番号を指定する必要はない。

11

配置ファイル
配置ファイルはJSONファイルの形で作成し、主に「Match」、「Routing」と「PretendIP」この三つの部分で組み立てる• 「Match」は、IPアドレスの書き換えで必要な情報を保つものである。
•••

配置ファイル構造（Golang）「RealIpAddr」に実の通信先を設定し、偽の通信先は「PretendIP」に保たれる。
「IsExist」は当該（偽の通信先への）通信のホストは存在するか情報を保存する。
「TCP」や「UDP」の条目は設定されたポート番号を記録する• 「PretendIP」には架空のIPアドレス情報を記録する• 「Routing」では架空ホストに対して、捏造されたルーティング情報を保存する。

配置ファイルの事例

12

ARP• パケット転送するには、MACとIPアドレスを需要である• MACがなければIPを書き換えてしても、パケットも予定にたどり着けない• また、架空のIPアドレスについて、そのMACアドレスを知らない状況で、パケットの作成もできない

Deception Serverはまず配置ファイルに保ったIPアドレスを「存在するIPアドレス」と「架空IPアドレス」に分類して保存する。「存在するIPアドレス」に対して、Deception Serverが周期的（設定は30秒）にARP請求を発送し、応答されたMACをハッシュマップの形（IPがキー、MACは値）で保存する。
13

パケット処理
Deception Serverがパケットを受けたとき、まずデータリンク層のプロトコルを検査して、もしARPの場合、そのパケットを捨てる。
次にIPヘッダの解析を行う。
•••

ICMPを検知した状況、「Echo Request」パケットを確認したうえで、宛先が架空IPに当てられていたら、ICMP「Echo Reply」パケットを偽造して送り出す。
宛先に関する「Routing」条目が存在し、同時に当該パケットのTTLは「Routing」の条目数より小さいとき、「Traceroute」の捏造を実行する。
以上二つの状況以外、「Match」に調べて、「宛先」あるいは「送信元」が「Match」に当てたとき、元のパケットヘッドがその情報により再構築して送り出す。
14

目次• 本研究について• 関連技術• 提案と実現• 検証実験
• 現時点の問題• 今後の課題

15

検証実験

16

検証実験
test1
Test1から発送した
test3
Test3からの返事

17

検証実験

18

検証実験
test1

test4

Test1から発送した

Test4からの返事

19

検証実験
test1に「netstat」コマンドでの実行する、当該ホストにつながる通信を調べるとTCP40番が「10.10.10.10」へ、UDP50番が「10.10.10.2」にしか見られない。

20

検証実験
test1から架空IP「10.10.10.10」への「traceroute」請求した結果について、「Routing」の設定通り偽造される。

21

検証実験
test1から架空IP「10.10.10.10」への請求結果であり、「ICMP Echo Reply」を確実に受け取った。同時に、TTLにも「Routing」条目数により処理された。

22

目次• 本研究について• 関連技術• 提案と実現• 検証実験
• 現時点の問題• 今後の課題23

現時点の問題• 全体的に遅延がひどい、同時にUDPの安定性に影響を及ぼす• 元IPへの通信を遮断できない• IPアドレスの書き換えについて、他の選択肢が存在する：• OpenFlowで実現することが可能である

24

遅延と安定性
Pingとtracerouteに調べると応答やルート情報がもらっていたが、その遅延が高すぎる
またUDPの場合、遅延にためパケットの順番が乱れる可能性がある
test
TCPの場合、UDPのような状況 1が出なかったが、通信が見えるほどの遅延が出ることが存在す
る

test
3

25

元IPへの通信を遮断できない• 元の通信先へ請求しても応答をもらっている、しかし受け取った応答が送信元の情報はSDNに設定されたものから、その送信元の情報を書き換えていたため、応答を処理した。
• 普通に見るとただタイムアウトに感じられるかもしれないが、「tcpdump」や「wireshark」などツールを利用して調べると、すぐに攻撃者は偽装に気づく可能性が高い。

26

元IPへの通信を遮断できない

test1

test3からtest1に返事したものは送信元のIPが書き換えされたことで、もらえなかった

test3

test1からの内容
test3にちゃんと届いた27

元IPへの通信を遮断できない
解決方法について• OpenFlowのマッチング条件に受信ポートを指定することが可能である。
• 受信ポートを指定することで、「Deception Server以外のすべてホストから元IPへ特定ポート番号の通信パケットをDeception Serverに転送し、拒否応答を返事する」が予想していたが、またうまくできなかった。

28

OpenFlowの実現方法
OpenFlowのアクションについて、指定のフィールドを書き換える機能が存在するが、同時に出口を指定さなければならない
従って、送信元のIPもマッチングを同時に条件として加える必要があるだが、大規模にコマンドで設定することができない、SDNコントローラーに策略を作成することが必要である
29

目次• 本研究について• 関連技術• 提案と実現• 検証実験
• 現時点の問題• 今後の課題30

今後の課題• OpenFlowでIPの書き換えを実行する• 元IPへの通信を遮断するため、マーチング条件を追加する• フローテーブルの設定にはSDNコントローラーに移行する31