54
BÁO CÁO NGHIÊN CỨU KHOA HỌC GIẢI PHÁP AN NINH MẠNG DÙNG SDN Giáo viên hướng dẫn: TS.Trương Thu Hương Nhóm sinh viên: Nguyễn Cao Nguyên – SHSV- K54 Dương Quang Hưng Nguyễn Quang Phúc Trần Minh Hưng

24.04 Bao Cao Khoa Hoc-Huong S-A

Embed Size (px)

DESCRIPTION

báo cáo khoa học

Citation preview

Page 1: 24.04 Bao Cao Khoa Hoc-Huong S-A

BÁO CÁO NGHIÊN CỨU KHOA HỌC

GIẢI PHÁP AN NINH MẠNG DÙNG SDN

Giáo viên hướng dẫn: TS.Trương Thu Hương

Nhóm sinh viên:

Nguyễn Cao Nguyên – SHSV- K54

Dương Quang Hưng

Nguyễn Quang Phúc

Trần Minh Hưng

Page 2: 24.04 Bao Cao Khoa Hoc-Huong S-A

Nội dung

Chương 1: Lời mở đầu............................................................................................................................5

Chương 2: Cơ sở lý thuyết......................................................................................................................7

2.1 Tổng quát về mạng LAN...............................................................................................................7

2.2 Một số tấn công phổ biến trong mạng LAN.................................................................................7

2.2.1 Tấn công ARP Spoofing.........................................................................................................7

2.2.2 Tấn công IP Spoofing...........................................................................................................10

2.2.3 Tấn công DHCP Server........................................................................................................13

2.2 Mạng lập trình được (Software Define Network)........................................................................16

2.3 Công nghệ OpenFlow..................................................................................................................17

2.3.2 Kiến trúc openflow...............................................................................................................17

2.4 NetFPGA.....................................................................................................................................21

Chương 3: Thiết kế hệ thống và cài đặt công cụ....................................................................................25

3.1. Sơ đồ khối..................................................................................................................................25

3.2. Bộ điều khiển mạng openflow controller (POX)........................................................................26

3.2.1. Giới thiệu tổng quan............................................................................................................26

3.2.2. Cài đặt và sử dựng...............................................................................................................27

3.3 OpenFlow Switch........................................................................................................................28

3.3.1 Giới thiệu tổng quan.............................................................................................................28

3.3.2 Cài đặt và sử dụng................................................................................................................28

3.4 Các công cụ phát lưu lượng.........................................................................................................30

3.4.1 TCPreplay.............................................................................................................................30

3.4.2 Yersinia................................................................................................................................31

2

Page 3: 24.04 Bao Cao Khoa Hoc-Huong S-A

Chương 4 : Một số Module quan trọng trong Controller.......................................................................34

4.1 Dhcp Module...............................................................................................................................34

4.2 Security Module..........................................................................................................................34

4.3 Routing Module...........................................................................................................................34

4.4 Sơ đồ tiến trình xử lý bản tin.......................................................................................................35

4.5 Sơ đồ tiến trình DHCP và chống tấn công DHCP.......................................................................36

4.6 Chống tấn công............................................................................................................................36

TÀI LIỆU THAM KHẢO.....................................................................................................................41

3

Page 4: 24.04 Bao Cao Khoa Hoc-Huong S-A

Danh mục hình vẽ

Hình 1 - Mô tả quá trình ARP...................................................................................................................8

Hình 2 - Mô hình tấn công IP spoofing..................................................................................................11

Hình 3 - Mô hình OpenFlow..................................................................................................................18

Hình 4 - Nền tảng NetFPGA...................................................................................................................22

Hình 5 – Sơ đồ khối...............................................................................................................................25

Hình 6 - Giao diện Yersinia....................................................................................................................32

Hình 7 - Chọn Interface.........................................................................................................................33

Hình 8- Chọn kiểu tấn công...................................................................................................................33

Hình 9 – Tiến trình xử lý bản tin............................................................................................................35

Hình 10 – Chống tần công DHCP...........................................................................................................36

Hình 11 - Lấy địa chỉ IP động từ DHCP Server........................................................................................37

Hình 12 - Bảng cấu hình trên Client.......................................................................................................38

Hình 13 - Bảng lưu thông tin cấp phát IP ứng với từng switch..............................................................38

Hình 14 - Log file khi bị tấn công DHCP Server......................................................................................39

Hình 15 - Nghi ngờ tấn công IP Spoofing và block port.........................................................................39

Hình 16 - Màn hình Wireshark khi xảy ra tấn công, port đã bị block.....................................................40

4

Page 5: 24.04 Bao Cao Khoa Hoc-Huong S-A

Chương 1: Lời mở đầuNgày nay, cùng với sự phát triển nhanh chóng của các công nghệ tiên tiến, nhu cầu

kết nối và chia sẻ của con người ngày càng gia tăng cả về tốc độ, chất lượng cũng như

tính thuận tiện. Các kiến trúc mạng và các thiết bị mạng cũ đã phần nào để lộ những

nhược điểm như tính cứng ngắc, giá thành cao, thiếu khả năng tích hợp nhiều chức

năng…

Mạng lập trình được hay SDN, là một kiến trúc mạng mới, mà ở đó, các thiết bị

chuyển mạch (Switch, Router…) sẽ được tách ra làm hai phần riêng biệt: mặt phẳng

điều khiển (Control Plane) và mặt phẳng dữ liệu (Data Plane). Control Plane được triển

khai trên các server bên ngoài, chịu trách nhiệm điều khiển việc chuyển tiếp gói tin

cũng như các chức năng tích hợp khác. Data Plane thực hiện việc chuyển tiếp các gói

tin dựa theo lệnh mà Control Plane đưa ra.

SDN sử dụng giao thức OpenFlow để giao tiếp giữa Control Plane và Data Plane.

OpenFlow được bắt đầu phát triển từ năm 2008 tại Đại học Stanford, California, Mỹ.

Với sự ra đời của OpenFlow, việc trao đổi giữa Control Plane và Data Plane đã trở lên

dễ dàng, thuận tiện và chính xác hơn. Nhờ đó, SDN đã bắt đầu được áp dụng để thay

thế cho các kiến trúc mạng thông thường. Thực tế hiện nay SDN đã được triển khai tại

rất nhiều phòng lab ở các trường đại học, các trung tâm nghiên cứu. Các tập đoàn lớn

như Google, HP đã bắt đầu sử dụng kiến trúc SDN trong mạng lõi của mình.

Xuất phát từ thực trạng hiện nay, các thiết bị chuyển mạch trong mạng LAN đi kèm

với các chức năng bảo mật thường có giá thành cao. Hơn thế nữa, việc tích hợp nhiều

chức năng bảo mật một cách mềm dẻo là rất khó khăn trong kiến trúc mạng thông

thường. Nhận thấy khả năng của SDN trong việc giải quyết các vấn đề trên, nhóm sinh

viên chúng em đã chọn đề tài: “Xây dựng hệ thống phát hiện xâm nhập Attack

Detection System (ADS) trong mạng LAN dựa trên kiến trúc SDN”, nhằm phát hiện và

ngăn chặn một số loại hình tấn công cơ bản trong mạng LAN.

5

Page 6: 24.04 Bao Cao Khoa Hoc-Huong S-A

Trong quá trình thực hiện, do hạn chế về mặt thời gian cũng như kiến thức, nên đề

tài không thể tránh khỏi những thiếu sót. Chúng em mong nhận được sự đóng góp của

thầy cô và các bạn để đề tài được hoàn thiện hơn.

6

Page 7: 24.04 Bao Cao Khoa Hoc-Huong S-A

Chương 2: Cơ sở lý thuyết

2.1 Tổng quát về mạng LANLAN (viết tắt từ tên tiếng Anh Local Area Network, "mạng máy tính cục bộ") là

