1. SYN Flood
Đây là dạng tấn công đơn giản và dễ hiểu nhất của tấn công từ chối dịch vụ. Phương thức này dựa vào đặc điểm của giao thức TCP là bắt tay ba bước và sự thiếu cẩn trọng trong việc quản lý tài nguyên của hệ điều hành để chiếm dụng tài nguyên và làm treo hệ thống.
Nhắc lại về quá trình bắt tay ba bước của giao thức TCP: Đầu tiên host 1 gửi gói tin có gắn cờ SYN đến host 2 để yêu cầu kết nối. Nếu host 2 nhận được gói tin này và đồng ý cho phép kết nối, host này sẽ trả về gói SYN/ACK. Cuối cùng, host 1 gửi lại một gói ACK và quá trình kết nối hoàn tất.
Về phía hệ điều hành, khi nhận được một yêu cầu kết nối từ một host. Nó sẽ quyết định xem có cho phép kết nối hay không. Nếu có, nó sẽ thực hiện bước bắt tay số 2 và dành ra một phần tài nguyên của mình để chờ đợi gói ACK được trả lại. Tuy nhiên, nếu vì một lý do nào đó mà nó không nhận được gói ACK, nó sẽ tiếp tục gửi các gói SYN/ACK và trong khi đó phần tài nguyên này sẽ bị dành riêng một cách lãng phí cho đến khi nó quyết định drop bỏ phiên kết nối này. Nếu như có nhiều trường hợp như vậy xảy ra liên tục và đều đặn, hệ thống của bạn sẽ bị lãng phí một lượng tài nguyên rất lớn, đặc biệt là CPU và RAM, và có thể gây treo. Hoặc một lúc nào đó, tuy không bị treo nhưng máy chủ không thể tiếp nhận thêm bất cứ yêu cầu kết nối nào từ người dùng hợp lệ. Xin chúc mừng! Lúc đó hệ thống của bạn đã bị tấn công SYN Flood. Hay còn gọi là Half-open attack.
Cách tấn công khá đơn giản. Bạn chỉ cần viết một đoạn code liên tục gửi các gói TCP SYN đi và không bao giờ gửi tiếp gói ACK. Hoặc giả mạo một hoặc nhiều địa chỉ IP nguồn và liên tục gửi gói SYN đến máy nạn nhân. Khi nạn nhân nhận được các gói này sẽ trả về các gói SYN/ACK cho các IP giả mạo và được nhiên những máy này sẽ không gửi lại các gói ACK do trước đó nó không hề gửi gói SYN. Đối với cách thứ 2 này bạn có thể vượt qua cơ chế block IP của phần lớn các máy chủ.
Đây là cách tấn công dựa vào đặc điểm cơ bản của mạng nên không có cách để chặn đứng hoàn toàn. Bạn chỉ có thể giới hạn nó xuống mức thiệt hại thấp nhất như giới hạn số lượng gói SYN đến máy chủ / giây. Hoặc có một số phương pháp khác như: tăng Backlog, kích hoạt SYN Cache, SYN cookies, đặt một firewall hoặc proxy phía trước,….
Điểm mạnh: Dễ thực hiện, luôn nguy hiểm nếu biết cách tận dụng. Công cụ có sẵn rất nhiều.
Điểm yếu: Đây là kiểu tấn công cơ bản nên cách thức phòng chống khá nhiều. Ví dụ như đặt lại thời gian Timeout. Cần kiến thức về TCP/IP nếu thực sự muốn tạo ra một cuộc tấn công có chất lượng cao.
2. Ping of Death
Đây cũng là một kiểu tấn công khá dễ hiểu. Khi một máy tính nhận một gói ICMP có kích thước dữ liệu quá lớn, nó có thể bị crash. Rất thường gặp trong các hệ điều hành Windows NT trở xuống. Đối với các hệ điều hành đời mới thì việc tấn công này trở nên khó khăn hơn. Tuy nhiên đôi khi các lỗi này vẫn xuất hiện trong các gói phần mềm. Điển hình như Windows IIS Web Server – ‘Ping of Death’ exploit (CVE-2015-1635) trên các máy chủ Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1 và Windows Server 2012 R2 sử dụng IIS Web Server.
Ví dụ: C:\Windows\system32> ping -l 500000
Điểm mạnh: Dễ thực hiện, làm crash hệ thống nhanh chóng. Không yêu cầu kiến thức.
Điểm yếu: Quá cũ và lượng hệ thống có thể bị tấn công ở thời điểm hiện tại thấp.
3. Land Attack
Một kiểu tấn công rất giống SYN Flood. Attacker gửi một gói SYN đến máy tính nạn nhân tuy nhiên IP nguồn của gói tin này lại giống với IP đích. Khi đó, card mạng, RAM và bộ xử lý của máy tính nạn nhân sẽ bị quá tải dẫn đến crash. Kiểu tấn công này mạnh ở điểm nạn nhân sẽ phải xử lý gói TCP SYN/ACK do chính mình gửi đi (và hàng loạt các gói Retransmission) nên nhanh chóng bị hạ gục hơn so với SYN Flood thông thường. Tuy nhiên các Administrator hiện nay đều quá thông minh để nhận ra việc một máy chủ kết nối với chính nó thông qua card Ethernet là vô lý nên hầu hết mọi Firewall hiện nay đều có chức năng chống lại kiểu tấn công này.
Một số hệ thống tồn tại lỗ hổng này:
AIX 3.0 AmigaOS AmiTCP 4.2 (Kickstart 3.0) BeOS Preview release 2 PowerMac BSDi 2.0 và 2.1 Digital VMS FreeBSD 2.2.5-RELEASE và 3.0 HP External JetDirect Print Servers IBM AS/400 OS7400 3.7 Irix 5.2 và 5.3 Mac OS MacTCP, 7.6.1 OpenTransport 1.1.2 và 8.0 NetApp NFS server 4.1d và 4.3 NetBSD 1.1 to 1.3 NeXTSTEP 3.0 và 3.1 Novell 4.11 OpenVMS 7.1 with UCX 4.1-7 QNX 4.24 Rhapsody Developer Release SCO OpenServer 5.0.2 SMP, 5.0.4 SCO Unixware 2.1.1 và 2.1.2 SunOS 4.1.3 và 4.1.4 Windows 95, NT và XP SP2
Điểm mạnh: Dễ thực hiện, rất mạnh và nhanh hơn kiểu tấn công SYN Flood.
Điểm yếu: Như đã nói, các kết nối này quá vô lý và đều mặc định bị chặn bởi các Firewall. Cần kiến thức TCP/IP và lượng công cụ có sẵn không nhiều.
4. Teardrop
Thông thường, khi một gói dữ liệu được truyền đi sẽ phải trải qua hai bước sau:
– Ở nguồn, dữ liệu được chia ra thành nhiều gói nhỏ (kích thước này được định bởi hệ thống đích qua trường Window trong gói TCP) và được gửi đi tuần tự. Mỗi gói có một địa chỉ Offset tương đương với số thứ tự của gói.
– Ở hệ thống đích, dữ liệu được sắp xếp lại dựa theo trường Offset để được dữ liệu đúng như thứ tự ban đầu.
Khi kiểu tấn công này diễn ra, attacker gửi một luồng dữ liệu lớn có Offset chồng chéo lên nhau (ví dụ như được khởi tạo bởi hàm Random) và không theo bất cứ thứ tự nào khiến cho hệ thống không thể sắp xếp được các gói này và những máy chủ có lượng RAM hạn chế sẽ nhanh chóng bị đầy bộ nhớ, dẫn đến treo hoặc reboot.
Điểm mạnh: Rất mạnh và dễ thực hiện.
Điểm yếu: Ít công cụ có sẵn và cần có kiến thức về mạng.
5. Smurf
Kiểu tấn công này dựa vào giao thức ICMP để tấn công làm cho mục tiêu bị ngập lụt bởi các gói ICMP Reply, từ đó làm mất kết nối hoặc giảm tốc độ mạng của mục tiêu.
Xét quá trình gửi nhận ICMP packet, có thể thấy rõ một quy luật: Nếu một máy tính nhận được gói ICMP Request, trừ khi gói đó bị chặn bởi Firewall, nếu không nó sẽ luôn gửi lại một gói ICMP Reply. Đây cách thức hoạt động của các chương trình ping để xác định một host có hoạt động hay không.
Tuy nhiên, trên hệ thống mạng còn có một điều cần lưu ý nữa, đó là các địa chỉ Broadcast.
Địa chỉ Broadcast được định nghĩa là địa chỉ IP có tất cả các bit host đều bằng 1. Và địa chỉ là đại diện cho tất cả các máy trong mạng. Tức là nếu một host nhận được một gói tin có địa chỉ đích là địa chỉ Broadcast của mạng đang sử dụng, nó sẽ xử lý gói tin này. Tức là chỉ cần một địa chỉ IP đích, người nhận sẽ là TẤT CẢ.
Vậy thì liên quan gì?
Điều cần xem xét ở đây như sau:
– Một ICMP Request sẽ luôn có Reply trả về nếu không bị drop bỏ.
– Một gói tin với địa chỉ đích là Broadcast thì sẽ được trả lời bởi tất cả các host trong mạng.
Vậy nếu một gói ICMP Request có địa chỉ đích là địa chỉ Broadcast thì sao? Khi đó tất cả các host trong mạng đều sẽ reply lại cho host nguồn. Vậy nếu địa chỉ IP nguồn được thay bằng địa chỉ IP của nạn nhân thì sao? Và nếu các Request này được gửi đi liên tục thì sao?
Đây chính là kiểu tấn công Smurf gây ngập lụt đường truyền của nạn nhân bằng các ICMP Reply. Và các máy tính trong mạng LAN này được gọi là mạng khuếch đại, tựa như botnet. Cách tấn công này cũng tương tự trò ném đá giấu tay.
Điểm mạnh: Gây ngập lụt cho nạn nhân nhanh chóng.
Điểm yếu: Dễ dàng chặn bằng cách disable directed-broadcast, kiểm tra chặt chẽ RPF, chỉ dùng trong mạng LAN là chủ yếu.
6. UDP Echo Flooding
Attacker gửi gói giả mạo địa chỉ IP nguồn của gói tin là địa chỉ Loopback 127.0.0.1 và gửi một gói tin đến cổng UDP Echo (7) của nạn nhân khiến cho nạn nhân liên tục echo lại chính mình tạo nên các vòng lặp vô tận trong hệ thống.
7. DNS Spoofing
Nghe khá giống kiểu tấn công giả mạo trang web nhưng đây cũng là phương thức tốt để khiến cho hệ thống của nạn nhân không thể hoạt động. Attacker đánh lừa người dùng, thay đổi địa chỉ IP thật của domain cần truy vấn thành địa chỉ IP giả mạo khiến người dùng không thể truy cập website.
9. Malware
Malware có thể sử dụng để:
- Tăng gánh nặng về xử lý lên server.
- Chạy những đoạn mã gây crash hệ thống.
- Exploit tất cả những lỗi có thể khiến hệ điều hành hoạt động sai
- …..
8. Kết
Hầu hết các kiểu tấn công trên đều dựa vào sự yếu kém của bộ giao thức TCP/IP và sự hạn chế của các thiết bị mạng cũng như sự thiếu thốn về tài nguyên của máy chủ. Nguyên do là vì trước khi được sử dụng rộng rãi, bộ giao thức này chỉ được sử dụng bởi Bộ quốc phòng Mỹ nên yếu tố bảo vệ hiệu suất dịch vụ không được đảm bảo.
Theo Wikipedia, có năm kiểu tấn công cơ bản sau đây:
- Nhằm tiêu tốn tài nguyên tính toán như băng thông, dung lượng đĩa cứng hoặc thời gian xử lý
- Phá vỡ các thông tin cấu hình như thông tin định tuyến
- Phá vỡ các trạng thái thông tin như việc tự động reset lại các phiên TCP.
- Phá vỡ các thành phần vật lý của mạng máy tính
- Làm tắc nghẽn thông tin liên lạc có chủ đích giữa các người dùng và nạn nhân dẫn đến việc liên lạc giữa hai bên không được thông suốt.
US-CERT xác định dấu hiệu của một vụ tấn cống từ chối dịch vụ gồm có:
- Mạng thực thi chậm khác thường khi mở tập tin hay truy cập Website
- Không thể dùng 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
Đào Xuân Hưng – AdminVietnam.org