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
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
Chương 4 : Một số Module quan trọng trong Controller.......................................................................34
2
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
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 spoofng..................................................................................................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 tn............................................................................................................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 tn cấấp phát IP ứng v ới t ừng switch ..............................................................38
Hình 14 - Log fle khi bị tấấn công DHCP Server ......................................................................................39
Hình 15 - Nghi ngờ tấấn công IP Spoofng 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
Chương 1: Lời mở đầu
Ngà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.
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.
Chương 2: Cơ sở lý thuyết
2.1 Tổng quát về mạng LAN
LAN (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
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.
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
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 đó.
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
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
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.
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:
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
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.
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.
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
Bảng 1 -
Counter
Actions
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
Bảng 2 - Các
Ethernet
SA DA
IP
Type
SA D
A
TCP/ UDP
Protocol Src port
Dst
port
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
-
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)
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 32
giây
Thống kê theo flow
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
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
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
- Xem thêm -