một hệ thống mạng dùng để kết nối các máy tính trong một phạm vi nhỏ (nhà ở, phòng

làm việc, trường học, …). Các máy tính trong mạng LAN có thể chia sẻ tài nguyên với

nhau, mà điển hình là chia sẻ tập tin, máy in, máy quét và một số thiết bị khác.

Một mạng LAN tối thiểu cần có máy chủ (server), các thiết bị ghép nối

(Repeater, Hub, Switch, Bridge), máy tính con (client), card mạng (Network Interface

Card – NIC) và dây cáp (cable) để kết nối các máy tính lại với nhau. Trong thời đại

của hệ điều hành MS-DOS, máy chủ mạng LAN thường sử dụng phần mềm Novell

NetWare, tuy nhiên điều này đã trở nên lỗi thời hơn sau khi Windows NT và Windows

for Workgroups xuất hiện. Ngày nay hầu hết máy chủ sử dụng hệ điều hành Windows,

và tốc độ mạng LAN có thể lên đến 10 Mbps, 100 Mbps hay thậm chí là 1 Gbps.

Ngày nay mạng LAN đã trở thành một kiến trúc mạng không thể thiếu trong cấu

trúc hệ thống mạng máy tính. Bên cạnh với những lợi thế, điểm mạnh, mạng LAN

cũng bộc lộ không ít những điểm yếu mà những kẻ tấn công có thể lợi dụng để tấn

công vào mạng. Mặt khác, việc triển khai phòng chống, xử lý những cuộc tấn công

trong mạng LAN trở nên rất phức tạp và khó lòng xử lý triệt để vì những cuộc tấn công

thường xuất phát từ ngay nội bộ trong mạng.

2.2 Một số tấn công phổ biến trong mạng LAN

2.2.1 Tấn công ARP Spoofing

2.2.1.1 Giới thiệu giao thức ARP

Mỗi thiết bị trong hệ thống mạng của chúng ta có ít nhất hai địa chỉ. Một địa chỉ là

Media Access Control (MAC) và một địa chỉ Internet Protocol(IP). Địa chỉ MAC là địa

chỉ của card mạng gắn vào bên trong thiết bị, nó là duy nhất và không hề thay đổi. Địa

chỉ IP có thể thay đổi theo người sử dụng tùy vào môi trường mạng. ARP là một trong

những giao thức của IP, chức năng của nó dùng để định vị một host trong một segment

7

Page 8: 24.04 Bao Cao Khoa Hoc-Huong S-A

mạng bằng cách phân giải địa chỉ IP ra địa chỉ MAC. ARP thực hiện điều đó thông qua

một tiến trình broadcast gói tin đến tất cả các host trong mạng, gói tin đó chứa địa chỉ

IP của host cần giao tiếp. Các host trong mạng đều nhận được gói tin đó và chỉ duy

nhất host nào có địa chỉ IP trùng với địa chỉ IP trong gói tin mới trả lời lại, còn lại sẽ tự

động drop gói tin.

2.2.1.2 Các gói tin ARP

Host A gửi một ARP Request và nhận được một ARP Reply từ một host B có thực

trong mạng. sau khi tiến trình này hoàn tất, host A sẽ biết host B có MAC như thế nào.

Tiếp theo, host A sẽ lưu lại sự hiểu biết đó lên bộ nhớ của mình gọi là ARP table. ARP

table giúp host A không phải thực hiện ARP Request đến host B một lần nữa.

Hình 1 - Mô tả quá trình ARP

2.2.1.3 Nguyên lý tấn công

Giao thức ARP là rất cần thiết và quan trọng trong hệ thống mạng của chúng ta, tuy

nhiên nó lại không đề cập đến vấn đề xác thực nào cả. Khi một host nhận được gói tin

ARP Reply, nó hoàn toàn tin tưởng và mặc nhiên sử dụng thông tin đó để sử dụng sau

này mà không cần biết thông tin đó có phải trả lời từ một host mà mình mong muốn

hay không. ARP không có cơ chế nào để kiểm tra việc đó cả và trên thực tế một host

có thể chấp nhận gói ARP Reply mà trước đó không cần phải gửi gói tin ARP Request.

8

Page 9: 24.04 Bao Cao Khoa Hoc-Huong S-A

Lợi dụng điều này, hacker có thể triển khai các phương thức tấn công như: Man In The

Middle, Denial of Service, MAC Flooding…

2.2.1.4 Một số cách tấn công ARP trong mạng LAN

Man in the middle

Giả sử hacker muốn theo dõi host A gởi thông tin gì cho host B. Đầu tiên,

hacker sẽ gởi gói ARP Reply đến host A với nội dung là địa chỉ MAC của hacker và

địa chỉ IP của host B.

Tiếp theo, hacker sẽ gửi gói ARP Reply tới host B với nội dung là MAC của

máy hacker và IP của host A. Như vậy, cả hai host A và host B đều tiếp nhận gói

ARP Reply đó và lưu vào trong ARP table của mình. Đến lúc này, khi host A muốn

gửi thông tin đến host B, nó liền tra vào ARP table thấy đã có sẵn thông tin về địa

chỉ MAC của host B nênsẽ lấy thông tin đó ra sử dụng, nhưng thực chất địa chỉ

MAC đó là của hacker. Đồng thời máy tính của hacker sẽ mở chức năng gọi là IP

Forwading giúp chuyển tải nội dung mà host A gửi qua host B. Host Avà host B

giao tiếp bình thường và không có cảm giác bị qua máy trung gian là máy của

hacker.

Trong trường hợp khác, hacker sẽ nghe lén thông tin từ máy bạn đến Gateway.

Như vậy mọi hành động ra Internet của bạn đều bị hacker ghi lại hết, dẫn đến việc

mất mát các thông tin nhạy cảm.

Denial of service

Cũng vận dụng kỹ thuật trên, hacker tiến hành tấn công bằng cách gởi gói ARP

Reply đến toàn bộ các host trong mạng với nội dung mang theo là địa chỉ IP của

Gateway và địa chỉ MAC không hề tồn tại. Như vậy các host trong mạng tin tưởng rằng

mình đã biết được MAC của Gateway và khi gửi thông tin đến Gateway, kết quả là gửi

đến một nơi hoàn toàn không tồn tại. Đó là điều hacker mong muốn, toàn bộ các host

trong mạng đều không thể đi ra Internet được.

MAC flooding

9

Page 10: 24.04 Bao Cao Khoa Hoc-Huong S-A

Cách tấn công này cũng dùng kỹ thuật ARP Poisoning mà đối tượng nhắm đến là

Switch. Hacker sẽ gửi những gói ARP Reply giả tạo với số lượng khổng lồ nhằm làm

Switch xử lý không kịp và trở nên quá tải. Khi đó, Switch sẽ không đủ sức thể hiện bản

chất Layer2 của mình nữa mà broadcast gói tin ra toàn bộ các port của mình. Hacker dễ

dàng bắt được toàn bộ thông tin trong mạng của bạn.

2.2.1.5 Một số biện pháp phòng chống

Có một số biện pháp để chống tấn công ARP trong mạng LAN

Khi hệ thống mạng nhỏ ta có thể gán MAC tĩnh cho từng máy. Khi đó địa chỉ IP

và MAC sẽ gắn chặt với nhau, trên từng máy đều có địa chỉ MAC và IP của

từng máy trong mạng nên sẽ không thể xảy ra trường hợp tấn công ARP

Sử dụng chức năng port security trên một số switch hỗ trợ chức năng này, khi

đó trên một port trên switch chỉ cho phép một hoặc một số địa chỉ MAC hợp

pháp. Khi kẻ tấn công dùng MAC không phù hợp, gói tin sẽ không thể đi qua

được port này

