BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ĐỀ CƯƠNG ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU TẤN CÔNG DDOS VỚI BOTNET MIRAI
TRÊN CÁC THIẾT BỊ INTERNET OF THINGS ( IoT )
Ngành: Công nghệ thông tin
Chuyên ngành: An toàn thông tin
Mã số: 52.48.02.01
Hà Nội, 2017
1
BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ĐỀ CƯƠNG ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU TẤN CÔNG DDOS VỚI BOTNET MIRAI
TRÊN CÁC THIẾT BỊ INTERNET OF THINGS ( IoT )
Ngành: Công nghệ thông tin
Chuyên ngành: An toàn thông tin
Mã số: 52.48.02.01
Sinh viên thực hiện:
Nguyễn Thế Đạt
Lớp: AT9A
Người hướng dẫn :
KS. Nguyễn Mạnh Thắng
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã
Mọi đóng góp trao đổi liên hệ:
SĐT: 01699960595 hoặc 0949423894. Mail:
Hà Nội, 2017
2
MỤC LỤC
Danh mục kí hiệu và viết tắt................................................................................... 4
Danh mục hình vẽ .................................................................................................... 5
Danh mục bảng ........................................................................................................ 7
Lời nói đầu ............................................................................................................... 8
Chương 1. Tổng quan về internet of things .......................................................... 9
1.1. Lịch sử hình thành và phát triển Internet ............................................................ 9
1.2. Giới thiệt về Internet of Things ......................................................................... 10
1.2.1. Xu hướng phát triển ............................................................................. 10
1.2.2. Ứng dụng thực tiễn .............................................................................. 11
1.2.3. Những mối nguy hiểm tiềm ẩn ............................................................. 12
Chương 2. Tổng quan về tấn công từ chối dịch vụ ddos ................................... 13
2.1. Tổng quan về an ninh mạng .............................................................................. 13
2.2. Tổng quan về tấn công từ chối dịch vụ ............................................................. 13
2.2.1. Giới thiệu về tấn công từ chối dịch vụ ................................................. 13
2.2.2. Mô hình tấn công từ chối dịch vụ ........................................................ 14
2.2.3. Xu hướng tấn công từ chối dịch vụ của tội phạm mạng ...................... 14
Chương 3. Nghiên cứu về mã nguồn botnet mirai ............................................. 15
3.1. Giới thiệu về Botnet Mirai ................................................................................ 15
3.1.1. Thành phần cấu trúc của Botnet Mirai ............................................... 16
3.1.2. Cách thức điều khiển và lây lan Bots: ................................................. 17
3.2. Phân tích các thành phần của Botnet Mirai ...................................................... 17
3.2.1. Máy chủ CNC....................................................................................... 17
3.2.2. Máy chủ Loader ................................................................................... 22
3.2.3. Máy chủ Report.................................................................................... 24
3.2.4. Mã độc ................................................................................................. 25
Chương 4. Triển khai thực nghiệm botnet mirai trÊn cÁc thiết bị iot ............ 30
4.1. Mô tả thực nghiệm ............................................................................................ 30
4.2. Thử nghiệm tấn công ........................................................................................ 30
Kết luận .................................................................................................................. 43
Tài liệu tham khảo................................................................................................. 44
Phụ lục .................................................................................................................... 45
3
DANH MỤC KÍ HIỆU VÀ VIẾT TẮT
||
Hoặc
&
Và
Admin
Administrator
ARPANET Advanced Research Projects Agency Network
Command And Control
CNC
DDoS
Distributed Denial of Service
IP
Internet Protocol
IoT
Internet of Things
Local Area Metwork
LAN
NII
NSF
National Information Infrastructure
National Science Foundation
MILNET
Military Network
TCP/IP
Transmission Control Protocol/Internet Protocol
4
DANH MỤC HÌNH VẼ
Hình 1.1. Xu hướng phát triển IoT. ........................................................................... 10
Hình 3.1. Mirai sử dụng 5 user-agent khác nhau (mirai/bot/table.h). ..................... 15
Hình 3.2. Mirai sử dụng 10 kỹ thuật tấn công từ chối dịch vụ (mirai/bot/attack.h). 16
Hình 3.3. Mô hình hoạt động logic của các thành phần........................................... 16
Hình 3.4. Cấu trúc thư mục mã nguồn ...................................................................... 17
Hình 3.5. CNC lắng nghe kết nối (mirai/cnc/main.go). ............................................ 18
Hình 3.6. CNC nhận được thông tin là bot hoặc admin (mirai/cnc/main.go). ......... 19
Hình 3.7. Nhập username từ cmd.............................................................................. 19
Hình 3.8. Nhập password từ cmd. ............................................................................. 19
Hình 3.9. Nhập password từ cmd. ............................................................................. 20
Hình 3.10. Thông báo đăng nhập thành công........................................................... 20
Hình 3.11. Kiểm tra số lượng Bot connect tới CNC. ................................................ 20
Hình 3.12. Thêm và cấu hình cho tài khoản mới. ..................................................... 21
Hình 3.13. Hàm AttackInfoLookup. .......................................................................... 22
Hình 3.14. Thiết lập network card cho report server (loader/main.c). .................... 22
Hình 3.15. Khởi tạo server chứa mã độc (loader/main.c). ....................................... 23
Hình 3.16. Nhận ip, port, user, pass từ STDIN (loader/main.c). .............................. 23
Hình 3.17. Sử dụng busybox login và lây mã độc (loader/server.c). ........................ 24
Hình 3.18. Lắng nghe kết nối trên cổng 48101 (scanListen.go). .............................. 24
Hình 3.20. Hiển thị thông tin thiết bị bruteforce được (scanListen.go). .................. 25
Hình 3.21. Che dấu tiến trình (mirai/bot/main.c). .................................................... 26
Hình 3.22. Các phương thức tấn công (mirai/bot/attack.c). ..................................... 26
Hình 3.23. Kill các cổng dịch vụ (mirai/bot/killer.c). ............................................... 27
Hình 3.24. Ngăn cản thiết bị reboot lại (mirai/bot/main.c). ..................................... 27
Hình 3.25. Tài khoản dùng để bruteforce IoT mới (mirai/bot/scanner.c). ............... 28
Hình 3.26. Địa chỉ bruteforce thiết bị IoT mới (mirai/bot/scanner.c). ..................... 28
Hình 3.27. Bot gửi thông tin các IoT mới đã bruteforce (mirai/bot/scanner.c). ...... 28
Hình 3.28. Khai báo domain và port các server (mirai/bot/table.c). ....................... 29
Hình 4.1. Khởi chạy CNC Server. ............................................................................. 31
Hình 4.2. Cài đặt thông tin của Database (cnc\main.c). .......................................... 32
Hình 4.3. CNC đăng nhập Database (cnc\database.go). ......................................... 32
Hình 4.4. Khởi chạy scanListen. ............................................................................... 32
Hình 4.5. Mở port 48101 chờ kết quả từ Bot. ........................................................... 33
Hình 4.6. Nhập Bot cho Loader. ............................................................................... 33
Hình 4.7. Loader kết nối thiết bị IoT lây nhiễm Malware. ....................................... 34
Hình 4.8. Loader thực hiện lây lan Malware. ........................................................... 34
Hình 4.9. Attacker telnet tới CNC. ............................................................................ 35
Hình 4.10. Attacker đăng nhập CNC. ....................................................................... 36
Hình 4.11. Kiểm tra kết nối tới cổng 23 là Bot hay Admin (cnc/main.go). .............. 37
Hình 4.12. Loader hiển thị Bot kết nối thành công. .................................................. 38
Hình 4.13. Thông tin Bot scan thiết bị khác.............................................................. 39
Hình 4.14. Thông tin thiết bị mà Bot bruteforce thành công. ................................... 40
5
Hình 4.15. Nhập lệnh tấn công. ................................................................................ 40
Hình 4.16. Lệnh hacker dùng tấn công. .................................................................... 41
Hình 4.17. Thiết bị IoT là IP Camera bị chiếm quyền kiểm soát. ............................ 42
Hình 4.18. Victim bị Attacker tấn công khiến lưu lượng tăng cao. .......................... 42
6
DANH MỤC BẢNG
Bảng 1. Thành phần thực nghiệm. ............................................................................ 30
7
LỜI NÓI ĐẦU
Internet of Things là cụm từ nhằm để chỉ các đối tượng có thể được nhận biết
cũng như sự tồn tại của chúng và được Kenvin Ashton đưa ra năm 1999. Cho đến
nay, mạng lưới vạn vật kết nối Internet là một kịch bản của thế giới hiện đại khi mà
mỗi đồ vật, con người được cung cấp một định danh riêng và tất cả đều có khả năng
truyền tải, trao đổi thông tin qua mạng mà không cần tương tác trực tiếp giữa người
với người hay người với máy tính. Tóm lại, IoT là một tập hợp các thiết bị có khả
năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện một công
việc nào đó.
Trong bối cảnh IoT bùng nổ như là một xu hướng mới trong tương lai đi kèm
với những tiện ích thì cũng tiềm ẩn những mối nguy hại và trở thành mục tiêu hàng
đầu của giới Hacker hiện đại. IoT có thể gây ảnh hưởng xấu nếu các thiết bị bảo mật
kém có thể bị nhiễm mã độc và trở thành một zombie trong mạng botnet. Khi hacker
điều khiển một lượng lớn thiết bị IoT sẽ dễ dàng tấn công DDoS đánh sập bất cứ thứ
gì trên Internet với lượng dữ liệu khổng lồ.
Cuối năm 2016, mã nguồn Mirai đã được công bố gây ra ảnh hướng lớn kèm
theo vô vàn mối lo và cũng là lời cảnh báo với các sản phẩm IoT trong tương lai. Vì
vậy đề tài được chọn khi thực hiện đồ án tốt nghiệp này là "Nghiên cứu tấn công
DDoS với botnet Mirai trên các thiết bị Internet of Things (IoT)".
Đồ án được thực hiện nhằm mục đích nghiên cứu cách thức hoạt động và mối
nguy hiểm của mã nguồn botnet Mirai trên thiết bị IoT để từ đó đưa ra các giải pháp
phòng chống.
Mục tiêu đặt ra khi thực hiện đồ án là:
1. Xây dựng hệ thống botnet.
2. Nghiên cứu cách thức hoạt động của hệ thống botnet.
3. Tìm hiểu một số kỹ thuật coding thú vị trong mã nguồn.
4. Lây nhiễm mã độc lên thiết bị thật và thực nghiệm tấn công DDoS.
5. Nghiên cứu phát triển những hạn chế của mã nguồn.
Sau thời gian khoảng bốn tháng thực hiện đồ án, các mục tiêu về cơ bản đã
đạt được. Tuy nhiên tấn công DDoS IoT là lĩnh vực khoa học phức tạp, thời gian
thực hiện đồ án tương đối ngắn nên chắc chắn không tránh khỏi thiếu sót. Rất mong
được sự góp ý của các thầy cô, cũng như các bạn học viên để đồ án này được hoàn
thiện hơn.
8
CHƯƠNG 1. TỔNG QUAN VỀ INTERNET OF THINGS
1.1. Lịch sử hình thành và phát triển Internet
Internet được sinh ra như một mạng được phát triển cho mục đích quân sự.
Mạng có tên ARPANET đã được phát triển để thử nghiệm và nghiên cứu bởi cơ
quan dự án nghiên cứu nâng cao của Bộ quốc phòng Mỹ (DARPA) vào năm 1969
chính là nguồn gốc sinh ra Internet. Vào thời đó, hệ thống máy tính chủ yếu là hệ
thống máy chủ trung tâm và bị coi là rất mong manh đối với các cuộc tấn công tên
lửa, vì chỉ một cuộc tấn công có thể phá hủy mọi thông tin. Do vậy, ARPANET đã
được xây dựng thành một dự án nghiên cứu để phân bổ thông tin trên hệ thống máy
tính.
Ban đầu, với tốc độ truyền thấp 56 kbps và hệ thống đã được tạo nên bởi các
viện nghiên cứu và các trường đại học ở Mỹ được kết nối bằng mạng gói. Sau đó sự
phát triển của công nghệ đã tạo khả năng làm cho ARPANET đóng vai trò trung tâm
như một mạng truyền thông trong gần 20 năm sau.
Giao thức truyền thông TCP/IP là một trong các công nghệ nền tảng mà
không thể bỏ qua khi bạn nói về sự phát triển Internet. Bởi DARPA đã sử dụng
TCP/IP như là giao thức chuẩn cho ARPANET, từ đó TCP/IP được phát triển thành
giao thức chuẩn trên Internet. Rất nhiều đầu tư nghiên cứu và phát triển trong công
nghệ mạng LAN đã được thực hiện vào giữa những năm 1970 đã đóng góp rất nhiều
vào sự phát triển Internet.
Vào năm 1983, một phần của mạng ARPANET phục vụ chủ yếu cho mục
đích quân sự đã được cắt bỏ (phần này có tên là MILNET (MILitary NETwork) và
phần còn lại của mạng được chuyển thành mạng phục vụ cho khoa học và nghiên
cứu. TCP/IP đã được chấp nhận là giao thức truyền thông vào thời điểm đó.
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).
Một yếu tố không thể thiếu trong sự phát triển của Internet đó là thiết lập cơ
sở hạ tầng truyền thông tin. Một trong những người đầu tiên nhận ra tầm quan trọng
của việc xây dựng cơ sở hạ tầng truyền thông này chính là phó tổng thống Mỹ khi
đó, ông Al Gore, người đã đưa ra kế hoạch NII (kết cấu nền thông tin quốc gia) vào
năm 1993. Kế hoạch này tập trung vào việc nghiên cứu và phát triển một mạng siêu
9
nhanh (cấp độ Gbps) và việc toàn cầu hoá nó đã làm lẩy cò việc xây dựng kết cấu
nền truyền thông tin.
Đến nay, các máy tính cá nhân cũng đã được hỗ trợ giao thức TCP/IP, có
năng lực xử lý cao hơn và ít đắt hơn, đã dẫn tới thực trạng là công chúng có thể dễ
dàng kết nối Internet bằng cách sử dụng máy tính cá nhân bình thường. Điều này đã
khiến cho việc sử dụng Internet trở nên rất phổ biến trong công chúng.
1.2. Giới thiệt về Internet of Things
1.2.1. Xu hướng phát triển
Với sự phát triển của Internet, smartphone và đặc biệt là các thiết bị cảm biến,
Internet of Things đang trở thành xu hướng mới của thế giới. Internet of Things
được định nghĩa là những vật dụng có khả năng kết nối Internet. Ý tưởng nhà thông
minh như vào nhà, mở khóa cửa, đèn sẽ tự động sáng chỗ đứng, điều hòa sẽ tự động
điều chỉnh nhiệt độ, nhạc sẽ tự động bật để chào đón…những điều chỉ có trong phim
khoa học viễn tưởng, đang dần trở thành hiện thực với công nghệ Internet of Things.
Hình 1.1. Xu hướng phát triển IoT.
Ý tưởng về an toàn giao thông được thực hiện hóa bằng giải pháp mạng cảm
biến phương tiện. Mạng cảm biến phương tiện được tạo nên bằng nhiều phương tiện
có tính năng giao tiếp V2V để giúp truyền hoặc nhận thông tin để các phương tiện
khác có thể nhận biết và dự đoán các tình huống chưa hoặc đã xảy ra. Sau đó, bằng
trí tuệ nhân tạo mà phương tiện có thể tự điều khiển hoặc cảnh báo cho người dùng.
10
Các thiết bị Internet of Things được vận hành nhờ những bộ vi xử lý SOC bên
trong. Không như những bộ vi xử lý thông thường, SOC giống như một máy tính
trọn vẹn được thu gọn trong diện tích của một con chip điện tử, có kết nối không
dây và đảm bảo tiết kiệm điện. Dù nhỏ gọn, sức mạnh của các vi xử lý SOC là
không phải bàn cãi khi nó hoàn toàn có thể vận hành trơn tru những hệ điều hành
nặng nề như Windows hay Linux. SOC rất phổ biến trong bên trong các linh kiện
điện thoại.
Theo dự báo của IDC, thị trường Internet of Things được dự báo sẽ tăng gấp 3
lần, đạt 1,7 nghìn tỉ USD vào năm 2020. Không ít các doanh nghiệp lớn đã nhìn
thấy tiềm năng của Internet of Things và mạnh dạn đầu tư vào đây.Tuy nhiên, cũng
giống như bất kỳ một công nghệ mới nào, Internet of Things sẽ cần một nền tảng để
vận hành.Và các doanh nghiệp công nghệ hiểu rằng, ai tạo ra được nền tảng dẫn
đầu, họ sẽ là người chiến thắng trong xu hướng mới này.
1.2.2. Ứng dụng thực tiễn
Nhờ Internet of Things, có nhiều ý tưởng độc đáo đã trở thành hiện thực.
Không chỉ phát huy tốt hơn cho công dụng vốn có của thiết bị, Internet of Things
còn góp phần đem lại cuộc sống tốt đẹp hơn cho con người. Có thể kể đến như
Boogio - đôi giày thông minh có lắp một cảm biến cực mỏng và máy tính Artik siêu
nhỏ để lưu trữ lại dữ liệu của người dùng và kết nối với với smartphone và đồng hồ
thông minh. Thông qua đôi giày này, người dùng có thể tính toán được hôm nay
mình đã chạy bao nhiêu bước, luyện những bài tập nào, đốt cháy bao nhiêu calo, đo
chỉ số sức khỏe của bản thân và có được một cơ thể dẻo dai hơn.
Một sản phẩm khác của Internet of Things xuất phát từ ý tưởng tiết kiệm nước
có tên là Weenat. Weenat sẽ sử dụng các cảm biến về độ ẩm, kết hợp với hệ thống
các máy tính siêu nhỏ để tính toán độ ẩm và các quyết định canh tác phù hợp. Hệ
thống cảm biến hoạt động không dây, được đặt trực tiếp trên các cánh đồng và có
vòng đời rất dài, sẽ giúp những người nông dân tiết kiệm tối đa nguồn nước dùng
cho tưới tiêu.
Với việc tạo ra ngày càng nhiều những thiết bị Internet of Things thông minh,
các hãng công nghệ lớn đang góp phần giúp cuộc sống người dùng trở nên tốt đẹp
hơn. Bên cạnh đó, những nỗ lực không ngừng của họ trong việc đầu tư cho cuộc
cách mạng Internet of Things còn hứa hẹn sẽ đem đến cho con người một tương lai
tươi sáng hơn nữa.
11
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 hiện nay rất
nhiều, mở ra một cơ hội khác cho tin tặc, botnet và các dạng tội phạm
mạng theo đó nảy nở.
Các CVE của thiết bị IoT như router, hiện cũng được public gây ra
những lo lắng không chỉ về doanh nghiệp mà còn về uy tín của cả 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 là rất khó khăn vì những lý do về kỹ thuật,
công nghệ và thậm chí cả nền văn hóa. Đối với người dùng thông
thường, đã là rất khó để khiến họ cập nhật những bản vá mới nhất trên
máy tính xách tay, điện thoại thông minh. Ngày nay, thiết bị nào cũng
có thể có những lỗ hổng bảo mật, khi nhà sản xuất muốn nâng cấp
firmware hay cài bản vá cho những thiết bị này sẽ rất phiền phức.
Thay vì tấn công máy tính xách tay và cài mã độc thì hacker lại tận
dụng các thiết bị IoT, như camera giám sát CCTV, đầu ghi DVR,
smartTV hay các hệ thống tự động trong nhà. Không như máy tính bàn
hay xách tay, rất khó phát hiện botnet có trong thiết bị IoT.
Khi một thiết bị nhiễm mã độc sẽ trở thành bàn đạp để phát tán mã độc
đến các thiết bị khác hình thành nên một mạng botnet khổng lồ được
mở rộng nhanh chóng.
12
CHƯƠNG 2. TỔNG QUAN VỀ TẤN CÔNG TỪ CHỐI DỊCH VỤ DDOS
2.1. Tổng quan về an ninh mạng
Máy tính có phần cứng chứa dữ liệu do hệ điều hành quản lý, đa số các máy
tính nhất là các máy tính trong công ty, doanh nghiệp được nối mạng LAN và
Internet. Nếu như máy tính, hệ thống mạng không được trang bị hệ thống bảo vệ sẽ
là mục tiêu của Virus, Worms, Unauthorized User…có thể bị tấn công vào máy tính
hoặc cả hệ thống bất cứ lúc nào.
Vậy an toàn mạng có nghĩa là bảo vệ hệ thống mạng, máy tính khỏi sự phá
hoại phần cứng hay chỉnh sửa dữ liệu (phần mềm) mà không được sự cho phép từ
những người cố ý hay vô tình. An toàn mạng cung cấp giải pháp, chính sách, bảo vệ
máy tính, hệ thống mạng để làm cho những người dùng trái phép, cũng như các
phần mềm chứa mã độc xâm nhập bất hợp pháp vào máy tính, hệ thống mạng.
2.2. 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ụ là sự 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 nhằm vào những người dùng của nó. Mặc dù phương tiện
để tiến hành, động cơ, mục tiêu của tấn công từ chối dịch vụ là khác nhau, nhưng
nói chung nó gồm có sự phối hợp, sự cố gắng ác ý của một người hay nhiều người
để chống lại Internet site hoặc service (dịch vụ Web) vận hành hiệu quả hoặc trong
tất cả, tạm thời hay một cách không xác định.
Tấn công bằng từ chối dịch vụ DoS (Denial of Service) có thể mô tả như hành
động ngăn cản những người dùng hợp pháp khả năng truy cập và sử dụng vào một
dịch vụ nào đó. Nó bao gồm việc làm tràn ngập mạng, mất kết nối với dịch vụ… mà
mục đích cuối cùng là máy chủ (Server) không thể đáp ứng được các yêu cầu sử
dụng dịch vụ từ các máy trạm (Client). DoS có thể làm ngưng hoạt động của một
máy tính, một mạng nội bộ hoặc cả một hệ thống mạng rất lớn.Về bản chất thực sự
của DoS, kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng
thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch vụ từ các client khác.
a) Giới thiệu về Botnet
Mô ̣t “bot” là mô ̣t loa ̣i phầ n mề m đô ̣c ha ̣i cho phép kẻ tấ n công giành quyề n
kiể m soát hoàn toàn máy tính bi ̣ ảnh hưởng. Máy tính đang bi ̣ nhiễn mô ̣t “bot”
thường đươ ̣c go ̣i là zombie. Trên thực tế có hàng ngàn máy tính trên Internet bi ̣
nhiễm mô ̣t số loa ̣i “bot” mà thâ ̣m chí không nhâ ̣n ra nó.
13
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 bi nhiễ
m.
̣
Botnet là mô ̣t ma ̣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 ít nhất là mô ̣t botmaster và mô ̣t hoă ̣c nhiề u bot. Khả
năng của các botnet hành động mô ̣t cách phối hơ ̣p với tấ t cả hoă ̣c mô ̣t phần của
botnet là nề n tảng cho khái niệm botnet. Botnet đươ ̣c quản lý bởi mô ̣t bot-herder.
Khởi nguồn của Botnet được go ̣i là Botnet-herder. Botnet-herder là người đã
ta ̣o ra ma ̣ng lưới các bot đươ ̣c sử du ̣ng cho mu ̣c đích đô ̣c ha ̣i như tấ mn công một tử
chức nào đó bằng cách sử du ̣ng tấn công DDoS hoă ̣c kiể m tiề n bằ ng cách sử du ̣ng
thư rác.
Mô ̣t Bot-herder có thể sử dụng công cụ IRC, CMD kết nối tới C&C Server.
Server này sẽ như một proxy gửi lệnh điều khiển của hacker tới mạng botnet. Viê ̣c
khai thác botnet cầ n có kinh nghiê ̣p lâ ̣p trình giao thức ra lê ̣nh ngay từ khi bắt đầ u.
Sự gia tăng của băng thông tiêu dùng đã tăng lên rấ t nhiề u sức ma ̣nh của
botnet để khởi động gơ ̣n sóng tấn công DDoS lên server, lây nhiễm hàng triệu với
hàng triệu máy tính với các phầ n mềm gián điê ̣p và mã độc ha ̣i khác, ăn cắ p dữ liê ̣u
nhâ ̣n da ̣ng, gửi số lượng lớn các thư rác và tham gia vào các click gian lâ ̣n, hăm dọa
và tố ng tiền.
Botnet là mố i đe dọa an ninh hàng đầ u internet ngày nay. Hacker đang thu hút
bởi botnet do client (bot) thực hiê ̣n đă ̣t hàng ta ̣i bấ t cứ nơi nào có kế t nố i. Nó rấ t dẽ
dàng để ăn hoa hồng dịch vụ tấ n công botnet và hacker là người có thể khai thác lỗ
hổng mới một cách nhanh hơn. Botnet rấ t khó phát hiện bởi bi ̣chúng rấ t năng động,
thích ứng nhanh để trố n tránh việc bảo vê ̣ an ninh phổ biế t hiê ̣n nay.
Các sản phẩm bảo mâ ̣t và quản tri ̣ hê ̣ thố ng thông tin phải ngăn chă ̣n các
mạng trở thành một phầ n của botnet. Cả mạng doanh nghiê ̣p lẫn ma ̣ng tư nhân cầ n
đươ ̣c ngắ n chă ̣n khỏi bi ̣ tấn công botnet để ngăn chặn viê ̣c la ̣m du ̣ng nguồ n tài
nguyên cơ sở 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
14
CHƯƠNG 3. NGHIÊN CỨU VỀ MÃ NGUỒN BOTNET MIRAI
3.1. 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 rà quét dải mạng IPv4 nhằm tìm kiếm các thiết bị IoT. Để tối
ưu hóa hiệu năng rà quét của mình thì Mirai thực hiện loại bỏ các dải IP như sau:
Sau khi tìm được các thiết bị IoT, Mirai thực hiện truy cập telnet trực tiếp
hoặc nếu không được sẽ thực hiện bruteforce mật khẩu qua telnet hoặc ssh. Trong
mã nguồn của Mirai cho thấy Mirai có sử dụng 60 tài khoản, mật khẩu mặc định để
thực hiện tấn công như root:root, admin:admin1234, guest:guest…
Mặc dù có thể truy cập thành công được thiết bị nhưng mã độc này lại sử
dụng một lệnh đặc biệt của Busybox (tiện ích trên các thiết bị Linux nhúng) do đó
bot sẽ không thực hiện lây nhiễm được nếu thiết bị không được cài đặt busybox.
Môt khi sử dụng được busybox, mã độc sẽ thực hiện quá trình lây nhiễm. Đặc
biệt sau khi lây nhiễm thành công, Mirai thực hiện loại bỏ tất cả các tiến trình đang
sử dụng cổng 22, 23 để ngăn chặn đăng nhập trên thiết bị. Sau khi thực hiện lây
nhiễm thành công, mã độc kết nối tới máy chủ điều khiển và chờ lệnh tấn công
Với mục đích chính là thực hiện tấn công từ chối dịch vụ do đó botnet này sử
dụng tới 10 kỹ thuật tấn công từ chối dịch vụ từ cơ bản đến nâng cao nhằm đem lại
hiệu quả cao nhất. Trong đó, hình thức tấn công từ chối dịch vụ phổ biến được áp
dụng là thông qua tấn công HTTP, Mirai sử dụng 5 user-agent khác nhau để tránh bị
phát hiện.
Hình 3.1. Mirai sử dụng 5 user-agent khác nhau (mirai/bot/table.h).
Ngoài ra, Mirai có khả năng phát hiện và vượt qua một số cơ chế kiểm tra bot
cơ bản của các dịch vụ giúp ngăn ngừa tấn công từ chối dịch vụ như cloudflare hoặc
dosarrest.
15
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 3.2. 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
Các thành phần:
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 3.3. Mô hình hoạt động logic của các thành phần.
Cấu trúc mã nguồn chính gồm 2 thư mục chính Loader và Mirai, trong đó
Loader chứa các mã nguồn phục vụ cho việc tạo Report server, thư mục Mirai chứa
mã nguồn tạo các con Bot và tạo CNC server.
16
Hình 3.4. 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 <ipCNC> 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.
Lây lan mã độc:
Bước 1: Các con Bot trong mạng Botnet sẽ thực thiện rà quét các thiết
bị IoT mới và thực hiện brute force vào các thiết bị nếu không telnet
trực tiếp được.
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ị.
Bước 4: Thiết bị IoT bị lây nhiễm sẽ thực hiện một số chức năng chính
được cài đặt trước như scan, bruteforce và thực hiện kết nối tới CNC
server.
3.2. 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...
17
b) Nguyên lý hoạt động
Các mã trong thư mục này được viết trên ngôn ngữ golang nhằm tạo ra một
CNC server có khả năng kết nối giao tiếp giữa attacker và mạng botnet khổng lồ.
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 3.5. CNC lắng nghe kết nối (mirai/cnc/main.go).
Khi nghe ở cổng 23 chương trình sẽ làm nhiệm vụ khác nhau tùy vào dữ liệu
nhận được. Nếu các dữ liệu nhận được có 4 bytes, mà là “00 00 00 x” (byte x> 0),
chương trình xác định rằng dữ liệu này là từ một Bot mới. Ngược lại chương trình
hiểu là có kết nối từ Attacker qua telnet, Attacker thực hiện đăng nhập nếu là có
quyền quản trị thì họ có thể tạo các username khác với số lượng Bot cụ thể được
phép sử dụng.
18
Hình 3.6. CNC nhận được thông tin là bot hoặc admin (mirai/cnc/main.go).
Trong file Admin.go:
Dòng 39: Nhập user. Nếu không nhập sẽ dừng chương trình.
Hình 3.7. 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 3.8. 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.
19
Hình 3.9. 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 3.10. Thông báo đăng nhập thành công.
Hàm func() sẽ kiểm tra liên tục số lượng Bot connect tới CNC theo Real Time. Với
hàm này hacker sẽ biết được số thiết bị có thể sử dụng tấn công trong thời điểm hiện
tại.
Hình 3.11. Kiểm tra số lượng Bot connect tới CNC.
20
Đoạn mã nhằm thiết lập số lượng Bot mà tài khoản có thể được sử dụng. Thử
tưởng tượng với một mạng botnet khổng lồ có thể đánh sập bất cứ thứ gì trên
Internet thì hacker hoàn toàn có thể cho thuê để kiếm lợi nhuận. Như vậy, Hacker sẽ
tạo một tài khoản và kèm với số lượng Bot mà tài khoản đó được 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 3.12. 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: <tên phương thức> <IP> <time> [flag].
21
Hình 3.13. Hàm AttackInfoLookup.
3.2.2. Máy chủ Loader
a) Chức năng
Trong thư mục này chứa mã nguồn để xây dựng Loader server, máy chủ thực
hiện việc lây lan bots. Máy chủ này sẽ lắng lấy thông tin của hacker nhập thủ công
từ STDIN. Sau đó Loader server sẽ thực hiện đăng nhập vào các thiết bị IoT và lây
nhiễm mã độc.
b) Nguyên lý hoạt động
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 3.14. Thiết lập network card cho report server (loader/main.c).
Tiếp theo, tạo các kết nối sẵn sàng cho việc lây lan mã độc bằng việc gọi hàm
server_create (). Nó thực hiện truyền các tham số như ip server lưu trữ malware có
giao thức wget hay tftp. Loader khi điều khiển thiết bị sẽ sử dụng một trong 2 giao
thức này để tải malware từ TFTP server hoặc Wget server về và tiến hành thực thi
malware.
22
Hình 3.15. Khởi tạo server chứa mã độc (loader/main.c).
Loader server sẽ đọc các dữ liệu đầu vào qua chuẩn STDIN từ bàn phím theo
định dạng “IP:Port Username:Password” sử dụng vòng lặp while(TRUE) để liên tục
kiểm tra đầu vào từ người dùng. Tuy nhiên, việc nhập thủ công bằng tay thông tin
cho Loader sẽ dẫn đến khoảng thời gian phát hiện thiết bị và khoảng thời gian lây
nhiễm mã độc bị delay time gây ra khả năng mất thiết bị IoT. Việc này đã được
khắc phục nhờ viết thêm đoạn mã auto chuyển thông tin từ Report server sang
Loader server.
Hình 3.16. Nhận ip, port, user, pass từ STDIN (loader/main.c).
Hàm worker() này thực hiện các bước đang nhập và lây lan bot bằng cách
truyền các câu lệnh qua tiện ích busybox có sẵn trên các thiết bị IoT. Busybox là
tiện ích để giao tiếp giữa người quản trị và thiết bị IoT qua dòng lệnh CMD (cụ thể
ở đây là bashshell).
23
Hình 3.17. 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 viết bằng ngôn ngữ golang giúp lắng nghe các hồi đáp từ
mạng botnet về các thiết bị IoT mới đã bruteforce thành công bởi các con bots trên
mạng.
b) Nguyên lý hoạt động
Lắng nghe kết nối đến cổng 48101 để đợi kết quả gửi về từ bot.
Hình 3.18. Lắng nghe kết nối trên cổng 48101 (scanListen.go).
Thông tin thiết bị được hiển thị. Sau đó, có thể sử dụng thông tin này cung
cấp cho Loader server để tiến hành lây nhiễm mã độc lên thiết bị.
24
Hình 3.19. Hiển thị thông tin thiết bị bruteforce được (scanListen.go).
3.2.4. Mã độc
a) Chức năng
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
25