.4 Kiến trúc IDS dựa trên Event Based

Một phần của tài liệu Các biện pháp nâng cao tính bảo mật của mạng doanh nghiệp sử dụng kỹ thuật mạng điều khiển bằng phần mềm (Trang 33)

Chương 3: CÔNG NGHỆ OPENFLOW VÀ CÁC CÔNG CỤ THỰC HIỆN

Chương 3 trình bày về cơng nghệ OpenFlow và các công cụ được sử dụng để thực hiện đồ án. Trước hết là phần giới thiệu về công nghệ OpenFlow dùng để xây dựng các mạng ảo hóa gồm các switch theo chuẩn OpenFlow. NOX-bộ điều khiển mạng dùng điều khiển switch hỗ trợ công nghệ OpenFlow.

3.1 Cơng nghệ OpenFlow

Hiện nay hầu như khơng có phương pháp nào có tính thực tế để thử nghiệm, kiểm chứng các giao thức mạng mới trong môi trường thực tế với quy mô lưu lượng thật.Kết quả là hầu hết các ý tưởng mới từ cộng đồng nghiên cứu không được thử nghiệm và kiểm chứng. OpenFlow là phương tiện cho phép các nhà nghiên cứu chạy các giao thức thử nghiệm trên hệ thống mạng mà ta sử dụng hàng ngày. OpenFlow dựa trên nguyên tắc Ethernet switch[8], 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. Mục đích của việc đưa ra OpenFlow nhằm khuyến khích các nhà sản xuất thiết bị mạng thêm chức năng OpenFlow vào các switch của họ để mang triển khai trong thực tế. 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 qui 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 ). GENI là kiến trúc mạng có khả năng lập trình được.Mạng có khả năng lập trình

thử nghiệm trên mạng đồng thời khơng ảnh hưởng lẫn nhau.OpenFlow cho phép ta có thể lập trình được switch/router.

Hình 3.1 và Hình 3.2 cho thấy 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 3.1 Cấu trúc của switch thơng thường

Hình 3.3 OpenFlow switch lý tưởng

OpenFlow cung cấp một giao thức mở để lập trình flow-table trong các switch/router khác nhau.Người quản trị mạng có thể chia traffic thanh các luồng (flow) cho mạng thông thường và luồng cho việc nghiên cứu.Bằng cách này, các nhà nghiên cứu có thể thử các giao thức định tuyến, các mơ hình bảo mật, các cách đánh địa chỉ mới, thậm chí thay thế cho IP.Hình 3.3 trên mô tả một OpenFlow switch giao tiếp với một controller thông qua kênh kết nối bảo mật SSL sử dụng giao thức OpenFlow. Kênh bảo mật kết nối switch với controller sử dụng giao thức OpenFlow cho phép các lệnh và các packet được truyền qua lại giữa controller và switch.Giao thức OpenFlow là một giao thức mở và chuẩn hóa cho phép controller giao tiếp với switch. Mỗi OpenFlow switch chứa một flow-table gồm các flow- entry, mỗi flow-entry có một hoặc nhiều action tương ứng, khi switch nhận được flow có đặc điểm giống như mơ tả trong flow-entry, switch sẽ xử lý các packet của flow đó theo các action tương ứng. Các action trong chuẩn OpenFlow 1.0 được mơ tả trong Hình 3.4 gồm có: chuyển tiếp gói tin đến bộ điều khiển (controller), hủy

gói tin, thay đổi các trường trong gói tin, chuyển gói tin đến một hoặc nhiều cổng xác định của switch.

Hình 3.4 Flow Table Actions

Bảng 3.1 thể hiện các thành phần của một flow table entry, bao gồm trường tiêu đề

(header field), counter chứa các thông số thống kê sẽ nói chi tiết ở chương 4 và trường action.

Bảng 3.1 Flow Table entry

Header Fields Counters Actions

Trường tiêu đề trong OpenFlow switch loại “Type 0” bao gồm 10 tham số như trong Bảng 3.2. Một luồng TCP có thể được xác định bằng tồn bộ 10 tham số, mặt khác một luồng IP có thể định nghĩa mà khơng bao gồm địa chỉ transport ports. Mỗi trường tiêu đề có thể là một ký tự “wildcard” (hay ký tự *) để cho phép định nghĩa tổng hợp các nhiều flow, ví dụ như các flow chỉ được định nghĩa bởi trường