Dùng 1 số tool sẵn có để chống ARP spoofing như (WinPcap4 và ArpSpoof,

Xarp2.0, CainAble…)

2.2.2 Tấn công IP Spoofing

2.2.2.1 Giới thiệu chung

IP Spoofing là một kiểu tấn công mà ở đó, attacker sẽ thay đổi địa chỉ nguồn của

packet, có thể bằng một địa chỉ chưa sử dụng, có thể bằng một địa chỉ đang được sử

dụng bởi một host tin cậy nào đó.

10

Page 11: 24.04 Bao Cao Khoa Hoc-Huong S-A

Hình 2 - Mô hình tấn công IP spoofing

Bằng việc sử dụng IP Spoofing, attacker có thể che dấu đi địa chỉ của bên gửi hoặc

có thể giả dạng là một host khác.

IP Spoofing dựa trên thực tế rằng trong giao tiếp giữa các host ở khoảng cách xa,

packet sẽ được xử lý và định tuyến bởi router. Trong khi đó, các router, khi xử lý và

định tuyến packet, sẽ không quan tâm đến địa chỉ nguồn của packet, mà chỉ quan tâm

đến địa chỉ đích trong IP header. Địa chỉ nguồn chỉ được xét đến khi host nhận (ta tạm

gọi là victim) muốn gửi phản hồi, mà khi đó, victim nhận được packet cũng sẽ không

xác định được địa chỉ nguồn của packet là đúng hay sai. Khi nhận được packet với địa

chỉ nguồn sai, victim sẽ gửi những packet phản hồi theo địa chỉ nguồn trong packet

nhận được. Do đó, attacker cũng sẽ không nhận được các packet phản hồi đó.

2.2.2.2 Các kiểu tấn công IP Spoofing

IP Spoofing thường được sử dụng cùng với một phương thức tấn công nào đó,

khiến cho victim khó có thể nhanh chóng tìm ra được địa chỉ của attacker. Một số

phương thức tấn công thường sử dụng IP Spoofing gồm có:

Man-in-the-middle

11

Page 12: 24.04 Bao Cao Khoa Hoc-Huong S-A

Với kiểu tấn công này, attacker cố gắng lấy được những packet trong một kết nối

nào đó giữa 2 người sử dụng. Sau đó, có thể sử dụng IP Spoofing cùng với những

công cụ khác để lừa các host đang tham gia kết nối, trở thành điểm đến của các

packet. Từ đó, attacker có thể biết được nội dung trao đổi giữa 2 host.

TCP Syn Flooding

TCP Syn Flooding là một kiểu tấn công DoS (tấn công từ chối dịch vụ). Kiểu tấn

công này lợi dụng phương thức three-way handshake của giao thức TCP để gửi rất

nhiều Syn packet nhưng không gửi Ack packet để thiết lập kết nối. Các Syn packet

được gửi đến victim sẽ được đưa vào backlog. Quá nhiều Syn packet đến mà không

thưc hiện kết nối sẽ làm cho backlog của victim bị đầy, và không thể nhận các kết

nối từ các host khác. Attacker sử dụng IP Spoofing trong TCP Syn Flooding, sẽ

chọn các địa chỉ nguồn một cách ngẫu nhiên, qua đó, sẽ không có Ack packet từ

những host đó, do những host đó không hề gửi Syn packet cho victim.

Smurf Attack

Trong Smurf Attack, attacker sẽ gửi các bản tin ICMP đến một số lượng lớn các

host khác với địa chỉ nguồn của packet là địa chỉ IP của victim. Khi nhận được bản

tin ICMP từ attacker, các host đó sẽ gửi các bản tin ICMP response đến victim. Với

một số lượng lớn các bản tin ICMP response nhận được, thiết bị của victim sẽ hoạt

động chậm lại, xử lý các bản tin cũng như các tác vụ không được nhanh chóng

hoặc thậm chí là bị crash.

2.2.2.3 Các bước thực hiện IP Spoofing

Một phiên tấn công IP Spoofing có thể thực hiện theo các bước sau:

Đầu tiên, attacker sẽ chọn đối tượng mình muốn attacker (victim). Lấy được địa

chỉ IP của victim

12

Page 13: 24.04 Bao Cao Khoa Hoc-Huong S-A

Tiếp theo đó, attacker sẽ tìm hiểu về các “trust relationship” của victim, qua đó,

sẽ chọn lựa được host có “trust relationship” với victim, chính là host mà

attacker sẽ sử dụng địa chỉ IP để thay thế địa chỉ của mình.

Bằng việc gửi các packet đã được spoof địa chỉ IP nguồn đến victim, attacker sẽ

giả dạng được mình là “trusted host”. Hơn thế nữa, nếu có các công cụ cũng như

các phương thức để tính toán được sequence number trong packet mà victim sẽ

reply, attacker hoàn toàn có thể giả mạo “trusted host” trong toàn bộ phiên kết

nối đó. Để tăng xác suất thành công, attacker sẽ cố gắng thiết lập các kết nối dựa

theo các dịch vụ “address-based authentication”, xác thực dựa theo địa chỉ

(không có user name và password).

Khi đã tiếp cận được victim thông qua phiên kết nối, attacker có thể thực hiện

một số hành động gây hại như gửi mã độc, virus, Trojan, hoặc đánh cắp thông

tin trên thiết bị của victim. Attacker cũng có thể để lại những “backdoor”, để có

thể dễ dàng tiếp cận victim trong tương lại nếu cần thiết.

2.2.3 Tấn công DHCP Server

2.2.3.1 DHCP là gì ?

DHCP (dynamic host configuration protocol): giao thức cấu hình địa chỉ động.

Giao thức cung cấp phương pháp thiết lập các thông số cần thiết cho hoạt động của

mạng TCP/IP giúp giảm khối lượng công việc cho quản trị hệ thống mạng.

DHCP server là một máy chủ có cài đặt dịch vụ DHCP. Nó có chức năng quản lý

sự cấp phát địa chỉ IP động và các dữ liệu cấu hình TCP/IP. Ngoài ra còn có nhiệm vụ

trả lời khi DHCP Client có yêu cầu về hợp đồng thuê bao.

DHCP client là dịch vụ có sẵn trên các máy trạm. Nó dùng để đăng ký, cập nhật

thông tin về địa chỉ IP và các bản ghi DNS cho chính máy trạm đó. DHCP client sẽ gửi

yêu cầu đến DHCP server khi nó cần đến 1 địa chỉ IP và các tham số TCP/IP cần thiết

để làm việc trong mạng nội bộ và trên Internet.

13

Page 14: 24.04 Bao Cao Khoa Hoc-Huong S-A

2.2.3.2 Chức năng của DHCP Server

Mỗi thiết bị trên mạng cơ sở TCP/IP phải có một địa chỉ IP duy nhất để truy cập

mạng và các tài nguyên của nó. Không có DHCP, cấu hình IP phải được thực hiện một

cách thủ công cho các máy tính mới, các máy tính di chuyển từ mạng con này sang

mạng con khác, và các máy tính được loại bỏ khỏi mạng.

Bằng việc phát triển DHCP trên mạng, toàn bộ tiến trình này được quản lý tự động

và tập trung. DHCP server bảo quản vùng của các địa chỉ IP và giải phóng một địa chỉ

với bất cứ DHCP client có thể khi nó có thể ghi lên mạng. Bởi vì các địa chỉ IP là động

hơn tĩnh, các địa chỉ không còn được trả lại một cách tự động trong sử dụng đối với các

vùng cấp phát lại.

2.2.3.4.Cách thức hoạt động DHCP

B1: máy chạm khởi động với địa chỉ IP rỗng cho phép liên lạc với DHCP Server

bằng giao thức TCP/IP. Nó broadcast một thông điệp DHCP Discover chứa địa

chỉ Mac và tên máy tính để tìm DHCP Server .

B2: nhiều DHCP Server có thể nhận thông điệp và chuẩn bị địa chỉ IP cho máy

trạm, nó gửi thông điệp DHCP offer chứa địa chỉ Maccuar khách hang, địa chỉ

IP offer ,subnet mask , địa chỉ IP của máy chủ và thời gian cho thuê đến các

Client. Địa chỉ offer đước đánh dấu là “reserver “.

B3: khi Client nhận thông điêp DHCP offer và chấp nhận một trong các địa chỉ

IP, Client sẽ gửi thông điệp DHCP Request để yêu cầu IP phù hợp cho DHCP

thích hợp.

B4: cuối cùng DHCP Server khẳng định lại cới client bằng thông điệp DHCP

Acknowledge.

2.2.3.5 Thực hiện tấn công DHCP Server

Tuy có nhiều ưu điểm, nhưng giao thức DHCP hoạt động lại khá đơn giản, suốt quá

trình trao đổi thông điệp giữa DHCP Server và DHCP Client không có sự xác thực hay

kiểm soát truy cập. DHCP Server không thể biết được rằng nó đang liên lạc với một

DHCP Client bất hợp pháp hay không, ngược lại DHCP Client cũng không thể biết

DHCP Server đang liên lạc có hợp pháp không. Như vậy sẽ có hai tình huống xảy ra:

14

Page 15: 24.04 Bao Cao Khoa Hoc-Huong S-A

Khi DHCP Client là một máy trạm bất hợp pháp:

Khi kẻ tấn công thỏa hiệp thành công với một DHCP Client hợp pháp trong hệ thống

mạng, sau đó thực hiện việc cài đặt, thực thi một chương trình. Chương trình này liên

tục gửi tới DHCP Server các gói tin yêu cầu xin cấp địa chỉ IP với các địa chỉ MAC

nguồn không có thực, cho tới khi dải IP có sẵn trên DHCP Server cạn kiệt vì bị nó thuê

hết. Điều này dẫn tới việc DHCP Server không còn địa chỉ IP nào để cho các DHCP

Client hợp pháp thuê, khiến dịch vụ bị ngưng trệ, các máy trạm khác không thể truy

nhập vào hệ thống mạng để truyền thông với các máy tính trong mạng.

Trường hợp tấn công này chỉ làm cho các máy tính đăng nhập vào hệ thống mạng (sau

khi bị tấn công) không thể sử dụng dịch vụ DHCP, dẫn đến không vào được hệ thống

mạng. Còn các máy trạm khác đã đăng nhập trước đó vẫn hoạt động bình thường.

Đây là kiểu tấn công từ chối dịch vụ DHCP dễ dàng nhất mà kẻ tấn công có thể thực

hiện. Kẻ tấn công chỉ cần rất ít thời gian và băng thông là có thể thực hiện được cuộc

tấn công này.

Khi DHCP Server là một máy chủ bất hợp pháp:

Khi kẻ tấn công phá vỡ được các hàng rào bảo vệ mạng và đoạt được quyền kiểm soát

DHCP Server, nó có thể tạo ra những thay đổi trong cấu hình của DHCP Server theo ý

muốn. Kẻ tấn công có thể tấn công hệ thống mạng theo các cách sau:

- Tấn công DoS hệ thống mạng: Kẻ tấn công thiết lập lại dải IP, subnet mask của

hệ thống để các máy trạm hợp pháp không thể đăng nhập vào hệ thống mạng

được, tạo ra tình trạng DoS trong mạng.

- Tấn công theo kiểu DNS redirect: Kẻ tấn công đổi các thiết lập DNS để chuyển

hướng yêu cầu phân dải tên miền của Client tới các DNS giả mạo, kết quả là

Client có thể bị dẫn dụ tới các website giả mạo được xây dựng nhằm mục đích

đánh cắp thông tin tài khoản của người dùng hoặc website có chứa các mã độc,

virus, trojan... sẽ được tải về máy Client.

- Tấn công theo kiểu Man-in-the-middle: Kẻ tấn công thay đổi Gateway mặc định

trỏ về máy của chúng, để toàn bộ thông tin mà Client gửi ra ngoài hệ thống

15

Page 16: 24.04 Bao Cao Khoa Hoc-Huong S-A

mạng sẽ được chuyển tới máy này thay vì tới Gateway mặc định thực sự. Sau

khi xem được nội dung thông tin, gói tin sẽ được chuyển tiếp đến Gateway thực

sự của mạng và Client vẫn truyền bình thường với các máy ngoài mạng mà

người dùng không hề biết họ đã để lộ thông tin cho kẻ tấn công.

2.2 Mạng lập trình được (Software Define Network)Các giao thức mạng hiện nay ngày càng được hoàn thiện và hoạt động ổn định.

Mặc dù vậy các giao thức mới vẫn không ngừng được nghiên cứu để đáp ứng với nhu

cầu ngày càng cao của con người. Tuy nhiên có một khó khăn lớn khi nghiên cứu một

giao thức mới là không có một môi trường mạng cụ thể để có thể kiểm nghiệm sự

chính xác, tính đúng đắn và chứng minh nó hiệu quả thật hay không, với các mô hình

mạng hiện tại thì tính khả chuyển và sự mềm dẻo gần như không có vì trong một mô

hình mạng ta không thể tác động để điều khiển các thiết bị như mong muốn.

Như vậy nảy sinh vấn đề là cần một mô hình mạng có tính mềm dẻo và khả chuyển

cao hơn, cho phép thực hiện các thay đổi, tùy biến trong mạng mà không phụ thuộc

vào cấu hình các thiết bị phần cứng đang sử dụng trên đó. Đây chính là mô hình của

mạng lập trình được.

Mạng lập trình được là công nghệ cho phép điều khiển hoạt động của mạng dựa

trên việc điều khiển hoạt động của các switch, sử dụng các ngôn ngữ lập trình và có thể

thường xuyên thay đổi bằng cách nạp các đoạn mã nguồn khác vào thay thế. Công

nghệ mạng lập trình được có lợi thế to lớn mà công nghệ mạng hiện tại không có được.

Đó chính là tính mềm dẻo, khả năng mở rộng và tính linh hoạt của mạng. Công nghệ

mạng hiện nay không cho phép can thiệp vào hoạt động của các thiết bị mạng, hoạt

động của các thiết bị này bị phụ thuộc hoàn toàn vào nhà sản xuất quy định. Chính vì

thế, rất khó cho việc thay thế một giao thức cũ bằng các giao thức mới và thử nghiệm

chúng trên các thiết bị thật. Công nghệ mạng lập trình được thì ngược lại, nó cho phép

người lập trình có thể can thiệp vào hoạt động của thiết bị và qua đó điều khiển thiết bị

hoạt động theo ý muốn. Việc này dễ dàng cho việc nghiên cứu cũng như triển khai các

công nghệ mới vào trong mạng mà không cần thay đổi về phần cứng.

16

Page 17: 24.04 Bao Cao Khoa Hoc-Huong S-A

Mạng lập trình được chính là một công nghệ mạng mang tính cách mạng và là

tương lai của công nghệ mạng trong thời gian sắp tới.

2.3 Công nghệ OpenFlow

2.3.1 Tổng quan

OpenFlow là một công nghệ mạng lập trình được. OpenFlow có những ưu điểm mà

nền tảng mạng truyền thống như hiện nay không có được:

- OpenFlow cho phép chạy mô phỏng các giao thức trên một mạng mô phỏng

giống như trong thực tế.

- OpenFlow dựa trên nguyên tắc của Ethernet switch, có chứa một bảng lưu trữ

các luồng (OpenFlow Table) và cung cấp danh sách các API để thao tác với

OpenFlow Table.

- OpenFlow cũng là công cụ hữu hiệu để triển khai các mô hình thử nghiệm quy

