Hoạt động này bắt nguồn từ khi một số chuyên gia bảo mật, trong quá trình phát hiện khiếm khuyết hệ thống trên hệ điều hành Windows 98, đã phát hiện ra rằng chỉ cần gửi một gói dữ liệu p
Trang 1ĐẠI HỌC TÔN ĐỨC THẮNG
THÂN HOÀNG HẢI
TÌM HIỂU TẤN CÔNG TỪ CHỐI
DỊCH VỤ DOS
Chuyên ngành : Công nghệ thông tin
Mã số : 01.01.11
Luận Văn Cử Nhân Khoa Học Tin Học
Người hướng dẫn khoa học :
NINH XUÂN HƯƠNG
THÀNH PHố Hồ CHÍ MINH 2008
Trang 2TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM
ĐẠI HỌC TƠN ĐỨC THẮNG
THÂN HỒNG HẢI
TÌM HIỂU TẤN CƠNG TỪ CHỐI
DỊCH VỤ DOS
Chuyên ngành : Cơng nghệ thơng tin
Mã số : 01.01.11
Luận Văn Cử Nhân Khoa Học Tin Học
Người hướng dẫn khoa học :
NINH XUÂN HƯƠNG
THÀNH PHố Hồ CHÍ MINH 2008
Trang 3Lời cảm ơn
Sau gần hơn 4 tháng nỗ lực thực hiện luận văn “Tìm hiểu tấn công từ chối dịch
vụ DOS” đã hoàn thành Ngoài sự cố gắng hết mình của bản thân, em đã nhận được
sự giúp đỡ và khích lệ rất nhiều từ phía nhà trường, thầy cô, gia đình, bạn bè
Trước hết con xin cám ơn ba mẹ đã luôn động viên và tạo mọi điều kiện tốt để con học tập và hoàn thành luận văn tốt nghiệp này
Em xin cám ơn thầy cô trường Đại Học Tôn Đức Thắng đã truyền đạt những kiến thức quý báu cho em trong suốt quá trình học tập Đặc biệt em xin bày tỏ lòng chân thành sâu sắc đến thầy Ninh Xuân Hương, người đã tận tình hướng dẫn và giúp
đỡ em trong quá trình làm luận văn tốt nghiệp
Xin cám ơn tất cả bạn bè đã và đang động viên, giúp đỡ tôi trong quá trình hoc tập và hoàn thành luận văn tốt nghiệp này
Mặc dù em đã làm việc nghiêm túc và rất cố gắng hoàn thành luận văn, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các bạn
Thành Phố Hồ Chí Minh Sinh viên thực hiện Thân Hoàng Hải
Trang 5Mục tiêu chính của luận văn là tìm hiểu về cơ chế tấn công DOS và DDOS, tìm hiểu về một số công cụ tấn công DOS và DDOS, và viết một chương trình tấn công
Nội dung luận văn :
Giới thiệu đề tài
Giới thiệu DOS
Các phương thức và một số chương trình tấn công DOS
Giới thiệu về DDOS
Các phương thức và một số chương trình tấn công DDOS
Viết chương trình tấn công
Kết luận và đề xuất ý kiến
Trang 6Lời Mở Đầu 1
Chương 1 :Tấn công từ chối dịch vụ DOS(Denial of Services) 2
1 Tấn công từ chối dịch vụ là gì 2
1.1 Sự ra đời của DOS 2
1.2 Tấn công bằng từ chối dịch vụ DoS 2
1.3 Mục đích tấn công DOS 2
2 Các phương thức tấn công 2
2.1 DOS attack 2
2.1.1 Smurf Attack 3
2.1.2 Buffer OverFlow Attack 5
2.1.3 Ping of Dead Attack 5
2.1.4 TearDrop Attack 6
2.1.5 SYN Attack 7
2.2 DOS attack tool 11
2.2.1 IMGP nuke tool 11
2.2.2 UDP flood tool 16
2.2.3 DOS HTTP tool 17
2.2.4 SYN DOS tool 19
2.2.5 Smurf tool 21
2.2.6 CrazyPing 22
3 Một số phương pháp phòng chống DOS 23
3.1 Cập nhật bản vá lỗi 23
3.2 Đóng cửa các dịch vụ không cần thiết 24
3.3 Bảo dưỡng 24
3.4 Khóa các dịch vụ mạng 24
3.5 Các phương pháp phòng ngừa 27
Chương 2 : Tấn công từ chối dịch vụ DDOS(Distributed Denial of Servies) 28
Trang 71.2 Tình hình tấn công DDOS những năm gần đây 29
1.3 Các giai đoạn tấn công cơ bản của DDOS 29
1.4 DDOS có 2 mô hình chính 30
1.4.1 Mô hình Agent-Handler 31
1.4.2 Mô hình IRC- Base 32
1.5 Giới thiệu về Bot và Botnet 33
1.5.1 Bot 33
1.5.2 IRC 34
1.5.3 Các Bot kết nối với IRC như thế nào? 35
1.5.4 Các ứng dụng của Bot 36
1.5.5 Một số kiểu Bot 38
1.5.6 Phân tích một Bot lây nhiễm vào máy tính 40
1.5.7 Cách bảo vệ máy tính để tránh trở thành Bot 41
1.5.8 Xuất hiện biến thể của Botnet trên P2P 41
2 Phân loại các kiểu tấn công DDOS 42
2.1 Mô hình tổng quan 42
2.2 Những kiểu tấn công làm cạn kiệt băng thông mạng 43
2.2.1 Food Attack 43
2.2.2 Amplification Attack 44
2.3 Những kiểu tấn công làm cạn kiệt tài nguyên 46
2.3.1 Khai thác lỗ hổng giao thức 46
2.3.2 Malformed packet Attack 47
3 Giới thiệu một số chương trình DDOS 47
3.1 Công cụ DDOS dạng Agent-Handler 48
3.2 Công cụ DDOS dạng IRC-Base 52
4 Một số phương pháp chống DDOS 53
4.1 Các bước phòng chống DDOS 54
4.2 Một số phương pháp khuyên người dùng bảo vệ 56
Trang 82 Chức năng chương trình 57
Chương 4 : Kết luận và đề xuất ý kiến 62
1 Kết luận đề tài 62
2 Hạn chế 62
3 Hướng phát triển đề tài 62
Tài liệu tham khảo 63
Danh Mục Hình Hình 1.1 – Smurf attack 3
Hình 1.2 – Amplifiers attack 4
Hình 1.3 – TearDrop attack 7
Hình 1.4 – Ba bước kết nối mạng 8
Hình 1.5 – Syn attack 8
Hình 1.6 – Check point 10
Hình 1.7 – Protect Syn attack 10
Hình 1.8 – Chương trình IGMP nuke 11
Hình 1.9 – Kết quả tấn công IGMP nuke 12
Hình 1.10 – Giao thức IMGP nuke 13
Hình 1.11 – IP source 14
Hình 1.12 – Packet IGMP nuke 15
Hình 1.13 – Chương trình UDP flood 16
Hình 1.14 – Kết quả tấn công UDP flood 17
Trang 9Hình 1.17 – Chương trình SYN DOS 19
Hình 1.18 – Chương trình tìm port mở 20
Hình 1.19 – Kết quả tấn công SYN DOS 20
Hình 1.20 – Chương trình smurf 21
Hình 1.21 – Địa chỉ broadcast 21
Hình 1.22 – Chương trình CrazyPing 22
Hình 1.23 – Lệnh Ping 22
Hình 1.24 – Kết quả Crazy Ping 23
Hình 2.1 – Mạng Botnet 30
Hình 2.2 – Sơ đồ phân lọai DDOS 31
Hình 2.3 – Agent-Handler 31
Hình 2.4 – IRC-Base 33
Hình 2.5 – IRC attack 37
Hình 2.6 – quá trình nhiễm bot 40
Hình 2.7 – Mô hình tổng quan 42
Hình 2.8 – Flood attack 43
Hình 2.9 – Amplification attack 45
Hình 2.10 – IRC SYN attack 46
Hình 2.11 – Code TFN 50
Hình 2.12 – Code TFN2k 51
Hình 2.13 – Super Nova3 53
Hình 2.14 – Ping Flood 57
Hình 2.15 – Kết quả Ping Flood 58
Hình 2.16 – Bot 59
Hình 2.17 – Chương trình chạy ẩn 59
Hình 2.18 – Kết quả Bot 60
Hình 2.19 – Chương trình minh họa 60
Hình 2.20 – IGMP 61
Trang 11Nhận Xét Của Giáo Viên Hướng Dẫn
Tp.Hồ Chí Minh ,ngày … tháng … năm 2008
Trang 12Nhận Xét Giáo Viên Phản Biện
Tp.Hồ Chí Minh ,ngày … tháng … năm 2008
Trang 13Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 1
LỜI NÓI ĐẦU
Ngày nay khi Internet được phổ biển rộng rãi trên phạm vi toàn thế giới, tất
cả mọi người từ cá nhân, tập thể, đến công ty đều hoạt động kinh doanh trên Internet Vấn đề nảy sinh khi nhiều ứng dụng hay hệ điều hành bị lỗi đã trở thành nguy cơ tìm ẩn cho các cuộc tấn công DOS và DDOS
Ngày 7/3/2000 Yahoo bị tấn công phải ngừng cung cấp dịch vụ cho hàng trăm triệu user trên toàn thế giới nhiều giờ liền
Vài ngày sau, có một sự kiện tương tự diễn ra nhưng có phần “ồn ào hơn” do các nạn nhân của vụ tấn công là CNN, amazon.com, buy.com,ebay.com….Tất cả các nạn nhân đều là những gã khổng lồ trên internet thuộc nhiều lĩnh vực khác nhau Theo YankkGroup tổng thiệt hại lên đến 1.2 triệu USD
Và ở Việt Nam, nổi bật nhất là sự kiện công ty Việt Cơ bị tấn công DDOS và đứng trước nguy cơ bị phá sản
Qua các cuộc tấn công thấy được sự tàn phá của các cuộc tấn công DOS là rất nguy hiểm Nó sẽ ảnh hưởng rất nhiều đến hoạt động kinh doanh Và việt nam với nền thương mại điện tử non trẻ khó có thể cầm cự nếu như phải chịu các cuộc tấn công liên tiếp như vậy
Nhưng công nghệ thông tin ngày càng phát triển và dễ dàng tiếp cận với mọi người thì các cuộc tấn công liên tiếp xảy ra khắp nơi khi các công cụ tấn công được lan truyền khắp nơi trên internet và ai cũng có thể tấn công DOS
Một cậu bé 15 tuổi có nick name là Mafiaboy, cậu bé này chỉ tìm tòi và dowload một số công cụ của hacker Cậu bé này dùng công cụ DDOS có tên là TrinOO để gây nên các cuộc tấn công vào Yahoo
Một đặc điểm chết người của DDOS đã được rút ra sau các cuộc tấn công “ rất dễ thực hiện, không thể tránh, hậu quả nặng nề “ và khó có thể truy tìm nguồn gốc tấn công
Chính những điều đó nên luận văn này được thực hiện để tìm hiểu và nghiên cứu các phương thức tấn công của DOS và DDOS Và từ đó để tìm ra các phương pháp bảo vệ và phòng thủ trước các cuộc tấn công Và mong tài liệu này sẽ có ích cho các nhà quản trị mạng để hiểu thêm về DOS
Trang 14Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 2
CHƯƠNG 1: TẤN CÔNG TỪ CHỐI DỊCH
VỤ DOS (DENIAL OF SERVICES)
1 Tấn công từ chối dịch vụ DoS là gì ?
1.1 Sự ra đời của DOS:
Từ cuối những năm 90 của thế kỷ trước Hoạt động này bắt nguồn từ khi một số chuyên gia bảo mật, trong quá trình phát hiện khiếm khuyết hệ thống trên hệ điều hành Windows 98, đã phát hiện ra rằng chỉ cần gửi một gói dữ liệu ping có dung lượng lớn cũng đủ để làm tê liệt một server mục tiêu Phát hiện này sau đó ngay lập tức được giới hacker sử dụng để triệt tiêu những đối tượng mà họ có ý định tấn
công Từ đây, hình thức sơ khai của DoS (Denial of Service) đã ra đời
1.2 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 làm tràn ngập mạng, mất
kết nối với dịch vụ… 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)
Trang 15Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 3
2.1.1 Smurf Attack
Hình 1.1 – Smurf Attack
Hai nhân tố chính trong Smuft Attack là các ICMP echo request packets và chuyển trực tiếp các packets đến các địa chỉ broadcast
+ Giao thức ICMP thường dùng để xác định một máy tính trên mạng Internet
có còn hoạt động(alive) hay không Để xác định một máy có alive không, bạn cần gởi một ICMP echo request đến máy đó Khi máy nhận được packet này, nó sẽ gởi trả lại một ICMP echo reply packet Trong trường hợp không nhận được ICMP echo reply packet, điều này có nghĩa là máy đó không còn hoạt động (not alive) Đây cũng chính là cách hoạt động của các chương trình ping
+ Mỗi mạng máy tính đều có địa chỉ địa chỉ broadcast và địa chỉ mạng Địa chỉ broadcast có các bit host đều bằng 0 và địa chỉ broadcast có các bit host đều bằng 1
Ví dụ: địa chỉ ip lớp B 140.179.220.200 sẽ có địa chỉ mạng là 140.179.0.0 và địa chỉ broadcast mặc định là 140.179.0.0 Khi một packet được gởi đến địa chỉ broadcast, lập tức packet này sẽ được chuyển đến tất cả các máy trong mạng
Trong Smurf Attack, cần có ba thành phần: hacker (người ra lệnh tấn công), mạng khuếch đại (sẽ nghe lệnh của hacker) và dĩ nhiên là hệ thống nạn nhân
Hacker sẽ gởi các ICMP echo request packets đến địa chỉ broadcast
ICMP echo request packets này có địa chỉ ip nguồn chính là địa chỉ ip của nạn nhân
Trang 16Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 4
Khi các packets đó đến được địa chỉ broadcast của mạng khuếch đại, lập tức tất cả các máy tính trong mạng khuếch đại sẽ nhận được các packets này Các máy này tưởng rằng máy tính nạn nhân đã gởi ICMP echo request packets đến (do hacker đã làm giả địa chỉ ip nguồn), lập tức chúng sẽ đồng loạt gởi trả lại hệ thống nạn nhân các ICMP reply echo request packets Hệ thống máy nạn nhân sẽ không chịu nỗi một khối lượng khổng lồ các packets này và nhanh chóng bị ngừng hoạt động, crash hoặc reboot
Như vậy, có thể thấy rằng hacker chỉ cần gởi một lượng nhỏ các ICMP echo request packets đi, và hệ thống mạng khuếch đại sẽ khuếch đại lượng ICMP echo request packets này lên gấp bội Tỉ lệ khuếch đại phụ thuộc vào số mạng tính có trong mạng khuếch đại Nhiệm vụ của các hacker là cố chiếm được càng nhiều hệ thống mạng hoặc routers cho phép chuyển trực tiếp các packets đến địa chỉ broadcast và không lọc địa chỉ nguồn của các outgoing packets Có được các hệ thống này, hacker sẽ dễ dàng tiến hành Smurf Attack trên các hệ thống cần tấn công
Hình 1.2 – Amplifiers attack
Trang 17Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 5
Cách khắc phục:
Tránh bị dùng làm địa điểm khuếch đại:
- Vô hiệu hóa chức năng directed broadcast tại bộ định tuyến Đối với bộ định
tuyến Cisco dùng lệnh: no ip directed-broadcast
- Lập cấu hình cho hệ điều hành loại bỏ các gói dữ liệu broadcast ICMP echo một cách âm thầm
-Kiểm soát lưu lượng ICMP và UDP
- Phối hợp với nhà kết nối kiểm soát theo dõi lưu lượng (tốt nhất là tận
nơixuất phát lưu lượng)
2.1.2 Buffer Overflow Attack
Buffer overflow xảy ra khi chương trình gi dữ liệu vào buffer có dung lượng lớn hơn dung lượng vùng nhớ
Kẻ tấn công sẽ sửa thông tin dữ liệu để điều khiển chương trình đang thực thi
và cho chạy những đoạn mã độc hại thay vì xữ lý chương trình bình thường
Gởi tin nhắn email mà tên file 256 kí tự có thể gây ra Buffer Overflow
Cách khắc phục:
- Viết chương trình quản lý bộ nhớ tốt
- Tránh các lỗi tràn bộ đệm
2.1.3 Ping of Dead Attack
Kiểu tấn công ping of death dùng giao thức ICMP Bình thường, ping được dùng để kiểm tra xem một host có sống hay không Một lệnh ping thông thường có hai thông điệp echo request và echo reply
Tiến trình ping bình thường diễn ra như sau:
C:\>ping192.168.10.10
Pinging192.168.10.10 with 32 bytes of data:
Reply from 192.168.10.10: bytes=32 time=1ms TTL=150
Reply from 192.168.10.10: bytes=32 time=1ms TTL=150
Reply from 192.168.10.10: bytes=32 time=1ms TTL=150
Reply from 192.168.10.10: bytes=32 time=1ms TTL=150
Ping statistics for 192.168.10.10:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)
Trang 18Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 6
Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 1ms, Average = 1ms
Khi tấn công bằng Ping of Death, một gói tin echo được gửi có kích thước lớn hơn kích thước cho phép là 65,536 bytes Gói tin sẽ bị chia nhỏ ra thành các segment nhỏ hơn, nhưng khi máy đích ráp lại, host đích nhận thấy rằng là gói tin quá lớn đối với buffer bên nhận Kết quả là, hệ thống không thể quản lý nổi tình trạng bất thường này và sẽ reboot hoặc bị treo
Bạn có thể thực hiện ping of Deatch trong linux bằng cách dùng lệnh ping f
-x 65537 Chú ý từ khóa -f Từ khóa này ra lệnh cho máy gửi ra các gói tin càng nhanh càng tốt Trong WinXP bạn có thể dùng câu lệnh sau để ping of dead:
Ping - t - l 65500 192.168.1.2 ( với thông số -t là ping liên tục, -l la kích thước file là 65500 byte )
Tấn công DOS thường không chỉ là tổng lưu lượng hay kích thước lưu lượng
mà còn là tốc độ mà ở đó gói tin gửi đến máy đích Có thể thực hiện các công cụ sau để thực hiện tấn công Ping of Death
Ping of Death chỉ có tác dụng trên các hệ win9x
Ví dụ: có một dữ liệu gồm 4000 bytes cần được chuyển đi, giả sử rằng 4000 bytes này được chia thành 3 gói nhỏ(packet):
Trang 19Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 7
packet thứ nhất sẽ mang các 1 bytes dữ liệu từ 1 đến 1500
packet thứ hai sẽ mang các bytes dữ liệu từ 1501 đến 3000
packet thứ ba sẽ mang các bytes dữ liệu còn lại, từ 3001 đến 4000
Khi các packets này đến đích, hệ thống đích sẽ dựa vào offset của các gói packets để sắp xếp lại cho đúng với thứ tự ban đầu: packet thứ nhất -> packet thứ hai -> packet thứ ba
Trong tấn công Teardrop, một loạt gói packets với giá trị offset chồng chéo lên nhau được gởi đến hệ thống đích Hệ thống đích sẽ không thể nào sắp xếp lại các packets này, nó không điều khiển được và có thể bị crash, reboot hoặc ngừng hoạt động nếu số lượng packets với giá trị offset chồng chéo lên nhau quá lớn Hãy xem lại ví dụ trên, đúng ra các packet được gởi đến hệ thống đích có dạng như sau: (1->1500 bytes đầu tiên) (1501->3000 bytes tiếp theo) (3001->4000 bytes sau cùng), trong tấn công Teardrop sẽ có dạng khác: (1->1500 bytes) (1501-
>3000 bytes) (1001->4000 bytes) Gói packet thứ ba có lượng dữ liệu sai
Hình 1.3 – Teardrop attack
2.1.5 SYN Attack
Trước hết, bạn hãy xem lại tiến trình bắt tay 3 bước của một kết nối TCP/IP Một client muốn kết nối đến một host khác trên mạng
Trang 20Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 8
Hình 1.4 – Ba bước kết nối mạng
Bước 1: client gởi một SYN packet với số Sequence Number ban đầu (ISN)
đến host cần kết nối: client SYN packet >host
Bước 2: host sẽ phản hồi lại client bằng một SYN/ACK packet, ACK của
packet này có giá trị đúng bằng ISN ban đầu do client gởi đã gởi đến host ở bước 1
và chờ nhận một ACK packet từ client host SYN/ACK packet > client
Bước 3: client phản hồi lại host bằng một ACK packet client ACK packet
> host
Khi host nhận được ACK packet này thì kết nối được thiết lập, client vào host
có thể trao đổi các dữ liệu cho nhau
Hình 1.5 – Syn attack
Trang 21Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 9
Trong SYN Attack, hacker sẽ gởi đến hệ thống đích một loạt SYN packets với địa chỉ ip nguồn không có thực Hệ thống đích khi nhận được các bad SYN packets này sẽ gởi trở lại SYN/ACK packet đến các địa chỉ không có thực này vào chờ nhận được ACK messages từ các địa chỉ ip đó Vì đây là các địa chỉ ip không
có thực, hệ thống đích sẽ sẽ chờ đợi vô ích và còn nối đuôi các "request" chờ đợi này nào hàng đợi, gây lãng phí một lượng đáng kể bộ nhớ trên máy chủ mà đúng ra
là phải dùng vào việc khác thay cho phải chờ đợi ACK messages
Cách khắc phục:
Có 3 cách cơ bản để khắc phục cuộc tấn công này:
- Giảm thời gian kết thúc kết nối (timeout) ở tr ên máy bị tấn công
- Sử dụng tường lửa ( firewall ) làm việc như hệ thống trung gian giữa giao tiếp các kết nối TCP đến server
- Sử dụng nhiều server thuê: nếu có đủ server để đáp ứng yêu cầu request
Nhưng cách này có nhiều giới hạn
Bảo vệ Microsoft Window trước nguy cơ tấn công SYN flood:
Window có cơ chế kiểm tra và bảo vệ trước tấn công SYN flood Cơ chế này sẽ kiểm tra khi thấy dấu hiệu tấn công thì sẽ giảm thời gian server gởi gởi các kết nối Request
Khi bật chế độ này lên, thì màn hình hệ thống kết nối sẽ được duy trì và bảo
vệ tấn công SYN flood, các dấu hiệu của SYN flood :
- Tổng số lượng kết nối vào cổng mở (SYN-RCVD) vượt qua giá trị của
TcpMaxHalfOpen
- Tổng số lượng kết nối vào các port mở (SYN-RCVD) sau khi có một
connect request vào thì vượt qua giá trị TcpMaxHalfOpenRetried
- Số lượng kết nối Request tới hệ thống bị từ chối vượt qua giá trị
TcpMaxPortsExhausted
Những cấu hình cần thiết lập của window:
hkey_local_machine \system \currentcontrolset \services\tcpip \parameters
\synattackprotect=1 REG_DWORD
hkey_local_machine \system \currentcontrolset \services\tcpip \parameters
\tcpmaxconnectresponseretransmissions=2 REG_DWORD
Trang 22Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 10
hkey_local_machine \system \currentcontrolset \services\tcpip \parameters
Hình 1.7 – Protect Syn attack
Điều này giúp cho server tránh bị quá tải kết nối khi bị tấn công
Trang 23Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 11
2.2 Dos Attack Tool
Hình 1.8 – Chương trình IGMP nuke
Chương trình IGMP nuke sẽ gởi liên tục các gói tin có kích thước lớn qua máy Server 2003
Làm cho mạng của máy này hết băng thông
Chương trình này không làm cho CPU của máy bị tấn công quá tải
Trang 24Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 12
Hình 1.9 – Kết quả tấn công IMGP nuke
Dùng chương trình Ethreal để bắt các gói tin của chương trình IMGPnuke Trong 10s chương trình gởi tổng dung lượng là 105mb chiếm băng thông 100%
Các gói tin được gởi theo giao thức IP
Các gói tin chuẩn IGMP
Kích thước 60000byte được chia nhỏ ra gởi
Trang 25Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 13
Hình 1.10 – Giao thức IGMP nuke
Có thể xác định thuộc tính của gói tin IGMP một cách r õ ràng
Chương trình này khi tấn công có nhược điểm có thể xác định được nguồn gốc tấn công Chương trình này không có giả mạo địa chỉ IP nguồn
Trang 26Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 14
Hình 1.11 – IP source
Gói tin 60000 byte được cắt ra thành nhiều phần để gởi nhằm flood đường mạng máy đích
Trang 27Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 15
Hình 1.12 – Packet IGMP nuke
Trang 28Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 16
2.2.2 UPD flood
Hình 1.13 – Chương trình UDP Flood
Chương trình UDP flood được thử trên Win Server 2003 không làm tốn nhiều băng thông mạng
Nhưng làm cho CPU của máy sử dụng dao động từ 20% -> 85%
UDP Flood là một chương trình gửi các gói tin UDP
Nó gửi ra ngoài những gói tin UDP tới một địa chỉ IP và port không cố định,
có thể dùng thêm một số chương trình để kiểm tra port của máy đích, để xác định máy đích mở port bao nhiêu, và khi đó sẽ tấn công vào port đó
Gói tin có khả năng là một đoạn mã văn bản hay một số lượng dữ liệu được sinh ngẫu nhiên hay từ một file
Được sử dụng để kiểm tra khả năng đáp ứng của Server
Nhược Điểm:
Chương trình này có mục chỉnh dung lượng đường mạng thích hợp nhưng chỉ
có thể tấn công 1 máy có cùng băng thông với mình, khó có thể tấn công các server
có đường truyền lớn
Với các đường truyền server hiện nay thì chương trình này còn ít khả năng tấn công
Trang 29Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 17
Hình 1.14 – Kết quả tấn công UDP Flood
2.2.3 DOS HTTP
Hình 1.15 – Chương trình DOS HTTP
Trang 30Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 18
Chương trình này làm cho máy hết băng thông mạng 100%
Và làm cho CPU quá tải 100%
Chương trình này tấn công vào port 80
Chương trình này thích hợp cho tấn công các trang web, khả năng thành công rất cao, khiến server hoạt động hết công suất
Hình 1.16 – Kết quả tấn công DOS HTTP
Trang 31Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 19
2.2.4 SYN DOS
Hình 1.17 – Chương trình SYN DOS
Chương trình SYNDOS này tấn công theo kiểu SYN flood attack Gởi những gói tin SYN kết nối liên tục với địa chỉ IP giả mạo để tấn công
Chương trình này có thể chọn địa chỉ IP giả mạo tùy ý
Để tấn công phải dùng chương trình tìm port server đang mở Và tấn công vào port đó
Ví dụ chương trình tìm port mở của server: thấy server mở port 139 và
chương trình sẽ tấn công vào port 139
Trang 32Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 20
Trang 33Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 21
Trang 34Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 22
Chương trình này gởi liên tục các gói tin về địa chỉ broadcast để flood máy nạn nhân
Nhưng thử nghiệm hiện nay thì các gói tin này không gởi được
Chương trình này không còn khả thi hiện nay
Trang 35Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 23
Đối với thử nghiệm trên WinServer 2003 qua máy ảo Vmware thì chương trình này chỉ chiếm băng thông của đường mạng Không ảnh hưởng nhiểu đến hệ điều hành
Một hạn chế của phương thức này là có thể bạn được giới thiệu các mã không được kiểm tra cẩn thận, đầy đủ, có thể lại trở thành nguyên nhân các vấn đề cho
Trang 36Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 24
server của bạn Các bản vá lỗi nên được phân tích một cách cẩn thận và sao luu trước khi áp dụng chúng
3.2 "Đóng cửa" các dịch vụ không cần thiết
Các ứng dụng phần mềm server và các dịch vụ sẽ có nhiều lỗi hơn khi chạy nhiều cùng một lúc Hãy tắt tất cả các dịch vụ không có mục đích sử dụng rõ ràng trên website của bạn Nếu bạn không cần giao thức nạc danh FTP, hãy vô hiệu hoá
nó cho đến khi cần thiết Tương tự như thế cho Terminal Server, NetBIOS, Telnet
và Mail servers Nếu bạn muốn web server hoạt động, hãy loại bỏ tất cả mọi thứ ngoại trừ các chương trình đặc biệt đang dùng để chạy và quản trị server
Tương tự cho thành phần ánh xạ mở rộng ISAPI và các ứng dụng mẫu trên IIS Hãy loại bỏ mọi ánh xạ mở rộng không cần thiết để dùng một web root sáng sủa nhất
3.3 Bảo dưỡng
Hãy nâng cấp các dịch vụ lập lịch tiến trình và tiện ích xoá đĩa để các thư mục temp và bộ gói trong máy bạn có nhiều không gian đĩa lưu trữ Bạn cũng nên thường xuyên giám sát kích thước bản ghi log và các file gói trải rộng trên nhiều volume hoặc drive nếu có thể
Khi cấu hình adaptor network, bạn nên tự mình thiết lập điạ chỉ IP, cổng mạng, dịch vụ DNS thay vì để mặc định Bởi nó rất dễ bị khai thác từ các lỗ hổng của DHCP
Mặc dù hiếm khi làm việc, nhưng hãy sử dụng bộ lọc TCP/IP trên server Bạn chỉ nên cho phép các cổng sẽ sử dụng như 80, 443 hay 21 cho các dịch vụ FTP Nếu cung cấp đúng giới hạn, bạn cũng có thể sử dụng thêm ứng dụng tường lửa của nhóm thứ ba
Trang 37Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 25
Nếu các thiết lập này không ngăn chặn được các cuộc tấn công, tốt hơn là điều khiển qua các tham số TCP/IP Hãy xem trong các bộ tài nguyên để có thêm chi tiết
về tất cả các thiết lập liên quan
3.5 Các phương pháp phòng ngừa
3.5.1 Ngăn ngừa kênh phát động tấn công sử dụng công cụ
Có rất nhiều các công cụ tự động tấn công DoS, chủ yếu là tấn công phân tán DDOS như TFN, TFN2000 (Tribe Flood Network) tấn công dựa trên nguyên lý Smurf, UDP, SYN, hay ICMP; Trinoo cho UDP flood; Stacheldraht cho TCP ACK, TCP NULL, HAVOC, DNS flood, hoặc tràn ngập TCP với packets headers ngẫu nhiên Các công cụ này có đặc điểm cần phải có các kênh phát động để zombie thực hiện tấn công tới một đích cụ thể Hệ thống cần phải có sự giám sát và ngăn ngừa các kênh phát động đó
3.5.2 Ngăn chặn tấn công trên băng thông
Khi một cuộc tấn công DDOS được phát động, nó thường được phát hiện dựa trên sự thay đổi đáng kể trong thành phần của lưu lượng hệ thống mạng Ví dụ một
hệ thống mạng điển hình có thể có 80% TCP và 20% UDP và ICMP Thống kê này nếu có thay đổi rõ rệt có thể là dấu hiệu của một cuộc tấn công Slammer worm sẽ làm tăng lưu lượng UDP, trong khi Welchi worm sẽ tạo ra ICMP flood Việc phân tán lưu lượng gây ra bởi các worm đó gây tác hại lên router, firewall, hoặc cơ sở hạ tầng mạng Hệ thống cần có những công cụ giám sát và điều phối băng thông nhằm giảm thiểu tác hại của tấn công dạng này
3.5.3 Ngăn chặn tấn công qua SYN
SYN flood là một trong những tấn công cổ nhất còn tồn tại được đến hiện tại,
dù tác hại của nó không giảm Điểm căn bản để phòng ngừa việc tấn công này là khả năng kiểm soát được số lượng yêu cầu SYN-ACK tới hệ thống mạng
Giảm thời gian timeout
Sử dụng tường lửa
3.5.4 Phát hiện và ngăn chặn tấn công tới hạn số kết nối
Bản thân các server có một số lượng tới hạn đáp ứng các kết nối tới nó Ngay bản thân firewall (đặc biệt với các firewall có tính năng stateful inspection), các kết nối luôn được gắn liền với bảng trạng thái có giới hạn dung lượng Đa phần các
Trang 38Sinh Viên Thực Hiện: Thân Hoàng Hải - 810875T Trang 26
cuộc tấn công đều sinh số lượng kết nối ảo thông qua việc giả mạo Để phòng ngừa tấn công dạng này, hệ thống cần phân tích và chống được spoofing Giới hạn số lượng kết nối từ một nguồn cụ thể tới server (quota)
Một trong những điểm các server thường bị lợi dụng là khả năng các bộ đệm giới hạn giành cho tốc độ thiết lập kết nối, dẫn đến quá tải khi phải chịu sự thay đổi đột ngột về số lượng sinh kết nối Ở đây việc áp dụng bộ lọc để giới hạn số lượng kết nối trung bình rất quan trọng Một bộ lọc sẽ xác định ngưỡng tốc độ kết nối cho từng đối tượng mạng Thông thường, việc này được bằng số lượng kết nối trong thời gian nhất định để cho phép sự dao động trong lưu lượng
Các phân tích ở trên được dựa trên những ngầm định cơ bản sau trong việc bảo vệ hệ thống
Thứ nhất, đó là các thiết bị bảo vệ cần được đặt trên luồng thông tin và thực hiện trực tiếp việc ngăn ngừa Điều này xuất phát từ lý do cho tốc độ của một cuộc tấn công (ví dụ khoảng 10.000 đăng ký thành viên trên 1s hướng tới 1 server, hoặc phát tán worm với tốc độ 200ms trên hệ thống mạng Ethernet 100M) Với tốc độ như vậy, cách thức phòng ngừa dạng phát hiện - thông báo ngăn chặn (Host Shun
và TCP Reset) không còn phù hợp
Thứ hai, các cuộc tấn công từ chối dịch vụ chủ yếu nhắm tới khả năng xử lý của hệ thống mạng mà đầu tiên là các thiết bị an ninh thông tin Năng lực xử lý của IPS hoặc các thành phần content filtering là một trong những điểm cần chú ý, đặc biệt ở sự ổn định trong việc xử lý đồng thời các loại lưu lượng hỗn tạp với kích thước gói tin thay đổi
Thứ ba, các cuộc tấn công luôn được tích hợp (blend attacks) với sự tổng hợp các phương thức khác nhau Chính vì vậy, tầm quan trọng của việc phòng ngừa những dấu hiệu lây nhiễm đơn giản là bước đầu tiên để ngăn chặn những cuộc tấn công từ chối dịch vụ
Trong hệ thống tổng thể về security, để đối phó với các cuộc tấn công từ chối dịch vụ, thì thành phần IPS được coi là quan trọng nhất ở tính trong suốt với người dùng, nên việc phân tích các luồng thông tin trao đổi giữa server và người dùng không bị ảnh hưởng bởi các luồng tấn công hướng thẳng đến nó