VLAN ID sẽ áp dụng cho tất cả lưu lượng của một VLAN cụ thể.

Bảng 3.2 Trường tiêu đề trong OpenFlow switch

In Port

VLAN ID

Ethernet IP TCP/UDP

Trường tiêu đề bao gồm một bộ 10 tham số sau đây: - Cổng vào switch

- VLAN ID

- Địa chỉ MAC nguồn (SMA) - Địa chỉ MAC đích (DMA) - Ethernet type

- Địa chỉ IP đích (SA) - Địa chỉ IP nguồn (DA) - Giao thức IP (Prot)

- Cổng nguồn TCP/UDP (Src) - Cổng đích TCP/UDP (Dst)

Kênh bảo mật (secure channel):

Là giao diện kết nối các OpenFlow Switch đến controller.Thông qua giao diện này, Controller cấu hình và quản lý các switch, nhận các sự kiện từ switch, gửi lệnh và gói tin tới các switch. Các giao diện được thực hiện riêng biệt, tuy nhiên tất cả các bản tin gửi qua kênh bảo mật phải được định dạng theo giao thức OpenFlow. Giao thức OpenFlow hỗ trợ 3 loại bản tin sau đây:

Controller to Switch Message : được tạo bởi Controller và sử dụng để trực

tiếp quản lý và kiểm tra trạng thái của OpenFlow Switch, có thể khơng địi hỏi sự phản hồi từ Switch, bao gồm các tin nhắn:

- Features Message: Khi Transport Layer Security (TLS) được thành lập,

Controller sẽ gửi tin nhắn này đến Switch. Switch phải gửi phản hồi xác định khả năng hỗ trợ của nó tới Controller.

- Configuaration Message: Controller có khả năng thiếp lập và cấu hình các

tham số của Switch. Swicth sẽ phản hồi 1 truy vấn từ Controller.

- Modify-State Message: thông điệp này nhằm quản lý trạng thái của Switch,

- Read-State Message: Giúp Controller thu thập số liệu thống kê từ các flow-

table, ports, các flow-entry riêng lẻ.

- Send Packet Message: Đưa các gói ra một cổng xác định của Switch.

- Barrier Message: Để đảm bảo các tin nhắn phụ thuộc đã được đáp ứng hoặc

để nhận thơng báo cho các hoạt động đã hồn thành.

Asynchronous Message: được bắt đầu bởi Switch, dùng để cập nhật các sự

kiện trong mạng và trạng thái của Switch cho Controller:

- Packet - in Message:Với các gói mà khơng có entry nào phù hợp, Switch sẽ

gửi tin nhắn này tới Controller

- Flow - Removed Message:Khi 1 flow-entry đuọc xóa khỏi Flow-table

- Port - Status Message: thay đổi trạng thái cấu hình của các port

- Error Message: Switch thông báo cho Controller các vấn lỗi có thể xảy ra

trong q trình hoạt động.

Symmetic Message: được gửi đi hoặc do Switch, hoặc do Controller mà

khơng cần có u cầu:

- Hell : được trao đổi giữa Controller và Switch khi 1 kết nối được khởi động

- Echo Request/Reply: có thể sử dụng để chỉ ra độ trễ, băng thông hoặc khả

năng của một kết nối Controller – Switch.

- Vendor: cung cấp các tiêu chuẩn cho Switch để đáp ứng các chức năng bổ

sung trong các thông điệp OpenFlow.

Giao thức OpenFlow Protocol cung cấp chuẩn mở cho bộ điều khiển giao tiếp với switch. Bằng cách chỉ ra giao diện chuẩn (OpenFlow Protocol) qua đó, các entry trong Flow-table có thể được định nghĩa từ ngoài (qua controller), các nhà nghiên cứu khơng cần lập trình từng switch.

3.2 Bộ điều khiển NOX

Bộ điều khiển NOX [11] là thành phần có trách nhiệm quản lý các OpenFlow Switch, có thể thêm, sửa, hay xóa bỏ các flow-entry trong flow-table của Switch. Controller có thể là một ứng dụng chạy trên PC hoặc một thiết bị tinh vi có thể linh

động kiểm sốt mạng lưới của mình cũng như quyết định cách xử lý các luồng dữ liệu.