mô lớn như GENI (Global Environment for Network Innovation).

2.3.2 Kiến trúc openflow

Hình 3 - Mô hình OpenFlow

Kiến trúc chung của OpenFlow (Như Hình 2.2.2 bên trên) gồm hai thành phần

chính: OpenFlow Switch, Controller.

17

Page 18: 24.04 Bao Cao Khoa Hoc-Huong S-A

a. Thiết bị chuyển mạch (OpenFlow Switch)

Bảng định danh các luồng (Flow Table)

Về mặt ý tưởng, OpenFlow dựa trên thực tế rằng các switch và router đều chứa các

bảng mô tả các luồng trong mạng (Flow Table). Mặc dù Flow Table trên switch, router

hoặc của các hãng khác nhau có thể khác nhau nhưng chúng cùng thực hiện các chức

năng giống nhau là phục vụ cho hoạt động của các ứng dụng. Trên Flow Table có chứa

định nghĩa các luồng thông tin trong mạng (Flow Entry), các Flow Entry chứa các

tham số giúp điều khiển các luồng thông tin đi một cách đúng đắn và hợp lý trong

mạng.

Header Fields Counter Actions

Bảng 1 - Cấu trúc Flow Table entry

Thành phần Header Fields

Header Fields: đây là phần header của flow, phần này chứa các thông tin liên quan tới

địa chỉ đích, địa chỉ nguồn, giao thức đang thực hiện trên flow. Chi tiết các thông tin

như bảng dưới đây:

In Port VLAN ID

Ethernet IP TCP/ UDP

SA DA Type SA DA

Protocol Src port Dst port

Bảng 2 - Các thành phần trong phần Header Fields của Flow Table entry

- In port : cổng flow đi vào switch

- VLAN ID : định danh của VLAN mà switch đang nằm trong

- Ethernet SA/ Ethernet DA : địa chỉ MAC nguồn/ đích

- Ethernet Type : loại gói tin Ethernet

18

Page 19: 24.04 Bao Cao Khoa Hoc-Huong S-A

- IP SA/ IP DA : địa chỉ IP nguồn/ đích

- IP Protocol : giao thức sử dụng

- TCP/UDP Src port/ TCP/UDP Dst port : cổng nguồn/ đích TCP/UDP

Thành phần Counter

Counter là thành phần thực hiện các chức năng thống kê trên một số yếu tố : theo bảng,

theo flow, theo cổng, theo hàng đợi. Trong phạm vi đồ án, ta chỉ quan tâm tới thống kê

theo flow. Bảng dưới đây mô tả về các trường thông kê theo flow:

Tham số Counter Ý nghĩa Độ dài tham số (Tính theo bit)

Thống kê theo flow

Received Packets Số gói nhận được 64

Received Bytes Số byte nhận được 64

Duration (seconds) Khoảng thời gian nhận tính theo giây 32

Duration (nanoseconds)

Khoảng thời gian nhận tính theo nano giây

32

Bảng 3 - Các thành phần trong trường Counter của Flow Table entry

Thành phần Actions

Actions là trường chứa các mô tả tương tác điều khiển cho các flow. Nhờ có trường

này mà các flow khi tới switch sẽ được xử lý tiếp. Nếu một gói tin không tìm thấy hành

động cần thực hiện tiếp theo thì nó sẽ bị loại bỏ. Có một số hành động như sau:

Tên Actions Ý nghĩa

Chuyển tiếp gói tin( Forward)

ALL Gửi gói tin ra tất cả các interface

19

Page 20: 24.04 Bao Cao Khoa Hoc-Huong S-A

CONTROLLER Đóng gói và gửi lên controller

LOCAL Gửi gói tin tới các switch cục bộ trong stack

TABLE Áp dụng hành động trong Flow Table

IN-PORT Gửi gói tin ra cổng vào

NORMAL Xử lý gói tin sử dụng đường định tuyến hỗ trợ trên switch

FLOOD Gửi gói tin theo minimum spanning tree mà không quan tâm tới interface đến

Enqueue Chuyển gói tin tới hàng đợi theo cổng

Drop Xóa một Flow Table entry

Modify-field Sửa tham số trong Flow Table entry

Bảng 4 - Một số Actions trong Flow Table entry

Openflow switch

Trong mạng OpenFlow, có một thành phần quan trọng không thể nhắc thiếu là

OpenFlow Switch. Do sự khác biệt cơ bản về phương thức hoạt động giữa kiến trúc

mạng SDN và các kiến trúc mạng truyền thống nên các OpenFlow Switch có kiến trúc

cũng như chức năng khác biệt hơn. Trong phần này, em sẽ giới thiệu về OpenFlow

Switch và những thành phần chính của nó.

OpenFlow Switch có hai loại: thiết bị cứng và thiết bị mềm. Thiết bị mềm là các

thiết bị hỗ trợ chuyển mạch dùng trong việc mô phỏng và giả lập mạng. Có hai loại

chính: OpenFlow Switch và OpenvSwitch.

OpenVSwitch là một loại switch nhiều tầng được xây dựng với mục đích sử dụng

trong những môi trường ảo hóa như điện toán đám mây. OpenVSwitch được xây dựng

để có thể sử dụng trên nhiều nền tảng khác nhau, có thể sử dụng trong các server có

nhiều các mạng hoặc sử dụng trực tiếp trên các switch thương mại. OpenVSwitch cung

20

Page 21: 24.04 Bao Cao Khoa Hoc-Huong S-A

cấp cho người nhiều tính năng khác nhau để có thể quản lý tốt tài nguyên hệ thống

mạng ảo hóa: hỗ trợ QoS, Firewall, chuẩn 802.Q … và đặc biệt là hỗ trợ giao thức

OpenFlow.

Mặc dù OpenVSwitch có thể hỗ trợ được rất nhiều tính năng nhưng nhược điểm

lớn nhất của OpenVSwitch là được xây dựng bằng phần mềm nên hiệu năng sử dụng

không cao. Do đó, người ta đã phát triển một loại OpenFlow Switch dựa trên nền tảng

NetFPGA để khắc phục nhược điểm trên. Trong đồ án này, để thuận tiện cho việc xây

dựng testbed, em đã sử dụng loại OpenFlow Switch này.

2.4 NetFPGA

NetFPGA là một nền tảng phần cứng giá rẻ, được thiết kế chủ yếu nhằm mục đích

là làm công cụ cho việc giảng dạy và nghiên cứu các thiết kế phần cứng mạng như bộ

định tuyến, bộ chuyển mạch, card mạng... NetFPGA đang được phổ biến một cách

rộng rãi tới các sinh viên, giảng viên và các nhà nghiên cứu và những người quan tâm

tới việc thử nghiệm các ý tưởng mới liên quan đến phần cứng mạng tốc độ cao.

Hình 4 - Nền tảng NetFPGA

Phần cứng:

Cấu trúc phần cứng của NetFPGA bao gồm:

21

Page 22: 24.04 Bao Cao Khoa Hoc-Huong S-A

- Xilinx VirtexTM-II pro 50

- 4x1 Gbps Ethernet ports sử dụng lõi MAC mềm

- 4.5 Mb SRAM và 64 Mb DDR2

- Một chip FPGA Spartan II dùng để làm khối Control Logic cho PCI

interface

- Kit NetFPGA giao tiếp với máy tính thông qua đường bus PCI.

Phần mềm

Phần mềm ở đây là phần mềm điều khiển NetFPGA, chúng bao gồm hệ điều hành

Linux cho PC, driver cho kit NetFPGA, các phần mềm tạo ra giao diện giữa người

dùng và thiết bị mạng.

Xây dựng bộ chuyển mạch trên nền tảng NetFPGA.

Phần mềm

Đây là một gói phần mềm mã mở của Linux, xây dựng một chuyển mạch

