Professional Documents
Culture Documents
MSSV: 61134319
Em xin cam đoan đây là bài báo cáo về “Nghiên cứu ứng dụng scapy tạo lưu
lượng tấn công kiểm thử an toàn trong mạng SDN”. Các nội dung nghiên cứu và
kết quả trong đề tài này là trung thực dựa trên tìm hiểu, nghiên cứu của cùng với sự
hướng dẫn của giảng viên Cấn Thị Phượng. Đối với các nguồn tham khảo, đánh giá,
trích luật đều được ghi nguồn và chú thích ở phần danh mục tài liệu tham khảo.
Em Nguyễn Hữu Tân xin cam đoan rằng những sự giúp đỡ khi em thực hiện
báo cáo này đã được cảm ơn và em chịu hoàn toàn trách nhiệm về bài báo cáo này.
Những thông tin được trích dẫn trong báo cáo đã được ghi rõ nguồn gốc trích dẫn.
i
LỜI CẢM ƠN
Để hoàn thành đề tài báo cáo chuyên đề này, trước hết em xin gửi đến quý thầy,
cô Khoa Công nghệ Thông tin – Trường Đại Học Nha Trang lời cảm ơn chân thành.
Em xin gửi đến cô Cấn Thị Phượng, người đã tận tình hướng dẫn, giúp đỡ em hoàn
thành báo cáo chuyên đề này lời cảm ơn sâu sắc nhất.
Trong quá trình nghiên cứu thực hiện đề tài, cũng như trong quá trình làm bài
báo cáo, khó tránh khỏi sai sót, rất mong cô bỏ qua. Đồng thời do kiến thức cũng như
kinh nghiệm thực tiễn của bản thân còn hạn chế, bài báo cáo này khó tránh khỏi những
thiếu sót, em rất mong nhận được ý kiến đóng góp từ cô để em học hỏi thêm được
nhiều kinh nghiệm, cũng như kỹ năng cần thiết.
ii
MỤC LỤC
LỜI CAM ĐOAN...........................................................................................................i
LỜI CẢM ƠN...............................................................................................................ii
MỤC LỤC....................................................................................................................iii
DANH MỤC HÌNH ẢNH.............................................................................................v
DANH MỤC CÁC TỪ VIẾT TẮT.............................................................................vii
PHẦN MỞ ĐẦU...........................................................................................................1
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI.....................................................................3
1.1. TỔNG QUAN VỀ CÁC CÔNG TRÌNH CÓ LIÊN QUAN...................................3
1.2. TÓM TẮT NỘI DUNG CÁC CHƯƠNG...............................................................3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT..............................................................................5
2.1. GIỚI THIỆU VỀ SDN............................................................................................5
2.1.1. SDN là gì?...........................................................................................................5
2.1.2. Ưu và nhược điểm của SDN................................................................................5
2.1.3. Kiến trúc SDN.....................................................................................................6
2.2. Giao thức OpenFlow...............................................................................................7
2.2.1. Tổng quan về OpenFlow......................................................................................7
2.2.2. Cấu tạo và hoạt động OpenFlow..........................................................................8
2.2.3. Lợi ích khi sử dụng..............................................................................................9
2.3. Các rủi ro an toàn bảo mật mạng SDN....................................................................9
2.3.1. Tấn công do thám................................................................................................9
2.3.2. Tấn công từ chối dịch vụ....................................................................................10
2.3.3. Tấn công xâm nhập............................................................................................10
2.3.4. Tấn công mã độc................................................................................................10
2.3.5. Đánh hơi/ nghe lén.............................................................................................11
2.4. Giới thiệu về scapy...............................................................................................12
2.4.1. Scapy là gì.......................................................................................................... 12
2.4.2. Các chức năng của Scapy:..................................................................................12
2.4.3. Cách cài đặt:......................................................................................................13
CHƯƠNG 3: KẾT QUẢ NGHIÊN CỨU....................................................................17
3.1. Kịch bản tấn công.................................................................................................17
3.1.1. Mô hình.............................................................................................................. 17
iii
3.1.2. Triển khai tấn công............................................................................................22
3.1.2.1. Kịch bản thứ nhất............................................................................................22
3.1.2.2. Kịch bản thứ hai..............................................................................................41
3.2. Kết luận................................................................................................................. 50
3.3. Hướng phát triển...................................................................................................50
TÀI LIỆU THAM KHẢO...........................................................................................51
iv
DANH MỤC HÌNH ẢNH
Hình 2.1: Kiến trúc SDN...............................................................................................7
Hình 2.2: Cấu tạo OpenFlow.........................................................................................8
Hình 2.3 Chức năng của Scapy....................................................................................12
Hình 2.4: Cài đặt phần mềm pip..................................................................................14
Hình 2.5: Kiểm tra phiên bản pip.................................................................................14
Hình 2.6: Nâng cáp phiên bản pip................................................................................15
Hình 2.7: Cài đặt scapy................................................................................................15
Hình 2.8: Giao diện Scapy...........................................................................................16
Hình 3.1: Mô hình tấn công controller mạng SDN......................................................17
Hình 3.2: Mô hình tấn công trong mạng SDN.............................................................18
Hình 3.3: Chuyển đổi thức mục sang karaf..................................................................18
Hình 3.4: Chạy tệp karaf..............................................................................................19
Hình 3.5: Vào thư mục mininet...................................................................................20
Hình 3.6: Cài đặt mô hình ODL tên mininet................................................................20
Hình 3.7: Kiểm tra các host mạng................................................................................21
Hình 3.8: Giao diện OpenDaylight..............................................................................22
Hình 3.9: Mô hình mạng trong OpenDayLight............................................................22
Hình 3.10: Tạo địa chỉ tấn công...................................................................................23
Hình 3.11: Tạo cổng muốn gửi....................................................................................23
Hình 3.12: Tạo gói tin tấn công...................................................................................24
Hình 3.13: Gửi gói tin đến máy bị tấn công.................................................................24
Hình 3.14: Các gói tin tấn công của Scapy..................................................................25
Hình 3.15: Các gói tin khi dừng tấn công....................................................................26
Hình 3.16: Biểu đồ I/O Graphs của Scapy...................................................................27
Hình 3.17: Tấn công SYN Flood bằng Hping3............................................................28
Hình 3.18: Các gói tin SYN Flood của Hping3...........................................................29
Hình 3.19: Biểu đồ I/O Graphs của Hping3................................................................30
Hình 3.20: Biểu đồ Packets/s cao nhất giữa 2 công cụ.................................................30
Hình 3.21: Địa chỉ mục tiêu.........................................................................................31
Hình 3.22: Địa chỉ giả mạo..........................................................................................32
Hình 3.23: Địa chỉ cổng mạng.....................................................................................32
v
Hình 3.24: Hàm tấn công ARP Spoofing.....................................................................33
Hình 3.25: Các gói tin tấn công ARP Spoofing của Scapy..........................................34
Hình 3.26: Chế độ chuyển tiếp gói tin.........................................................................35
Hình 3.27: Lệnh tấn công ARP Spoofing bằng dsniff..................................................35
Hình 3.28: Các gói tin tấn công ARP Spoofing của dsniff...........................................36
Hình 3.29: Cổng bắt đầu quét và cổng kết thúc quét....................................................37
Hình 3.30: Vòng lặp để quét cổng...............................................................................38
Hình 3.31: Cổng mở....................................................................................................39
Hình 3.32: Cổng đóng..................................................................................................40
Hình 3.33: Quét cổng bằng Nmap...............................................................................41
Hình 3.34: Các gói tin tấn công host 2 bằng Scapy......................................................44
Hình 3.35: Biểu đồ I/O Graphs của host 2 khi tấn công bằng Scapy...........................45
Hình 3.36: Các gói tin host 2 khi tấn công bằng Hping3.............................................46
Hình 3.37: Biểu đồ I/O Graphs host 2 khi tấn công bằng Hping3................................47
Hình 3.38: Các cổng đóng của host 3..........................................................................49
Hình 3.39: Quét cổng host 3 bằng Nmap.....................................................................49
vi
DANH MỤC CÁC TỪ VIẾT TẮT
vii
PHẦN MỞ ĐẦU
1. Tính cấp thiết và lý do chọn đề tài
Trong những năm qua, mạng SDN đã phát triển mạnh mẽ và đang trở nên phổ
biến, được triển khai rộng rãi trong nhiều môi trường mạng. Mạng SDN tách rời phần
điều khiển và chuyển tiếp dữ liệu, cho phép quản trị viên mạng kiểm soát và quản lý
mạng toàn diện từ một bộ điều khiển trung tâm (controller). Mạng SDN linh hoạt trong
việc cấu hình và quản lý mạng, đồng thời cung cấp khả năng triển khai ứng dụng mạng
linh hoạt và nhanh chóng. Nhưng việc đảm bảo an toàn và bảo mật trong mạng SDN là
một thách thức đối với các nhà quản lý mạng, việc quản lý truy cập vào bộ điều khiển
là một vấn đề quan trọng. Bộ điều khiển cần được giám sát, kiểm tra tính toàn vẹn và
đảm bảo chỉ có những thiết bị được ủy quyền mới có thể truy cập vào. Quản lý và
giám sát hệ thống mạng SDN đóng vai trò quan trọng trong việc phát hiện và ngăn
chặn các mối đe dọa bảo mật. Do đó việc kiểm thử và đánh giá an toàn của mạng SDN
là rất cần thiết.
Với sự gia tăng của các cuộc tấn công mạng, việc nghiên cứu và ứng dụng công
cụ Scapy trong việc tạo lưu lượng tấn công kiểm thử mạng SDN nhằm cung cấp giải
pháp kiểm thử hiệu quả cho mạng SDN. Việc sử dụng công cụ Scapy để tấn công
mạng như tấn công từ chối dịch vụ (DoS), tấn công giả mạo (spoofing), tấn công quét
cổng (port scanning), hay các tấn công khác nhằm kiểm tra tính an toàn và khả năng
chống tấn công của mạng SDN, phát hiện các lỗ hổng bảo mật và đưa ra các biện pháp
cải thiện. Các kết quả của nghiên cứu này có thể được áp dụng để kiểm tra và cải thiện
bảo mật mạng SDN trong nhiều môi trường và ngành công nghiệp.
Đề tài này có tính cấp thiết cao khi mà hiện nay tấn công mạng ngày càng tăng
và mạng SDN cũng không phải ngoại lệ. Đề tài góp phần giúp nhận biết tầm quan
trọng việc bảo mật và đảm bảo an toàn trong mạng SDN, đồng thời đóng góp vào sự
phát triển và ứng dụng của công nghệ SDN trong thực tế. Vì vậy em đã chọn đề tài
“Nghiên cứu ứng dụng scapy tạo lưu lượng tấn công kiểm thử an toàn trong
mạng SDN” để triển khai việc kiểm thử an toàn mạng trong mạng SDN bằng lưu
lượng được tạo bởi Scapy.
2
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
3
Trình bày các nội dung lý thuyết về SDN, ưu và nhược điểm của SDN, kiến
trúc và ứng dụng của SDN. Trình bày tổng quan giao thức OpenFlow, cấu tạo và hoạt
động của OpenFlow, lợi ích khi sử dụng. Trình bày các rủi ro trong an toàn bảo mật
mạng SDN các kiểu tấn công phổ biến trong SDN. Giới thiệu về scapy và các chức
năng của scapy.
Tóm tắt phần III – Kết quả nghiên cứu
Lên kịch bản tấn công, kết luận và nêu ra hướng phát triển về đề tài.
4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. GIỚI THIỆU VỀ SDN
2.1.1. SDN là gì?
SDN là viết tắt của Software-Defined Networking, là một mô hình kiến trúc
mạng trong đó phần cứng mạng (networking hardware) và phần mềm điều khiển mạng
(networking software) được tách rời và được quản lý và điều khiển bởi phần mềm điều
khiển trung tâm (centralized controller).
Trong kiến trúc SDN, điều khiển mạng (network control) được tách rời khỏi
phần cứng mạng (network data plane), điều khiển các thiết bị mạng (như switch và
router) thông qua giao tiếp đơn giản như giao thức OpenFlow hoặc các giao thức điều
khiển khác. Bằng cách tách rời điều khiển mạng, SDN cung cấp khả năng quản lý và
kiểm soát mạng trực quan, linh hoạt hơn.
2.1.2. Ưu và nhược điểm của SDN
Ưu điểm:
- Tính linh hoạt cao: SDN cho phép các nhà quản trị mạng cấu hình và điều
khiển mạng một cách linh hoạt và dễ dàng hơn, từ đó giúp cho việc triển
khai và quản lý mạng trở nên hiệu quả hơn.
- Tăng tính khả dụng: SDN có khả năng phân chia tài nguyên mạng thông
minh hơn, đồng thời cung cấp khả năng khắc phục lỗi nhanh hơn. Khi một
thành phần của mạng gặp sự cố, nhà quản trị có thể dễ dàng xác định
nguyên nhân và sửa chữa nó một cách nhanh chóng.
- Tính mở rộng cao: SDN cho phép mạng được mở rộng dễ dàng và linh hoạt
hơn. Các nhà quản trị mạng có thể dễ dàng thêm hoặc bớt thiết bị mạng,
tăng hoặc giảm băng thông, hoặc thay đổi các chức năng mạng một cách
linh hoạt.
- Giảm chi phí: Vì các thiết bị mạng được tách ra khỏi phần cứng và chuyển
sang được quản lý bởi phần mềm, nên SDN giúp giảm chi phí về thiết bị và
bảo trì mạng.
Nhược điểm:
- Đòi hỏi kỹ năng cao: Triển khai SDN đòi hỏi kỹ năng kỹ thuật cao và đòi
hỏi sự hiểu biết về kiến trúc mạng và các giao thức liên quan.
5
- Tăng độ phức tạp của hệ thống: SDN tạo ra một lớp phần mềm bổ sung cho
mạng, điều này có thể làm tăng độ phức tạp của hệ thống và làm giảm hiệu
năng của mạng.
- Vấn đề bảo mật: Vì SDN cho phép các thiết bị và ứng dụng truy cập vào bộ
điều khiển trung tâm, nên việc bảo vệ mạng trở nên phức tạp hơn, đặc biệt là
trong trường hợp có các lỗ hổng bảo mật trên bộ điều khiển trung tâm.
2.1.3. Kiến trúc SDN
Ứng dụng (Applications): Là các ứng dụng được phát triển để tương tác với
mạng thông qua bộ điều khiển trung tâm (controller). Các ứng dụng này có thể được
phát triển bởi bên thứ ba hoặc do chính nhà cung cấp SDN cung cấp. Ví dụ về các ứng
dụng SDN bao gồm các ứng dụng quản lý băng thông, giám sát mạng và an ninh
mạng.
Bộ điều khiển trung tâm (Controller): Là trung tâm điều khiển của mạng SDN.
Nó là một phần mềm chạy trên một máy chủ hoặc một số máy chủ được kết nối với
mạng SDN. Bộ điều khiển trung tâm có trách nhiệm quản lý, điều khiển và phân phối
luồng dữ liệu trên mạng SDN. Nó có khả năng thu thập thông tin từ các thiết bị mạng
và cung cấp thông tin này cho các ứng dụng.
Thiết bị mạng (Network devices): Là các thiết bị mạng như switch và router
được sử dụng trong mạng SDN. Thiết bị mạng trong mạng SDN được gọi là thiết bị
thực hiện chuyển tiếp (forwarding device). Chức năng của thiết bị thực hiện chuyển
tiếp được tách ra khỏi thiết bị và chuyển sang được quản lý bởi bộ điều khiển trung
tâm. Thiết bị thực hiện chuyển tiếp sử dụng các giao thức như OpenFlow để truyền tải
các thông điệp điều khiển từ bộ điều khiển trung tâm và thực hiện chuyển tiếp dữ liệu
trên mạng.
6
Hình 2.1: Kiến trúc SDN
2.2. GIAO THỨC OPENFLOW
2.2.1. Tổng quan về OpenFlow
OpenFlow là một giao thức mạng phần mềm (SDN) được phát triển bởi Open
Networking Foundation (ONF) nhằm thay đổi cách thức điều khiển và quản lý mạng
truyền thống. Giao thức này giúp người quản trị mạng có thể quản lý toàn bộ hệ thống
mạng của họ một cách tập trung và linh hoạt hơn.
OpenFlow cho phép tách biệt hai chức năng chính của hệ thống mạng: điều
khiển (control plane) và chuyển tiếp (data plane). Thay vì việc điều khiển mạng được
thực hiện trên các thiết bị chuyển tiếp, OpenFlow cho phép điều khiển mạng được thực
hiện trên một bộ điều khiển tập trung (controller) được quản lý bởi người quản trị
mạng.
Bằng cách sử dụng OpenFlow, người quản trị mạng có thể tạo ra các luồng dữ
liệu (flow) định tuyến tùy ý trong mạng, điều khiển các luồng dữ liệu này và đảm bảo
rằng chúng được chuyển tiếp đúng cách. Điều này giúp cải thiện hiệu suất mạng và
giảm thiểu sự cố trong hệ thống mạng.
Một ứng dụng thực tế của OpenFlow đó là triển khai mạng ảo hóa
(virtualization) trong các trung tâm dữ liệu. OpenFlow cho phép người quản trị mạng
tạo ra các mạng ảo (virtual network) và điều khiển chúng, giúp tăng cường tính linh
hoạt và hiệu suất của hệ thống mạng.
7
2.2.2. Cấu tạo và hoạt động OpenFlow
OpenFlow bao gồm hai phần chính: switch và controller.
Switch: Switch OpenFlow là một thiết bị mạng truyền thống được cài đặt phần
mềm OpenFlow để hỗ trợ việc điều khiển mạng từ bộ điều khiển tập trung.
Switch OpenFlow thường được lắp đặt trên các thiết bị chuyển mạch mạng,
chẳng hạn như switch Ethernet hoặc router.
Controller: Bộ điều khiển tập trung (controller) là một phần mềm chạy trên một
máy tính hoặc server, chịu trách nhiệm điều khiển các switch OpenFlow trong
mạng. Bộ điều khiển tập trung sử dụng giao thức OpenFlow để điều khiển các
switch OpenFlow và quản lý toàn bộ hệ thống mạng.
8
2.2.3. Lợi ích khi sử dụng
Sử dụng OpenFlow để triển khai mạng phần mềm (SDN) mang lại nhiều lợi ích
cho mạng và người quản trị mạng, bao gồm:
- Tính quản lý: OpenFlow cho phép quản lý mạng từ một điểm tập trung duy
nhất. Thông qua giao thức này, người quản trị mạng có thể kiểm soát và điều
chỉnh các luồng dữ liệu, các chính sách mạng và cấu hình từ một bộ điều khiển
trung tâm. Điều này giúp giảm sự phức tạp của việc quản lý mạng và tăng tính
linh hoạt trong việc triển khai và cấu hình mạng.
- Tính mở rộng và tương thích: OpenFlow là một giao thức chuẩn được hỗ trợ
bởi nhiều nhà cung cấp thiết bị mạng. Điều này đảm bảo tính tương thích và
khả năng mở rộng của hệ thống. Bằng cách sử dụng OpenFlow, người dùng có
thể tận dụng các giải pháp từ nhiều nhà cung cấp và tích hợp các thành phần
mạng khác nhau một cách dễ dàng.
- Tối ưu hóa mạng: OpenFlow cho phép người quản trị mạng xác định và kiểm
soát cách luồng dữ liệu được chuyển tiếp trong mạng. Bằng cách thực hiện
quyết định thông qua bộ điều khiển trung tâm, mạng có thể được tối ưu hóa để
đáp ứng yêu cầu cụ thể. Điều này giúp tăng hiệu suất, giảm độ trễ và đảm bảo
chất lượng dịch vụ tốt hơn.
- Khả năng định tuyến linh hoạt: Với OpenFlow, người quản trị mạng có thể điều
khiển việc định tuyến dữ liệu trên mạng. Điều này cho phép triển khai các chính
sách định tuyến thông minh dựa trên nhu cầu cụ thể.
- Tính thích ứng và linh hoạt: OpenFlow cung cấp khả năng điều chỉnh và thích
ứng mạng theo thời gian thực. Khi có sự thay đổi trong môi trường hoặc yêu
cầu mạng, người quản trị có thể thay đổi chính sách mạng và cấu hình từ bộ
điều khiển trung tâm một cách nhanh chóng và dễ dàng.
2.3. CÁC RỦI RO AN TOÀN BẢO MẬT MẠNG SDN
Theo tài liệu [6] có các hình thức tấn công chủ yếu như sau:
2.3.1. Tấn công do thám
Tấn công do thám là quá trình xâm nhập hoặc thu thập thông tin một cách bí
mật từ một hệ thống hoặc tổ chức mà không có sự cho phép của chủ sở hữu hệ thống
đó. Mục đích chính của tấn công do thám là thu thập thông tin quan trọng, bí mật. Các
thông tin gồm: thông tin về mạng như địa chỉ IP, mặt nạ mạng, topo mạng, tên miền;
9
thông tin về máy như username, tên group, kiến trúc (ví dụ x86 hay SPARC), hệ điều
hành, dịch vụ TCP hay UDP đang chạy; các chính sách bảo mật: độ phức tạp của bảo
mật, chu kì thay đổi mật khẩu, tài khoản hết hạn/khóa, bảo mật vật lý, tường lửa, hệ
thống phát hiện xâm nhập IDS/IPS; thông tin về con người liên quan hệ thống: địa chỉ
nhà, số điện thoại, trình độ. Việc do thám được tiến hành theo hai phương thức bị động
và chủ động. Do thám bị động có thể sử dụng các công cụ để tìm cách “mở cửa” nhìn
vào hệ thống mạng. Một số vị dụ như ping, traceroute, netcat, quét cổng… nhưng hành
vi này sẽ bị cảnh báo, ngăn chặn bởi hệ thống IDS, tường lửa của mục tiêu. [6]
2.3.2. Tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ là một hình thức tấn công mạng nhằm làm cho một
dịch vụ hoặc hệ thống trở nên không khả dụng cho người dùng bình thường. Trong tấn
công DoS, kẻ tấn công cố gắng làm cho tài nguyên (như băng thông, CPU, bộ nhớ)
của hệ thống bị quá tải, từ đó ngăn chặn hoặc gián đoạn truy cập của người dùng hợp
lệ. Nếu giám sát mạng, tấn công DoS dễ để phát hiện nhưng khó để chống lại hoặc
dừng nếu không ngắt kết nối mạng hoặc kết nối với Internet. Một biến thể khác của tấn
công từ chối dịch vụ là tấn công từ chối dịch vụ theo kiểu phân tán Distribution DoS.
Trong tấn công DDoS, kẻ tấn công sử dụng một số lượng lớn thiết bị hoặc máy tính
được kiểm soát từ xa (thường là botnet) để tạo ra một lưu lượng truy cập không thể xử
lý được cho hệ thống mục tiêu. [6]
2.3.3. Tấn công xâm nhập
Là loại tấn công nhằm xâm nhập vào hệ thống, mạng hoặc thiết bị của một tổ
chức hoặc cá nhân với mục đích lấy dữ liệu, phá hủy thông tin, kiểm soát hoặc khai
thác các tài nguyên hệ thống. Một số loại tấn công xâm nhập như: MitM (Man in the
middle), bẻ khóa mật khẩu, chuyển hướng cổng, tấn công tràn bộ đệm (Buffer
overflow), giả mạo IP, DHCP, MAC. [6]
2.3.4. Tấn công mã độc
Mã độc là một hình thức tấn công mạng mà kẻ tấn công cố gắng xâm nhập và
cài đặt phần mềm độc hại (malware) vào hệ thống, máy tính hoặc thiết bị của người
dùng mà không được sự cho phép. Mục đích của tấn công mã độc thường là lợi ích cá
nhân, như lấy cắp thông tin, gây hại hoặc kiểm soát từ xa hệ thống bị nhiễm malware.
Một số phương pháp tấn công mã độc phổ biến:
10
- Virus: là một loại phần mềm độc hại có khả năng tự nhân bản và lây lan từ
máy tính này sang máy tính khác. Khi virus được thực thi, nó có thể gây hại
cho hệ thống, xóa hoặc thay đổi dữ liệu, hoặc lây nhiễm vào các tệp tin
khác. Chúng có thể lây nhiễm khi phần mềm, tài liệu được đính kèm để
truyển từ máy này sang máy khác sử dụng mạng, ổ đĩa, chia sẻ file, hoặc file
đính kèm email,... Chúng còn có thể phá hủy dữ liệu, phần mềm, hoặc tạo
điều kiện cho tấn công từ chối dịch vụ. [6]
- Worm: là một dạng malware tự động lây lan qua mạng và không cần sự
tương tác của người dùng. Worm có thể sao chép chính mình và gửi bản sao
tới các máy tính khác, tạo ra một làn sóng lây nhiễm. Nó có thể gây tắc
nghẽn mạng và tiêu tốn tài nguyên hệ thống. [6]
- Trojan là phần mềm độc hại được ẩn trong một phần mềm hoặc tệp tin có vẻ
như là một phần mềm hợp pháp. Khi người dùng cài đặt hoặc chạy nó,
Trojan sẽ thực hiện các hành động độc hại như lấy cắp thông tin, mở cổng
để kẻ tấn công từ xa kiểm soát hệ thống hoặc cài đặt phần mềm độc hại
khác. Không giống như virus hay worm, trojan không tự nhân bản hoặc lây
nhiễm từ file.. Một số kiểu Trojan: Rootkit, Ransom Trojan, FakeAV
Trojan, DDoS Trojan, … [6]
Ransomware: Ransomware là loại malware khiến hệ thống hoặc tệp tin trở
thành không thể truy cập hoặc sử dụng bằng cách mã hóa chúng. Kẻ tấn công sau đó
yêu cầu một khoản tiền chuộc để cung cấp chìa khóa giải mã, thường thông qua tiền
điện tử. Đôi khi nạn nhân trả tiền nhưng chưa chắc đã truy cập lại được. Ransomware
có thể gây thiệt hại nghiêm trọng cho cá nhân hoặc tổ chức bằng cách tắc nghẽn truy
cập vào dữ liệu quan trọng. Một số ransomware đình đám như WannaCry và NotPetya
năm 2017, GandCrab năm 2018, … Sao lưu dữ liệu là cách để giảm thiểu hậu quả
trong tấn công Ransomware. Ngoài ra không click vào đường link lạ nào cũng là một
cách tránh được tấn công này. [6]
2.3.5. Đánh hơi/ nghe lén
Tấn công đánh hơi là kỹ thuật giả mạo thông tin nhằm lừa đảo hoặc đánh lừa
người dùng. Thông thường, tấn công đánh hơi được thực hiện bằng cách giả mạo địa
chỉ IP hoặc MAC của một thiết bị. Khi tấn công này được thực hiện, kẻ tấn công có
11
thể truy cập vào mạng hoặc hệ thống của người dùng, đánh cắp thông tin và tiến hành
các hoạt động độc hại khác.
Tấn công nghe lén là kỹ thuật giám sát và thu thập thông tin một cách bí mật.
Tấn công này thường được thực hiện bằng cách nghe trộm các giao thức truyền tải dữ
liệu như Wi-Fi, Bluetooth hoặc các kênh truyền thông khác. Khi tấn công này thành
công, kẻ tấn công có thể thu thập các thông tin nhạy cảm như tên đăng nhập, mật khẩu
hoặc các thông tin cá nhân khác.
2.4. GIỚI THIỆU VỀ SCAPY
2.4.1. Scapy là gì
Scapy là một công cụ mạng mã nguồn mở giúp cho người dùng có thể gửi, nghe
lén, phân tích và giả mạo các gói tin mạng trong môi trường Python. Các tính năng của
Scapy cho phép xây dựng các công cụ với mục đích thăm dò, quét kiểm tra và tấn
công mạng. Ngoài ra, scapy còn là một chương trình thao tác và tương tác với các gói
tin mạng một cách mạnh mẽ. Scapy có thể giả mạo hoặc giải mã các gói tin thông qua
các giao thức mạng như TCP, UDP, ICMP và nhiều giao thức khác. Scapy sẽ thực
hiện gửi các gói tin, bắt các gói tin, đưa ra tập các gói tin yêu cầu và các gói tin trả lời
tương ứng với các gói tin yêu cầu… Scapy có thể dễ dàng thực hiện các tác vụ như
scanning, tracerouting, probing, unit test, attack hoặc network discovery… Scapy có
thể dùng để thay thế các công cụ khác như hping, arpspoof, arp-sk, arping, p0f, Nmap,
tcpdump, tshark... [4]
2.4.2. Các chức năng của Scapy:
12
sorcery, pacgen, arp-sk, arpspoof, pixiliate, irpas, sendIP, IP packet generator, sing,
aicmpsend, dpkt, libpal,…
Sniffing tool: Scapy bắt, nghe lén và phân tích các gói tin. Công cụ nghe lén
tương tự Scapy là ethereal, net2pcap, cdpsniffer, aimsniffer, vomit, tcptrace, tcptrack,
nstreams, argus, karpski, ipgrab, tcpdump, nast, cdpr, dsniff, iptraf, aldebaran, irpas,...
Testing tool: các công cụ như Scapy là ping, hping2, hping3, traceroute, tctrace,
tcptraceroute,…
Scanning tool: Scapy quét và thăm dò các thông tin trong mạng. Công cụ quét
và thăm dò khác như là nmap, amap, vmap, hping3, unicornscan, ttlscan, ikescan,
paketto, firewalk,…
Fingerprinting tool: các công cụ tương tự như là nmap, xprobe, p0f, cron-OS,
queso, ikescan, amap, synscan,…
Attacking tool: các công cụ tấn công mạng.
Scapy khá dễ để sử dụng, công cụ xây dựng trên ngôn ngữ Python và tích hợp
sẵn trên Linux. Hiện tại scapy chưa tích hợp giao diện nên chỉ có thể làm việc trên nền
core. Về cơ bản scapy gồm 2 nhiệm vụ chính: gửi các gói tin và nhận lại các gói tin trả
lời. Scapy có thể định nghĩa tập các gói tin, gửi các gói tin, nhận các gói trả lời, đưa ra
tập các gói tin tương ứng giữa yêu cầu và trả lời hay tập các gói tin không tương ứng
giữa yêu cầu và trả lời. Scapy có thể thực hiện các tác vụ đặc biệt mà các công cụ khác
không thể thực hiện được như: gửi các gói tin không hợp lệ, thực viện việc xen vào
các frame trong 802.11, kết hợp các kỹ thuật như VLAN hopping và ARP cache
poisoning, giải mã gói tin VoIP được mã hóa. Đặc biệt, Scapy có thể xây dựng được
nhiều chức năng cao cấp. [4]
2.4.3. Cách cài đặt:
13
Hình 2.4: Cài đặt phần mềm pip
14
Hình 2.6: Nâng cáp phiên bản pip
15
Hình 2.8: Giao diện Scapy
16
CHƯƠNG 3: KẾT QUẢ NGHIÊN CỨU
Trong phần này chúng tôi sẽ triển khai mạng SDN. Chúng tôi sẽ sử dụng Scapy để tạo
lưu lượng tấn công DoS, quét cổng, giả mạo vào mạng SDN. Để đánh giá hiệu quả của
Scapy chúng tôi có so sánh với công cụ tạo lưu lượng tấn công tương ứng.
3.1. KỊCH BẢN TẤN CÔNG
Kịch bản 1:
Sử dụng máy ảo cài đặt lưu lượng kiểm thử Scapy tiến hành tấn công vào
controller của mạng SDN bằng nhiều phương thức tấn công khác nhau như tấn công
DoS, ARP Spoofing quét cổng. Tiếp tục tiến hành tấn công với nhiều công cụ khác
như Hping3, Nmap, ... để so sánh giữa các công cụ với nhau.
Kịch bản 2:
Sử dụng host 1 trong mô hình mạng SDN để tấn công các host còn lại. Sử dụng
scapy để tiến hành tấn công khác như DoS, quét cổng. Sau đó sử dụng các công cụ tấn
công khác để so sánh với Scapy.
3.1.1. Mô hình
17
Hình 3.2: Mô hình tấn công trong mạng SDN
Cài đặt OpenDayLight:
18
Hình 3.4: Chạy tệp karaf
19
Hình 3.5: Vào thư mục mininet
21
Hình 3.8: Giao diện OpenDaylight
22
Tạo địa chỉ IP của mục tiêu bị tấn công
23
Hình 3.12: Tạo gói tin tấn công
Gửi gói tin liên tục
24
Hình 3.14: Các gói tin tấn công của Scapy
Sau khi dừng tấn công:
25
Hình 3.15: Các gói tin khi dừng tấn công
Biểu đồ I/O Graphic của Scapy
26
Hình 3.16: Biểu đồ I/O Graphs của Scapy
Sử dụng Hping3 tấn công DoS
27
Hình 3.17: Tấn công SYN Flood bằng Hping3
hping3: Công cụ dòng lệnh được sử dụng để kiểm tra và tấn công mạng.
-S: Cờ SYN trong gói tin TCP để tấn công SYN flood
111.111.111.10: Địa chỉ IP mục tiêu sẽ tràn ngập các gói SYN.
111.111.111.11: Địa chỉ IP nguồn sẽ được giả mạo trong gói tin tấn công.
-p 80: Cổng đích là 80 nơi các gói SYN sẽ được gửi.
--flood: Tham số chỉ định cuộc tấn công SYN flood sẽ được thực hiện với tốc độ tối
đa, gửi nhiều gói tin SYN liên tục mà không chờ phản hồi.
Kiểm tra máy bị tấn công bằng Wireshark
28
Hình 3.18: Các gói tin SYN Flood của Hping3
Biểu đồ I/O Graphic của Hping3:
29
Hình 3.19: Biểu đồ I/O Graphs của Hping3
Biểu đồ đo số packets/s cao nhất của Hping3 và Scapy:
30
So sánh giữa Scapy và Hping3:
- Hping3 có thể thực hiện tấn công SYN flood, ICMP flood, UDP flood và nhiều hình
thức tấn công khác. Với Scapy, xây dựng các gói tin tùy chỉnh để thực hiện tấn công
DoS hoặc tùy chỉnh tấn công mạng khác theo ý muốn. Scapy có thể gửi và nhận các
gói tin mạng trực tiếp từ code Python. Câu lệnh của Hping3 đơn giản hơn so với
Scapy. Qua kiểm tra biểu đồ I/O Graphs sau 5 lần đo cho thấy Hping3 gửi gói tin/s
nhiều hơn so với Scapy.
Kết luận Hping3 tập trung vào việc kiểm tra mạng và tấn công, trong khi Scapy ưu tiên
cho việc tạo và tùy chỉnh gói tin mạng.
Tấn công ARP Spoofing:
Sử dụng Scapy để tấn công ARP Spoofing
Khai báo địa chỉ IP mục tiêu
31
Hình 3.22: Địa chỉ giả mạo
Khai báo địa chỉ IP cổng mạng
32
Hình 3.24: Hàm tấn công ARP Spoofing
Hàm arp_spoof(target_ip, spoofed_ip) để thực hiện tấn công ARP Spoofing. Trong
hàm này, chúng ta sử dụng getmacbyip(target_ip) để lấy địa chỉ MAC của mục tiêu.
Sau đó, chúng ta tạo một gói tin ARP Reply giả mạo(arp_response) bằng cách sử dụng
ARP() với tham số tương ứng. Cuối cùng, chúng ta sử dụng send(arp_response,
verbose=False) để gửi gói tin ARP Spoofing. Trong vòng lặp chính (while True),
chúng ta lặp lại việc gọi hàm arp_spoof(target_ip, spoofed_ip) và
arp_spoof(spoofed_ip, target_ip) để thực hiện ARP Spoofing giữa mục tiêu và địa chỉ
IP giả mạo. Thời gian nghỉ là 1 giây giữa mỗi lần gửi gói tin ARP Spoofing.
Chúng ta sử dụng except KeyboardInterrupt để bắt sự kiện. Khi muốn dừng tấn
công nhấn Ctrl+C. Trong phần này, chúng ta lấy địa chỉ MAC của mục tiêu và địa chỉ
MAC của cổng mạng, sau đó tạo gói tin ARP Reply để khôi phục bảng ARP bằng cách
gửi nó từ cổng mạng đến mục tiêu. Chúng ta sử dụng send(arp_response, count=5) để
gửi 5 gói tin ARP Reply để đảm bảo khôi phục bảng ARP.
Kiểm tra tấn công ARP Spoofing bằng Wireshark
33
Hình 3.25: Các gói tin tấn công ARP Spoofing của Scapy
Sử dụng dsniff tấn công ARP Spoofing
Bật chế độ chuyển tiếp gói tin (IP forwarding)
34
Hình 3.26: Chế độ chuyển tiếp gói tin
Giả mạo địa chỉ IP mục tiêu thành địa chỉ IP của cổng mạng và gửi các gói tin ARP
Spoofing liên tục
35
arpspoof: Tên của công cụ trong gói dsniff, một bộ công cụ bảo mật mạng. Công cụ
này cho phép tấn công ARP spoofing.
-i ens33: Chỉ định giao diện mạng để sử dụng cho tấn công.
-t 111.111.111.10: Chỉ định địa chỉ IP mục tiêu giả mạo gói tin ARP.
111.111.111.1: Địa chỉ IP của máy chủ mạng muốn giả mạo gói tin ARP
Vào Wireshark để kiểm tra
Hình 3.28: Các gói tin tấn công ARP Spoofing của dsniff
So sánh Scapy và dsniff:
Cả hai công cụ đều có thể được sử dụng để thực hiện tấn công ARP Spoofing
nhưng dsniff có sẵn các tính năng và chức năng liên quan đến an ninh mạng rộng hơn
và dễ sử dụng hơn cho việc thực hiện tấn công mạng cụ thể. Trong khi đó, Scapy linh
hoạt hơn trong việc xây dựng các tấn công mạng tùy chỉnh và tương tác trực tiếp với
các gói tin mạng.
Quét cổng TCP Scan
Sử dụng Scapy để quét cổng
Địa chỉ IP của mục tiêu được quét cổng
36
Khai báo cổng bắt đầu và cổng kết thúc
Hình 3.29: Cổng bắt đầu quét và cổng kết thúc quét
Khai báo danh sách các cổng mở và cổng đóng
37
Thực hiện vòng lặp để quét từ cổng bắt đầu đến cổng kết thúc
38
In ra cổng mở
39
Hình 3.32: Cổng đóng
Sử dụng Nmap để quét cổng
40
Hình 3.33: Quét cổng bằng Nmap
-p 1-80: Phạm vi cổng muốn quét
111.111.111.10: Địa chỉ IP muốn quét cổng
Xuất hiện 1 cổng mở: Port 22 là ssh
So sánh quét cổng giữa Scapy và Nmap:
Kết quả quét cổng giữa Nmap và Scapy giống nhau. Nmap là một công cụ tập trung
vào việc quét cổng và phân tích mạng, trong khi Scapy tập trung vào việc tạo và phân
tích gói tin mạng. Nmap có giao diện dòng lệnh và cung cấp các tùy chọn mạnh mẽ,
trong khi Scapy cũng có giao diện dòng lệnh nhưng yêu cầu người dùng có kiến thức
cao hơn về giao thức mạng. Kết quả của Nmap thường được hiển thị dễ hiểu và tổ
chức, trong khi Scapy yêu cầu người dùng phân tích kết quả trực tiếp từ các gói tin trả
về.
3.1.2.2. Kịch bản thứ hai
Tấn công DoS
41
Sử dụng Scapy tấn công DoS
Vào máy host 1:
42
Tạo gói tin tấn công
43
Hình 3.34: Các gói tin tấn công host 2 bằng Scapy
Biểu đồ I/O Graph của Scapy
44
Hình 3.35: Biểu đồ I/O Graphs của host 2 khi tấn công bằng Scapy
Sử dụng Hping3 tấn công DoS
-S: Sử dụng giao thức SYN để tạo các gói tin trong cuộc tấn công SYN flood.
10.0.0.2: Đây là địa chỉ IP host 2.
-a 10.0.0.1: Đây là địa chỉ IP host 1 được giả mạo trong gói tin tấn công.
45
-p 80: Đây là số hiệu cổng đích mà cuộc tấn công SYN flood sẽ tấn công. Trong
trường hợp này, cổng đích là 80.
--flood: Tham số này chỉ định rằng cuộc tấn công SYN flood sẽ được thực hiện với tốc
độ tối đa.
Sử dụng Wireshark kiểm tra
Hình 3.36: Các gói tin host 2 khi tấn công bằng Hping3
Biểu đồ I/O Graphs của Hping3
46
Hình 3.37: Biểu đồ I/O Graphs host 2 khi tấn công bằng Hping3
So sánh Scapy và Hping3: Kết quả thu được tương tự như kịch bản tấn công 1. Hping3
vẫn cho gói tin/s cao hơn so với Scapy.
Quét cổng TCP Scan
Sử dụng Scapy để quét cổng:
Khai báo địa chỉ IP host 3
48
Hiển thị cổng đóng
50
CHƯƠNG 4
4.1. Kết luận
Đề tài đẵ đạt được mục tiêu đề ra:
--
-
-
Qua quá trinh fnghieen cứu chúng tôi đa ….
51
TÀI LIỆU THAM KHẢO
52