3.2.1 Giới thiệu về NOX

Các controller dùng trong mạng OpenFlow gồm có: bộ điều khiển mặc định, NOX, SNAC (giao diện web dùng quản lý mạng OpenFlow), Beacon. Tuy nhiên controller chính và đáng chú ý nhất là NOX Controller (Bộ điều khiển NOX) [13]. NOX là một bộ điều khiển OpenFlow mã nguồn mở. Mục đích của NOX nhằm cung cấp một nền tảng cho việc viết các phần mềm quản lý mạng ( như các ứng dụng routing, firewall…) sử dụng ngôn ngữ C++ hoặc Python. Tuy vẫn cịn trong q trình phát triển nhưng NOX hiện nay đã được sử dụng trong một số mạng lớn. NOX hỗ trợ cả các mạng doanh nghiệp lớn gồm hàng trăm switch hỗ trợ hàng ngàn host và home network với chỉ một switch đơn chạy trên platform nhúng hiệu năng thấp. NOX chạy trên phần cứng PC thông thường và cung cấp một mơi trường phần mềm trong đó các chương trình có thể điều khiển một mạng lớn với tốc độ hàng Gbps.

3.2.2 Chức năng và phương thức hoạt động của NOX Bộ điều khiển NOX cung cấp các chức năng sau: Bộ điều khiển NOX cung cấp các chức năng sau:

 Các chức năng quản lý, hiển thị, điều khiển truy nhập trên các switch giá rẻ.  Một giao diện cho phép quản lý các switch có tốc độ line speed.Các nhà phát triển có thể ghép thêm phần mềm điều khiển của riêng họ.

 Mơ hình lập trình tập trung cho tồn bộ mạng – một chương trình có thể điều khiển việc chuyển mạch của tất cả các switch trong mạng. Điều này làm cho việc phát triển chương trình trở nên dễ dàng hơn mơ hình phân tán chuẩn trước đây.

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

 NOX 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 tại nhiều chuyển mạch khác nhau

 NOX 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 tiếp 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 NOX controller, tại đây có thể thực hiện được: quyết định xem lúc nào khi nào sẽ chuyển tiếp các gói đi trong mạng, 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.

Hình 3.5 Mạng OpenFlow switch với NOX controller

Hình 3.5 Mơ tả đồ hình mạng với các switch OpenFlow và NOX controller,

ở đây các phần mềm điều khiển NOX chạy trên một PC và điều khiển bảng định tuyến của nhiều switch. Mạng gồm nhiều OpenFlow switch và nhiều server kết nối với nhau. NOX đơ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 NOX component, mỗi component thực thi một chức năng riêng biệt. Có thể chạy một lúc nhiều NOX 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 NOX

controller có thể kết nối với các 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.3 Các thành phần và các sự kiện của NOX Các thành phần của NOX bao gồm[11]: Các thành phần của NOX bao gồm[11]:

 Core apps: cung cấp chức năng cho các ứng dụng mạng và các dịch vụ web.Thành phần Core apps được đặt tại thư mục: src/nox/coreapps/

 Network apps: các ứng dụng để quản lý mạng

Discovery: theo dõi các liên kết giữa các thiết bị chuyển mạchđiều khiển

Topology: cung cấp một bản ghi trong bộ nhớ của tất cả các liên kết hiện lên

trong mạng

Authenticator: theo dõi vị trí của máy chủ và thiết bị chuyển mạch trên mạng

Routing:là thành phần chịu trách nhiệm tính tốn đường đi

Monitoring: là thành phần cho phép thống kê các thông số của mạng như

packet loss, số byte nhận/gửi qua từng port…..

Thành phần Network apps được đặt tại thư mục: src/nox/netapps/

 Web apps: Các ứng dụng web trong NOX được sử dụng để quản lý NOX thông qua dịch vụ web

Webservice: cung cấp giao diện web dịch vụ cho các ứng dụng NOX

Webserver: là ứng dụng lưu trữ các giao diện điều khiển

Webserviceclient

Thành phần web được đặt tại thư mục: src/nox/webapps/

Ngồi ra chúng ta có thể tự phát triển thêm các chức năng khác để phục vụ mục đích riêng hoặc chia sẻ cùng cộng đồng. Các nhà phát triển khuyến khích mọi người cùng phát triển, chia sẻ và đóng góp giúp cho các phiên bản NOX tiếp theo được hồn thiện hơn.