OpenFlow bằng phần mềm và có thể download từ website OpenFlow. Phần mềm

OpenFlow tham khảo được chia làm hai phần: phần không gian người dùng (User-

Space) và phần không gian kernel (Kernel-Space).

Các process trong user-space giao tiếp với bộ điều khiển OpenFlow sử dụng SSL

để mã hóa thông tin. Giao thức OpenFlow chỉ ra định dạng của gói tin giữa chuyển

mạch OpenFlow và bộ điều khiển. Thông tin từ bộ chuyển mạch tới bộ điều khiển có

thể là thông báo một flow mới đến hoặc thông báo update trạng thái các đường link. Và

thông tin từ bộ điều khiển tới bộ chuyển mạch như yêu cầu thêm bớt các flow-entry

được trao đổi giữa các process của không gian người dùng và kernel module thông qua

các lời gọi hệ thống IOCTL.

Kernel module chịu trách nhiệm bảo trì các flow-tables, xử lý gói tin và update các

số liệu thống kê. Mặc định, kernel module của bộ chuyển mạch tham khảo sẽ tạo ra các

flow-table bằng phần mềm và forward các gói tin qua card mạng của máy tính.

22

Page 23: 24.04 Bao Cao Khoa Hoc-Huong S-A

Kernel module có khả năng mở rộng bằng cách cho phép các module phần cứng

đăng kí các flow-table thêm vào. Các flow-table của phần cứng sẽ có quyền ưu tiên cao

hơn các flow-table của phần mềm. Các nhà phát triển có thể mở rộng hệ thống tham

khảo bằng cách thêm một NetFPGA OpenFlow Kernel Module. Kernel module này sẽ

sử dụng các interface của kernel module tham khảo để kết nối các flow-table của cả

phần cứng và phần mềm lại với nhau.

Khi một gói tin đến kit NetFPGA, nếu gói tin này được so sánh trùng với một flow-

entry đã tồn tại trong flow-table của phần cứng sẽ được forward trong phần cứng với

tốc độ cao. Nếu gói tin không trùng với một flow-entry nào trong flow-table, ví dụ flow

mới, sau đó sẽ gửi tới kernel module và kernel module sẽ forward gói tin tới bộ điều

khiển.

Nếu flow-table của phần cứng đầy, flow-entry mới sẽ được chèn vào flow-table của

phần mềm. Những gói tin tiếp theo thuộc những flow như thế sẽ không được xử lý ở

phần cứng mà sẽ được forward lên phần mềm để xử lý.

Đặc điểm nổi bật của NetFPGA là có khả năng cung cấp cho người sử dụng một

OpenFlow switch có hiệu năng sử dụng lớn với băng thông tối đa trên mỗi cổng có thể

lên tới 1Gbps hoặc 10Gbps tùy theo từng phiên bản. Đặc biệt hơn, trên mỗi Kit đều có

một chip FPGA cung cấp cho các nhà nghiên cứu khả năng tùy biến thay đổi để xây

dựng, tùy biến các nền tảnh khác nhau của OpenFlow switch. Tuy nhiên, phạm vi hoạt

động chủ yếu của NetFPGA là trong môi trường phòng thí nghiệm, chưa có khẳ năng

triển khai trên các mô hình mạng lớn hơn.

Trên OpenFlow Switch, các gói tin đi vào từ một cổng mạng bất qua IC Ethernet,

sau khi được xử lý định tuyến sẽ được đẩy trở ra một cổng mạng khác. Quá trình này

xảy ra liên tục khi có các gói tin đi vào chuyển mạch. Ngoài ra, khối chuyển mạch vẫn

phải xem xét và cập nhật các tín hiệu điều khiển nhận được từ khối điều khiển qua PCI.

Với Tần số làm việc hiện tại là 125 Mhz, chuyển mạch có thể đáp ứng lưu lượng

1Gbps x 2 (chiều) x 4(cổng) = 8Gbps toàn chuyển mạch.

23

Page 24: 24.04 Bao Cao Khoa Hoc-Huong S-A

24

Page 25: 24.04 Bao Cao Khoa Hoc-Huong S-A

Chương 3: Thiết kế hệ thống và cài đặt công cụ

3.1. Sơ đồ khối

Hình 5 – Sơ đồ khối

Hệ thống được xây dựng dựa trên sơ đồ của một mạng LAN đơn giản. Pox là nơi

xử lý tập trung, thực hiện chức năng cấp phát địa chỉ IP của DHCP Server, đưa ra các

chính sách về bảo mật cũng như đưa ra các quyết định chuyển tiếp gói tin cho switch.

Trong đồ án này, Controller Pox và OpenFlow Switch sẽ được cài đặt trên các máy

tính với cấu hình cụ thể như sau:

Vi xử lý: Pentium ® Dual Core E6700 @ 3.2 Ghz x 2

Ram: 1.8 GB

HDD: 243.9 GB

Controller Pox sẽ chạy trên hệ điều hành Ubuntu 12.04, còn OpenFlow Switch sẽ

chạy trên hệ điều hành CentOS 6.5

Trên Pox ta sẽ xây dựng các module chức năng, sử dụng ngôn ngữ Python, gồm có

các module:

25

Page 26: 24.04 Bao Cao Khoa Hoc-Huong S-A

Module DHCP Server

Module Security

Module Routing

Cách xây dựng và chức năng cụ thể của từng module sẽ được đề cập đến ở phần

sau của đồ án.

OpenFlow Switch sẽ kết nối với các client thông qua các port của NetFPGA. Các

client này sẽ được sử dụng như một attacker hay như một victim, tùy thuộc vào từng

trường hợp cụ thể.

3.2. Bộ điều khiển mạng openflow controller (POX)

3.2.1. Giới thiệu tổng quan

Các bộ điều khiển mạng dùng trong mạng OpenFlow gồm có: bộ điều khiển mạng

mặc định, POX, NOX, SNAC (giao diện Web để quản lý các OpenFlow switch),

Beacon (Java).Tuy nhiên bộ điều khiển mạng chính và đáng chú ý nhất là bộ điều

khiển mạng POX .POX là bộ điều khiển mở, phát triển bằng ngôn ngữ Python, cấu trúc

đơn giản, gọn nhẹ, dễ dàng tạo và thêm các module mới.

Mục đích chính của POX gồm có:

Cung cấp một platform cho phép người lập trình, phát triển mạng triển khai các

ý tưởng mới trong lĩnh vực mạng, sử dụng phần cứng thật. Các nhà phát triển

có thể điều khiển tất cả các kết nối trong mạng gồm có: forwarding, routing…

Ngoài ra POX còn điều khiển cả flow-table trong switch.

Cung cấp phần mềm quản lý mạng hữu ích cho các tổng đài (operator), gồm có

việc quản lý tập trung cho tất cả các switch trong mạng, điều khiển truy nhập

của người dùng.

Phương thức hoạt động của POX:

26

Page 27: 24.04 Bao Cao Khoa Hoc-Huong S-A

POX chạy riêng rẽ trên một máy và quản lý việc chuyển tiếp các bản tin giữa

nhiều switch khác nhau. Trong quá trình mô phỏng, giả lập POX được chạy

trên cùng một máy với đồ hình mạng được tạo ra bởi Mininet.

POX cung cấp các giao diện lập trình giúp cho nhà phát triển sử dụng dễ dàng

lấy được thông tin về sự kiện trong mạng, can thiệp vào lưu lượng, điều khiển

các quyết định chuyển mạch của switch và tạo được lưu lượng.

Khi có flow mới xuất hiện trọng mạng, các gói đầu tiên sẽ được gửi đến bộ điều

khiển mạng POX, tại đây có thể thực hiện được: quyết định xem khi nào sẽ

chuyển tiếp các gói đi trong mạng, định tuyến cho gói tin, thu thập các thông tin

