Từ viết tắt Thuật ngữ tiếng anh Ý nghĩa SDN Software Defined Network Mạng lập trình được FPGA Field-Programmable Gate Arrays Mảng cổng lập trình được dạng trường IP Internet Protocol G
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
Đào Việt Hùng
TÊN ĐỀ TÀI LUẬN VĂN
Nghiên cứu an ninh mạng
sử dụng kỹ thuật điều khiển bằng phần mềm SDN
Chuyên ngành: Kỹ thuật truyền thông
LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT TRUYỀN THÔNG
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Trương Thu Hương
Trang 2Tôi xin cam đoan luận văn này là công trình nghiên cứu thực sự của cá nhân tôi, được thực hiện dưới sự hướng dẫn khoa học của TS Trương Thu Hương
Các số liệu, kết quả nghiên cứu trong luận văn này là trung thực
Tôi xin chịu trách nhiệm về nghiên cứu của mình
Học viên
Đào Việt Hùng
Trang 3LỜI CAM ĐOAN 1
MỤC LỤC 2
DANH SÁCH HÌNH VẼ 4
DANH SÁCH BẢNG BIỂU 4
DANH SÁCH THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT 5
LỜI NÓI ĐẦU 7
CHƯƠNG 1 GIỚI THIỆU VỀ CÔNG NGHỆ MẠNG LẬP TRÌNH ĐƯỢC - SDN 11
1.1 Mạng lập trình được (SDN) 11
1.1.1 Giới thiệu 11
1.1.2 Kiến trúc SDN 11
1.1.3 Khả năng, lợi ích của SDN 13
1.2 Giao thức OpenFlow 14
1.2.1 Tổng quan 14
1.2.2 Kiến trúc Openflow 15
1.3 Các bản tin trao đổi giữa Controller (POX) và OpenvSwitch 16
1.3.1 Bản tin StatisticRequest 19
1.3.2 Bản tin StatisticResponse 20
1.3.3 Bản tin FlowMod 21
1.4 Kết luận 22
CHƯƠNG 2 THỰC TRẠNG HỆ THỐNG MẠNG CỦA NHÀ CUNG CẤP DỊCH VỤ INTERNET (ISP) TẠI VIỆT NAM 23
2.1 Sơ đồ hệ thống mạng của VDC Online 23
2.2 Giám sát và quản trị mạng 24
2.3 Các hình thức tấn công mạng 26
2.4 Phân tích tình huống tấn công DDOS thực tế tại VDC Online 28
2.5 Đề xuất sơ đồ hệ thống cho ISP 32
2.6 Kết luận 34
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG THÍ NGHIỆM 35
3.1 Sơ đồ hệ thống thí nghiệm 35
3.2 Bộ điều khiển POX 36
Trang 43.2.2 Khối chức năng GetStats 38
3.2.3 Khối chức năng Bandwidth Calculation 39
3.2.4 Khối chức năng Flow Modification 40
3.2.5 Cài đặt và sử dụng 41
3.3 OpenvSwitch 41
3.3.1 Giới thiệu tổng quan 41
3.3.2 Cài đặt và sử dụng 41
3.4 Cấu hình hệ thống thử nghiệm 44
3.4.1 Cấu hình OpenvSwitch 44
3.4.2 Cấu hình POX Controller và thực hiện kết nối tới OpenvSwitch 46
3.5 Kết luận 47
CHƯƠNG 4 KỊCH BẢN THÍ NGHIỆM, ĐÁNH GIÁ KẾT QUẢ 48
4.1 Kịch bản thí nghiệm 48
4.1.1 Kịch bản thí nghiệm 48
4.1.2 Công cụ sử dụng 50
4.2 Mô phỏng tấn công 51
4.2.1 Giả lập hệ thống hoạt động tốt 51
4.2.2 Giả lập tấn công server 52
4.2.3 Xử lý tấn công 54
4.3 Đánh giá kết quả 55
4.3.1 Nhận xét, đánh giá: 55
4.3.2 Hướng phát triển hệ thống: 55
4.4 Kết luận 56
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 59
Trang 5Hình 1.1 Kiến trúc của SDN 12
Hình 1.2 Cấu trúc Switch truyền thống 14
Hình 1.3 Cấu trúc Openflow Switch 15
Hình 1.4 Kiến trúc Openflow 16
Hình 1.5 Các bản tin sử dụng để thống kê và gửi lệnh từ POX xuống OpenvSwitch 16
Hình 1.6 Lưu đồ thuật toán tổng quan của trình ứng dụng trên Controller 18
Hình 1.7 Cấu trúc bàn tin StatisticRequest-Flow 19
Hình 1.8 Cấu trúc bản tin StatisticResponse – Flow 20
Hình 1.9 Cấu trúc trường match trong bản tin StatisticResponse 21
Hình 1.10 Cấu trúc bản tin FlowMod 21
Hình 2.1 Sơ đồ tổng quát hệ thống mạng của VDC Online 23
Hình 2.2 Giám sát băng thông hệ thống bằng Cacti (Nguồn: [18]) 25
Hình 2.3 Giám sát trạng thái hệ thống bằng Nagios (nguồn: Viettel IDC) 26
Hình 2.4 Tấn công vào băng thông (nguồn: VDC Online) 27
Hình 2.5 Tấn công vào khả năng xử lý của thiết bị (Nguồn: VDC Online) 27
Hình 2.6 Sơ đồ tấn công DDOS 29
Hình 2.7 Biểu đồ băng thông có tấn công DDOS thực tế tại 1 ISP ở Việt Nam (Nguồn: VDC Online) 30
Hình 2.8 Kết quả bắt gói tin khi xảy ra tấn công 31
Hình 2.9 Sơ đồ hệ thống đề xuất cho ISP 32
Hình 3.1 Sơ đồ khối hệ thống thử nghiệm 35
Hình 3.2 Lưu đồ thuật toán của khôi chức năng GetStats 38
Hình 3.3 Lưu đồ thuật toán của khối chức năng Bandwidth Calculation 39
Hình 3.4 Lưu đồ thuật toán của khối chức năng Flow Modification 40
Hình 3.2 Flow-table trong OpenvSwitch 47
Hình 4.1 Mô hình thí nghiệm phân tích dữ liệu chạy qua hệ thống 48
Hình 4.2 Sơ đồ bố trí thí nghiệm thực tế 49
Hình 4.3 Giao diện Iperf 50
Hình 4.4 Download từ server với tốc độ 10Mbps 51
Hình 4.5 Giao diện quản trị khi chưa có tấn công 52
Hình 4.6 Bắn luồng dữ liệu băng thông 200Mbps vào server 53
Hình 4.7 Giao diện quản trị khi bắt đầu có tấn công 53
Hình 4.9 Giao diện quản trị hệ thống sau khi đã xử lý tấn công 54
DANH SÁCH BẢNG BIỂU Bảng 1.1 Các loại thông tin điều khiển của bản tin FlowMod 22
Trang 6Từ viết tắt Thuật ngữ tiếng anh Ý nghĩa
SDN Software Defined Network Mạng lập trình được
FPGA Field-Programmable Gate Arrays Mảng cổng lập trình được
dạng trường
IP Internet Protocol Giao thức liên mạng
MAC Media Access Control Điều khiển đa truy nhập SSL Secure Sockets Layer Giao thức bảo mật cá mã
hóa thông tin GUI Graphical User Interface Giao diện người dùng
AP Access Point Điểm truy cập không dây
PC Personal Computer Máy tính cá nhân
VIP Very Important Person Người quan trọng
Controller Bộ điều khiển Server, Client Máy chủ, máy trạm Control Path Mặt điều khiển Data Path Mặt dữ liệu StatsRequest Bản tin yêu cầu thông số StatsResponse Bản tin trả lời thông số FlowMod Bản tin chỉnh sửa ISP Internet Service Provider Nhà mạng viễn thông
Switch Thiết bị chuyển mạch Router Thiết bị định tuyến Control Plane Mặt phẳng điều khiển Data Plane Mặt phẳng dữ liệu Virtulization Ảo hóa
BGP Border Gateway Protocol Giao thức định tuyến liên
vùng MRTG Multi Router Traffic Grapher Công cụ giám sát mạng
bằng biểu đồ DOS Denial of Service Từ chối dịch vụ
DDOS Distributed Denial of Service Từ chối dịch vụ phân tán
Ae aggregated ethernet Cổng mạng tổng hợp
Trang 7SSDP Simple Service Discovery Protocol Giao thức phát hiện dịch vụ
cập VLAN Virtual Local Area Network Mạng riêng ảo
TCP Transmission Control Protocol Giao thức điều khiển vận
chuyển UDP User Datagram Protocol Giao thức dữ liệu ngắn
người dùng
CPU Central Processing Unit Khối xử lý trung tâm
RAM Random Acccess Memory Bộ nhớ truy cập ngẫu nhiên
Trang 8LỜI NÓI ĐẦU
Trong thời đại bùng nổ về thông tin hiện nay, ta có thể bắt gặp tại bất cứ doanh nghiệp lớn nhỏ nào một hệ thống truyền tin với đầy đủ các yếu tố cơ bản cấu thành một
hệ thống mạng Đặc biệt, tại các nhà cung cấp, hệ thống mạng có thể lên tới hàng trăm, hàng nghìn thiết bị với các mô hình kết nối từ đơn giản tới phức tạp Nhưng cho dù hệ thống có phức tạp tới đâu, thì mục đích cuối cùng vẫn là đảm bảo chức năng truyền tin nhanh nhất và an toàn nhất
Nói tới vấn đề bảo mật cũng là nói tới vấn đề cốt lõi, được quan tâm nhất trong lĩnh vực thông tin hiện nay Kiến trúc mạng truyền thống đang ngày càng trở nên không phù hợp với nhu cầu kinh doanh của các doanh nghiệp, nhà khai thác mạng cũng như người dùng cuối Các nhà nghiên cứu đã đưa ra một khái niệm hoàn toàn mới về lĩnh vực điều khiển mạng, đó là SDN – Software Define Network – Mạng lập trình được 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 do các ưu thế mà
Trang 9nó đem lại 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
Với kinh nghiệm bản thân đã từng làm việc tại 3 nhà cung cấp dịch vụ viễn thông (Internet Service Provider – ISP) lớn nhất Việt Nam, người làm đồ án đã tiếp xúc với hàng chục cuộc tấn công từ Internet mỗi tháng Việc phân tích và phát hiện các sự cố tấn công là vấn đề quan trọng cũng như then chốt của mỗi ISP nhằm đảm bảo toàn bộ
hệ thống được vận hảnh an toàn và ổn định nhất cũng như giảm thiểu rủi ro cho khách hàng để từ đó có những phương án phòng tránh hiệu quả nhất
Chính vì vậy, em đã lựa chọn đề tài luận văn thạc sỹ viết về vấn đề nóng bỏng nhất
hiện nay với cách xử lý hoàn toàn mới (ít nhất là mới tại Việt Nam): “Nghiên cứu an
ninh mạng sử dụng kỹ thuật điều khiển bằng phần mềm SDN”
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 Em rất 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
Em xin trân trọng cảm ơn các thầy, cô trường Đại học Bách Khoa Hà Nội, Viện Điện Tử Viễn Thông, Viện Đào Tạo Sau Đại Học đã giúp đỡ em rất nhiều trong suốt quá trình học cao học Em xin chân thành cảm ơn Tiến sỹ Trương Thu Hương đã trực tiếp hướng dẫn em thực hiện thành công đề tài nghiên cứu này
Xin cảm ơn các anh, em trong Future Network Lab 618 thư viện Tạ Quang Bửu đã
hỗ trợ tôi rất nhiều trong việc xây dựng hệ thống test cũng như các công cụ mô phỏng thí nghiệm
Xin cảm ơn Trung tâm dịch vụ Giá trị gia tăng – công ty Điện toán và truyền số liệu VDC và Công ty Viettel IDC đã cung cấp cho tôi một số dữ liệu để làm cơ sở thực tế
áp dụng vào đề tài
Trang 10Cuối cùng, xin gửi lời cảm ơn sâu sắc nhất tới toàn thể gia đình đã là nền tảng, là những người luôn theo sát, chăm sóc động viên cho tôi suốt quá trình học tập cũng như thực hiện đề tài này
Sau đây là mục tiêu và bố cục của luận văn:
Luận văn được chia thành 4 chương:
Chương 1: Giới thiệu về công nghệ mạng lập trình được – SDN
Chương này sẽ cung cấp các kiến thức cơ bản về công nghệ mạng lập trình được (SDN), giao thức Openflow và các bản tin trao đổi trong hệ thống mạng sử dụng OpenFlow
Chương 2: Thực trạng hệ thống mạng của nhà cung cấp dịch vụ Internet (ISP)
tại Việt Nam
Chương này đưa ra thực trạng về hệ thống mạng chung của các nhà cung cấp dịch
vụ Internet tại Việt Nam với đại diện là VDC Online [21], phân tích các trường hợp tấn công DDOS về băng thông thực tế đã gặp phải Chương cũng đưa ra mô hình đề xuất triển khai OpenFlow Switch kết hợp với hệ thống hiện tại tại VDC Online
Chương 3: Xây dựng hệ thống thí nghiệm
Chương này sẽ đưa ra sơ đồ hệ thống mạng thử nghiệm dùng OpenFlow đã được xây dựng tại phòng thí nghiệm Future Internet tại Đại học Bách Khoa Hà Nội, các thành phần, các khối chức năng của hệ thống
Trang 11 Chương 4: Kịch bản thí nghiệm, đánh giá kết quả
Trong chương này, ta sẽ xây dựng các kịch bản thí nghiệm mô phỏng quá trình tân công DDOS một server, các thông tin được hệ thống xuất ra màn hình quản trị trước, trong và sau tấn công
Hà Nội, tháng 9 năm 2015 Học viên
Đào Việt Hùng
Trang 12
CHƯƠNG 1 GIỚI THIỆU VỀ CÔNG NGHỆ MẠNG LẬP TRÌNH ĐƯỢC - SDN
Chương này sẽ cung cấp các kiến thức cơ bản về công nghệ mạng lập trình được (SDN), giao thức Openflow và các bản tin trao đổi trong hệ thống mạng sử dụng OpenFlow
1.1 Mạng lập trình được (SDN)
1.1.1 Giới thiệu
Hiện nay nhu cầu về ứng dụng của người dùng cuối (End user) đang ngày càng gia tăng, kéo theo đó là nhu cầu khác nhau của người dùng về mạng kết nối Mạng cần phải đáp ứng việc thay đổi nhanh chóng các thông số về độ trễ, băng thông, bảng định tuyến và đặc biệt là bảo mật, … theo các yêu cầu của ứng dụng Một mạng có thể lập trình sẽ đáp ứng được yêu cầu trên, mở ra nhiều cánh cửa mới tới các ứng dụng Đó chính là lý do SDN [1] ra đời – mang tới tính mềm dẻo, linh hoạt gần như là vô tận cho mạng thông tin
Các kiến trúc 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 SDN 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
SDN chính là một kiến trúc mạng mang tính cách mạng và là tương lai của công nghệ mạng
1.1.2 Kiến trúc SDN
Kiến trúc của SDN gồm 3 lớp riêng biệt: lớp ứng dụng, lớp điều khiển, và lớp cơ
sở hạ tầng (lớp chuyển tiếp)
Trang 13Lớp ứng dụng (Application layer): là các ứng dụng được triển khai trên mạng,
được kết nối tới lớp điều khiển thông qua các API, cung cấp khả năng cho phép lớp ứng dụng lập trình lại (cấu hình lại) mạng (điều chỉnh các tham số trễ, băng thông, định tuyến, …) thông qua lớp điều khiển
Hình 1.1 Kiến trúc của SDN
Lớp điều khiển (Control layer): thực hiện việc điều khiển cấu hình mạng theo
các yêu cầu từ lớp ứng dụng và khả năng của mạng Các bộ điều khiển này có thể là các phần mềm được lập trình Để điều khiển lớp cơ sở hạ tầng, lớp điều khiển sử dụng các cơ chế như OpenFlow, ONOS, 176ForCES, PCEP, NETCONF, SNMP hoặc thông qua các cơ chế riêng biệt
Lớp cơ sở hạ tầng (Infrastructure layer): là các thiết bị mạng thực tế (vật lý hay
ảo hóa) thực hiện việc chuyển tiếp gói tin theo sự điều khiển của lớp điểu khiển Một
Trang 14thiết bị mạng có thể hoạt động theo sự điều khiển của nhiều bộ điều khiển khác nhau, điều này giúp tăng cường khả năng ảo hóa của mạng
1.1.3 Khả năng, lợi ích của SDN
Khả năng
Lớp điều khiển có thể được lập trình trực tiếp
Mạng được điều chỉnh, thay đổi một cách nhanh chóng thông qua việc thay đổi trên lớp điều khiển
Mạng được quản lý tập trung do phần điều khiển được tập trung trên lớp điều khiển
Cấu hình lớp cơ sở hạ tầng có thể được lập trình trên lớp ứng dụng và truyền đạt xuống các lớp dưới
Lợi ích
Giảm CapEx: SDN giúp giảm thiểu các yêu cầu mua phần cứng theo mục đích xây dựng các dịch vụ, phần cứng mạng trên cơ sở ASIC, và hỗ trợ mô hình pay-as-yougrow (trả những gì bạn dùng) để loại bỏ lãng phí cho việc dự phòng
Giảm OpEx: thông qua các phần tử mạng đã được gia tăng khả năng lập trình, SDN giúp dễ dàng thiết kế, triển khai, quản lý và mở rộng mạng Khả năng phối hợp và dự phòng tự động không những giảm thời gian quản lý tổng thể, mà còn giảm xác suất lỗi
do con người tới việc tối ưu khả năng và độ tin cậy của dịch vụ
Truyền tải nhanh chóng và linh hoạt: giúp các tổ chức triển khai nhanh hơn các ứng dụng, các dịch vụ và cơ sở hạ tầng để nhanh chóng đạt được các mục tiêu kinh doanh
Cho phép thay đổi: cho phép các tổ chức tạo mới các kiểu ứng dụng, dịch vụ và mô hình kinh doanh, để có thể tạo ra các luồng doanh thu mới và nhiều giá trị hơn từ mạng
Mở ra cơ hội cho các nhà cung cấp thiết bị trung gian khi phần điều khiển được tách rời khỏi phần cứng
Trang 151.2 Giao thức OpenFlow
1.2.1 Tổng quan
Openflow [2] dựa trên nguyên tắc Ethernet Switch, với một Flow-table bên trong,
và giao diện chuẩn hóa để thêm, xóa các flow-entries trong Flow-table Openflow đang được sử dụng rộng rãi bởi nhiều nhà nghiên cứu, các viện nghiên cứu trên thế giới do
nó có tính thực tế dựa trên các ưu điểm: cho phép các nhà nghiên cứu chạy các thử nghiệm trên các switch khác nhau theo cùng một cách như nhau, không cần cấu hình triển khai theo cấu hình từng loại switch, hoạt động ở line-rate cùng với mật độ port lớn, hơn nữa các nhà sản xuất vẫn có thể giữ bí mật về thiết kế các switch của họ Ngoài việc cho phép các nhà nghiên cứu đánh giá các ý tưởng của họ trong môi trường lưu lượng thế giới thực, Openflow còn là một công cụ hữu hiệu cho triển khai các testbed quy mô rộng như GENI (Global Environment for Network Innovation, network/testbed gồm các tài nguyên chung cho các nhà nghiên cứu, chia sẻ tài nguyên bằng phương pháp ảo hóa- virtulization)
Sự khác nhau trong cấu trúc của Switch truyền thống và Switch hỗ trợ công nghệ Openflow:
Hình 1.2 Cấu trúc Switch truyền thống
Trang 16Hình 1.3 Cấu trúc Openflow Switch
Trong SDN, Openflow được dùng để tách biệt hẳn phần điều khiển ra khỏi phần chuyển tiếp và cung cấp khả năng lập trình cho lớp điều khiển, OpenFlow là tiêu chuẩn đầu tiên, cung cấp khả năng truyền thông giữa các giao diện của lớp điều khiển và lớp chuyển tiếp trong kiến trúc SDN OpenFlow cho phép truy cập trực tiếp và điều khiển mặt phẳng chuyển tiếp của các thiết bị mạng như switch và router, cả thiết bị vật lý và thiết bị ảo, do đó giúp di chuyển phần điều khiển mạng ra khỏi các thiết bị chuyển mạch thực tế tới phần mềm điều khiển trung tâm
Secure Channel: kênh kết nối thiết bị tới bộ điều khiển (controller), cho phép các
lệnh và các gói tin được gửi giữa bộ điều khiển và thiết bị,
OpenFlow Protocol: giao thức cung cấp phương thức tiêu chuẩn và mở cho một bộ
điều khiển truyền thông với thiết bị
Trang 17Hình 1.4 Kiến trúc Openflow
1.3 Các bản tin trao đổi giữa Controller (POX) và OpenvSwitch
Trong phần này, chúng ta sẽ tìm hiểu một số bản tin trao đổi [8] giữa Controller và Openflow Switch
Hình 1.5 Các bản tin sử dụng để thống kê và gửi lệnh từ POX xuống OpenvSwitch
Trang 18Đầu tiên Controller sẽ gửi bản tin StatsRequest xuống Switch để yêu cầu các thông
số của từng luồng trong bảng Flow-table
Sau khi nhận được yêu cầu về các thông số của từng luồng trong bảng Flow-table
từ Controller, Switch sẽ thực hiện quá trình thu thập dữ liệu về các thông số của từng luồng và đóng gói nó vào một gói tin - StatisticResponse, gói tin này là một mảng với các phần tử bên trong chứa thông số chi tiết về từng luồng một
Controller sau khi nhận được bản tin trả lời từ Switch lên về những gì mà nó yêu cầu, nó sẽ thực hiện bóc tách gói tin StatisticResponse, duyệt các phần tử trong mảng
để lấy các thông số của các luồng Thực hiện việc tính toán, thống kê và đưa ra cảnh báo về các luồng có băng thông vi phạm mức ngưỡng do người quản trị đặt ra Từ đây, Controller có thể gửi bản tin FlowMod xuống Switch để thực hiện các chính sách với từng luồng vi phạm
Trang 19Hình 1.6 Lưu đồ thuật toán tổng quan của trình ứng dụng trên Controller
Trang 201.3.1 Bản tin StatisticRequest
Hình 1.7 Cấu trúc bàn tin StatisticRequest-Flow
Cấu trúc bản tin StatisticReq có chứa một tiêu đề, gồm 2 bytes trường loại, 2 bytes trường cờ và một phần Body Bản tin này gồm các loại bản tin như sau : Flow – yêu cầu về thông số của từng luồng, Aggregate – yêu cầu về thông số của toàn bộ bảng Flow-table trong Switch mà nó gửi yêu cầu xuống, Port – yêu cầu về thông số của các cổng trong Switch, Queue – yêu cầu về thông số và tình trạng hàng đợi tại các cổng của Switch, Vendor – yêu cầu thông số về cấu hình của Switch mà nó gửi bản tin xuống
Trang 21Ở trong đồ án này, chúng em sử dụng bản tin Flow – yêu cầu thông số về từng luồng trong bảng Flow-table của Switch Khi gửi gói tin xuống Switch thì trường match trong phần body của bản tin sẽ để trống, như vậy thì Switch sẽ hiểu là phải gửi thông số về tất cả các luồng mà nó có trong bảng Flow-table lên Controller
1.3.2 Bản tin StatisticResponse
Hình 1.8 Cấu trúc bản tin StatisticResponse – Flow
Trang 22Hình 1.9 Cấu trúc trường match trong bản tin StatisticResponse
Cấu trúc bản tin StatsRes-Flow chia sẻ cấu trúc tương tự với StatsReq-Flow trừ phần body Trong phần body của StatsRes – Flow, em lấy ra các thông số: byte_count, packet_count, priority, dl_src, dl_dst, nw_src, nw_dst, tp_src, tp_dst để phục vụ cho việc tính toán và làm đầu vào cho module DropFlow
1.3.3 Bản tin FlowMod
Hình 1.10 Cấu trúc bản tin FlowMod
Trang 23Bảng 1.1 Các loại thông tin điều khiển của bản tin FlowMod
Cấu trúc bản tin FlowMod bắt đầu với một header và được theo sau bởi các trường
match, cookie, command, idle_timeout, hard_timeout, priority, buffer_id, out_port, flags và action[] Trong đồ án này, chúng em dùng các trường: match, command (Modify), idle_timeout, prioriy để gửi lệnh từ Controller xuống Switch để thực hiện
lệnh Drop với các luồng vi phạm chính sách
Trang 24CHƯƠNG 2 THỰC TRẠNG HỆ THỐNG MẠNG CỦA NHÀ CUNG CẤP DỊCH
VỤ INTERNET (ISP) TẠI VIỆT NAM
Chương này đưa ra thực trạng về hệ thống mạng chung của các nhà cung cấp dịch
vụ Internet tại Việt Nam với đại diện là VDC Online [21], phân tích các trường hợp tấn công DDOS về băng thông thực tế đã gặp phải Chương cũng đưa ra mô hình đề xuất triển khai OpenFlow Switch kết hợp với hệ thống hiện tại tại VDC Online
2.1 Sơ đồ hệ thống mạng của VDC Online
Hình 2.1 Sơ đồ tổng quát hệ thống mạng của VDC Online
Trang 25Hình 2.1 là ví dù về sơ đổ tổng quát hệ thống mạng của VDC Online Về cơ bản, tất cả các ISP tại Việt Nam đều đang sử dụng mô hình mạng 3 lớp kinh điển như trên Các thành phần chính của mô hình này bao gồm:
Access: Lớp truy nhập, làm nhiệm vụ kết nối trực tiếp tới khách hàng Tùy vào mô hình và nhu cầu thực tế, lớp access có thể là các Ring hoặc các Switch đơn lẻ
Distribute: Lớp phân phối, làm nhiệm vụ kết nối các switch trong lớp access với lớp Core Lớp Distribute bao gồm các switch có thông lượng chuyển mạch lớn
Core: Lớp lõi, làm nhiệm vụ định tuyến, giới hạn băng thông, quản lý truy nhập Lớp Core là lớp quan trọng nhất, bao gồm các switch có năng lực cao nhất của hệ thống
Ngoài ra sẽ có thêm lớp BGP Router bao gồm các Router biên để kết nối BGP đến các ISP khác
2.2 Giám sát và quản trị mạng
Với hệ thống mạng lên tới hàng trăm, thậm chí hàng nghìn thiết bị thì việc vận hành khai thác là vô cùng phức tạp nếu như không có các công cụ quản lý, giám sát Các công cụ giám sát được sử dụng phổ biến ở các nhà mạng tại Việt Nam có thể phân
ra làm 2 loại chính:
- Giám sát băng thông: Có một số công cụ giám sát băng thông như MRTG [10] (hiện nay đang được sử dụng tại VDC Online), Cacti [11] (hiện nay đang được sử dụng tại FPT Telecom, Viettel IDC) MRTG và Cacti sử dụng SNMP để lấy thông tin về băng thông trên từng cổng của thiết bị mạng, tổng hợp lại và vẽ thành biểu đồ băng thông Người quản trị khi sử dụng biểu đồ băng thông sẽ có cái nhìn bao quát về lịch
sử thông lượng dữ liệu đi ra, vào cổng thiết bị đó Hình 2.2 bên dưới là một ví dụ về giám sát băng thông thiết bị bằng công cụ Cacti Giao diện cơ bản gồm 2 phần: Phần Menu và phần biểu đồ
Trang 26Hình 2.2 Giám sát băng thông hệ thống bằng Cacti (Nguồn: [18])
- Giám sát trạng thái: Có một số công cụ giám sát trạng thái phổ biến như Nagios
[12] (hiện nay đang được sử dụng tại Viettel IDC, VDC Online), Opsview [13] (hiện
đang được sử dụng tại FPT Telecom), Zabbix [14] (đang được sử dụng tại một số ISP
khác) Các công cụ giám sát trạng thái sẽ chủ yếu tập trung vào tình trạng các thông số
phần cứng cũng như phần mềm của thiết bị, như CPU, RAM, ổ cứng, FAN, POWER,
trạng thái UP/DOWN Các công cụ này có thể có hoặc không tổng hợp các thông số
trạng thái để vẽ thành biểu đồ Hình 2.3 bên dưới là một ví dụ về giám sát trạng thái
thiết bị bằng công cụ Nagios được lấy từ hệ thống giám sát của Viettel IDC Trạng thái
thiết bị được thể hiện thông qua màu sắc tương ứng: xanh – bình thường, vàng – cảnh
báo, đỏ - lỗi
Toàn bộ các hệ thống giám nói trên luôn đi kèm hệ thống cảnh báo Có nhiều loại
cảnh báo, nhưng phổ biến nhất là cảnh báo bằng email, sms, cảnh báo bằng đèn hiệu và
âm thanh
Hệ thống giám sát cung cấp cho người quản trị cái nhìn tổng quan cũng như chi tiết
về hệ thống Đây là cơ sở trực quan và hữu dụng nhất để người quản trị có thể phát
hiện sớm các tấn công vào hệ thống mạng của mình
Trang 27Hình 2.3 Giám sát trạng thái hệ thống bằng Nagios (nguồn: Viettel IDC)
2.3 Các hình thức tấn công mạng
Các nhà cung cấp luôn là đơn vị chịu nhiều cuộc tấn công mạng nhất Có những cuộc tấn công nhằm vào chính ISP, cũng có những cuộc tấn công nhằm vào khách hàng
Hiện nay, có rất nhiều hình thức tấn công mạng: DOS, DDOS, SYN FLOOD, MAC FLOOD Đứng trên góc độ quản trị mạng, các hình thức tấn công sẽ chia làm 2 loại thường gặp nhất:
Tấn công vào băng thông: Hacker sẽ đẩy luồng băng thông cực lớn làm nghẽn
băng thông của nạn nhân, khiến mọi truy cập tới nạn nhân bị gián đoạn
Trang 28Hình 2.4 Tấn công vào băng thông (nguồn: VDC Online)
Hình 2.4 là một ví dụ về một cuộc tấn công DDOS sử dụng cơ chế tràn băng thông Dữ liệu được lấy trong báo cáo mạng tháng 7 của VDC Online Biểu đồ cho thấy, luồng dữ liệu tấn công đi theo hướng Output – đi ra khỏi cổng thiết bị Khi chưa có tấn công, băng thông output rất bé, xấp xỉ 0 Thời điểm bắt đầu tấn công, băng thông output tăng đột biến lên khoảng 1Gbps và không tăng nữa Sở dĩ băng thông đạt ngưỡng 1Gbps vì đây chính là dung lượng của kênh truyền Kênh truyền của nạn nhân khi đó đã đạt ngưỡng và nghẽn, dẫn tới mọi kết nối tới server bị DDOS sẽ gián đoạn
Tấn công vào khả năng xử lý của thiết bị: Hacker sẽ liên tục đẩy số lượng
request cực lớn làm vượt ngưỡng khả năng xử lý của thiết bị, khiến thiết bị không thể
xử lý thêm bất cứ request nào, qua đó làm gián đoạn dịch vụ của nạn nhân
Hình 2.5 Tấn công vào khả năng xử lý của thiết bị (Nguồn: VDC Online)
Trang 29Hình 2.5 là một ví dụ về một cuộc tấn công DDOS sử dụng cơ chế làm vượt ngưỡng CPU Dữ liệu được lấy trong báo cáo mạng tháng 7 của VDC Online Biểu đồ cho thấy, CPU của thiết bị khi chưa có tấn công đang ở mức 50% Các đỉnh (peak) khi này chỉ là các thời điểm CPU tăng nhẹ vì phải xử lý nhiều tác vụ và giảm ngay trong thời gian ngắn Thời điểm bắt đầu tấn công, CPU tăng vọt lên 100%, thậm chí đồ thị còn thể hiện CPU đạt tới 120% Sở dĩ CPU vượt lên 120% là do cơ chế tính toán của công
cụ, mặt khác còn phụ thuộc khả năng ép xung nhịp của CPU Khi CPU đạt 100%, thiết
bị không có khả năng xử lý thêm bất cứ gói tin nào nữa, dẫn tới mọi kết nối tới server
bị DDOS sẽ gián đoạn
Quản trị mạng sẽ dựa vào các thông tin cảnh báo từ hệ thống giám sát để phát hiện tấn công Sau đó, tùy vào loại hình tấn công để đưa ra phương án xử lý
2.4 Phân tích tình huống tấn công DDOS thực tế tại VDC Online
Với môi trường phòng thí nghiệm, rất khó để có thể giả lập tấn công DDOS với dữ liệu giống với môi trường thật Để hiểu sâu hơn về quá trình phát hiện và xử lý một cuộc tấn công DDOS theo cách truyền thống của người quản trị mạng, em xin đưa ra
dữ liệu hình ảnh từ VDC Online
Hình 2.6 dưới đây là mô hình mô phỏng tấn công Hacker sẽ đứng từ ngoài Internet, tấn công vào một server chạy dịch vụ Server này đang thuê Internet của VDC Online
Mô hình bên trong của VDC Online ta sẽ quan tâm tới 2 lớp: Access và Distribute
Hệ thống giám sát băng thông sẽ giám sát toàn bộ cổng Uplink của hệ thống Switch Distribute (các cổng ae – aggregated ethernet) và cảnh báo khi có băng thông bất thường
Trang 30Hình 2.6 Sơ đồ tấn công DDOS
Trong quá trình làm việc tại VDC Online ở vị trí quản trị mạng, em đã có cơ hội gặp và xử lý rất nhiều vụ tấn công DDOS nhằm vào các khách hàng thuê đường truyền của công ty Trung bình mỗi tuần sẽ có từ 2 tới 3 vụ tấn công như vậy
Lấy ví dụ thực tế về một trường hợp khách hàng bị tấn công DDOS bằng băng thông, hệ thống giám sát sẽ đưa ra hình ảnh kèm cảnh báo tới người quản tri