Có thể nói, các thành phần NOX là một tập hợp để xử lý các sự kiện của NOX (NOX Events). Các sự kiện được hiểu là tất cả những gì thực hiện trong NOX hay trên mạng nhưng có liên quan đến các thành phần của NOX.

NOX bao gồm một số sự kiện được tích hợp sẵn, ánh xạ với các bản tin OpenFlow nhận được tại NOX Controller:

Datapath_join_event: xuất hiện khi có một switch được phát hiện trong

mạng.

Datapath_leave_event: xuất hiện khi có một switch rời khỏi mạng.

Packet_in_event: được gọi cho mỗi gói tin nhận bởi NOX. Sự kiện này bao

gồm: ID của switch, cổng đến của gói tin, bộ đệm gói tin.

Flow_mod_event: khi một dòng lưu lượng được thêm vào hoặc sửa đổi bởi

NOX.

Flow_removed_event: khi một dịng lưu lượng được q hạn hoặc bị xóa bỏ. Port_status_event: chỉ ra sự thay đổi trạng thái của các cổng (disable/enable,

tốc độ, tên cổng).

Port_stats_in: được tăng lên khi một switch nhận được một bản tin Port_stats

đáp ứng bản tin Port_starts_requets (bao gồm các giá trị truy cập hiện tại cho một cổng nhất định: rx, tx, lỗi…).

Ngồi ra, các thành phần cịn có thể tự xác định và chuyển các sự kiện cấp cao hơn cho các thành phần khác xử lý, các sự kiện đó là:

Host_event: khi một host tham gia hoặc rời mạng (thường do time out) sự

kiện này sẽ được tăng lên.

Flow_in_event: khi một Packet_in_event được nhận từ mạng, Flow_in_event

sau đó được xử lý bởi ứng dụng Routing.

Link_event: khi một link được khám phá hay thay đổi trong mạng.

Chương 4: XÂY DỰNG HỆ THỐNG THỬ NGHIỆM SỬ DỤNG CÔNG NGHỆ OPENFLOW ĐỂ NÂNG CAO TÍNH BẢO MẬT

4.1 Giới thiệu

Trong những thập kỷ gần đây, thế giới và Việt Nam đã và đang chứng kiến sự phát triển bùng nổ của công nghệ thông tin, truyền thông. Đặc biệt sự phát triển của các trang mạng (websites) và các ứng dụng trên các trang mạng đã cung cấp nhiều tiện ích cho người sử dụng từ tìm kiếm, tra cứu thơng tin đến thực hiện các giao dịch cá nhân, trao đổi kinh doanh, mua bán, thanh toán hàng hố, dịch vụ, thực hiện các dịch vụ cơng... Tuy nhiên, trong sự phát triển mạnh mẽ của các trang mạng nói riêng và cơng nghệ thơng tin nói chung, vấn đề đảm bảo an tồn, an ninh thông tin cũng trở thành một trong những thách thức lớn. Một trong những nguy cơ tác động đến việc đảm bảo an tồn thơng tin trong nhiều năm qua chưa được giải quyết đó chính là các hoạt động tấn công từ chối dịch vụ, một thủ đoạn phổ biến của tội phạm nhằm cản trở hoặc gây rối loạn hoạt động của mạng máy tính, mạng viễn thông, mạng Internet, thiết bị số.

Tại Việt Nam, trong nhiều năm qua, nhiều trang mạng của Chính phủ, trang mạng báo điện tử hoặc các trang mạng của các doanh nghiệp thương mại điện tử đã phải hứng chịu những hậu quả nghiêm trọng cả về tài sản, lẫn uy tín từ những đợt tấn cơng từ chối dịch vụ gây ra bởi các tin tặc trong và ngồi nước. Tuy nhiên, cơng tác đấu tranh phịng, chống đối với loại hành vi này cịn có nhiều vấn đề bất cập. Lực lượng Cảnh sát phòng, chống tội phạm sử dụng công nghệ cao là lực lượng chuyên

Một phần của tài liệu Các biện pháp nâng cao tính bảo mật của mạng doanh nghiệp sử dụng kỹ thuật mạng điều khiển bằng phần mềm (Trang 33)