thống kê, chỉnh sửa được gói trong flow đó hoặc có thể xem thêm được về các

gói khác trong cùng flow để thu thập được thêm nhiều thông tin.

POX đơn thuần chỉ là một platform, việc điều khiển mạng được thực hiện bởi các

phần tử chức năng trong POX gọi là POX component, mỗi component thực thi một

chức năng riêng biệt như định tuyến, chuyển mạch, xác thực...Có thể chạy một lúc

nhiều POX component với các chức năng điều khiển khác nhau làm cho việc điều

khiển và quản lý mạng trở nên hoàn hảo hơn. Các ứng dụng trong bộ điều khiển mạng

POX có thể kết hợp với nhận biết các sự kiện trong mạng (network event), can thiệp

vào lưu lượng trong mạng, điều khiển định tuyến của các switch và tạo ra lưu lượng.

3.2.2. Cài đặt và sử dựng

Cài đặt

Tải bộ cài đặt POX, sao chép sang thư mục mong muốn sẽ phát triển các ứng dụng

trên POX.

Sử dụng

Có thể sử dụng các module sẵn có trong các thư mục của POX. Để phát triển

module mới, tạo một file .py trong thư mục tương ứng. Để chạy một module, ta dùng

cửa sổ dòng lệnh, di chuyển vào thư mục POX. Sau đó, dùng câu lệnh: ./pox.py <tên

thư mục chứa module>.<tên module>

27

Page 28: 24.04 Bao Cao Khoa Hoc-Huong S-A

3.3 OpenFlow Switch

3.3.1 Giới thiệu tổng quan

Như đã giới thiệu ở muc 2.2.2 về các loại OpenFlow Switch, để tăng hiệu năng sử

dụng so với các OpenflowVSwitch, trong đồ án này em sẽ cấu hình các Openflow

Switch dựa trên nên tảng NetFPGA.

3.3.2 Cài đặt và sử dụng

3.3.2.1 Cài đặt

Sử dụng một PC chạy hệ điều hành CentOS 6.5 có gắn card NetFPGA để tạo thành

OpenFlow Switch. Các câu lệnh để tiến hành cài đặt các gói NetFPGA và Openflow

Switch gồm có:

Install NetFPGA Driver

# rpm-Uhv http://netfpga.org/yum/el5/RPMS/noarch/netfpga-repo-1-

1_CentOS5.noarch.rpm

# yum install –y netfpga-base

# yum install -y netfpga-openflow_switch

# cd ~/netfpga/

# make

# make install

# reboot

Install OpenFlow

# yum –y install git aotomake pkgconfig libtool gcc

# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.63.tar.gz

# tar xvzf autoconf-2.63.tar.gz

# cd autoconf-2.63

# ./configure - - prefix=/usr

# make && make install

# cd

28

Page 29: 24.04 Bao Cao Khoa Hoc-Huong S-A

# git clone git://gitosis.standford.edu/openflow.git

# cd openflow

# git checkout –b 1.0.0-netfpga origin/dev/tyabe/1.0.0-netfpga

# ./boot.sh

# cd openflow/hw-lib/nf2

# wget http://openflow.org/downloads/netfpga/openflow_switch.bit.100_3.tar.gz

# tar xfvz openflow_switch.bit.100_3.tar.gz

# cd openflow

# ./configure – enable-hw-lib=nf2

# make && make install

Nếu không có lỗi xảy ra thì việc cài đặt đã hoàn tất, nếu có lỗi xảy ra cần xóa bỏ

các file đã tải về và tiến hành cài đặt lại như bên trên. Như vậy, quá trình cài đặt

OpenFlow Switch đã hoàn tất và sẵn sàng sử dụng.

3.3.2.2 Sử dụng

Switch và Pox sẽ được kết nối thông qua cổng Ethernet của các PC, với các địa chỉ

thuộc cùng một dải mạng. Trong đồ án này, Pox được gán địa chỉ 192.168.68.200/24,

còn địa chỉ của Switch là 192.168.68.202/24. Các câu lệnh thực hiện kết nối

# cpci_reprogram/cpci_reprogram.pl –all

# cd /openflow/hw_lib/nf2

# nf_download opwnflow_switch.bit

# ./udatapath/ofdatapath –detach punix: /var/run/dp0 –d 000000000024 –I

nf2c0,nf2c1,nf2c2,nf2c3

# ./seachan/ofprotocol unix: /var/run/dp0 tcp: 192.168.68.200

Trên màn hình terminal sẽ xuất hiện thông báo “connected”. Như vậy, Pox với

Switch đã được kết nối thành công.

29

Page 30: 24.04 Bao Cao Khoa Hoc-Huong S-A

3.4 Các công cụ phát lưu lượng

3.4.1 TCPreplay

3.4.1.1 Giới thiệu chung

TCPreplay là một công cụ phát lưu lượng, cho phép người dùng khả năng chỉnh

sửa và phát lại các loại lưu lượng trong định dạng pcap. TCPreplay có khả năng phân

loại lưu lượng thuộc client hay server, chỉnh sửa một số field trong header của packet

và cuối cùng là khả năng phát lại các loại lưu lượng vào mạng internet hoặc qua một số

thiết bị mạng như router, switch, firewall…

TCPreplay gồm các công cụ sau:

Tcpprep: xử lý các file pcap qua đó cho phép phân loại gói tin được gửi từ client

hay server. Tạo ra các cache files để tcpreplay và tcprewrite sử dụng.

Tcprewrite: Chỉnh sửa header của packet.

Tcpreplay: phát lại các packet với tốc độ tùy ý vào mạng internet.

Tcplieplay: cho phép phát các gói tin tcp vào mạng internet trong một kết nối

TCP (three-way handshake được thiết lập)

Tcpreplay-edit: có chức năng tương tự như tcprewrite và tcpreplay (không

khuyến cáo sử dụng)

Tcpbridge: được sử dụng để kết nối 2 network segments với nhau

Tcpcapinfo: phân tích các bug của tcprewrite cũng như các gói tin pcap bị hỏng

Để cài đặt tcpreplay trên hệ điều hành Ubuntu 12.04 ta sử dụng câu lệnh:

$ sudo apt-get install tcpreplay

TCPreplay chạy trên hệ điều hành Ubuntu 12.04 là phiên bản 3.4.3. Các tài liệu về

tcpreplay có thể được tìm thêm tại trang chủ của phần mềm ở địa chỉ:

http://tcpreplay.synfin.net/

Ta sẽ sử dụng TCPreplay để phát các loại lưu lượng sẵn có.

30

Page 31: 24.04 Bao Cao Khoa Hoc-Huong S-A

3.4.1.2 TCPreplay

TCPreplay cho phép phát lại các file lượng định dạng pcap với nhiều tốc độ khác

nhau. Một vài ví dụ như

$ tcpreplay --intf1=eth0 sample.pcap

Câu lệnh trên cho phép phát lại file sample.pcap với tốc độ mặc định qua

interface Ethernet.

$ tcpreplay --topspeed --intf1=eth0 sample.pcap

Phát file sample.pcap với tốc độ nhanh nhất có thể, tân dụng tối đa đường

truyền.

$ tcpreplay --mbps=10.0 --intf1=eth0 sample.pcap

Phát packet với tốc độ 10 Mbps

$ tcpreplay --multiplier=7.3 --intf1=eth0 sample.pcap

Phát packet với tốc độ gấp 7.3 lần tốc độ ban đầu

$ tcpreplay --pps=25 --intf1=eth0 sample.pcap

Phát 25 packet trên 1 giây

$ tcpreplay --loop=10 --intf1=eth0 sample.pcap

Phát lặp lại packet 10 lần. Để phát lặp lại vô số lần cho đến khi bị ngắt, ta sử

dụng tham số 0

3.4.2 Yersinia

