(Luận văn) nghiên cứu xây dựng giải pháp phân tán động trong hệ thống phân tích mã độc iot botnet dựa trên kafka và ksql

90 1 0
(Luận văn) nghiên cứu xây dựng giải pháp phân tán động trong hệ thống phân tích mã độc iot botnet dựa trên kafka và ksql

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - Nguyễn Quốc Hữu lu an n va p ie gh tn to NGHIÊN CỨU XÂY DỰNG GIẢI PHÁP PHÂN TÁN ĐỘNG TRONG HỆ THỐNG PHÂN TÍCH MÃ ĐỘC IOT BOTNET DỰA TRÊN KAFKA VÀ KSQL d oa nl w ll u nf va an lu oi m LUẬN VĂN THẠC SĨ KỸ THUẬT z at nh (Theo định hướng ứng dụng) z m co l gm @ an Lu n va HÀ NỘI - NĂM 2022 ac th si HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - Nguyễn Quốc Hữu lu an n va p ie gh tn to NGHIÊN CỨU XÂY DỰNG GIẢI PHÁP PHÂN TÁN ĐỘNG TRONG HỆ THỐNG PHÂN TÍCH MÃ ĐỘC IOT BOTNET DỰA TRÊN KAFKA VÀ KSQL oa nl w d Chuyên ngành: HỆ THỐNG THƠNG TIN Mã số: 8.48.01.04 (Hệ thống thơng tin) u nf va an lu ll LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) oi m z at nh z NGƯỜI HƯỚNG DẪN KHOA HỌC: T.S NGÔ QUỐC DŨNG m co l gm @ an Lu HÀ NỘI - NĂM 2022 n va ac th si i LỜI CAM ĐOAN Tôi cam đoan luận văn với đề tài “Nghiên cứu xây dựng giải pháp phân tán động hệ thống phân tích mã độc IoT botnet dựa Kafka KSQL“ cơng trình nghiên cứu riêng Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tác giả luận văn ký ghi rõ họ tên lu an n va p ie gh tn to d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si ii LỜI CẢM ƠN Trong trình nghiên cứu, tìm hiểu thực luận văn này, học viên nhận giúp đỡ nhiệt tình TS Ngơ Quốc Dũng Học viên xin chân thành cám ơn thầy bỏ cơng sức giúp định hướng, thực hồn thành luận văn Học viên xin chân thành cám ơn thầy/cô khoa Sau đại học thầy/cô khoa Công Nghệ Thông Tin 1-Học Viện Công Nghệ Bưu Chính Viễn Thơng đào tạo kiến thức, văn hóa cho học viên, cung cấp tảng để áp dụng hoàn thành lu luận văn an Cuối cùng, học viên xin cảm ơn gia đình bạn bè tạo điều kiện thuận lợi, va n giúp đỡ học viên suốt trình học tập Học Viện Cơng Nghệ Bưu Chính Học viên xin chân thành cám ơn! p ie gh tn to Viễn Thông trình nghiên cứu luận văn Hà Nội, ngày tháng năm nl w Học viên d oa Nguyễn Quốc Hữu ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii DANH MỤC CÁC KÝ HIỆU, THUẬT NGỮ VIẾT TẮT v DANH MỤC CÁC BẢNG vii DANH MỤC CÁC HÌNH viii MỞ ĐẦU CHƯƠNG CƠ SỞ LÝ THUYẾT lu 1.1 Tổng quan mã độc IoT Botnet an n va 1.1.1 Các khái niệm IoT 1.1.2 Mã độc IoT Botnet 10 1.2.1 Các phương pháp phân tích phát mã độc IoT Botnet 14 1.2.2 Học máy phát mã độc IoT Botnet 16 p ie gh tn to Tổng quan hệ thống phân tích phát mã độc IoT Botnet 14 1.2 oa nl w 1.2.3 Mô hình hệ thống phân tích phát mã độc IoT Botnet 18 1.3 Tổng quan giải pháp xử lý phân tán động 23 d 1.3.1 Các định nghĩa hệ thống phân tán 23 an lu 1.3.2 Các thành phần hệ thống phân tán 23 va 1.3.3 Tổng quan lý thuyết cân tải 27 u nf Kết luận Chương 31 ll CHƯƠNG ỨNG DỤNG GIẢI PHÁP PHÂN TÁN ĐỘNG TRONG HỆ oi m z at nh THỐNG PHÂN TÍCH MÃ ĐỘC IOT BOTNET 32 2.1 Phát biểu toán 32 z 2.1.1 Phân tích tốn 33 l gm @ 2.1.2 Khảo sát, đánh giá giải pháp 35 2.2 Mô hình đề xuất 41 m co 2.2.1 Các thành phần mơ hình 41 2.2.2 Đặc tả yêu cầu chi tiết 43 an Lu 2.3 Ứng dụng Kafka KSQL xây dựng giải pháp xử lý phân tán động 46 n va ac th si iv 2.3.1 Khảo sát số cơng cụ message broker có sẵn 46 2.3.2 Lựa chọn công cụ Kafka công cụ KSQL 47 2.3.3 Hoạt động mơ hình 51 Kết luận chương 58 CHƯƠNG THỬ NGHIỆM VÀ ĐÁNH GIÁ 59 3.1 Môi trường thử nghiệm 59 3.1.1 Hệ thống thử nghiệm 59 3.1.2 Quá trình triển khai giải pháp đề xuất 60 3.2 Kịch thử nghiệm tiêu chí đánh giá 61 lu 3.2.1 Kịch thử nghiệm 61 an 3.2.2 Tiêu chí đánh giá 64 va n 3.3 Kết đánh giá 64 3.3.1 Kịch 64 3.3.3 Kịch 67 p ie gh tn to 3.3.2 Kịch 65 Kết luận chương 69 oa nl w KẾT LUẬN 70 d DANH MỤC TÀI LIỆU THAM KHẢO 71 ll u nf va an lu PHỤ LỤC 75 oi m z at nh z m co l gm @ an Lu n va ac th si v DANH MỤC CÁC KÝ HIỆU, THUẬT NGỮ VIẾT TẮT Thuật ngữ ACO AI ASG C&C Tiếng Anh Ant colony optimization Artificial intelligence Adversarial Samples Generator Control and Command lu Central Processing Unit Cascading Style Sheets Distributed Denial of service Dynamic Link Library DNS DT ELF EPRS Domain Name System Decision tree Extensible Linking Format European Parliamentary Research Service Feature Vectors Extractor Hyper Text Transfer Protocol an CPU CSS DDOS DLL n va p ie gh tn to ll u nf va an oi m z at nh m co l gm an Lu Portable Executable Định dạng liệu JSON Thuật toán K nearest neighbor Thuật toán Tiêu hóa-tin nhắn Thuật tốn học máy Nạve Bayes Định dạng tệp cho tệp thực thi @ International Telecommunication Union JavaScript Object Notation K nearest neighbor Message-Digest algorithm Naive Bayes z PE lu JSON KNN MD5 NB IoT Botnet Dectector Internet of Things Internet Protocol Inter Process Communuication Internet Protocol version Internet Relay Chat d ITU oa IBD IoT IP IPC IPv4 IRC nl w FVE HTTP Tiếng Việt Giải thuật tối ưu hố đàn kiến Trí tuệ nhân tạo Bộ tạo mẫu đối nghịch Máy chủ điều khiển thực thi mã độc Botnet Bộ vi xử lý trung tâm Ngơn ngữ lập trình CSS Tấn công từ chối dịch vụ Thư viện liên kết động Windows Hệ thống phân giải tên miền Cây định Định dạng liên kết thực thi Dịch vụ Nghiên cứu Nghị viện Châu Âu Bộ trích xuất véc tơ đặc trưng Giao thức Truyền tải Siêu Văn Bản Bộ phát IoT Botnet Internet vạn vật Giao thức Internet Giao tiếp liên tiến trình Giao thức Internet phiên Trị chuyện chuyển tiếp Internet Liên minh Viễn thơng giới n va ac th si vi PID PSI QoS RAM RF RFID Định danh tiến trình Thơng tin chuỗi Chất lượng dịch vụ Bộ nhớ truy xuất ngẫu nhiên Thuật toán rừng ngẫu nhiên Nhận dạng qua tần số vô tuyến) Proccess ID Printable Strings Information Quality of service Random Access Memory Random Forest Radio Frequency Indentification Reinforcement learning Reinforcement learning Agent System Calls Collector System call graph Secure Hash Algorithm Secure Socket Shell Support vector machine Transmission Control Protocol lu RL RLA SCC SCG SHA-1 SSH SVM TCP an n va Uniform Resource Locator p ie gh tn to URL Học tăng cường Tác từ học tăng cường Bộ thu thập lệnh gọi hệ thống Đồ thị lệnh gọi hệ thống Thuật tốn băm an tồn Giao thức SSH Máy vectơ hỗ trợ Giao thức điều khiển truyền vận Hệ thống định vị tài nguyên thống Giao diện lập trình ứng dụng Ngơn ngữ truy vấn mang tính cấu trúc Học máy Cân tải máy chủ toàn cầu d SQL Application Programming Interface Structured Query Language oa nl w API an lu Machine learning Global server load balancing ll u nf va ML GSLB oi m z at nh z m co l gm @ an Lu n va ac th si vii DANH MỤC CÁC BẢNG Bảng 1.1 So sánh phương pháp phân tích mã độc IoT botnet 16 Bảng 2.1 Các yêu cầu toán .34 Bảng 2.2 Danh sách hoạt động hệ thống 42 Bảng 2.3 Kết đánh giá mơ hình phát phân tích mã độc 51 Bảng 3.1 Thông tin chi tiết hệ thống thử nghiệm 60 Bảng 3.2 So sánh kết áp dụng giải pháp phân tán động (kịch 2) không áp dụng giải pháp phân tán động 69 lu an n va p ie gh tn to d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si viii DANH MỤC CÁC HÌNH Hình 1.1: Ứng dụng IoT thực tế Hình 1.2: Các lớp kiến trúc IoT Hình 1.3: Kiến trúc hệ thống IoT theo bốn giai đoạn Hình 1.4: Phân tích mối đe doạ hàng đầu IoT [4] .11 Hình 1.5: Sơ đồ luồng công IoT botnet [11] 13 Hình 1.6: Các phương pháp phát mã độc IoT botnet 15 Hình 1.7 Mơ hình hệ thống phân tích phát mã độc IoT botnet 18 lu Hình 1.8 Đồ thị lệnh gọi hệ thống tệp tin ELF chứa mã độc 20 an va Hình 1.9 Trích xuất vector đặc trưng đồ thị lệnh gọi hệ thống 21 n Hình 1.10 Mơ hình phân lớp hệ thống phân tán 24 gh tn to Hình 1.11 Hai mơ hình IPC 25 Hình 1.12 Bộ cân tải phần cứng phần mềm 28 ie p Hình 2.1 Bài tốn phân tán xử lý tác vụ kịch thiết bị IoT Analyzer nl w tải 33 oa Hình 2.2 Máy chủ ảo bảng thơng báo 38 d Hình 2.3 Mơ hình đàn kiến hoạt động .39 lu va an Hình 2.4 Thuật tốn ACO 40 u nf Hình 2.5 Mơ hình đề xuất 41 ll Hình 2.6 Kiến trúc truyền tải thông tin Apache Kafka 48 m oi Hình 2.7 Mơ hình huấn luyện học máy phân tích phát mã độc IoT botnet 51 z at nh Hình 2.8 Kafka Topic máy chủ trung tâm 52 Hình 2.9 Các mơ đun IoT Analyzer 53 z gm @ Hình 2.10 Đồ thị lệnh gọi hệ thống malware 54 Hình 2.11 Lưu đồ hoạt động hệ thống trạng thái tải 56 l m co Hình 2.12 Lưu đồ hoạt động hệ thống node bị tải 57 Hình 2.13 Vùng tải trạng thái cân tải nút IoT Analyzer .58 an Lu Hình 3.1 Mơ hình thử nghiệm 59 n va ac th si 65 Case - Handling time per job Seconds 4000 3000 2000 1000 Time 17 25 33 41 49 57 65 73 81 89 97 105 113 121 129 137 145 153 161 169 177 185 193 201 209 217 225 233 241 249 Number of jobs Hình 3.2 Kịch 1: Thời gian xử lý số lượng tệp tin đầu vào Case - Handling time per file size an n Seconds va p ie gh tn to Time file size oa nl w 340 1286 1438 1554 1920 2048 2782 3523 3701 3837 3858 4761 5559 7049 35249 227953 308988 348496 453556 639585 819829 913900 1021441 1158882 1294641 1592901 1763616 2030425 lu 0:00:52 0:00:43 0:00:35 0:00:26 0:00:17 0:00:09 0:00:00 Hình 3.3 Kịch 1: Thời gian xử lý ứng với kích cỡ liệu đầu vào d 3500.00 3000.00 2500.00 2000.00 1500.00 1000.00 500.00 0.00 ll u nf va oi m Bytes/s z at nh 340 1286 1438 1554 1920 2048 2782 3523 3701 3837 3858 4761 5559 7049 35249 227953 308988 348496 453556 639585 819829 913900 1021441 1158882 1294641 1592901 1763616 2030425 Byte/s an lu Case - Volume handling per second z file size gm @ Hình 3.4 Kịch 1: Khối lượng xử lý ứng với kích cỡ tệp liệu đầu vào m co l 3.3.2 Kịch Tại kịch 2, hệ thống bị tải cho thấy kết xử lý chậm đáng an Lu kể Tải hệ thống xử lý: CPU 100%, RAM 92% Khi hệ thống xử lý chậm mối tiềm tàng bảo mật hệ thống IoT Analyzer trạng thái tải xử lý 69 n va ac th si 66 tệp tin 7674 giây (tương đương phút 54 giây) gần gấp đôi so với kịch hiệu suất nhiều Thời gian xử lý trung bình tệp tin vào khoảng phút 56 giây Hình 3.5 mơ tả thời gian xử lý IoT Analyzer với số lượng tệp tin đầu vào Hình 3.6 mơ tả thời gian xử lý tệp tin với kích thước khác Cuối hình 3.7 cho thấy khối lượng liệu hệ thống xử lý giây bị tải Case 2- Handling time per job Seconds 10000 5000 Time lu 1113151719212325272931333537394143454749515355575961636567 an Number of jobs va n Hình 3.5 Kịch 2: Thời gian xử lý số lượng tệp tin đầu vào tn to Case -Handling time per file size p ie Seconds gh 0:11:31 0:08:38 0:05:46 0:02:53 0:00:00 3005982 1787784 1592901 1257587 935878 1039934 894238 820401 637848 416242 348496 258510 6294 53862 5487 3854 3713 3521 1978 1496 1438 410 d oa nl 1408 w Time file size an lu u nf va Hình 3.6 Kịch 2: Thời gian xử lý ứng với kích cỡ liệu đầu vào Case - Volume handling per second 3005982 1787784 1592901 1257587 1039934 935878 894238 820401 637848 416242 348496 258510 53862 6294 5487 3854 3713 3521 1978 1496 1438 Bytes/s l gm @ file size z 1408 z at nh 410 oi m Byte/s ll 1200.00 1000.00 800.00 600.00 400.00 200.00 0.00 m co Hình 3.7 Kịch 2: Khối lượng xử lý ứng với kích cỡ tệp liệu đầu vào an Lu n va ac th si 67 3.3.3 Kịch Tại kịch 3, hệ thống bị tải đẩy tác vụ cho nút IoT Analyzer khác Việc khơng làm gián đoạn q trình phân tích phát mã độc IoT botnet hệ thống, mặt khác tối ưu tài nguyên rảnh rỗi Tải hệ thống xử lý: CPU 100%, RAM 92%, nút IoT Analyzer đích khơng bị q tải có CPU, RAM < 90% IoT Analyzer trạng thái tải xử lý 250 tệp tin 4608 giây (tương đương 16 phút 46 giây) Thời gian xử lý trung bình tệp tin vào khoảng 18 giây Hình 3.8 mơ tả thời gian xử lý IoT Analyzer với số lượng tệp tin đầu vào Hình 3.9 mơ tả thời gian xử lý tệp tin với kích thước khác lu Hình 3.10 cho thấy khối lượng liệu hệ thống xử lý giây bị an tải Cuối Hình 3.11 biểu đồ so sánh kịch bản, cho thấy hiệu n va việc phân tán tác vụ hệ thống to 5000 4000 3000 2000 1000 p Seconds ie gh tn Case - Handling time per job oa 10 19 28 37 46 55 64 73 82 91 100 109 118 127 136 145 154 163 172 181 190 199 208 217 226 235 244 nl w Time d Number of jobs an lu u nf va Hình 3.8 Kịch 3: Thời gian xử lý số lượng tệp tin đầu vào oi m z at nh 0:01:44 0:01:26 0:01:09 0:00:52 0:00:35 0:00:17 0:00:00 ll Time z m co l file size gm @ 340 1286 1438 1554 1920 2048 2782 3523 3701 3837 3858 4761 5559 7049 35249 227953 308988 348496 453556 639585 819829 913900 1021441 1158882 1294641 1592901 1763616 2030425 Seconds Case - Handling time per file size Hình 3.9 Kịch 3: Thời gian xử lý ứng với kích cỡ liệu đầu vào an Lu n va ac th si oa ll u nf va an lu oi m z at nh z file size không áp dụng giải pháp phân tán động an Lu Hình 3.11 So sánh hiệu áp dụng giải pháp phân tán động (kịch 2) m co l gm @ 4000.00 3000.00 2000.00 1000.00 0.00 d 0:11:31 0:08:38 0:05:46 0:02:53 0:00:00 nl w 340 1286 1438 1554 1920 2048 2782 3523 3701 3837 3858 4761 5559 7049 35249 227953 308988 348496 453556 639585 819829 913900 1021441 1158882 1294641 1592901 1763616 2030425 p ie gh tn 10 19 28 37 46 55 64 73 82 91 100 109 118 127 136 145 154 163 172 181 190 199 208 217 226 235 244 to 340 1286 1438 1554 1920 2048 2782 3523 3701 3837 3858 4761 5559 7049 35249 227953 308988 348496 453556 639585 819829 913900 1021441 1158882 1294641 1592901 1763616 2030425 n va Seconds an Seconds lu Byte/s 340 1286 1438 1554 1920 2048 2782 3523 3701 3837 3858 4761 5559 7049 35249 227953 308988 348496 453556 639585 819829 913900 1021441 1158882 1294641 1592901 1763616 2030425 Byte/s 68 Case - Volume handling per second 3000.00 2000.00 1000.00 0.00 Bytes/s file size Hình 3.10 Kịch 3: Khối lượng xử lý ứng với kích cỡ tệp liệu đầu vào Handling time per job 10000 5000 Case Case Case Number of jobs Handling time per file size Case Case Case file size Volume handling per second Case Case Case n va ac th si 69 Bảng 3.2 So sánh kết áp dụng giải pháp phân tán động (kịch 2) không áp dụng giải pháp phân tán động Kịch Số lượng tệp tin xử lý 250 69 250 Tổng thời gian xử lý 1:02:01 2:07:54 1:16:48 Số byte xử lý trung bình giây 33573.13 10940.48 27383.72 Trung bình thời gian xử lý 0:15 1:56 0:19 Kết luận chương Trong chương này, học viên đưa môi trường thử nghiệm sát với thực tế lu mơ hình đề xuất Ngồi ra, học viên đưa số kịch thực an nghiệm trường hợp khơng có chế cân tải có có chế cân tải va n Đồng thời đưa tham số để đánh giá khả phân tán tác vụ hệ thống Kết tn to đạt thử nghiệm tương đối khả quan áp dụng chế phân tán tác vụ gh nhằm tăng cường khả phát mã độc cách nhanh chóng Điều p ie cho thấy tiềm mơ hình tối ưu, sửa đổi phát triển d oa nl w tương lai ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si 70 KẾT LUẬN Qua thời gian nghiên cứu, tìm hiểu, tiếp cận tri thức lĩnh vực bảo mật IoT, đặc biệt phát mã độc IoT Botnet, luận văn đưa mơ hình phát mã độc IoT Botnet, công bố hội nghị Computer Science On-line Conference thứ 11 năm 2022 Đặc biệt, để nâng cao khả hệ thống thiết bị IoT Analyzer bị tải, luận văn đưa mơ hình phân tán động nhằm phân tán tác vụ thực phân tích mã độc cách nhanh chóng Luận văn “Nghiên cứu xây dựng giải pháp phân tán động hệ thống phân tích mã độc IoT botnet dựa kafka ksql” học viên hoàn thành đạt mục tiêu nghiên lu cứu Các vấn đề trình bày bao gồm: an Tổng quan sở lý thuyết mã độc IoT, mã độc IoT botnet, từ đưa - va n mơ hình phân tích phát mã độc IoT Botnet Tổng quan giải pháp phân tán nói chung, đặc biệt hệ thống phân tán động tn to - gh áp dụng nhiều việc tránh tải ngày Trình bày tốn cần xử lý mơ hình phân tích phát mã độc p ie - w IoT botnet đưa mơ hình giải pháp phân tán động tác vụ dựa Cuối cùng, luận văn trình bày mơi trường thử nghiệm hệ thống, xây dựng chi d oa - nl công nghệ Kafka KSQL an lu tiết kịch đánh tham số đánh giá Qua kết thử nghiệm cho thấy, hiệu hệ thống phân tích phát va u nf mã độc đảm bảo sử dụng chế phân tán tác vụ động Từ nâng cao ll độ tin cậy khả phân tích, phát mã độc IoT botnet thiết bị IoT Thử m oi nghiệm cho kết tương đối khả quan cho thấy tiềm ứng dụng mơ hình z at nh tương lai Tuy nhiên, mơ hình luận văn cần cải thiện liệu IoT mở rộng lớn mơ hình học máy cần cập nhật Trong tương lai, học viên z tiếp tục nghiên cứu tối ưu mơ hình cách áp dụng giải pháp xử lý liệu lớn @ gm mơ hình học máy đem lại hiệu tốt l Trên số kết luận hướng nghiên cứu luận văn Học viên xin m co chân thành cảm ơn quý thầy, cô hướng dẫn khoa học phản biện để giúp học triển đề tài tương lai an Lu viên hồn thiện thiếu sót luận văn định hướng cho việc phát n va ac th si 71 DANH MỤC TÀI LIỆU THAM KHẢO Tiếng Anh [1] K Ashton, ‘That “Internet of Things” Thing’, p [8] C Kolias, G Kambourakis, A Stavrou, and J Voas, ‘DDoS in the IoT: Mirai and other botnets’, Computer, vol 50, no 7, pp 80–84, 2017 [9] P Beltrán-García, E Aguirre-Anaya, P J Escamilla-Ambrosio, and R AcostaBermejo, ‘IoT Botnets’, Telematics and Computing - 8th International Congress, WITCOM 2019, Proceedings, pp 247–257, Jan 2019, doi: lu 10.1007/978-3-030-33229-7_21 an va [10] H Alzahrani, M Abulkhair, and E Alkayal, ‘A Multi-Class Neural Network n Model for Rapid Detection of IoT Botnet Attacks’, International Journal of to 10.14569/IJACSA.2020.0110783 ie gh tn Advanced Computer Science and Applications, vol 11, Jan 2020, doi: p [11] M Wazzan, D Algazzawi, O Bamasaq, A Albeshri, and L Cheng, ‘Internet of nl w Things Botnet Detection Approaches: Analysis and Recommendations for d oa Future Research’, Applied Sciences, vol 11, no 12, Art no 12, Jan 2021, doi: lu 10.3390/app11125713 va an [12] S Hilt, ‘Worm War: The Botnet Battle for IoT Territory’, p 30 u nf [13] Q.-D Ngo, H.-T Nguyen, H.-A Tran, and D.-H Nguyen, ‘IoT Botnet detection ll based on the integration of static and dynamic vector features’, in 2020 IEEE m oi Eighth International Conference on Communications and Electronics (ICCE), z at nh 2021, pp 540–545 [14] ‘A study of IoT malware activities using association rule learning for darknet | International Journal of Information Security’ gm @ data z sensor https://dl.acm.org/doi/abs/10.1007/s10207-019-00439-w (accessed Apr 25, m co l 2022) an Lu n va ac th si 72 [15] A Narayanan, M Chandramohan, R Venkatesan, L Chen, Y Liu, and S Jaiswal, ‘graph2vec: Learning distributed representations of graphs’, arXiv preprint arXiv:1707.05005, 2017 [16] H.-V Le and Q.-D Ngo, ‘V-sandbox for dynamic analysis IoT botnet’, IEEE Access, vol 8, pp 145768–145786, 2020 [17] J D G Coulouris, ‘Distributed Systems: Concepts and Design’, DISTRIBUTED SYSTEMS, p 1067 [18] A S Tanenbaum and M van Steen, Distributed systems: principles and paradigms, 2nd ed Upper Saddle RIiver, NJ: Pearson Prentice Hall, 2007 lu [19] M Randles, D Lamb, and A Taleb-Bendiab, ‘A Comparative Study into an n va Distributed Load Balancing Algorithms for Cloud Computing’, in Proceedings to of the 2010 IEEE 24th International Conference on Advanced Information 10.1109/WAINA.2010.85 ie gh tn Networking and Applications Workshops, USA, Apr 2010, pp 551–556 doi: p [20] ‘Biased random walks on resource network graphs for load balancing | The nl w Journal of Supercomputing’ https://dl.acm.org/doi/10.1007/s11227-009-0366-6 d oa (accessed Jul 16, 2021) an lu [21] M Randles, A Taleb-Bendiab, and D Lamb, ‘Cross Layer Dynamics in Self- va Organising Service Oriented Architectures’, in Self-Organizing Systems, Berlin, u nf Heidelberg, 2008, pp 293–298 doi: 10.1007/978-3-540-92157-8_28 ll [22] M Randles, A Taleb-Bendiab, and D Lamb, ‘Scalable Self-Governance Using m oi Service Communities as Ambients’, in 2009 Congress on Services - I, Jul 2009, z at nh pp 813–820 doi: 10.1109/SERVICES-I.2009.93 [23] ‘On Honey Bees and Dynamic Server Allocation in Internet Hosting Centers Craig Tovey, 2004’ gm @ Nakrani, z Sunil https://journals.sagepub.com/doi/abs/10.1177/105971230401200308 (accessed m co l Jul 16, 2021) [24] M Dorigo, V Maniezzo, and A Colorni, ‘Ant system: optimization by a colony an Lu of cooperating agents’, IEEE Transactions on Systems, Man, and Cybernetics, n va ac th si 73 Part B (Cybernetics), vol 26, no 1, pp 29–41, Feb 1996, doi: 10.1109/3477.484436 [25] ‘Ant colony optimization | IEEE Journals & Magazine | IEEE Xplore’ https://ieeexplore.ieee.org/abstract/document/4129846/ (accessed Jul 16, 2021) [26] ‘A new pheromone updating strategy in ant colony optimization | IEEE Conference Publication | IEEE Xplore’ https://ieeexplore.ieee.org/abstract/document/1380766 (accessed Jul 16, 2021) [27] C.-W Chiang, Y.-C Lee, C.-N Lee, and T.-Y Chou, ‘Ant colony optimisation lu for task matching and scheduling’, IEE Proceedings - Computers and Digital an n va Techniques, vol 153, no 6, pp 373–380, Nov 2006, doi: 10.1049/ip- tn to cdt:20050196 ie gh Website p [2] ‘Y.2060 : Overview of the Internet of things’ https://www.itu.int/rec/T-REC- nl w Y.2060-201206-I (accessed Apr 16, 2022) Paper’, d White oa [3] ‘Cisco Annual Internet Report - Cisco Annual Internet Report (2018–2023) Cisco lu va an https://www.cisco.com/c/en/us/solutions/collateral/executive- ll Feb 23, 2022) (accessed u nf perspectives/annual-internet-report/white-paper-c11-741490.html m oi [4] ‘2020 Unit 42 IoT Threat Report 2020 Unit 42 IoT Threat Report’, Unit42, Mar z at nh 10, 2020 https://unit42.paloaltonetworks.com/iot-threat-report-2020/ (accessed Apr 20, 2022) Malware? - Definition and Examples’, Cisco gm @ is z [5] ‘What https://www.cisco.com/c/en/us/products/security/advanced-malware- l protection/what-is-malware.html (accessed Apr 21, 2022) m co an Lu n va ac th si 74 [6] ‘IoT Botnet Definition’ - https://www.trendmicro.com/vinfo/us/security/definition/iot-botnet (accessed Apr 21, 2022) [7] ‘IoT role in Dyn cyberattack | Kaspersky official https://www.kaspersky.com/blog/attack-on-dyn-explained/13325/ blog’ (accessed Feb 23, 2022) [28] ‘Apache Kafka’, Apache Kafka https://kafka.apache.org/ (accessed Dec 18, 2020) [29] ‘Quick Start for Confluent Platform | Confluent Documentation’ lu an https://docs.confluent.io/platform/current/quickstart/ce-docker-quickstart.html n va (accessed May 11, 2022) p ie gh tn to d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si 75 PHỤ LỤC Mã nguồn chương trình chính: import os import shutil import socket import threading import queue import time lu an n va gh tn to from psutil import cpu_percent, virtual_memory import logging import coloredlogs from TransferStategy import TransferStrategy from LocationStategy import LocationStrategy from InformationStategy import InformationStrategy from dotenv import load_dotenv from concurrent.futures import ThreadPoolExecutor p ie coloredlogs.install() load_dotenv(dotenv_path=".env") ''' This module have responsibility: Receive raw data from IoT Agent Send result to dashboard ''' d oa nl w va an lu ll u nf OFFLOAD_TASKS_TOPIC = os.environ.get("TOPIC_OFF_LOAD_TASKS") OFFLOAD_RESULT_TOPIC = os.environ.get("TOPIC_OFF_LOAD_result") KAFKA_PORT = os.environ.get("KAFKA_PORT") DASHBOARD = os.environ.get("DASHBOARD") DASHBOARD_PORT = os.environ.get("DASHBOARD_PORT") oi m z m co l gm @ an Lu IP = "192.168.2.9" PORT = 4456 ADDR = (IP, PORT) z at nh transfer = TransferStrategy() location = LocationStrategy() location.create_ksql_stream() info = InformationStrategy() n va ac th si 76 size = 4096 format_encode = "utf-8" server_data_path = "server_data/local" print("[STARTING] Server is starting") server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(ADDR) server.listen() print(f"[LISTENING] Server is listening on {IP}:{PORT}.") q_tasks = queue.Queue() lu an n va p ie gh tn to def active_socket_server(): location.create_ksql_stream() #executor = ThreadPoolExecutor(1) while True: conn, addr = server.accept() #thread = threading.Thread(target=handle_client, args=(conn, addr)) #thread.start() print(f"[ACTIVE CONNECTIONS] {threading.active_count() - 1}") conn.send("OK@Welcome to the File Server.".encode(format_encode)) name = conn.recv(size).decode(format_encode) print(f"[RECEIVING] {name}") oa nl w d conn.send("[RECEIVED] FILE NAME".encode(format_encode)) name = name.split("/")[-1] filepath = os.path.join(server_data_path, name) #os.system("rm -rf /server_data/local/*") with open(filepath, "w") as f: while True: text = conn.recv(size).decode(format_encode) # print(text) f.write(text) if not text: break f.close() # self.task_state = True ##add filename into queue q_tasks.put(filepath) logging.info(filepath) print(q_tasks.qsize()) #thread = threading.Thread(target=handle_data(filepath)) #, args=(f"{filepath}")) ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si 77 #thread.start() #executor.submit(handle_data, (filepath)) print(f"[DISCONNECTED] {addr} disconnected") conn.close() logging.warning(f"===========================================1[STAR TING TIMER][TASK] {name}\n") #if q_tasks.qsize() != 0: # handle_data(q_tasks.get()) lu an n va p ie gh tn to def handle_client(conn, addr): while True: print(f"[NEW CONNECTION] {addr} connected.") conn.send("OK@Welcome to the File Server.".encode(format_encode)) name = conn.recv(size).decode(format_encode) print(f"[RECEIVING] {name}") d oa nl w conn.send("[RECEIVED] FILE NAME".encode(format_encode)) name = name.split("/")[-1] filepath = os.path.join(server_data_path, name) #os.system("rm -rf /server_data/local/*") with open(filepath, "w") as f: while True: text = conn.recv(size).decode(format_encode) # print(text) f.write(text) if not text: break f.close() # self.task_state = True ##add filename into queue q_tasks.put(filepath) print(f"[DISCONNECTED] {addr} disconnected") conn.close() #print(f"[TASK] {name}\n") ll u nf va an lu oi m z at nh z m co l gm @ an Lu def handle_data(filepath): n va ac th si 78 lu an n va p ie gh tn to with open(filepath, "r") as f: data = f.read() f.close() src_ip = info.get_private_ip() name = filepath.split("/")[-1] key_info = src_ip+":"+name ##Check system state overload or not if cpu_percent() > 101.0 and virtual_memory()[2] > 90.0: logging.warning("=================SYSTEM OVERLOAD AND REQUEST SUPPORT==================") #location.create_ksql_stream() #location.query_candidates_with_low_latency() choosen_node = location.select_the_best()[1][0] transfer.kafka_publish_data(kafka_broker_ip=choosen_node, kafka_port=KAFKA_PORT, data_key=key_info, data_value=data) logging.info("HANDLING FILE %s with node: %s" % (q_tasks.get(), choosen_node)) else: logging.info("=============SYSTEM UNDERLOAD AND HANDLE REQUEST BY ITS SELF============") os.system("rm -rf /server_data/test_dataset/test_tasks/*") shutil.copyfile(filepath, f"./server_data/test_dataset/test_tasks/{name}") os.system("python3.8 /Graph2vec.py") os.system("python3.8 /defensive_model.py") with open("./result/pred_result.txt", "r") as f: pred_result = f.read() f.close() transfer.kafka_publish_data(kafka_broker_ip="192.168.2.9", topic=OFFLOAD_RESULT_TOPIC, data_key=name, data_value=pred_result) transfer.kafka_publish_data(kafka_broker_ip="192.168.2.10", topic=OFFLOAD_RESULT_TOPIC, data_key=name, data_value=pred_result) d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ logging.info("====================================================2 [END TIMER][DONE TASK] %s" % name) an Lu def while_(): while True: n va ac th si 79 #logging.info(f"=============={q_tasks.qsize()}=============") if q_tasks.qsize() > 0: file_path = q_tasks.get() print(file_path) print(q_tasks.qsize()) handle_data(file_path) lu def main(): executor = ThreadPoolExecutor(1) executor.submit(while_) active_socket_server() an n va p ie gh tn to if name == " main ": main() d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si

Ngày đăng: 12/07/2023, 17:31

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan