Các đặc tính của OMNeT++

Một phần của tài liệu TÌM HIỂU THỬ NGHIỆM NESSI2 MÔ PHỎNG TẤN CÔNG MẠNG VÀ PHÂN TÍCH ĐÁNH GIÁ TẤN CÔNG MẠNG (Trang 53)

OMNeT++ là một công cụ mô phỏng các hoạt động mạng bằng các module được thiết kế hướng đối tượng. OMNeT++ thường được sử dụng trong các ứng dụng chủ yếu như:

- Mô hình hoạt động của các mạng thông tin - Mô hình giao thức

- Mô hình hoá các mạng kiểu hàng đợi

- Mô hình hoá các hệ thống đa bộ vi xử lý (multiprocesser) hoặc các hệ thống phần cứng theo mô hình phân tán khác (distributed hardware systems)

- Đánh giá kiến trúc phần cứng

- Đánh giá hiệu quả hoạt động của các hệ thống phức tạp,...

3.2.3.4. Đánh giá mô phỏng.

Trong OMNeT++ các module có quan hệ kế thừa. Điều này không những tạo sự dễ dàng cho người lập trình khi mô phỏng những hệ thống phức tạp mà nó cũng làm tăng khả năng sử dụng lại cho các lớp của OMNeT++.

Phần nhân mô phỏng của OMNeT++ là một lớp thư viện. Các mô hình được tạo ra hoàn toàn độc lập với phần nhân mô phỏng. Người lập trình có thể viết các thành phần dựa vào các lớp thư viện khác, sau đó biên dịch và liên kết nó với thư viện mô phỏng của OMNeT++. Điều này có nghĩa là phần code của OMNeT++ không cần phải thay đổi lại khi thiết kế một mô hình (các lớp trong OMNeT++ có khả năng sử dụng lại cao).

OMNet++ là một phần mềm hay và hữu ích cho việc tìm hiểu và nghiên cứu các mô hình mạng. 3.3. So sánh NeSSi2, NS-2 và OMNeT++ OMNeT++ NS-2 NeSSi2 Tính linh hoạt OMNeT++ là một công cụ mô phỏng rất linh hoạt, có thể mô phỏng bất kỳ NS-2 là một công cụ được thiết kế dành riêng để mô phỏng mạng NeSSi2 đã được thiết kế như một ứng dụng theo dạng modul. Xây

một hệ thống nào hoạt động dựa trên nguyên tắc trao đổi các gói tin giữa các thành phần tích cực. Ví dụ như các kiểu mạng hàng đợi, hệ thống vi xử lý, kiến trúc phần cứng... (TCP/IP). Rất khó có thể sử dụng NS- 2 cho những hệ thống khác (những hệ thống không sử dụng nguyên tắc mạng chuyển mạch gói). dựng trên khuôn khổ Eclipse, nó sử dụng các cơ chế sẵn có cho phép người dùng dễ dàng mở rộng các chức năng của NeSSi2 và chia sẻ với các nhà phát triển khác. NeSSi2 cho phép mô phỏng các kịch bản bảo mật khác nhau. Mô hình có thể dễ dàng được mở rộng các tính năng mới hoặc thích nghi để phù hợp với yêu cầu mới.

Mô hình lập trình

OMNeT++sử dụng ngôn ngữ lập trình hướng đối tượng C++.

OMNeT++ đồng thời hỗ trợ cả hai kiểu, tạo file bằng cách sử dụng các trình soạn thảo

Cũng sử dụng ngôn ngữ C++

NeSSi2 được xây dựng trên nền tảng JIAC. JIAC là một kiến trúc trung gian dịch vụ trung tâm dựa trên các

mô hình

Agent. Trong NeSSi2, Agent