3.4.2.1 Giới thiệu chung

Yersinia là một công cụ mạng, được thiết kế để lợi dụng các kẽ hở của các giao

thức mạng hiện nay. Yersinia được sử dụng để phân tích và kiểm thử các hệ

thống mạng đang vận hành, từ đó có thể tìm ra các lỗ hổng mà hệ thống đó đang gặp

phải.

Các giao thức mà Yersinia khả năng tận dụng được các điểm yếu gồm có:

Spanning Tree Protocol (STP)

Cisco Discovery Protocol (CDP)

Dynamic Trunking Protocol (DTP)

31

Page 32: 24.04 Bao Cao Khoa Hoc-Huong S-A

Dynamic Host Configuration Protocol (DHCP)

Hot Standby Router Protocol (HSRP)

IEEE 802.1Q

IEEE 802.1X

Inter-Switch Link Protocol (ISL)

VLAN Trunking Protocol (VTP)

Để cài đặt Yersinia 0.7.1 trên hệ điều hành Ubuntu 12.04 ta sử dụng câu lệnh:$ sudo apt-get install Yersinia

3.4.2.2 Flood of DHCP Discover

Trong Testbed đang được sử dụng, attacker sẽ sử dụng Yersinia để phát một số

lượng rất lớn các packet DHCP Discover, qua đó có thể làm cạn kiệt số lượng địa chỉ

IP của DHCP Server

Khởi chạy Yersinia GUI, sử dụng câu lệnh: $ sudo Yersinia –G

Hình 6 - Giao diện Yersinia

Để có thể thực hiện DHCP Discover Flood, ta tiến hành các bước sau:

Chọn Interface sử dụng để phát các packet. Click vào nút interface, chọn eth0

để sử dụng cổng Ethernet

32

Page 33: 24.04 Bao Cao Khoa Hoc-Huong S-A

Hình 7 - Chọn Interface

Click vào nút Launch Attack để thực hiện tấn công. Ở đây, ta chọn tab DHCP

và chọn DHCP Discover Message

Hình 8- Chọn kiểu tấn công

Chọn Ok. Yersinia sẽ tự động phát rất nhiều các gói tin DHCP Discover với địa

chỉ MAC nguồn được random, thông qua cổng Ethernet.

33

Page 34: 24.04 Bao Cao Khoa Hoc-Huong S-A

Chương 4 : Một số Module quan trọng trong ControllerViệc điều khiển hệ thống toàn mạng thông qua bộ điều khiển trung tâm Controller

giúp người quản trị viên giám sát, điều khiển, và thi hành những chính sách của mình

một cách nhanh chóng, mềm dẻo.

Dựa vào những ưu điểm nổi bật của SDN cũng như Openflow nhóm chúng em đã

quyết định triển khai một số cách phòng ngừa tấn công trong mạng Lan.

4.1 Dhcp ModuleKhi máy tính(Client) kết nối vào hệ thống mạng được cấu hình lấy địa chỉ IP

động, client sẽ tự động gửi bản tin DHCP discover để rò tìm Server, và xin cấp những thông tin cần thiết. DHCP Controller sẽ luôn lắng nghe những liên kết này, khi có 1 bản tin DHCP bất kỳ tới, DHCP Controller sẽ bắt, phân tích thông tin, xử lý, và đóng gói trả lại 1 bản tin DHCP Reply tương ứng tới máy Client.

Mọi quá trình xử lý DHCP đều tuân theo tiêu chuẩn quốc tế đã được RFC 2131 thông qua.

4.2 Security ModuleLợi dụng sơ hở của cơ chế cấp phát Ip trên DHCP Server, kẻ tấn công gửi hàng

loạt bản tin DHCP discover đến Server với những địa chỉ MAC khác nhau, khi nhận được DHCP discover, Server sẽ dành 1 địa chỉ trong pool tạo sẵn của mình để cấp phát cho IP. Vậy khi pool tài nguyên đã cạn tạm thời, những người dùng hợp phát sẽ không nhận được địa chỉ IP. Kẻ tấn công đã thành công trong việc thực hiện Deny of service.

Để chống lại điều này, Controller sẽ có 1 bảng binding_table lưu những địa chỉ Mac ứng với DHCP_discover đến port . Khi nhận được bản tin DHCP_request đến(người dùng hợp phát) sẽ xóa Mac tương ứng trong bảng Binding_Table. Khi số lượng Mac (bơ vơ) lớn hơn giới hạn cho phép (nghi ngờ tấn công DHCP Server) POX sẽ gửi lệnh xuống block port tương ứng.

4.3 Routing ModuleBộ định tuyến trong mạng đơn thuần chỉ là tìm đường đi cho gói tin thông qua

đường đi của bản tin ARP đã tìm đường trước đó. Controller sẽ lưu tuyến đường vào cơ sở dữ liệu của nó, và chèn những flow entry thích hợp xuống switch phục vụ cho quá trình chuyển tiếp gói tin tiếp theo.

34

Page 35: 24.04 Bao Cao Khoa Hoc-Huong S-A

4.4 Sơ đồ tiến trình xử lý bản tin

Hình 9 – Tiến trình xử lý bản tin

35

Page 36: 24.04 Bao Cao Khoa Hoc-Huong S-A

4.5 Sơ đồ tiến trình DHCP và chống tấn công DHCP

Hình 10 – Chống tần công DHCP

4.6 Chống tấn công4.6.1 Chống tấn công DHCP:

Lợi dụng sơ hở của cơ chế cấp phát Ip trên DHCP Server, kẻ tấn công gửi hàng loạt bản tin DHCP discover đến Server với những địa chỉ MAC khác nhau, khi nhận được DHCP discover, Server sẽ dành 1 địa chỉ trong pool tạo sẵn của mình để cấp phát cho IP. Vậy khi pool tài nguyên đã cạn tạm thời, những người dùng hợp phát sẽ không nhận được địa chỉ IP. Kẻ tấn công đã thành công trong việc thực hiện Deny of service.

36

Page 37: 24.04 Bao Cao Khoa Hoc-Huong S-A

Để chống lại điều này, Controller sẽ có 1 bảng binding_table lưu những địa chỉ Mac ứng với DHCP_discover đến port . Khi nhận được bản tin DHCP_request đến(người dùng hợp phát) sẽ xóa Mac tương ứng trong bảng Binding_Table. Khi số lượng Mac(bơ vơ) lớn hơn giới hạn cho phép (nghi ngờ tấn công DHCP Server) POX sẽ gửi lệnh xuống block port tương ứng.

4.6.2 Chống tấn công ARP Spoofing và IP Spoofing:

Bằng việc kiểm soát được đã cấp phát IP cho Mac nào trên port và switch nào –dựa trên bảng manager_ip lưu thông tin dưới dạng (dpid, port): (mac, ip). Controller dễ dàng phát hiện ra gói tin nào có nội dung không đúng, đưa ra cảnh báo và block port tương ứng trên switch.

4.7 Một số hình ảnh trong quá trình thực hiện

Hình 11 - Lấy địa chỉ IP động từ DHCP Server

37

Page 38: 24.04 Bao Cao Khoa Hoc-Huong S-A

Hình 12 - Bảng cấu hình trên Client

Hình 13 - Bảng lưu thông tin cấp phát IP ứng với từng switch

38

Page 39: 24.04 Bao Cao Khoa Hoc-Huong S-A

Hình 14 - Log file khi bị tấn công DHCP Server

Hình 15 - Nghi ngờ tấn công IP Spoofing và block port

39

Page 40: 24.04 Bao Cao Khoa Hoc-Huong S-A

Hình 16 - Màn hình Wireshark khi xảy ra tấn công, port đã bị block

40

Page 41: 24.04 Bao Cao Khoa Hoc-Huong S-A

TÀI LIỆU THAM KHẢO

41