Tài liệu này sẽ cung cấp cho các bạn những kiến thức về tấn công từ chối dịch vụ và demo cách xây dựng hệ thống máy chủ web server có khả năng phòng chống tấn công DDoS. Trong những năm gần đây, tấn công từ chối dịch vụ đang trở nên rất phổ biến và trở nên bùng phát khi ngày càng nhiều người tiếp cận Internet, ngày càng nhiều cá nhân, tổ chức, doanh nghiệp sử dụng mạng Internet để phục vụ cho các mục đích kinh doanh, quảng bá sản phẩm. Cùng với sự phát triển của mạng Internet, các kỹ thuật cũng như công cụ tấn công ngày càng đa dạng. Điều đó khiến cho việc tiếp cận với khái niệm tấn công của một bộ phận người dùng ngày càng dễ dàng. Chỉ việc lên bất kỳ máy tìm kiếm nào và gõ dòng chữ “công cụ ddos” là có thể tải về hàng loạt các công cụ với các biến thể khác nhau, từ hình thức tấn công đơn giản nhất cho đến cực kỳ phức tạp. Với sự sẵn có này, từ một đứa trẻ hoàn toàn không biết gì về các khái niệm của mạng cho đến một chuyên gia cũng đều có thể khiến cho một dịch vụ nào đó không thể truy cập hoặc chí ít cũng khiến nó trì trệ đôi chút. Họ thực hiện các cuộc tấn công vì nhiều lý do. Từ việc tấn công có mục đích như triệt hạ đối thủ hay chỉ tấn công để thể hiện bản thân. Thậm chỉ có các cuộc tấn công gây ra hiệu quả nghiêm trọng chỉ vì một người nào đó muốn xem thử công cụ mình mới tìm được hay tạo ra được có tác dụng như thế nào. Có những cuộc tấn công vì “chính nghĩa”, cũng có những cuộc tấn công vì tư lợi. Nhưng tất cả đều gây ra hiệu quả xấu đối với Internet.
Trang 1TÌM HIỂU VÀ XÂY DỰNG GIẢI PHÁP PHÒNG CHỐNG TẤN CÔNG TỪ CHỐI DỊCH VỤ
Đồ án (Môn học/Tốt nghiệp): An Ninh Mạng
Tên đề tài: TÌM HIỂU VÀ XÂY DỰNG GIẢI PHÁP PHÒNG CHỐNG TẤN CÔNG TỪ CHỐI DỊCH VỤ
…………, Ngày … Tháng …….Năm 200…
GVHD: Hà Văn Cử SVTH: Đào Xuân Hưng
Mã lớp: 25CCAN02 Khóa: 25
Trang 2TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
2
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 3
TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
3
NHẬN XÉT CỦA DOANH NGHIỆP
Trang 4
TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
4
LỜI NÓI ĐẦU
Trong những năm gần đây, tấn công từ chối dịch vụ đang trở nên rất phổ biến và trở nên bùng phát khi ngày càng nhiều người tiếp cận Internet, ngày càng nhiều cá nhân, tổ chức, doanh nghiệp sử dụng mạng Internet để phục vụ cho các mục đích kinh doanh, quảng bá sản phẩm Cùng với sự phát triển của mạng Internet, các kỹ thuật cũng như công cụ tấn công ngày càng đa dạng Điều đó khiến cho việc tiếp cận với khái niệm tấn công của một bộ phận người dùng ngày càng dễ dàng Chỉ việc lên bất kỳ máy tìm kiếm nào và gõ dòng chữ “công cụ ddos” là có thể tải về hàng loạt các công cụ với các biến thể khác nhau, từ hình thức tấn công đơn giản nhất cho đến cực kỳ phức tạp Với sự sẵn
có này, từ một đứa trẻ hoàn toàn không biết gì về các khái niệm của mạng cho đến một chuyên gia cũng đều có thể khiến cho một dịch vụ nào đó không thể truy cập hoặc chí
ít cũng khiến nó trì trệ đôi chút Họ thực hiện các cuộc tấn công vì nhiều lý do Từ việc tấn công có mục đích như triệt hạ đối thủ hay chỉ tấn công để thể hiện bản thân Thậm chỉ có các cuộc tấn công gây ra hiệu quả nghiêm trọng chỉ vì một người nào đó muốn xem thử công cụ mình mới tìm được hay tạo ra được có tác dụng như thế nào Có những cuộc tấn công vì “chính nghĩa”, cũng có những cuộc tấn công vì tư lợi Nhưng tất cả đều gây ra hiệu quả xấu đối với Internet
Theo Kaspersky Lab, vào Quý 3 năm 2016, Việt Nam đứng thứ tư trong các nước bị DDoS Trong đó, Việt Nam chiếm khoảng 1.6% lượng máy chủ C&C của thế giới Đặc biệt là vào cuối năm 2016, một cuộc tấn công vô cùng khủng khiếp vào hệ thống Dyn - một nhà cung cấp tên miền và máy chủ của Mỹ đã khiến cho hệ thống này không thể đáp trả lại các truy vấn DNS của người dùng Kết quả là một loạt các hệ thống lớn như Twitter, SoundCloud, Shopify, đã dừng hoạt động suốt cả ngày Các hệ thống như Github, Netflix, Reddit cũng bị ảnh hưởng nặng nề
Trước thực trạng đó, đề tài này được nghiên cứu để giúp cho các doanh nghiệp nhỏ và vừa có khả năng hạn chế được các cuộc tấn công từ chối dịch vụ nhằm vào hệ thống của mình Qua đó đảm bảo hệ thống mạng sẽ không xảy ra sự cố nào nghiêm trọng trong suốt quá trình vận hành.
Trang 5TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
5
MỤC LỤC
1 GIỚI THIỆU TỔNG QUAN 9
1.1 Giới thiệu tấn công từ chối dịch vụ 9
1.2 Các cuộc tấn công nổi tiếng 10
2 TÌM HIỂU KIẾN THỨC 11
2.1 Tổng quan bộ giao thức TCP/IP 11
2.1.1 Giao thức IP 12
2.1.2 Hệ thống Port 15
2.1.3 Giao thức TCP 16
2.1.4 Giao thức UDP 19
2.1.5 Giao thức ICMP 21
2.2 Tổng quan tấn công từ chối dịch vụ 21
2.2.1 Các hình thức tấn công từ chối dịch vụ 22
2.2.1.1 DoS (Denial of Service) 22
2.2.1.2 DDoS (Distributed Denial of Service) 23
2.2.1.3 DRDoS (Distributed Reflection Denial of Service) 25
2.2.2 Các phương thức tấn công phổ biến 25
2.3 Tổng quan firewall 29
2.3.1 Giới thiệu về firewall 29
2.3.2 Giới thiệu về Iptables 31
2.3.3 Giới thiệu về ModSecurity 33
2.4 Dịch vụ theo dõi tiến trình Monit 34
2.5 Dịch vụ giám sát Monitorix 35
2.6 Kỹ thuật cân bằng tải và CDN 36
3 PHÂN TÍCH VÀ THIẾT KẾ 39
3.1 Sơ đồ khuyến nghị cho doanh nghiệp 39
3.1.1 Xây dựng hệ thống server tại doanh nghiệp 39
3.1.2 Thuê hạ tầng ở các Datacenter 40
3.1.3 Thuê máy chủ vật lý 41
3.1.4 Thuê dịch vụ Cloud Server 41
3.2 Sơ đồ triển khai cho đồ án 42
Trang 6TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
6
4 TRIỂN KHAI THỰC HIỆN 43
4.1 Cài đặt và cấu hình 43
4.1.1 Tối ưu Kernel 43
4.1.2 Tối ưu Apache 44
4.1.3 Cấu hình Iptables 47
4.1.4 Cài đặt và cấu hình ModSecurity 53
4.1.4.1 Phân tích hình thức tấn công Wordpress pingback 53
4.1.4.2 Phân tích tấn công với liên kết Facebook 53
4.1.4.3 Cản lọc bằng ModSecurity 55
4.1.5 Cài đặt và cấu hình Monit 56
4.1.6 Cài đặt và cấu hình Monitorix 58
4.2 Tấn công thử nghiệm 63
4.2.1 Tấn công thử nghiệm với công cụ TorsHammer 63
4.2.2 Tấn công thử nghiệm với DDoSOverProxy 64
4.2.3 Tấn công thử nghiệm với liên kết Facebook 65
5 ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 68
5.1 Đánh giá đề tài 68
5.2 Hướng phát triển 68
Trang 7TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
7
MỤC LỤC HÌNH ẢNH
Hình 1: Tấn công từ chối dịch vụ 9
Hình 2: Mô hình TCP/IP 11
Hình 3: IP Header 12
Hình 4: Network Address Translation 15
Hình 5: Danh sách các port phổ biến 16
Hình 6: Quá trình bắt tay 3 bước 17
Hình 7: Quá trình ngắt kết nối 18
Hình 8: Cấu trúc TCP header 19
Hình 9: Giao thức truyền tin UDP 20
Hình 10: Cấu trúc UDP header 20
Hình 11: Cấu trúc ICMP header 21
Hình 12: Mô hình tấn công DDoS 23
Hình 13: Mô hình mạng Botnet 24
Hình 14: Mô hình tấn công DRDoS 25
Hình 15: Tấn công SYN Flood 26
Hình 16: Tấn công Ping of Death 27
Hình 17: Sơ đồ tấn công Smurf 28
Hình 18: Tấn công HTTP POST 29
Hình 19: Sơ đồ xử lý của Netfilter 32
Hình 20: Monit Service Manager 34
Hình 21: Dịch vụ giám sát Monitorix 35
Hình 22: Mô hình Load Balancing 37
Hình 23: Mô hình Failover 37
Hình 24: Các A Record của Google.com 38
Hình 25: Mô hình triển khai CDN Server 39
Hình 26: Datacenter 41
Hình 27: Mô hình hệ thống Cloud 42
Hình 28: Sơ đồ triển khai cho đồ án 42
Hình 29: Cấu hình MPM cho Apache 44
Hình 30: Cấu hình module reqtimeout 45
Hình 31: Một website đã thu gọn HTML 46
Trang 8TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
8
Hình 32: Cấu hình Browser Cache cho Apache 47
Hình 33: Sơ đồ các chain trong đồ án 49
Hình 34: Một ví dụ về tấn công Pingback 53
Hình 35: Chức năng Facbook Preload 54
Hình 36: Cấu hình ModSecurity 56
Hình 37: Nội dung file denyhost.sh 56
Hình 38: Cài đặt dịch vụ Monit 57
Hình 39: Cấu hình dịch vụ Monit 57
Hình 40: Giám sát Apache với Monit 57
Hình 41: Monit khởi động thành công 58
Hình 42: Cài đặt dịch vụ Monitorix 59
Hình 43: Cấu hình Monitorix 59
Hình 43 & 44: Giao diện Monitorix 61
Hình 45: Kích hoạt Apache graph trong Monitorix 62
Hình 46: Tấn công HTTP POST 63
Hình 47: Loại bỏ kết nối từ TorsHammer 63
Hình 48: Traffic đi vào server 64
Hình 49: Log ghi nhận từ Apache 65
Hình 50: Tấn công với Facebook Preload 66
Hình 51: Kết quả kiểm tra từ check-host.net 66
Hình 52: Lượng server processes do Apache tạo ra 67
Hình 53: Traffic đi vào server 67
Hình 54: Số lượng request do Apache ghi nhận 68
Trang 9TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
9
TÌM HIỂU VÀ XÂY DỰNG GIẢI PHÁP PHÒNG CHỐNG
TẤN CÔNG TỪ CHỐI DỊCH VỤ
1 GIỚI THIỆU TỔNG QUAN
1.1 Giới thiệu tấn công từ chối dịch vụ.
Tấn công từ chối dịch vụ là hình thức tấn công khiến cho hệ thống mục tiêu bị tê liệt hoặc không thể đáp ứng các yêu cầu của người dùng Tấn công từ chối dịch vụ có thể do một, nhiều hoặc một mạng lưới các máy tính cùng tham gia tấn công tùy theo mục đích của hacker và khả năng phòng thủ của mục tiêu
Hình 1: Tấn công từ chối dịch vụ
Bất kỳ hệ thống nào cũng có thể trở thành mục tiêu của tấn công từ chối dịch vụ Tuy nhiên, việc tấn công từ chối dịch vụ không chỉ ảnh hưởng đến mục tiêu mà còn ảnh hưởng đến Internet trên toàn cầu Điển hình là vụ tấn công vào DynDNS vào năm 2016 khiến cho gần một nửa Internet không thể phục vụ người dùng trong thời gian ngắn Việc tấn công không những khiến
Trang 10TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
10
cho DynDNS không thể trả lời các truy vấn DNS mà còn khiến cho một lượng lớn dữ liệu ùn
ùn đổ vào hệ thống Internet của Mỹ khiến cho các dịch vụ khác cũng bị ảnh hưởng nghiêm trọng
1.2 Các cuộc tấn công nổi tiếng
Một số cuộc tấn công nổi tiếng:
- Cuộc tấn công đầu tiên liên quan đến máy chủ DNS xảy ra vào tháng 01/2001 và mục tiêu đầu tiên là trang Register.com Chúng đã sử dụng danh sách hàng ngàn bản ghi (records) có tuổi thọ 1 năm tại thời điểm tấn công
- Vào tháng 02/2001, máy chủ của Cục Tài chính Ireland bị tấn công bởi DDoS, thủ phạm
là những sinh viên đến từ trường Maynooth, một trường Đại học tại Ireland Vụ việc bị phản ánh và một số sinh viên của trường đã bị kỷ luật ngay sau đó
- Trong năm 2009, xảy ra cuộc phản đối bầu cử tại Iran, các nhà hoạt động nước ngoài đang tìm cách giúp đỡ phe đối lập tham gia vào các cuộc tấn công DDoS chống lại chính phủ của Iran Trang web chính thức của chính phủ Iran (ahmedinejad.ir) không thể truy cập được
- Ngày 25/09/2009, ngày Michael Jackson qua đời, do lượng truy cập tìm kiếm các từ khóa có liên quan đến Michael Jackson quá lớn khiến Google News ban đầu lầm tưởng đây là một cuộc tấn công tự động
- Vào ngày 28/11/2010, Wikileaks.org bị DDoS tấn công Cuộc tấn công này xảy ra ngay khi WikiLeaks chuẩn bị tung ra những tài liệu mật của chính phủ Mỹ Bộ Ngoại giao
Mỹ sau khi biết thông tin này đã quyết định thông báo trước đến các chính phủ khác về những gì mà tổ chức WikiLeaks sẽ phát tán
- Vào 8/12/2010, Một nhóm hacker tấn công đồng loạt trang web của hãng MasterCard, Visa để trả đũa cho việc chủ Wikileaks bị tạm giam ở Anh Nhóm hacker, lấy tên "chiến dịch trả đũa", nhận trách nhiệm gây ra các lỗi kỹ thuật nghiêm trọng trên trang web của MasterCard Tuyên bố này được đưa qua một thông điệp trên mạng xã hội Twitter
- Cuộc tấn công đã đánh sập thành công website của Mastercard, PostFinance và Visa PostFinance, ngân hàng đã đóng băng tài khoản của Julian Assange, bị ngưng hoạt động hơn 16 giờ đồng hồ
Trang 11TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
11
2 TÌM HIỂU KIẾN THỨC
2.1 Tổng quan bộ giao thức TCP/IP
TCP/IP là bộ giao thức quan trọng nhất mạng Internet, là tiêu chuẩn chung của các thiết bị kết nối Internet trên toàn cầu TCP/IP khiến cho việc giao tiếp giữa các thiết bị khác nhau được thống nhất TCP/IP cung cấp các giao thức con để phục vụ cho các cấp độ khác nhau của hạ tầng mạng Trong đó, các giao thức thuộc tầng thứ 2 và 3 là những giao thức quan trọng nhất trên môi trường Internet Tầng 2 của mô hình TCP/IP có nhiệm vụ xác định điểm xuất phát và đích đến của gói tin, và giúp định tuyến gói tin đến đích một cách chính xác Tầng 3 có nhiệm
vụ xác định dịch vụ hoặc ứng dụng sẽ nhận được gói tin Các lớp trong mô hình đều có mối quan hệ chặt chẽ với nhau, các tầng phía trên sẽ không thể hoạt động nếu thiếu các tầng phía dưới
Trang 12TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
12
2.1.1 Giao thức IP
Giao thức IP là giao thức truyền tải dạng host to host trên Internet, thuộc tầng Internet trên
mô hình TCP/IP IP là một giao thức dạng phi kết nối và truyền tải dữ liệu dạng datagram
và không có cơ chế kiểm tra lỗi mà chỉ có trường checksum để kiểm tra tính toàn vẹn của
dữ liệu Cấu trúc một IP header như sau:
Hình 3: IP Header
- Version (4 bit): Đây là trường đầu tiên của gói IP cho biết phiên bản của giao thức
đang được sử dụng Hiện tại phần lớn các thiết bị đều sử dụng giao thức IP version
4 trong khi version 6 vẫn đang phát triển mạnh mẽ và dần trở nên phổ biến
- Internet Header Length (IHL) (4 bit): Trường này chứa thông tin về độ dài của
header Giá trị của trường này cho biết header này dài gấp mấy lần một trường 32 bit Thông thường nếu không có các giá trị Options đi kèm, giá trị của trường này sẽ
là 5, tức là header dài 5 x 32 bit = 20 bytes Giá trị tối đa của trường này là 15, tức
là một IP header sẽ dài tối đa 60 bytes
- Type of Service (ToS) (8 bit): Trường này cho router biết cách xử lý gói tin như là
giảm thiểu độ trễ, tối đa hóa lưu lượng, tối thiểu chi phí và tối đa hóa độ tin cậy Trường này thường được sử dụng trong công nghệ Quality of Service (QoS)
- Total Length (16 bit): Trường này chứa thông tin về độ dài của toàn bộ IP header
và phần dữ liệu, được tính theo đơn vị octets
- Identification (16 bit): Trường này được sử dụng để đánh số các gói tin IP phục vụ
cho việc sắp xếp lại các gói về đúng thứ tự ban đầu nếu gói IP bị phân mảnh do quá lớn Giá trị của trường này sẽ được tự động tăng từ nguồn gửi
- Flags (3 bit): Bit đầu tiên không được sử dụng và luôn có giá trị 0 Bit kế tiếp gọi là
cờ Don’t Fragment (DF) Cờ DF cho biết gói tin có được phân mảnh: 0 – không
Trang 13TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
- Fragment Offset (13 bit): Trong trường hợp dữ liệu bị phân mảnh, trường này cho
biết vị trí của dữ liệu trong gói so với dữ liệu gốc Được sử dụng để lắp ghép lại dữ liệu của các gói IP bị phân mảnh
- Time To Live (TTL - 8 bit): Cho biết số mắt xích (hops) mà gói IP có thể đi qua
trước khi bị hủy bỏ Qua mỗi router, số này sẽ bị trừ đi 1 đơn vị Khi số này bằng 0, gói tin sẽ bị hủy
- Protocol (8 bit): Cho biết giao thức chứa trong phần dữ liệu của gói Phần giao thức
này thuộc về lớp trên trong mô hình TCP/IP Ví dụ: ICMP có mã là 1, TCP có mã là
6, UDP có mã là 17,…
- Header Checksum (16 bit): Chứa mã kiểm tra tính toàn vẹn của phần IP header
Trường này sẽ được tính toán lại mỗi khi đi qua một router (do giá trị Time To Live
bị giảm) Cách tính checksum như sau:
Trước hết ta đặt trường Checksum về giá trị 0
Sau đó, lấy mỗi 16 bit của header đem cộng dồn với nhau
Nếu kết quả có độ dài lớn hơn 16 bit, ta lấy tất cả bit cao cộng nhị phân với
16 bit thấp, cho đến khi kết quả chỉ dài trong khoảng 16 bit
Đảo ngược các bit và ta thu được checksum
Ví dụ ta có một IP header như sau (với phần checksum có giá trị 0):
45 20 00 34 23 FA 40 00 37 06 00 00 97 65 C0 85 C0 A8 49 8D
Để tính checksum của header này, ta lấy mỗi 16 bit đem cộng với nhau:
4520 + 0034 + 23FA + 4000 + 3706 + 0000 + 9765 + C085 + C0A8 + 498D = 34273 = 11 0100 0010 0111 0011 tức lớn hơn 16 bit
Ta lấy phần dư ở các bit cao đem cộng với phần dư ở các bit thấp:
0000 0011 + 0100 0010 0111 0011 = 100 0010 0111 0110 Đem đảo ngược các bit này ta được: 011 1101 1000 1001 = 3D89 Như vậy phần checksum sẽ có giá trị 3D89
- Source IP Address (32 bit): Chứa thông tin về IP nguồn của gói
Trang 14TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
14
- Destination IP Address (32 bit): Chứa thông tin về IP đích của gói
- Options: Trường này cung cấp một số cài đặt cho header phục vụ cho việc kiểm
thử, gỡ lỗi, và bảo mật
- Padding: Có chiều dài cố định Bao gồm một dãy các bit 0 để đảm bảo IP Header
Length luôn chia hết cho 32 bit
- Payload: Là phần cuối cùng của một gói IP Chứa dữ liệu của các giao thức thuộc
tầng phía trên trong mô hình TCP/IP
Địa chỉ IP:
- Địa chỉ IP là một địa chỉ dùng để định danh các thiết bị (host) trên mạng Internet
- Tất cả các thiết bị mạng đều phải có địa chỉ IP để hoạt động, địa chỉ IP của các thiết bị luôn khác nhau
- Hiện tại có hai dạng địa chỉ IP là IP version 4 (IPv4) và IP version 6(IPv6) Trong
đó IP version 4 vẫn là cốt yếu của mạng Internet tuy nhiên lại đang dần cạn kiệt IPv6 đang phát triển mạnh mẽ và sẽ thay thế IPv4 trong tương lai
- Tổ chức cấp phát số hiệu Internet (IANA) là tổ chức tạo ra và phân phối địa chỉ
IP Những khu vực nhất định sẽ được cung cấp những dải IP nhất định Qua đó khiến cho việc truy tìm vị trí dựa theo địa chỉ IP sẽ dễ dàng hơn
- Cấu trúc địa chỉ IPv4:
Địa chỉ IP được diễn tả bởi một địa chỉ 32 bit Trong đó chia ra làm 4 phần dài 8 bit, gọi là các octets Tuy nhiên để tiện cho việc ghi nhớ, các octet của địa chỉ IP thường được quy đổi về hệ số decimal và phân cách nhau bởi dấu chấm Ví dụ: 103.56.164.21
Hệ thống địa chỉ IP phân thành các lớp Mỗi lớp có một khoảng Public IP
và Private IP riêng
Riêng dải địa chỉ 127.0.0.0 sẽ được sử dụng làm địa chỉ loopback
Trang 15TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
15
Một phần của địa chỉ IP sẽ được sử dụng làm địa chỉ mạng và một phần được sử dụng làm địa chỉ cho các host Lớp A của hệ thống IP sử dụng 8 bit đầu tiên để làm địa chỉ mạng, lớp B sử dụng 16 bit và lớp C sử dụng
24 bit
- Public IP và Private IP: Ngày nay số lượng các thiết bị sử dụng Internet đang thực sự bùng nổ khiến cho việc quản lý và phân phối IP trở nên khó khăn do nguồn IP cạn kiệt và việc gia tăng chi phí thuê đường truyền với mỗi thiết bị Vì thế các hộ gia đình, doanh nghiệp hoặc tổ chức sẽ sử dụng một địa chỉ IP duy nhất cho tất cả các thiết bị của mình Tuy nhiên, địa chỉ IP lại là duy nhất cho mỗi thiết bị, không thể dùng chung Chính vì thế, người ta sử dụng dải IP Private
để phục vụ cho nhu cầu mạng nội bộ, và sử dụng Public IP cho nhu cầu kết nối Internet Giữa hệ thống mạng nội bộ và Internet sẽ có một router sử dụng công nghệ Network Address Translation (NAT) để giúp cho mạng nội bộ kết nối được với Internet thông qua Public IP của router
Hình 4: Network Address Translation
Trang 16TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
Hình 5: Danh sách các port phổ biến
2.1.3 Giao thức TCP
Giao thức TCP (Transmission Control Protocol) là một trong những giao thức quan trọng nhất của hệ thống mạng Sử dụng TCP, các thiết bị mạng sẽ tạo ra các kết nối ảo với nhau Qua các kết nối đó, chúng có thể truyền dữ liệu với nhau TCP có cơ chế kiểm tra lỗi để đảm bảo dữ liệu luôn được truyền và nhận một cách đúng thứ tự, toàn vẹn và đáng tin cậy, quản lý và phân biệt các kết nối dựa trên địa chỉ IP và số Port của hai đầu gửi và nhận Giao thức TCP hoạt động theo các bước sau:
- Khởi tạo và thiết lập kết nối
Trang 17TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
Quá trình khởi tạo kết nối TCP diễn ra như sau (quá trình bắt tay 3 bước):
- Bên A gửi cho đối phương một gói TCP với cờ SYN được bật
- Bên B nếu muốn chấp nhận kết nối sẽ gửi lại đối phương một gói TCP với cờ SYN
và ACK được bật
- Bên A gửi lại một gói TCP có cờ ACK Kết nối hoàn tất
Hình 6: Quá trình bắt tay 3 bước
Quá trình ngắt kết nối:
- Bên A gửi đối phương một gói TCP với cờ FIN và ACK được bật
- Bên B gửi lại một gói TCP ACK
- Bên B hoàn tất quá trình gửi dữ liệu và tiến vào trạng thái ngắt kết nối, gửi cho bên A một gói TCP với cờ FIN và ACK bật
- Bên A gửi lại bên B một gói TCP với cờ ACK Kết thúc quá trình
Trang 18TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
18 Hình 7: Quá trình ngắt kết nối
Cấu trúc một TCP header như sau:
Trang 19TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
19
Hình 8: Cấu trúc TCP header
- Source Port Number (16 bit): Địa chỉ cổng nguồn của gói tin
- Destination Port Number (16 bit): Địa chỉ cổng đích của gói tin
- Sequence Number (32 bit): Được sử dụng để lắp ghép các gói TCP lại theo đúng thứ
tự Số này sẽ được gán vào trường ACK trong gói đáp trả
- Acknowledgement Number (32 bit): Bên nhận cho biết cho biết gói đã đến đích thành
công Trường này có giá trị bằng số Sequence của gói vừa nhận được
- Data Offset (4 bit): Cho biết tổng độ dài của TCP header dài gấp mấy lần 32 bit Nếu
không có trường Optional, trường này thường có giá trị là 5, tức là TCP header dài tổng cộng 5 x 32 bit = 20 bytes
- Reversed (3 bit): Luôn có giá trị là 0, sẽ được dùng trong tương lai
- Flags (1 bit mỗi cờ): Gồm các cờ NS, CWR, ECE vẫn chưa được sử dụng 6 cờ còn lại
là URG, ACK, PSH, RST, SYN, FIN hiện đang được sử dụng
- Window Size (16 bit): Xác định lượng dữ liệu đính kèm lớn nhất (tính theo bytes) mà
bên nhận có thể nhận được mỗi gói Bên gửi chỉ có thể gửi một lương dữ liệu tương ứng trước khi nhận lại một gói Acknowledgement và chỉ số window mới từ bên nhận
- Checksum (16 bit): Sử dụng để kiểm tra tính toàn vẹn của header và dữ liệu
- Urgent Pointer (16 bit): Trường ưu tiên Khi một thiết bị nhìn thấy một gói tin có sử
dụng Urgent Pointer, nó sẽ dừng tất cả các hoạt động khác và chuyển tiếp gói tin này đi ngay lập tức
- Options: Đây là trường tùy chọn, thường có độ dài là bội số của 32 bit
2.1.4 Giao thức UDP
Trong khi giao thức TCP là giao thức có tính tin cậy cao nhưng lại có thể gây chậm trễ vì
cơ chế kiểm tra lỗi trong khi vận chuyển các gói tin khiến cho một số dịch vụ cần tốc độ cao nhưng không yêu cầu tính toàn vẹn bị hạn chế Khi đó, ta thường dùng đến giao thức UDP (User Datagram Protocol) Đây cũng là một giao thức cốt lõi của TCP/IP UDP đơn thuần chỉ gửi gói tin đến đích dạng datagram mà không thông qua bất cứ một kết nối nào cũng như không hề kiểm tra xem gói tin có thực sự đến đích hay không Điều này khiến UDP hoạt động rất nhanh và đơn giản hơn TCP
Trang 20TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
20
Hình 9: Giao thức truyền tin UDP
Do UDP là giao thức có thông điệp nhỏ nhất trên tầng Transport nên hoạt động rất tốt với các hệ thống chuyên trả lời các truy vấn đơn giản và có số lượng người dùng lớn như DNS, streaming media, game,…
Cấu trúc UDP header:
Hình 10: Cấu trúc UDP header
- Source Port (16 bit): Địa chỉ cổng nguồn, nếu không cần đối phương trả kết quả về,
trường này có thể gán giá trị bằng 0
- Destination Port (16 bit): Địa chỉ cổng đích
- Length (16 bit): Chứa độ dài của toàn bộ gói UDP Giá trị thấp nhất là 8 byte khi
không có dữ liệu
Trang 21TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
Header của ICMP rất đa dạng, phụ thuộc vào các trường Type và Code
Hình 11: Cấu trúc ICMP header
Các chức năng của ICMP:
- Điều khiển lưu lượng (flow control) khi các gói dữ liệu đến quá nhanh, thiết bị đích hoặc thiết bị định tuyến ở giữa sẽ gửi một thông điệp ICMP trở lại thiết bị gửi, yêu cầu thiết bị gửi tạm thời ngừng gửi dữ liệu
- Thông báo lỗi: Trong trường hợp dữ liệu không tới được địa chỉ đích thì hệ thống sẽ gửi một thông báo lỗi “Destination unsearchable”
- Định hướng lại các tuyến (Redirect Router) Một Router gửi một thông điệp ICMP cho một host thông báo nên sử dụng Router khác Thông điệp này có thể chỉ được dùng khi host này ở trên cùng một mạng với hai thiết bị định tuyến
- Kiểm tra các host ở xa: Một host có thể gửi một thông điệp ICMP “Echo” để kiểm tra host đích có hoạt động hay không
2.2 Tổng quan tấn công từ chối dịch vụ
Như đã đề cập, tấn công từ chối dịch vụ có mục đích là khiến mục tiêu không thể đáp ứng lại các yêu cầu phục vụ của người dùng Các cuộc tấn công này có thể gây ra thiệt hại vô cùng lớn Hơn nữa mục tiêu tấn công cũng vô cùng đa dạng Bất cứ dịch vụ nào cũng có thể trở thành đích ngắm của cuộc tấn công Thậm chí cả khi không có dịch vụ nào hoạt động thì các cuộc tấn công vẫn có thể khiến cho băng thông của mục tiêu bị bão hòa
Trang 22TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
22
Kết quả của một cuộc tấn công từ chối dịch vụ:
- Làm cạn kiệt tài nguyên của hệ thống
- Làm quá tải hoặc sụp đổ dịch vụ
- Làm băng thông bị bão hòa
- Phá vỡ các kết nối TCP
- Làm sập hoặc hỏng hóc thiết bị đứng trước mục tiêu như Firewall, Router, Modem khiến cho mục tiêu dù có khả năng phòng thủ tốt nhưng cuộc tấn công vẫn thành công US-CERT đã xác định các dấu hiệu của một cuộc tấn công từ chối dịch vụ bao gồm:
- Mạng bị chậm bất thường khi mở một tệp tin hoặc truy cập website
- Không thể truy cập một website cụ thể
- Không thể truy cập bất kỳ website nào
- Tăng lượng thư rác nhận được
2.2.1 Các hình thức tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ chia ra làm nhiều hình thức dựa theo phương pháp và quy mô của cuộc tấn công Chia ra làm ba loại chính như sau:
- DoS (Denial of Service)
- DDoS (Distributed Denial of Service)
- DRDoS (Distributed Reflection Denial of Service)
Ta sẽ tìm hiểu từng loại hình để tìm ra phương pháp phòng chống hữu hiệu cho chúng
2.2.1.1 DoS (Denial of Service)
DoS (Denial of Service) là hình thức tấn công từ chối dịch vụ cơ bản nhất Một cuộc tấn công DoS chỉ do một cá nhân hoặc một hệ thống thực hiện Các cuộc tấn công DoS thường nhắm vào các lỗ hổng về phần mềm của mục tiêu khiến nó sụp đổ hoặc làm bão hòa băng thông của mục tiêu nếu máy tính tấn công có băng thông lớn hơn băng thông của mục tiêu
Các kiểu tấn công điển hình của DoS là: Ping of Death, SYN Flood, Smurf, LAND, Teardrop, HTTP POST, …
Cũng chính vì việc tấn công này chỉ sử dụng một máy tính để tấn công nên việc chống lại cũng hết sức dễ dàng Ví dụ như chặn tất cả các gói từ IP của máy tính tấn công
Trang 23TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
23
2.2.1.2 DDoS (Distributed Denial of Service)
DDoS (Distributed Denial of Service) là hình thức tấn công từ chối dịch vụ thông dụng nhất hiện nay Thông thường máy tính tấn công sẽ không có đủ băng thông hoặc không
đủ sức mạnh để tạo ra lượng dữ liệu làm bão hòa băng thông của mục tiêu hoặc lượng
dữ liệu đó không đủ để làm quá tải các tài nguyên cần thiết Khi đó sẽ có nhiều người hoặc nhiều máy tính cùng tham gia tấn công Rõ ràng với hình thức này thì cuộc tấn công sẽ hiệu quả hơn rất nhiều
Hình 12: Mô hình tấn công DDoS
Mạng botnet: mạng lưới botnet là một tập hợp các máy tính của người tấn công hoặc các máy tính bị nhiễm mã độc và bị điều khiển bởi hacker Việc sử dụng mạng botnet không chỉ dễ dàng ẩn giấu thông tin của hacker mà còn có lợi thế rất lớn là tăng lưu lượng băng thông đổ vào nạn nhân cũng như tăng cường lượng tài nguyên, khả năng tạo gói do có nhiều máy tính cùng tham gia đồng thời
Botnet có 2 dạng điều khiến phổ biến như sau:
- Thông qua web hoặc kênh IRC: Hacker sẽ đưa các chỉ thị tấn công lên các kênh công cộng (các máy chủ C&C) Sau đó các botnet sẽ tự động kết nối đến các kênh này để lấy chỉ thị và tiến hành tấn công
Trang 24TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
Hình 13: Mô hình mạng Botnet
Hiện nay, đa phần các cuộc tấn công từ chối dịch vụ đều sử dụng mạng lưới Botnet (mạng lưới các máy tính bị tấn công và cài mã độc, khiến cho các máy tính này chịu sự điều khiển của một cá nhân hoặc tổ chức nào đó) Điển hình nhất hiện này là botnet Mirai chuyên tấn công vào các hệ thống Internet of Things (IoT) là các camera và sử dụng chúng tham gia tấn công
Trong trường hợp không có hệ thống Botnet, hacker có thể tấn công các website có lượng người dùng lớn và gắn lên đó một đoạn mã HTML hoặc Javascript có khả năng tạo các truy vấn HTTP đến mục tiêu tấn công Mỗi khi có một client truy cập vào website này, người đó vô tình trở thành một máy tính tham gia tấn công Việc cản lọc đối với phương pháp này tuy dễ dàng (dựa theo Referer) nhưng rất dễ bị áp đảo về mặt băng thông
Trang 25TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
25
2.2.1.3 DRDoS (Distributed Reflection Denial of Service)
DRDoS (Distributed Reflection Denial of Service) là hình thức mà hacker giả mạo địa chỉ IP của nạn nhân và gửi dữ liệu đến các hệ thống máy tính lớn như Google, Yahoo, Microsoft, … khiến cho các hệ thống này trả dữ liệu về máy tính nạn nhân Điều đáng nói là đây đều là những hệ thống mạnh và có băng thông lớn nên nạn nhân sẽ nhanh chóng cạn kiệt tài nguyên
Hình 14: Mô hình tấn công DRDoS
Ngày nay, một số tính năng của Facebook, Google và một số website khác dễ bị lợi dụng để tấn công DRDoS Điển hình là các tính năng Facebook Preload, Facebook Notes, Google Translate,
Trong đồ án này ta sẽ lợi dụng tính năng Facebook Preload để tấn công và tìm ra cách thức chống lại nó
2.2.2 Các phương thức tấn công phổ biến
Trong phần này ta sẽ tìm hiểu về các hình thức tấn công phổ biến và nguy hiểm của tấn công từ chối dịch vụ
- SYN Flood:
Để hiểu rõ về phương thức này, ta xem xét lại quá trình bắt tay ba bước của giao thức TCP: Đầu tiên host A gửi gói tin có gắn cờ SYN đến host B để yêu cầu kết nối Nếu host B nhận được gói tin này và đồng ý cho phép kết nối, host này sẽ
Trang 26TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
Tuy nhiên kiểu tấn công này lại dễ phòng thủ vì hiện nay các hệ điều hành đều
hỗ trợ mặc định chức năng SYN cookies để chống lại SYN Flood
Hình 15: Tấn công SYN Flood
- Teardrop:
Giả sử ta có một đoạn dữ liệu có độ dài là 5000
Để gửi gói dữ liệu này, ta cắt nó ra làm các đoạn ngắn hơn và gửi đi Ví dụ: Gói đầu tiên sẽ mang các byte từ 1 -> 2000, gói thứ hai mang các byte từ 2001 ->
4000, gói thứ ba sẽ mang các byte 4001->5000 Khi đó dựa vào offset ta có thể sắp xếp lại các gói TCP theo thứ tự đúng Tuy nhiên, nếu vì một lý do nào đó mà gói TCP mang offset bị sai (ví dụ gói thứ ba mang các byte 2000 -> 5000), hệ thống sẽ không thể ghép các gói TCP lại được Khi đó nếu số gói có offset sai là quá lớn, mục tiêu có thể sẽ bị crash, reboot hoặc ngừng hoạt động hoàn toàn
Trang 27TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
27
- Ping of Death:
Hình 16: Tấn công Ping of Death
Ping of Death là dạng tấn công dựa trên giao thức ICMP Thông thường lệnh
“ping” được sử dụng để kiểm tra tình trạng của một host Tuy nhiên, nếu hacker
sử dụng một gói ping có độ dài lớn hơn 65536 byte thì gói này sẽ bị chia nhỏ nhưng khi được máy đích ghép là thì do gói tin quá lớn so với buffer của hệ thống nên sẽ gây crash, reboot hoặc treo
- Smurf:
Ở dạng này, hacker sẽ gửi các message đến địa chỉ IP broadcast của mạng, gây khuếch đại số lượng response Điều đáng nói là địa chỉ IP nguồn của các gói này chính là địa chỉ IP của mục tiêu, khiến cho tất cả các response đều đổ về mục tiêu Khi đó mục tiêu sẽ không thể xử lý nổi lượng dữ liệu khổng lồ đó và trở nên crash, reboot hoặc sập hoàn toàn Đặc biệt hiệu quả trong mạng LAN
Trang 28TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
Việc tấn công vào tầng ứng dụng không chỉ có hệ thống dành nhiều tài nguyên cho kết nối này mà dịch vụ bị tấn công cũng phải dành một lượng tài nguyên còn lớn hơn, nhất là khi dịch vụ này chạy ở tầng ứng dụng Đặc biệt nếu trong trượng
Trang 29TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
29
hợp dịch vụ chỉ cho phép một lượng kết nối nhất định trong cùng một thời điểm thì chỉ cần sử dụng một lượng kết nối tương ứng để tấn công Slowloris thì cho
dù server vẫn còn thừa nhiều tài nguyên thì cuộc tấn công vẫn đạt được mục đích
là không cho phép server cung cấp dịch vụ cho bất kì ai
Hình 18: Tấn công HTTP POST
- UDP Flood:
Đây là phương thức tấn công vô cùng nguy hiểm Tại sao nó nguy hiểm? Bởi vì các gói UDP hoàn toàn không bị ràng buộc về mặt thông số và nội dung Hacker hoàn toàn có thể biến tấu gói UDP thành nhiều kiểu thông số bất hợp lệ khiến cho việc phân tích trở nên khó khăn
Thêm vào đó UDP lại là một giao thức phi kết nối và kích thước vô cùng nhỏ gọn Điều này khiến cho việc tạo và gửi gói của UDP sẽ nhanh và mạnh hơn TCP rất nhiều lần Nghĩa là khối lượng công việc phải thực hiện khi gặp phải tấn công UDP cũng lớn hơn rất nhiều so với TCP Kể cả trong trường hợp firewall drop
bỏ toàn bộ các gói UDP đến thì nó vẫn mất một khoảng thời gian từ khi nhận được gói để đi đến bước quyết định drop bỏ phải thông qua các quá trình đánh giá phức tạp Trong một cuộc tấn công vào HVA server, các gói tin UDP đến server hoàn toàn không có giá trị cổng nguồn và đích, khiến cho kernel tự động drop các gói này nhưng vì số lượng quá lớn nên chỉ việc drop bỏ gói cũng khiến cho firewall bị trì trệ
2.3 Tổng quan firewall
2.3.1 Giới thiệu về firewall
Firewall (tường lửa) là một thiết bị phần cứng hoặc phần mềm được dùng để kiểm soát dữ liệu mạng nhằm chống lại sự truy cập trái phép và khai thác các tài nguyên nhạy cảm
Trang 30TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
30
Firewall thường được đặt giữa mạng nội bộ của một công ty, doanh nghiệp, tổ chức hay một quốc gia với hệ thống Internet, hoặc giữa hai hay nhiều network khác nhau Firewall đảm bảo người quản trị có thể biết được những gì đang được trao đổi giữa mạng nội bộ và mạng Internet để đặt ra những hạn chế nhất định, nhằm bảo vệ mạng nội bộ và tránh làm thất thoát thông tin
Điểm mạnh của firewall:
- Có khả năng giám sát và bảo vệ hệ thống mạng khỏi các cuộc tấn công
- Có các tính năng mở rộng như Chất lượng dịch vụ (Quality of Service – QoS), VPN, Load balancing, …
- Hầu hết các firewall đều có chức năng NAT và Port forwarding giúp che giấu kiến trúc mạng bên trong
- Giúp người quản trị có thể giới hạn, ngăn chặn và điều tiết dữ liệu mạng, lọc các nội dung không mong muốn
Điểm yếu của firewall:
- Các cuộc tấn công ở tầng Ứng dụng có thể bị bỏ qua nếu firewall chỉ hoạt động từ tầng Transport trở xuống
- Giảm tốc độ mạng
- Firewall vẫn có thể bị tấn công hoặc bị qua mặt
- Đôi khi khó vận hành
Firewall có thể được phân loại như sau:
- Packet filter (lọc gói tin): Firewall lọc gói hoạt động ở lớp mạng của mô hình OSI,
hoặc lớp IP của mô hình TCP/IP Chúng thường là một phần của router, là thiết bị nhận gói từ một mạng và chuyển gói tới mạng khác Trong firewall lọc gói, mỗi gói được so sánh với tập các tiêu chuẩn trước khi nó được chuyển tiếp Dựa vào gói và tiêu chuẩn, firewall có thể hủy gói, chuyển tiếp hoặc gởi thông điệp tới nơi tạo gói
- Gateway mức mạng (ciruit level gateways): Gateway mức mạng hoạt động ở lớp
session của mô hình OSI, hoặc lớp TCP của mô hình TCP/IP Chúng giám sát việc thỏa hiệp TCP giữa các gói để xác định rằng một phiên yêu cầu là phù hợp Thông tin tới máy tính từ xa thông qua một gateway mức mạng, làm cho máy tính ở xa đó nghĩ là thông tin đến từ gateway Điều này che dấu được thông tin về mạng được bảo vệ
- Gateway mức ứng dụng (application level gateways): Các gateway mức ứng dụng,
còn được gọi là các proxy, tương tự như các gateway mức mạng ngoại trừ việc chỉ định các ứng dụng Chúng có thể lọc gói ở lớp ứng dụng của mô hình OSI Các gói
Trang 31TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
31
vào hoặc ra không thể truy cập các dịch vụ mà không có proxy Ví dụ: Gauntlet, Symantec Enterprise Firewall…
- Firewall nhiều lớp (stateful firewall): Các firewall nhiều lớp là sự kết hợp hình thức
của ba loại firewall Chúng lọc các gói ở lớp mạng, xác định các gói phù hợp và đánh giá nội dung các gói tại lớp ứng dụng Ví dụ: IP Tables, Netscreen,…
2.3.2 Giới thiệu về Iptables
Iptables là một stateful firewall được tạo ra bởi Netfilter Organization, có tiền thân là Ipchains – một stateless firewall) Iptables được tích hợp sẵn trên Linux gồm phần Netfilter nằm trong nhân Linux và Iptables nằm ngoài nhân Ưu điểm của Iptables là phần Netfilter làm việc trực tiếp trong nhân nên rất nhanh, hạn chế việc giảm tốc độ hệ thống
Iptables chia làm các bảng (table):
- Bảng FILTER dùng để lọc gói dữ liệu
- Bảng NAT
- Bảng MANGLE để thay đổi các thông số trong gói tin
Mỗi table lại chia làm nhiều chain Mỗi chain là tập hợp của một hay nhiều rule để xử lý
dữ liệu Một rule gồm một tập các điều kiện và các hành động sẽ được thực thi nếu một gói tin thỏa điều kiện đó Các hành động của Iptables bao gồm: ACCEPT, DROP, REJECT, LOG, REDIRECT, … hoặc là đẩy sang chain khác
Mặc định nếu không khai báo table, Iptables sẽ đưa tất cả các rule vào table FILTER Table FILTER có sẵn 3 chain là INPUT, OUTPUT và FORWARD
Dưới đây là sơ đồ xử lý gói tin của Netfilter:
Trang 32TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
32
Hình 19: Sơ đồ xử lý của Netfilter
Trước tiên một gói dữ liệu từ card mạng sẽ được chuyển lên chain PREROUTING Tại đây,
dữ liệu có thể được thay đổi thông số (mangle) hay đổi địa chỉ IP đích (DNAT) trước khi định tuyến Sau khi được xử lý bởi các table như MANGLE, NAT gói tin sẽ đi đến table FILTER Sau đó, sẽ chia ra làm 2 trường hợp:
- Hệ thống hiện tại chính là đích đến: gói tin được đưa vào chain INPUT Tại đây, các rule trong chain INPUT được thực thi, nếu gói này được cho phép thì sẽ được chuyển cho ứng dụng/ dịch vụ đích xử lý Sau đó dữ liệu được chuyển ra chain OUTPUT Tại đây gói tin lại tiếp tục được xử lý bởi các luật và đưa ra quyết định cho phép hay hủy gói
- Hệ thống hiện tại làm nhiệm vụ forward gói: gói tin được đưa vào xử lý với các luật tại chain FORWARD
Sau khi gói tin được cho phép ở chain FORWARD hoặc OUTPUT thì sẽ đến chain POSTROUTING (sau khi định tuyến) Tại đây có thể thay đổi tham số IP nguồn (SNAT) hoặc MASQUERADE và đưa ra card mạng khác để đến với máy tính đích
Trang 33TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
33
Một điểm rất mạnh của Iptables là ta có thể tạo các chain để xử lý những gói tin nằm trong trường hợp chỉ định Ví dụ như tất cả các gói TCP đi vào cổng 80 thì sẽ chỉ được các rule nằm trong một chain nào đó xử lý, hạn chế việc phải trải qua các loại rule không phù hợp như rule kiểm tra UDP, rule kiểm tra các gói TCP đi vào cổng khác Điều này cũng giúp các rule của Iptables trở nên dễ quản lý hơn
Một điểm đáng chú ý nữa là Iptables có một lượng module hỗ trợ lớn, khiến cho nó ngày càng linh hoạt và đa dụng hơn
Chính vì những điểm mạnh của Iptables nên ta sẽ sử dụng nó làm firewall ở tầng Internet
và Transport kết hợp cùng với ModSecurity là firewall ở tầng ứng dụng
2.3.3 Giới thiệu về ModSecurity
ModSecurity là một module Web Application Firewall (WAF) mã nguồn mở đa nền tảng Được xem là “Swiss Army Knife” trong các ứng dụng WAF, nó cho phép các nhà bảo vệ ứng dụng web xem xét lưu lượng HTTP hoặc HTTPS và cung cấp một cú pháp viết luật và API để thực hiện các biện pháp bảo mật tiên tiến
Các chức năng của ModSecurity:
- Parsing: ModSecurity sẽ phân tách các dữ liệu luân chuyển qua hệ thống thành cấu
trúc dữ liệu mà ModSecurity định nghĩa sẵn Cấu trúc này sẽ được chuyển qua cơ chế so trùng mẫu trong tập rule để phân tích nguy cơ
- Buffering: Chức năng buffer (đệm) đóng vai trò khá quan trọng trong cơ chế hoạt
động của ModSec Việc này có ý nghĩa khi các request gởi đến ứng dụng web thì phải thông qua ModSecurity trước khi đến ứng dụng xử lý và những response cũng
sẽ được phân tích trước khi trả về phía client Cơ chế này là cách duy nhất để có thể ngăn chặn các cuộc tấn công thời gian thực, các dữ liệu mà ModSecurity nhận được
và phân tích sẽ được lưu trữ trong RAM (bao gồm request body và response data)
- Logging: ModSecurity hỗ trợ ghi nhật ký các gói tin HTTP: request headers, request
body, response header, response body nhằm hỗ trợ người quản trị phân tích nguy cơ
mà hệ thống đang gặp phải để có thể ra quyết định kiểm soát
Trang 34TRƯỜNG CAO ĐẲNG NGHỀ iSPACE
240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn Tel: (848) 6267 8999 - Fax: (848) 6283 7867
34
- Rule Engine: Các tập mẫu trong ModSecurity đóng vai trò quan trọng trong việc
phát hiện các dạng tấn công và thực hiện phòng chống ModSecurity cùng phát triển với dự án OWASP phát triển các mẫu để phân tích và phòng chống các tấn công hệ thống web
2.4 Dịch vụ theo dõi tiến trình Monit
Monit là một tiện ích mã nguồn mở để quản lý và giám sát các hệ thống Unix Monit tự động bảo trì và sửa chữa và thực hiện các hành động khi có một lỗi xảy ra
Hình 20: Monit Service Manager
Hầu hết các hệ điều hành Unix hiện tại đều hỗ trợ Monit
Các tính năng của Monit:
- Proactive: Monit có thể hành động nếu một lỗi xảy ra Ví dụ: nếu sendmail không chạy,
Monit có thể khởi động lại sendmail một cách tự động hoặc nếu Apache tiêu tốn quá nhiều tài nguyên (như khi bị DDoS), Monit có thể tạm ngưng hoặc khởi động lại Apache
và gửi cho ta một cảnh báo Monit cũng có thể giám sát các thông số của tiến trình như: lượng RAM hay CPU sử dụng
- Processes: Ta có thể dùng Monit để giám sát cái tiến trình daemon hoặc chương trình
tương tự thế đang chạy trên localhost Monit đặc biệt hữu dụng trong việc giám sát các tiến trình daemon, như là có thể khởi động Apache, MySQL, SSHD, Sendmail từ /etc/init khi hệ thống khởi động
- Files, Dirs và Filesystems: Ta cũng có thể sử dụng Monit để giám sát file, thư mục, và
filesystems trên localhost Monit có thể giám sát sự thay đổi của chúng Đây cũng là một tính năng hữu ích đối với việc bảo mật Ta có thể giám sát những file có nội dung tĩnh và thực hiện các hành động cụ thể nếu chúng bị thay đổi