thông thường hoặc sử dụng chương trình GNED có giao diện đồ hoạ trực quan có sẵn. được sử dụng để mô hình hóa và thực hiện các thực thể mạng như router, khách hàng, và máy chủ. Agent nền tảng JIAC cơ bản cung cấp một cơ sở phong phú và linh hoạt để thực hiện và thử nghiệm triển khai bảo mật khác nhau và các thuật toán trong NeSSi2. Hơn nữa, xây dựng trên một khuôn khổ đại lý cho phép kết hợp các kiến thức một phần của các Agent lưu trú trong mạng trong một cách tiếp cận hợp tác để xác định và cuối cùng loại bỏ các mối đe dọa trên nền IP. Quản lý mô hình Phần nhân mô phỏng của Tính sử dụng lại trong NS-2 không NeSSi2 đã được cấu trúc thành ba

OMNeT++ là một lớp thư viện.

Các mô hình được tạo ra hoàn toàn độc lập với phần nhân mô phỏng. Người lập trình có thể viết các thành phần dựa vào các lớp thư viện khác, sau đó biên dịch và liên kết nó với thư viện mô phỏng của OMNeT++. Điều này có nghĩa là phần code của OMNeT++ không cần phải thay đổi lại khi thiết kế một mô hình

(các lớp trong OMNeT++ có khả năng sử dụng lại cao).

cao, để thêm vào một lớp mới, cần phải download toàn bộ mã nguồn về, sửa đổi lại cho phù hợp với mô hình của mình, copy thêm các file vào và gán thêm các giá trị khác...

phần riêng biệt, Giao diện đồ họa, các Agent dựa trên mô phỏng phụ trợ và các kết quả cơ sở dữ liệu. Mỗi mô-đun có thể được chạy trên các máy riêng biệt. Thiết kế mô-đun tạo điều kiện cho việc trao đổi topo mạng, định nghĩa kịch bản và kết quả mô phỏng. Hỗ trợ mô hình quan hệ kế thừa Trong OMNeT++ các module có quan hệ kế thừa. Điều này không những tạo sự dễ Trong NS-2, các mô hình có quan hệ ngang bằng. Việc tạo một mạng con từ một mạng Các NeSSi2 mở rộng API cho phép tạo các: - Các loại thiết bị mới có tính năng

dàng cho người lập trình khi mô phỏng những hệ thống phức tạp mà nó cũng làm tăng khả năng sử dụng lại cho các lớp của OMNeT++. lớn hay thực hiện một giao thức phức tạp từ những đơn vị độc lập nhỏ là không thể thực hiện được. người dùng định nghĩa - Các giao thức mới xác định hành vi của các mạng trong thời gian chạy - Định nghĩa ứng dụng, cho phép hành vi động được xác định, gắn liền với một thiết bị hoặc liên kết và dự kiến sẽ được thực hiện trong các mô phỏng Tài liệu trợ giúp Những tài liệu trợ giúp của OMNeT++ được cập nhật thường xuyên và rất đầy đủ. Đặc biệt có phần Tutorial và API rất hữu ích đối với người sử dụng.

Tài liệu trợ giúp của NS-2 không có tính liền mạch. Không có sự phân biệt rõ ràng giữa một mô hình với các thư viện mô phỏng trong NS-2.

Tài liệu trợ giúp của NeSSi2 đầy đủ, chi tiết, dễ hiểu. Tài liệu hỗ trợ phát triển và hướng dẫn mô phỏng còn ít. Mô phỏng các mạng lớn OMNeT++ có thể mô phỏng các mạng có cấu trúc cực lớn. Giới hạn NS-2 làm việc không tốt trong trường hợp mô phỏng các mạng có Cho phép mô phỏng các mạng lớn với hàng ngàn, hàng triệu thiết bị

của nó phụ thuộc vào kích thước bộ nhớ ảo của máy sử dụng. cấu trúc lớn vì hạn chế về tốc độ xử lý, ghi tệp kết quả. và liên kết Thiết kế thử nghiệm Tham số của các thiết kế thử nghiệm được khai báo trong file cấu hình omnetpp.ini và nó có thể được thay đổi dễ dàng phục vụ cho mục đích thử nghiệm. Trong NS-2, các tham số được gắn trực tiếp trong Tcl script do đó khó có thể thay đổi chúng. Điều này không có lợi cho những mô hình được thiết kế với mục đích thử nghiệm. Các profile được sử dụng trong NeSSi2 để mô phỏng hành vi tấn công và mô hình tấn công. Do đó, NeSSi2 cung cấp các hộp hỗ trợ cho kịch bản tấn công khác nhau. Khả năng mô phỏng tấn công Có thể mô phỏng được nhiều mô hình mạng khác nhau nhưng để mô phỏng tấn công mạng cần phải bổ sung thêm thành phần khác

Có thể mô phỏng cho Security nhưng không chuyên sâu. Nếu mô phỏng sẽ gặp khó khăn và phải bổ sung thêm các thành phần khác.

Được thiết kế chuyên cho mô phỏng tấn công. Có thể mô phỏng cho các mạng có kich thước tùy ý, thiết lập được các mô phỏng tấn công mạng dễ dàng.

3.4. Kết luận chƣơng (adsbygoogle = window.adsbygoogle || []).push({});

Chương 3 đã trình bày một số công cụ mô phỏng tấn công mạng điển hình đang có trên thị trường, đồng thời đưa ra các tiêu chí so sánh, đánh giá một số bộ công cụ mô phỏng điển hình như: NS-2, OMNeT++ và NeSSi2. Nội dung chương đã hệ thống hóa một số công cụ mô phỏng tấn công mạng có thể dùng cho mục đích rà soát lỗ hổng bảo mật, nghiên cứu hành vi tấn công, phân tích các nguy cơ và khả

năng phá hoại. Những công cụ này cũng có thể phục vụ cho các mục đích mô phỏng thử nghiệm và đào tạo chuyên gia, phục vụ tạo dựng bài giảng trong các nhà trường.

Trên cơ sở phân tích, đánh giá các bộ công cụ mô phỏng, luận văn đề xuất chọn bộ công cụ mô phỏng NeSSi2 để xây dựng kịch bản mô phỏng tấn công DDos vào WebServer trong một hệ thống mạng, từ đó đánh giá được mức độ tàn phá của tấn công mạng. Điều này sẽ được cụ thể hóa bằng các kịch bản được xây dựng mô phỏng thử nghiệm trong chương 4.

Chƣơng 4 - XÂY DỰNG KỊCH BẢN MÔ PHỎNG THỬ NGHIỆM TẤN CÔNG MẠNG VỚI NESSI2.

4.1. Cài đặt phần mềm mô phỏng NeSSi2

4.1.1. Yêu cầu chung cho việc cài đặt NeSSi2

Cài đặt NeSSi2 yêu cầu Java Runtime Environment phiên bản 6 hoặc mới hơn, Cơ sở dữ liệu dạng MySQL. Giao diện người dùng và môi trường mô phỏng có thể thử nghiệm với Windows, Linux2 (Ubuntu 8.10, 32 và 64 bit), Solaris 10 và Mac OS X 10.5.x.

4.1.2. Tải và cài đặt NeSSi2

Bước 1: Tải phiên bản NeSSi2 mới nhất từ trang web http://www.nessi2.de Bước 2: Tạo một thư mục cho thư mục môi trường mô phỏng NeSSi2. Khuyến nghị đặt tên là NESSI2_SE_HOME.

Bước 3: Giải nén tệp tải về vào thư mục đã tạo.

4.1.3. Cấu hình NeSSi2

Có ba loại tập tin có thể được sử dụng để cấu hình môi trường mô phỏng NeSSi2. Đầu tiên, nút JIAC TNG và các tệp tác nhân có thể được sửa đổi để tùy chỉnh hành vi tác nhân và các khả năng của môi trường mô phỏng NeSSi2. Những tệp tin này nằm trong thư mục NESSI2_SE_HOME/agents. Thứ hai, mức độ đăng nhập và cấu hình đăng nhập khác có thể được thay đổi bằng cách sửa đổi các tệp:

NESSI2_SE_HOME/log4j.properties. Thứ ba, bổ sung các Plug-in NeSSi có thể

được đặt trong thư mục: NESSI2_SE_HOME/applications.

Thông thương chỉ có thêm Plug-in NeSSi2 cần để cài đặt, ngược lại tất cả mọi thức khác có thể được đặt ở chế độ mặc định.

4.1.4. Khởi động NeSSi2

