Tổng quan về internet of things
Lịch sử hình thành và phát triển Internet
Internet bắt đầu như một mạng quân sự, với ARPANET được phát triển bởi DARPA vào năm 1969 nhằm thử nghiệm và nghiên cứu Vào thời điểm đó, hệ thống máy tính chủ yếu là các máy chủ trung tâm, dễ bị tổn thương trước các cuộc tấn công tên lửa, có thể phá hủy mọi thông tin Do đó, ARPANET ra đời để phân bổ thông tin trên hệ thống máy tính, nhằm tăng cường tính an toàn và độ bền của mạng.
Ban đầu, ARPANET hoạt động với tốc độ truyền 56 kbps, được xây dựng bởi các viện nghiên cứu và trường đại học tại Mỹ thông qua mạng gói Sự phát triển công nghệ sau đó đã giúp ARPANET trở thành mạng truyền thông trung tâm trong gần 20 năm tiếp theo.
Giao thức TCP/IP là công nghệ nền tảng quan trọng cho sự phát triển của Internet, được DARPA sử dụng làm giao thức chuẩn cho ARPANET Từ đó, TCP/IP đã trở thành giao thức chuẩn trên Internet Nhiều nghiên cứu và phát triển trong công nghệ mạng LAN vào giữa những năm 1970 đã đóng góp đáng kể vào sự tiến bộ của Internet.
Vào năm 1983, mạng ARPANET đã tách ra một phần dành cho mục đích quân sự gọi là MILNET (MILitary NETwork), trong khi phần còn lại chuyển sang phục vụ cho khoa học và nghiên cứu Đồng thời, giao thức TCP/IP đã được chấp nhận làm tiêu chuẩn truyền thông.
Quĩ khoa học quốc gia Hoa Kỳ (NSF) đã xây dựng và vận hành hệ thống mạng độc lập của mình có tên là NSFNET vào năm 1986.
Sau đó, NSFNET và ARPANET đã được liên nối để hình thành nên bản mẫu Internet đầu tiên của thế giới (NSFNET đã hấp thu ARPANET vào năm 1990).
Sự phát triển của Internet phụ thuộc vào việc thiết lập cơ sở hạ tầng truyền thông tin, một yếu tố quan trọng mà phó tổng thống Mỹ Al Gore đã nhận ra từ năm 1993 thông qua kế hoạch NII (kết cấu nền thông tin quốc gia) Kế hoạch này nhấn mạnh việc nghiên cứu và phát triển mạng siêu nhanh (cấp độ Gbps), từ đó thúc đẩy toàn cầu hóa và xây dựng kết cấu nền truyền thông tin Hiện nay, với sự hỗ trợ của giao thức TCP/IP, máy tính cá nhân có khả năng xử lý cao hơn và giá thành thấp hơn, giúp công chúng dễ dàng kết nối Internet, dẫn đến việc sử dụng Internet trở nên phổ biến hơn bao giờ hết.
Giới thiệt về Internet of Things
Với sự bùng nổ của Internet, smartphone và thiết bị cảm biến, Internet of Things (IoT) đang trở thành xu hướng toàn cầu IoT được định nghĩa là các vật dụng có khả năng kết nối Internet, mang đến những tiện ích cho cuộc sống Khái niệm nhà thông minh, nơi mà việc mở cửa, bật đèn, điều chỉnh nhiệt độ và phát nhạc diễn ra tự động, không còn chỉ là tưởng tượng trong phim khoa học viễn tưởng mà đang dần trở thành hiện thực nhờ vào công nghệ IoT.
Internet of Things (IoT) đang phát triển mạnh mẽ với xu hướng ứng dụng trong an toàn giao thông thông qua giải pháp mạng cảm biến phương tiện Mạng cảm biến này bao gồm nhiều phương tiện có khả năng giao tiếp V2V, cho phép truyền và nhận thông tin, giúp các phương tiện nhận biết và dự đoán các tình huống giao thông đang xảy ra hoặc có thể xảy ra trong tương lai.
Các thiết bị Internet of Things (IoT) sử dụng bộ vi xử lý System on Chip (SOC) để vận hành SOC, khác với bộ vi xử lý thông thường, là một máy tính mini tích hợp trong một chip điện tử, có khả năng kết nối không dây và tiết kiệm điện năng Mặc dù kích thước nhỏ gọn, nhưng SOC mạnh mẽ đủ để chạy các hệ điều hành nặng như Windows và Linux, và chúng rất phổ biến trong các linh kiện điện thoại.
Theo dự báo của IDC, thị trường Internet of Things sẽ tăng gấp 3 lần, đạt 1,7 nghìn tỉ USD vào năm 2020, thu hút sự đầu tư mạnh mẽ từ các doanh nghiệp lớn Tuy nhiên, để Internet of Things hoạt động hiệu quả, cần có một nền tảng vững chắc Các doanh nghiệp công nghệ nhận ra rằng, những ai xây dựng được nền tảng dẫn đầu sẽ chiếm ưu thế trong xu hướng mới này.
Internet of Things đã biến nhiều ý tưởng độc đáo thành hiện thực, không chỉ nâng cao công dụng của thiết bị mà còn cải thiện chất lượng cuộc sống Một ví dụ điển hình là Boogio, đôi giày thông minh tích hợp cảm biến mỏng và máy tính Artik siêu nhỏ, cho phép người dùng theo dõi số bước đi, bài tập, lượng calo tiêu thụ và chỉ số sức khỏe, từ đó giúp họ có được một cơ thể dẻo dai hơn.
Weenat là một sản phẩm trong lĩnh vực Internet of Things, nhằm tiết kiệm nước thông qua việc sử dụng cảm biến độ ẩm và máy tính siêu nhỏ để tối ưu hóa quyết định canh tác Hệ thống cảm biến không dây, lắp đặt trực tiếp trên cánh đồng và có tuổi thọ dài, hỗ trợ nông dân tiết kiệm hiệu quả nguồn nước cho tưới tiêu.
Các hãng công nghệ lớn đang phát triển nhiều thiết bị Internet of Things thông minh, góp phần nâng cao chất lượng cuộc sống cho người dùng Những nỗ lực đầu tư không ngừng cho cuộc cách mạng Internet of Things hứa hẹn mang đến một tương lai tươi sáng hơn cho nhân loại.
1.2.3 Những mối nguy hiểm tiềm ẩn
Các thiết bị kết nối với Internet nhưng chỉ được bảo vệ bằng mật khẩu mã hóa cứng (hard-coded password) hoặc mật khẩu yếu.
Lỗ hổng bảo mật Zero-day trong các sản phẩm thông minh ngày càng gia tăng, tạo điều kiện thuận lợi cho tin tặc, botnet và các hình thức tội phạm mạng phát triển.
Các lỗ hổng CVE trên thiết bị IoT như router đang được công khai, tạo ra những lo ngại không chỉ cho các doanh nghiệp mà còn ảnh hưởng đến uy tín của nhà cung cấp dịch vụ.
Lập trình IoT trên linux nếu không hiểu rõ những thư viện tải về sử dụng để code cũng là 1 vấn đề nguy hiểm khi lập trình IoT
Bảo mật cho các thiết bị IoT gặp nhiều khó khăn do các vấn đề kỹ thuật, công nghệ và văn hóa Người dùng thường khó khăn trong việc cập nhật các bản vá mới nhất trên laptop và smartphone Hiện nay, mọi thiết bị đều có thể tồn tại lỗ hổng bảo mật, và việc nâng cấp firmware hoặc cài đặt bản vá cho các thiết bị này thường rất phức tạp.
Hacker ngày nay không chỉ tấn công máy tính xách tay mà còn lợi dụng các thiết bị IoT như camera giám sát CCTV, đầu ghi DVR, smartTV và hệ thống tự động trong nhà để cài mã độc Khác với máy tính bàn hay xách tay, việc phát hiện botnet trong các thiết bị IoT trở nên khó khăn hơn rất nhiều.
Khi một thiết bị bị nhiễm mã độc, nó có thể trở thành điểm khởi đầu để lây lan mã độc sang các thiết bị khác, từ đó hình thành nên một mạng botnet khổng lồ với tốc độ mở rộng nhanh chóng.
Tổng quan về tấn công từ chối dịch vụ ddos
Tổng quan về an ninh mạng
Máy tính chứa phần cứng và dữ liệu được quản lý bởi hệ điều hành, đặc biệt là trong môi trường doanh nghiệp, nơi các máy tính thường được kết nối mạng LAN và Internet Nếu không được trang bị hệ thống bảo vệ, máy tính và mạng có thể trở thành mục tiêu cho virus, worms và người dùng trái phép, dẫn đến nguy cơ bị tấn công bất cứ lúc nào.
An toàn mạng là quá trình bảo vệ hệ thống mạng và máy tính khỏi sự phá hoại phần cứng và chỉnh sửa dữ liệu mà không có sự cho phép Nó cung cấp các giải pháp và chính sách nhằm bảo vệ máy tính và hệ thống mạng, ngăn chặn người dùng trái phép cũng như phần mềm độc hại xâm nhập bất hợp pháp.
Tổng quan về tấn công từ chối dịch vụ
2.2.1 Giới thiệu về tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ (DoS) là hành vi cố gắng làm cho tài nguyên của một máy tính không thể sử dụng được cho người dùng, thường thông qua sự phối hợp và nỗ lực ác ý của một hoặc nhiều cá nhân Mặc dù động cơ và mục tiêu của các cuộc tấn công này có thể khác nhau, chúng thường nhằm vào việc làm gián đoạn hoạt động hiệu quả của một trang web hoặc dịch vụ trực tuyến, có thể kéo dài tạm thời hoặc không xác định.
Tấn công từ chối dịch vụ DoS (Denial of Service) là hành động ngăn cản người dùng hợp pháp truy cập vào dịch vụ bằng cách làm tràn ngập mạng hoặc mất kết nối với dịch vụ, dẫn đến việc máy chủ không thể đáp ứng yêu cầu từ các máy trạm DoS có thể gây ngưng hoạt động cho một máy tính, mạng nội bộ hoặc toàn bộ hệ thống mạng lớn Kẻ tấn công thường chiếm dụng tài nguyên mạng như băng thông và bộ nhớ, làm giảm khả năng xử lý yêu cầu từ các client khác Một trong những công cụ phổ biến để thực hiện các cuộc tấn công DoS là botnet, tập hợp các thiết bị bị nhiễm mã độc có thể được điều khiển từ xa để tấn công mục tiêu.
Một "bot" là phần mềm độc hại cho phép kẻ tấn công kiểm soát hoàn toàn máy tính bị nhiễm Những máy tính này thường được gọi là zombie và có hàng ngàn máy tính trên Internet đang bị nhiễm mà chủ sở hữu không hề hay biết.
Máy chủ Bot kiểm soát và điều khiển một botnet được gọi là botmaster.
Bot là một chương trình client cho phép Botmaster ra lệnh và kiểm soát máy tinh bị nhiễm
Botnet là một mạng lưới các máy tính bị xâm nhập, lây nhiễm bởi bot. b) Nguyên lý hoạt động Botnet
Một botnet bao gồm một botmaster và nhiều bot, cho phép các bot hoạt động phối hợp Khả năng này là nền tảng cho khái niệm botnet, được quản lý bởi một bot-herder.
Botnet được khởi nguồn từ Botnet-herder, người tạo ra mạng lưới bot phục vụ cho các mục đích độc hại Những mục đích này bao gồm tấn công một mục tiêu cụ thể thông qua các cuộc tấn công DDoS và kiểm soát tiền bạc bằng cách phát tán thư rác.
Một Bot-herder có thể sử dụng công cụ IRC và CMD để kết nối với máy chủ C&C, hoạt động như một proxy để gửi lệnh điều khiển từ hacker tới mạng botnet Để khai thác botnet hiệu quả, cần có kinh nghiệm lập trình giao thức lệnh ngay từ đầu.
Sự gia tăng băng thông tiêu dùng đã làm tăng sức mạnh của botnet, cho phép chúng khởi động các cuộc tấn công DDoS nhắm vào server Điều này dẫn đến việc lây nhiễm hàng triệu máy tính bằng phần mềm gián điệp và mã độc, đánh cắp dữ liệu nhận dạng, gửi lượng lớn thư rác, tham gia vào các hoạt động click gian lận, cũng như thực hiện các hành vi hăm dọa và tống tiền.
Botnet hiện nay là một trong những mối đe dọa an ninh mạng hàng đầu, thu hút sự chú ý của hacker nhờ khả năng thực hiện các cuộc tấn công từ xa qua các client (bot) Việc kiếm tiền từ dịch vụ tấn công botnet trở nên dễ dàng, và hacker có khả năng khai thác các lỗ hổng mới một cách nhanh chóng Hơn nữa, botnet rất khó phát hiện do tính năng năng động và khả năng thích ứng nhanh chóng, giúp chúng lẩn tránh các biện pháp bảo vệ an ninh phổ biến hiện nay.
Các sản phẩm bảo mật và quản trị hệ thống thông tin cần thiết để ngăn chặn mạng trở thành botnet Cả mạng doanh nghiệp và mạng tư nhân đều phải được bảo vệ khỏi các cuộc tấn công botnet nhằm ngăn chặn việc lạm dụng tài nguyên hạ tầng lớn.
2.2.2 Mô hình tấn công từ chối dịch vụ
2.2.3 Xu hướng tấn công từ chối dịch vụ của tội phạm mạng
Nghiên cứu về mã nguồn botnet mirai
Giới thiệu về Botnet Mirai
Đây là loại botnet không được xây dựng để điều khiển các máy tính mà hướng đến các thiết bị IoT (Internet of Things).
Mirai thực hiện việc quét dải mạng IPv4 để phát hiện các thiết bị IoT, nhằm tối ưu hóa hiệu suất quét, Mirai đã loại bỏ một số dải IP nhất định.
Sau khi xác định các thiết bị IoT, Mirai tiến hành truy cập qua telnet hoặc thực hiện tấn công brute force để lấy mật khẩu qua telnet hoặc ssh Mã nguồn của Mirai cho thấy nó sử dụng 60 tài khoản và mật khẩu mặc định, bao gồm các cặp như root:root, admin:admin1234, và guest:guest…
Mã độc này có khả năng truy cập vào thiết bị nhưng sử dụng lệnh đặc biệt của Busybox, một tiện ích trên các thiết bị Linux nhúng, do đó bot sẽ không lây nhiễm nếu thiết bị không cài đặt Busybox.
Khi mã độc Mirai sử dụng busybox, nó sẽ bắt đầu quá trình lây nhiễm Sau khi lây nhiễm thành công, Mirai loại bỏ tất cả các tiến trình sử dụng cổng 22 và 23 để ngăn chặn việc đăng nhập vào thiết bị Sau đó, mã độc kết nối với máy chủ điều khiển và chờ nhận lệnh tấn công.
Botnet này chủ yếu nhằm thực hiện tấn công từ chối dịch vụ (DDoS) bằng cách áp dụng 10 kỹ thuật tấn công từ cơ bản đến nâng cao, nhằm đạt hiệu quả tối ưu Một trong những hình thức tấn công phổ biến là tấn công HTTP, trong đó Mirai sử dụng 5 user-agent khác nhau để tránh bị phát hiện.
Hình Nghiên cứu về mã nguồn botnet mirai.2 Mirai sử dụng 5 user-agent khác nhau (mirai/bot/table.h).
Mirai có khả năng phát hiện và vượt qua các cơ chế kiểm tra bot cơ bản của các dịch vụ bảo vệ, như Cloudflare và Dosarrest, nhằm ngăn chặn các cuộc tấn công từ chối dịch vụ.
Ngoài những tấn công thông dụng ra, Mirai sử dụng 2 kỹ thuật ít gặp gần đây là tấn công “DNS Water Torture” và “GRE IP Flood”.
Hình Nghiên cứu về mã nguồn botnet mirai.3 Mirai sử dụng 10 kỹ thuật tấn công từ chối dịch vụ (mirai/bot/attack.h).
3.1.1 Thành phần cấu trúc của Botnet Mirai
- A: Attacker có toàn quyền ra lệnh đối với mạng botnet
- B: Những thiết bị sau khi bị nhiễm mã độc.
- C: CNC server giữ liên lạc giữa người dùng và mạng botnet.
- R: Report server tiếp nhận và lây lan bot về các thiết bị IoT mới.
- L: Loader server lấy thông tin từ Report server và lây nhiễm malware.
- U: Những khách hàng thuê mạng botnet để DDoS Victim.
- V: Những thiết bị IoT có lỗ hổng.
Hình Nghiên cứu về mã nguồn botnet mirai.4 Mô hình hoạt động logic của các thành phần.
Cấu trúc mã nguồn chính bao gồm hai thư mục quan trọng: Loader và Mirai Thư mục Loader chứa mã nguồn cần thiết để thiết lập Report server, trong khi thư mục Mirai chứa mã nguồn để phát triển các con Bot và thiết lập CNC server.
Hình Nghiên cứu về mã nguồn botnet mirai.5 Cấu trúc thư mục mã nguồn
3.1.2 Cách thức điều khiển và lây lan Bots:
Kết nối CNC Server để ra lệnh:
Bước 1: Attacker kết nối tới CNC qua telnet/ssh tới ip CNC qua port 23 bằng lệnh cmd : “telnet 23”.
Bước 2: Thực hiện đăng nhập bằng Account được cấp bởi Admin (Attacker).
Bước 3: Sử dụng lệnh attack.
Các bot trong mạng Botnet sẽ tiến hành quét các thiết bị IoT mới và thực hiện tấn công brute force vào những thiết bị này nếu không thể truy cập qua telnet.
Bước 2: Sau khi brute force thành công thiết bị IoT, Bot gửi các thông tin gồm IP, Port, Username, Password về Report server.
Bước 3: Lấy thông tin từ Report server cấp cho Loader server để thực hiện đăng nhập tới thiết bị IoT và load mã độc lây nhiễm thiết bị.
Thiết bị IoT bị lây nhiễm sẽ thực hiện các chức năng cài đặt trước như quét (scan), tấn công brute force và kết nối tới máy chủ CNC.
Phân tích các thành phần của Botnet Mirai
3.2.1 Máy chủ CNC a) Chức năng
Thư mục CNC: giám sát, kiểm soát, thực hiện ra lệnh Bot tấn công và quản lý/cấp quyền cho các Account b) Nguyên lý hoạt động
Các mã trong thư mục này được phát triển bằng ngôn ngữ Golang để xây dựng một máy chủ CNC, có khả năng thiết lập kết nối và giao tiếp giữa kẻ tấn công và mạng botnet lớn.
CNC server sẽ nghe cổng 23 để nhận telnet từ attacker hoặc thông tin về Bot mới và 101 thực hiện truyền các lệnh tấn công xuống cho botnet.
Hình Nghiên cứu về mã nguồn botnet mirai.6 CNC lắng nghe kết nối
Khi nhận dữ liệu tại cổng 23, chương trình thực hiện các nhiệm vụ khác nhau tùy thuộc vào thông tin nhận được Nếu dữ liệu gồm 4 bytes và có định dạng “00 00 00 x” (với x > 0), chương trình xác định đây là tín hiệu từ một Bot mới Ngược lại, nếu không thỏa mãn điều kiện trên, chương trình nhận diện kết nối từ Attacker qua telnet Nếu Attacker có quyền quản trị, họ có khả năng tạo thêm các username với số lượng Bot cụ thể.
Hình Nghiên cứu về mã nguồn botnet mirai.7 CNC nhận được thông tin là bot hoặc admin (mirai/cnc/main.go).
Dòng 39: Nhập user Nếu không nhập sẽ dừng chương trình.
Hình Nghiên cứu về mã nguồn botnet mirai.8 Nhập username từ cmd.
Dòng 47 : Nhập Password Nếu không nhập sau một khoảng thời gian đã được thiết lập sẽ dừng chương trình.
Hình Nghiên cứu về mã nguồn botnet mirai.9 Nhập password từ cmd.
Dòng 62 : Kiểm tra username/password trong Database Ở bước này, hàm TryLogin sẽ sử dụng account để đăng nhập vào Database sau đó kiểm tra username/password có tồn tại hay không? Nếu không tồn tại sẽ hiện thông báo và thoát.
Hình Nghiên cứu về mã nguồn botnet mirai.10 Nhập password từ cmd.
In ra các dòng thông báo sau khi đăng nhập thành công.
Hình Nghiên cứu về mã nguồn botnet mirai.11 Thông báo đăng nhập thành công.
Hàm func() sẽ liên tục theo dõi số lượng Bot kết nối đến CNC theo thời gian thực, giúp hacker xác định số thiết bị có thể sử dụng cho cuộc tấn công tại thời điểm hiện tại.
Hình Nghiên cứu về mã nguồn botnet mirai.12 Kiểm tra số lượng Bot connect tới
CNC là đoạn mã thiết lập số lượng Bot mà tài khoản có thể sử dụng Với một mạng botnet khổng lồ có khả năng tấn công bất kỳ thứ gì trên Internet, hacker có thể cho thuê bot để kiếm lợi nhuận Do đó, hacker sẽ tạo một tài khoản và xác định số lượng Bot mà tài khoản đó được phép sử dụng.
Dòng 122 và 123: Add thêm user/password vào database
Dòng 133: Nếu nhập -1 thì username có thể sử dụng tất cả số Bot đang active.
Dòng 139: Kiểm tra số lượng Bot nhập vào hợp lệ?
Dòng 144: Kiểm tra thời gian tấn công có hợp lệ? (đơn vị giây)
Hình Nghiên cứu về mã nguồn botnet mirai.13 Thêm và cấu hình cho tài khoản mới.
Hàm attackInfoLookup sẽ trả về các tham số phục vụ cho từng loại tấn công, Cấu trúc nhập lệnh tấn công: [flag].
Hình Nghiên cứu về mã nguồn botnet mirai.14 Hàm AttackInfoLookup.
3.2.2 Máy chủ Loader a) Chức năng
Thư mục này chứa mã nguồn cho việc xây dựng Loader server, một máy chủ chuyên lây lan bots Máy chủ này thu thập thông tin từ hacker thông qua STDIN và sau đó thực hiện đăng nhập vào các thiết bị IoT để lây nhiễm mã độc.
Loader server sẽ tạo các socket trên các card mạng để tạo các socket kết nối đến các IoT đồng thời
Hình Nghiên cứu về mã nguồn botnet mirai.15 Thiết lập network card cho report server (loader/main.c).
Để lây lan mã độc, hàm server_create() được gọi để thiết lập kết nối với server chứa malware thông qua giao thức wget hoặc tftp Loader sẽ sử dụng một trong hai giao thức này để tải malware từ server TFTP hoặc Wget và thực thi nó trên thiết bị.
Hình Nghiên cứu về mã nguồn botnet mirai.16 Khởi tạo server chứa mã độc
Loader server sẽ nhận dữ liệu đầu vào qua chuẩn STDIN từ bàn phím với định dạng “IP:Port Username:Password” thông qua vòng lặp while(TRUE) để liên tục kiểm tra Tuy nhiên, việc nhập liệu thủ công có thể dẫn đến độ trễ trong việc phát hiện thiết bị và lây nhiễm mã độc, gây nguy cơ mất thiết bị IoT Để khắc phục vấn đề này, đã có đoạn mã tự động chuyển thông tin từ Report server sang Loader server.
Hình Nghiên cứu về mã nguồn botnet mirai.17 Nhận ip, port, user, pass từ STDIN
Hàm worker() thực hiện quá trình đăng nhập và lây lan bot thông qua việc sử dụng các lệnh được truyền qua tiện ích busybox có sẵn trên các thiết bị IoT Busybox là công cụ giúp giao tiếp giữa quản trị viên và thiết bị IoT thông qua dòng lệnh CMD, cụ thể là bashshell.
Hình Nghiên cứu về mã nguồn botnet mirai.18 Sử dụng busybox login và lây mã độc (loader/server.c).
3.2.3 Máy chủ Report a) Chức năng
Tệp tin scanListen được phát triển bằng ngôn ngữ Golang, có chức năng lắng nghe các phản hồi từ mạng botnet liên quan đến các thiết bị IoT mà các bot đã thành công trong việc bruteforce Nguyên lý hoạt động của nó tập trung vào việc thu thập và phân tích thông tin từ các thiết bị này.
Lắng nghe kết nối đến cổng 48101 để đợi kết quả gửi về từ bot.
Hình Nghiên cứu về mã nguồn botnet mirai.19 Lắng nghe kết nối trên cổng 48101
Thông tin thiết bị được hiển thị và có thể được sử dụng để cung cấp cho server Loader, nhằm thực hiện việc lây nhiễm mã độc lên thiết bị.
Hình Nghiên cứu về mã nguồn botnet mirai.20 Hiển thị thông tin thiết bị bruteforce được (scanListen.go).
Thư mục bot: chứa mã nguồn bot, thực hiện các chức năng cơ bản mặc định của bot khi mới lây nhiễm:
Ẩn tệp tin mã độc.
Ngăn thiết bị khởi động lại.
Kill các process đang chiếm cổng 22(ssh)| 23(telnet)| 80(http)
Tạo kết nối mới tới CNC.
Ẩn tiến trình hoạt động.
Bruteforce thiết bị IoT rồi gửi về cho Report server.
Lắng nghe điều khiển của CNC server để chờ yêu cầu tấn công Victim. b) Nguyên lý hoạt động
Bot sẽ ngụy trang quá trình hoạt động của mình bằng cách thay đổi tên một cách ngẫu nhiên Thuật toán ngẫu nhiên được áp dụng thông qua việc dịch bit và sử dụng phép toán xor.
Hình Nghiên cứu về mã nguồn botnet mirai.21 Che dấu tiến trình
Khởi tạo các tham số cho các kiểu tấn công khác nhau, bao gồm UDP, VSE, DNS, SYN và nhiều loại tấn công DDoS khác, để người dùng có thể lựa chọn.
Hình Nghiên cứu về mã nguồn botnet mirai.22 Các phương thức tấn công
Để bảo vệ thiết bị của bạn khỏi sự truy cập trái phép, hãy dừng tất cả các tiến trình đang mở cổng 22 và 23 Điều này sẽ ngăn chặn hacker và quản trị viên không mong muốn kết nối với thiết bị thông qua các dịch vụ này.
Hình Nghiên cứu về mã nguồn botnet mirai.23 Kill các cổng dịch vụ
Các thiết bị giám sát như camera thường được kết nối với watchdog để đảm bảo hoạt động liên tục Khi phát hiện dấu hiệu treo hoặc không thể sử dụng, watchdog sẽ tự động reset thiết bị Do đó, việc ngăn chặn mã độc là rất quan trọng để bảo vệ quá trình hoạt động của các thiết bị này.
Hình Nghiên cứu về mã nguồn botnet mirai.24 Ngăn cản thiết bị reboot lại
Khởi tạo thông số cho việc rà quét các thiết bị với IP và username, password mặc định
Hình Nghiên cứu về mã nguồn botnet mirai.25 Tài khoản dùng để bruteforce IoT mới (mirai/bot/scanner.c).
Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot
Mô tả thực nghiệm
Mô hình thực nghiệm sẽ gồm:
• 1 máy chủ Kali linux chứa thành phần 1->5
• 1 máy kali linux chứa thành phần 6 và chạy mã độc.mirai.dbg
• 1 máy chủ windows server là thành phần 7.
• 1 máy windows 10 là thành phần 8.
Number Name Execute Port IP
6 Bot mirai.dbg || mirai.arm 203.162.130.66
Bảng 1 Thành phần thực nghiệm.
Thử nghiệm tấn công
Triển khai thực nghiệm sẽ gồm 7 bước cụ thể tương ứng với 5 giai đoạn hình thành tấn công.
Bước 1 Khởi chạy CNC Server
Bước 1 có 2 nhiệm vụ chính:
1 Kết nối tới Database Database chứa thông tin về History, Admin bao gồm Username/Password của Admin, số lượng Max Bot mà Admin có thể sử dụng tấn công và WhiteList chứa các địa chỉ IP không được tấn công
2 Mở port 23 chờ kết nối từ Bot và Attacker.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.29 Khởi chạy CNC
Dòng 12 -> 15: Chứa thông tin để CNC connect tới Database.
Dòng 18: Gọi hàm đăng nhập Database.
Dòng 21 -> 24: Lắng nghe kết nối đến cổng 23.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.30 Cài đặt thông tin
Dòng 23 -> 30: CNC đăng nhập Database
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.31 CNC đăng nhập
Bước 2 Khởi chạy Report Server
Mở port 48101 chờ kết quả scan các thiết bị IoT khác của Bot.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.32 Khởi chạy scanListen.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.33 Mở port 48101 chờ kết quả từ Bot.
Bước 3 Nhập thiết bị IoT cho Loader lây lan Malware
Bước 3 có 2 nhiệm vụ chính:
1 Loader điều khiển thiết bị và lây nhiễm Malware.
2 Hiển thị tổng số lượng về Process xử lý, Connect tới Loader, thiết bị IoT đăng nhập thành công, Wgets và TFTP.
Tiến hành nhập thông tin thiết bị IoT gồm: IP:Port Username:Password từ Scanlisten vào loader
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.34 Nhập Bot cho
Loader telnet thiết bị IoT -> Loader thực hiện lây lan Malware.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.35 Loader kết nối thiết bị IoT lây nhiễm Malware.
Loader gửi lệnh tới thiết bị IoT nhằm dùng tiện ích Busybox để download và thực thi Malware.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.36 Loader thực hiện lây lan Malware.
Bước 4 Attacker telnet tới CNC
1 Kết nối và điều khiển CNC theo Realtime.
2 Update số lượng Bot connect.
Sau khi lây Malware thành công ở bước 3 thì giờ đây Attacker đã có thể kết nối tới CNC và dùng CNC điều khiển Bot.
Attacker ở đây có vai trò là Admin Attacker sẽ sử dụng CMD để điều khiển CNC và ra lệnh tới Bot thông qua CNC.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.37 Attacker telnet tới
Attacker kết nối tới CNC và đã thấy có 1 Bot kết nối đến CNC.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.38 Attacker đăng nhập CNC.
Attacker telnet và đăng nhập CNC.
Attacker sử dụng user/pass là hacker/hacker và đã đăng nhập công.
Sau khi follow tcp ta thấy string tương ứng với tài khoản đăng nhập là hacker/hacker và thông tin về số lượng Bot connect tới CNC.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.39 Kiểm tra kết nối tới cổng 23 là Bot hay Admin (cnc/main.go).
Dòng 66: Nếu nhận được 4 bytes \x00\x00\x00\x01 => Bot connect CNC. Ngược lại, Admin connect CNC.
Bước 5 Kiểm tra trạng thái Loader Server, Bot, Report Server
Kiểm tra trạng thái của Loader Server, Bot, Report Server sau khi lây nhiễm Malware.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.40 Loader hiển thị
Bot kết nối thành công.
Như vậy Bot có IP 61.222.7.176, port 23, tài khoản admin/1111, kiến trúc arm7.
Và đặc biệt Bot có tiện ích Busybox và có thể sử dụng lệnh Wget Wget như đã nói từ trước giúp thiết bị tải Malware từ Wget Server.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.41 Thông tin Bot scan thiết bị khác.
Ngay sau khi lây nhiễm Malware vào thiết bị thì Bot sẽ:
Tự kill các tiến trình đang mở port 23 trên Bot nhằm không cho bất kỳ ai có thể truy cập vào thiết bị qua port 23.
Phân giải tên miền CNC
Tự động bruteforce thiết bị khác và đồng thời giữ kết nối với CNC.
Gửi kết quả cho Report Server
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.42 Thông tin thiết bị mà Bot bruteforce thành công.
Hiển thị thông tin về thiết bị mà Bot bruteforce thành công.
Trong mã nguồn Mirai, bot chỉ thực hiện brute force mà chưa kiểm tra điều kiện lây nhiễm malware trên thiết bị, do đó không thể khẳng định thiết bị đó phù hợp để lây bot Loader server mới là nơi xác định điều kiện và lây nhiễm malware, không phải scanListen Cần phân biệt rõ ràng điều này, vì đây chỉ là điều kiện cần nhưng chưa đủ.
Bước 6 Attacker tấn công Victim
1 Hiển thị thông tin về user đăng nhập và số lượng Bot có thể attack.
Nhập lệnh tấn công theo định dạng : [Flags]
Ví dụ: syn 203.162.130.66 30 psh==1 syn 203.162.130.66 3600 ack==1
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.43 Nhập lệnh tấn công.
Lệnh sẽ được Attacker gửi sẽ được gửi như sau:
Attacker nhập lệnh tấn công qua CMD -> CNC -> Bot -> Victim
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.44 Lệnh hacker dùng tấn công.
Attacker tấn công Victim bằng Syn Flood và có cả Flag Push trong vòng 20s.
Bước 7 Kiểm tra kết quả
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.45 Thiết bị IoT là IP
Camera bị chiếm quyền kiểm soát.
Hình Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot.46 Victim bị Attacker tấn công khiến lưu lượng tăng cao.
Bot liên tục gửi gói tin tấn công Victim trong vòng 20s Tuy nhiên, số lượng gói tin Victim phải hứng chịu rất lớn.