Môi trường mô phỏng NeSSi2 được bắt đầu bằng cách thực thi kịch bản

nessi2 (.bat với hệ thống dựa trên nền Windows và .sh với hệ thống dựa trên nền

4.2. Cài đặt giao diện ngƣời dùng NeSSi2

Giao diện người dùng NeSSi2 cần thiết để tạo topo mạng, hồ sơ, kịch bản, phiên và quản và giám sát mô phỏng đang chạy.

4.2.1. Tải và cài đặt

Để cài đặt giao diện người dùng NeSSi2, cần:

Bước 1: Tải về phiên bản NeSSi2 tại trang web http://www.nessi2.de Bước 2: Tạo một thư mục cho thư mục giao diện người dùng NeSSi2. Bước 3: Giải nén tệp tin tải về và thư mục đã tạo.

4.2.2. Cấu hình

Thông thường không cần phải cấu hình giao diện người dùng NeSSi2 trước mà có thể sửa chữa một tệp cấu hình để có thể thực thi được. Trong trường hợp tệp tin giao diện người dùng NeSSi2 được gọi là NeSSi2.ini, tất cả các thiết lập tùy biến có thể được cấu hình sau khi giao diện người dùng NeSSi2 đã được bắt đầu.

4.2.3. Khởi động giao diện người dùng NeSSi2

Đơn giản chỉ là bắt đầu thực thi giao diện người dùng NeSSi2, ví dụ như nessi2.exe trên hệ thống Windows 7.

4.3. Cơ sở dữ liệu NeSSi2

NeSSi2 dùng một cơ sở dữ liệu để ghi lại một cấu trúc liên kết (topology) mạng, các kịch bản và thông tin phiên cho hoạt động mô phỏng. Trong thời gian một mô phỏng chạy, nó ghi các sự kiện mô phỏng được lựa chọn vào cơ sở dữ liệu.

Cấu hình liên kết, kịch bản và thông tin mô phỏng được dùng để hiển thị các hoạt động mô phỏng đã kết thúc trong chế độ xem mô phỏng NeSSi2. Sự kiện đã ghi lại được sử dụng để phát lại trực quan một mô phỏng và để cho thấy sự hiển thị thống kê đơn giản của các kết quả hoạt động mô phỏng. (adsbygoogle = window.adsbygoogle || []).push({});

- Tải về và cài đặt

Để cài đặt cơ sở dữ liệu cho NeSSi2, có thể làm theo các bước sau:

Bước 1: Cài đặt hệ thống quản lý cơ sở dữ liệu (ngầm định là MySQL, song có thể sử dụng các hệ cơ sở dữ liệu khác).

Bước 3: Tạo một cơ sở dữ liệu người dùng với quyền truy nhập đọc và ghi (có lẽ cũng từ các máy khác) theo lược đồ cơ sở dữ liệu đã được tạo ra.

Bước 4: Tùy chọn tạo ra một cơ sở dữ liệu người dùng có quyền truy nhập chỉ đọc (có lẽ cũng từ các máy khác) theo lược đồ cơ sở dữ liệu đã được tạo ra.

4.4. Phƣơng pháp mô phỏng tấn công mạng với NeSSi2

Quy trình tạo và chạy mô phỏng trên phần mềm NeSSi2 được mô tả qua sơ đồ và các bước cụ thể như sau:

Hình 4.1: Quy trình tạo và chạy mô phỏng trên phần mềm NeSSi2

Bước 1: Khởi động phần mềm NeSSi2.

Bước 2: Khởi tạo một dự án NeSSi2, chứa toàn bộ các thông tin về cấu trúc liên kết, hồ sơ, kịch bản, phiên…

Bước 3: Khởi tạo mạng, topo mạng: đưa vào các thiết bị, thiết lập liên kết giữa các thiết bị theo một cấu trúc nào đó.

Bước 4: Khởi tạo Profile - thiết lập hồ sơ.

Bước 5: Khởi tạo kịch bản: đưa ra các kịch bản cần thử nghiệm, cụ thể hóa các công việc cần làm trong từng kịch bản.

Bước 6: Khởi tạo phiên: ứng với mỗi kịch bản, cần tạo một phiên riêng biệt để thực hiện chạy chương trình.

Bước 7: Chạy mô phỏng: trong NeSSi Explorer → Sessions → chọn phiên cần chạy → nhấp phải chuột → chọn “Lauch Simulation”.

Bước 8: Kết thúc quá trình mô phỏng, ghi lại các kết quả để phân tích đánh giá.

4.4.1. Thiết lập dự án mạng mô phỏng

Dưới đây là quy trình thiết lập một mạng cần mô phỏng trong phần mềm NeSSi2.

Hình 4.2: Quy trình thiết lập một mạng cần mô phỏng trong phần mềm NeSSi2

Như đã mô tả ở hình 4.2, quy trình là:

- (1) Sau khi khởi động bắt đầu thiết lập môi trường NeSSi2 Explorer - (2) Tạo ra dự án mô phỏng

- (3) Tạo ra mạng mô phỏng

- (4) Tạo ta một mạng kết nối và kết thúc lưu trong một dự án mô phỏng

4.4.2. Thiết lập hồ sơ

Như đã mô tả ở hình 4.3, quy trình là:

- (1) Chọn ra ứng dụng (nguồn tạo lưu lượng tấn công mô phỏng) - (2) Tạo các ứng dụng mô phỏng (nguồn lưu lượng tấn công) - (3) Xác nhận và kết thúc

4.4.3. Thiết lập kịch bản mô phỏng

Hình 4.4: Quy trình thiết lập một kịch bản cho mạng cần mô phỏng

Như đã mô tả ở hình 4.4, quy trình là: - (1) Mở môi trường NeSSi2, tạo hồ sơ

- (2) Tạo kịch bản, lựa chọn hồ sơ thích hợp để gán - (3) Xác nhận và kết thúc (adsbygoogle = window.adsbygoogle || []).push({});

4.4.4. Thiết lập phiên kịch bản

Như đã mô tả ở hình 4.5, quy trình là: - (1) Mở môi trường NeSSi2, tạo kịch bản - (2) Tạo các phiên làm việc

- (3) Đánh dấu và chạy mô phỏng phù hợp với kịch bản lựa chọn, cấu hình máy ghi và kết thúc.

4.4.5. Thực hiện mô phỏng

Hình 4.6: Quy trình thực hiện chạy mô phỏng

Như đã mô tả ở hình 4.6, quy trình là:

- (1) Mở môi trường NeSSi2 (mở Project, mở kiến trúc mạng, nguồn lưu lượng mạng, các phiên kịch bản)

- (2) Khởi động phiên làm việc và kết thúc

4.5. Mô hình mô phỏng, thử nghiệm

4.5.1. Sơ đồ mạng mô phỏng, chức năng các thành phần.

4.5.1.1. Xây dựng sơ đồ tượng trưng cho hệ thống mạng trường Đại học Kỹ thuật - Hậu cần CAND trên phần mềm mô phỏng NeSSi2. Kỹ thuật - Hậu cần CAND trên phần mềm mô phỏng NeSSi2.

Hình 4.7: Sơ đồ tƣợng trƣng cho hệ thống mạng trƣờng Đại học Kỹ thuật - Hậu cần CAND

Topo mạng hình 4.7 được tạo ra bằng cách chọn các thành phần mạng như bộ định tuyến và các loại khác nhau của thiết bị đầu cuối như máy trạm, máy chủ Web,… và thêm chúng từ một bảng vào cửa sổ chính thiết để lập sơ đồ hệ thống mạng thông qua việc kéo và thả.

4.5.1.2. Mô tả các thành phần của hệ thống mạng trường Đại học Kỹ thuật - Hậu cần CAND thuật - Hậu cần CAND

Giải thích sơ đồ hệ thống:

- Bot_Out: Máy trạm giả lập tấn công và những mối nguy hiểm tiềm tàng từ

Một phần của tài liệu TÌM HIỂU THỬ NGHIỆM NESSI2 MÔ PHỎNG TẤN CÔNG MẠNG VÀ PHÂN TÍCH ĐÁNH GIÁ TẤN CÔNG MẠNG (Trang 53)