Tấn công tchối dịch vụ ( DENIAL OF SERVICE - DoS ):
A. GIỚI THIỆU CHUNG
.A.1. DoS attack là gì?
DoS là làm cho c service bị tê liệt, ko còn đáp ứng đưc c request nữa. Loại
attack này rt dễ thực hiện và lại rất khó bảo vệ h thống khỏi các DoS attack.
vấn đề là Unix cho rằng hệ thống của users sẽ vẫn chạy được
.A.2. Có Hệ điều hành nào an toàn hơn ko?
Câu trả lời là ko. Tính an toàn của hệ thống phụ thụôc vào administrator.
Hệ thống Unix phức tạp hơn và có nhiều build-in prog cũng như services. điều
này cũng mở ra nhiều cách để crash the system từ bên trong hơn win NT & 95
network.
Uniz có nhiều tools & prog để tìm ra các attack và giám sát users. Trong khi wind
lại rất khó làm được.
Một unix admin trung bình thì cũng có nhiều kinh ngiệm hơn là microsoft admin.
Tóm li unix an toàn hơn đối với DoS attack từ bên trong. Tuy nhiên microsoft lại
nh secure cao hơn đối với các attack từ bên ngoài chỉ vì nó có ít service hơn.
.B. ĐIỂM CƠ BẢN CHO 1 ATTACK
.B.1. SWAP SPACE
hầu hết các system đều có vài trăm MB swap space để phc v client requests.
Swap space thuờng dùng cho các process con có thời gian ngắn nên DoS có thể
được dựa trên phương thức làm tràn đầy swap space.
.B.2. BANDWIDTH
nếu bandwith quá cao, network sẽ trnên vô dụng. Do đó hầu hết Dos att tác
động lên bandwith bằng nhiu cách.
.B.3. KERNEL TABLES
làm tràn kernel tables có thể gây ra các vấn đề nghiêm trọng trên hệ thống đặc
biệt là các h thống write cachessmall write buffers.
Kernel memory allocation cũng là tiêu đim nhạy cm. kernel có giới hạn
kernelmap, nên nếu system đt đến giới hn này nó ko thể định vị thêm kernel
memory và fải reboot. Kernel memory ko chỉ use cho RAM, CPUs, Screen ... mà
nó còn use cho các process thông thường. Nghĩa là bất cứ ht o cũng có thể
crashed nhanh chóng dễ dàng với những gii thuật nhỏ.
đối với solaris 2x lnh sar có thể đoờng và bào cáo về kernel memory đang
dùng. nhưng sunOS 4x thì ko có lệnh sar. nếu bn use Solaris, use lệnh sar –k 1
để ly thông tin, lệnh netstat k cũng cò thể dùng để xem kermel memory đã
chiếm bao nhiêu trong subpaging.
.B.4. RAM
Dos attack chiếm 1 khoảng lớn của RAM cũng có thể gây ra các vấn đề lớn. NFS
mailserver là d bị attack nhất vì chúng ko cần nhiều RAM. 1 NFS client
thường sẽ to ra rất nhiều catching, nhưng 1 NFS client cũng có thể là anything
trong progbạn có thể tự viết ly.
.B.5. DISKS
1 cách attack cổ điển là làm đầy harddisk. HD có thể bị overloaded và ko thể use
bằng nhiều cách.
.B.6. CACHES
DoS attack liên quan đến caches được dựa trên phương pháp làm tắc nghẽn or
ngăn ngừa cache.
Trong solaris 2x:
Directory name lookup cache: liên h tên file với vnode.
Inode cache: thông tin cache đọc từ đĩa trong trường hợp cần đọc li.
Rnode cache: giữ thông tin về ht file NFS.
Buffer cache: cache Inode làm tc nghẽn gián tiếp I/O của đĩa thực.
.B.7. INETD
1 khi inetd bị crashed, tất cả các service khác đi qua inetd sẽ ko còn làm việc
được nữa.
.C. ATTACK TỪ BÊN NGOÀI.
.C.1. Sự thuận lợi của Finger
hầu hết các prog finger đều h trợ chuyn tiếp đến host khác. Vd: $finger
@system.two.com@system.one.com finger đi qua system.one.com và
system.two.com. do đó two sẽ tưởng là one finger mình. pp này dùng để che
dấu cũng như cho các very dirty DoS attack. Hãy xem vd sau: $finger
@@@@@@@@@@@@@@@@@@@@@@host.we.attack tất cả các @ s
nhận finger để finger host.we.attack rt nhiều lần làm host này bảnh hưởng rt
lớn.
biện pháp là cài đặt finger ko hỗ trợ chuyển tiếp như GNU finger, or bạn cũng
thể tắt finger service.
.C.2. UDP AND SUNOS 4.1.3.
sunOS 4.1.3 bị li boot nếu bạn gởi tới 1 packet với thông tin sai trong header.
Đây là nguyên nhân nếu như ip-options biu diễn sai kích cỡ của packet.
biện pháp: cài đặt patch đúng.
.C.3. Làm tê lit X-WINDOWS
nếu host cho phép telnet tới X-Windows port (thường là t 6000 đến 6025), bạn
thể làm tê liệt cả ht x-windows bằng ch to ra hàng loạt kết nối telnet or
prog gởi hàng lot XopenDisplay() đến port đó. điều này cũng có thể áp dụng
cho Motif or Open windows.
biện pháp: đóng kết nối tới x-windows port.
.C.4. Cố ý sử dụng UDP SERVICES
rất dễ use UDP services (như echo, time, datetime, chargen) lặp li 1 cách liên
tục nhờ các IP-spoofing thông thường. Vd:
from-IP=127.0.0.1
to-IP=system.we.attack
packet type:UDP
from UDP port 7
to UDP port 7
header yêu cầu là packet đến từ 127.0.0.1 (lặp lại liên tục) và tiêu đim là echo
port ti system.we.attack. đến khi system.we.attack biết là 127.0.0.1
system.we.attack và vòng lặp được thiết lập. chú ý là system.we.attack trông
giồng như DNS-name nhưng tiêu điểm luôn luôn là 1 IP number.
.C.5. ATTACKING WITH LYNX CLIENTS
www server sẽ tách httpd process thành phản hồi cho các request từ client.
Process chỉ kéo dài khoảng 1 giây và vì thế load sẽ ko thực hin được nếu bạn
use ps. DoS atack use hàng lot w3 client (lynx client) là rt an toàn nhưngn
nhớ là lnh netstat cũng có thể phát hiện ra attack.
Httpd:s (nhttp-gw)
.C.6. Telnet
use thử script này:
while : ; do
telnet system.we.attack &
done
atack kiểu này cũng tốn 1 ít bandwith, nhưng nó chẳng là gì so với pp finger or
các pp khác. Nhưng 1 s firewalls & httpd:s lại nghĩ đây là vòng lp và tự động
tắt chúng, cho đến khi admin gởi lệnh kill - HUP
.C.7. use telnet trong SOLARIS 2.4
nều attacker tạo ra kết nối telnet tới solaris 2.4 host và thoát ra use:
control -}
quit
thì inetd s tiếp tục mãi mãi (ít nhất là vài trăm ln)
biện pháp: cài đặt patch đúng.
.C.8. m sao để DISABLE ACCOUNTS
1 vài ht disable accout sau n lần bad login or chờ n giây. bạn có thể use tíng
năng này để lock out 1 user nào đó từ ht.
.C.9. LINUX AND TCP TIME, DAYTIME
inetd trong linux có th bị crash nếu gởi nhiều SYN packet tới daytime (port 13)
or time (port 37)
.C.10. attack bằng chuyển tiếp ICMP
gateways use chuyển tiếp ICMP đ yêu cầu ht overide routing tables. để vô hiệu
chuyển tiếp icmp, bạn fi biết kết nối hiện tại để gởi tới 1 route làm đứt kết nối
or gởi tới host messages li nều như kết nối đó ko use cryptation
vd: (gởi messages lỗi)
destination unreachable
time to live exceeded
parameter problem
packet too big
message y s reset kết nối.
.C.11. BROADCAST STORMS
đây là pp thông dụng nht trong mạng mà host hot động như các gateway. pp
bản là gởi nhiều packet tới tất cả các host với đích đến ko có thc. mỗi host
sẽ cố gắng chuyển từng packet dẫn đến packet đó được chuyển lòng vòng trong
1 thời gian dài và nếu packet mới được tiếp tục gởi tới mạng sẽ nhanh chóng
gặp rắc rối.
loại attack này có thể là ping, finger, & sendmail. Nhưng hầu hết services có th
vô hiệu bằng vài cách khác.
.C.12. SYN FLOODING
syn packet được use trong 3-way handshake do đó syn flooding attack được dựa
trên pp incomplete handshake. Attacker host gởi tới tấp các syn packet nng ko
phản hồi lại các ACK packet.
bạn có thể xem thêm về syn flooding ti:
[.1.] http://www.eecs.nwu.edu/~jmyers/bugtraq/1354.html
Article by Christopher Klaus, including a "solution".
[.2.] http://jya.com/floodd.txt
2600, Summer, 1996, pp. 6-11. FLOOD WARNING by Jason Fairlane
[.3.] http://www.fc.net/phrack/files/p48/p48-14.html
IP-spoofing Demystified by daemon9 / route / infinity
for Phrack Magazine
.C.13. PING FLOODING
unix: ping –s host
windows 9x: ping –t –l 256 xxx.xxx.xxx.xxx
ex: ping –l 65510 address.to.the.machine
nó có thể bị tê liệt or reboot.
* Kernel phiên bản từ 2.0.7 đến 2.0.20 or AIX4, OSF, HPUX10.1, DUXIX 4.0 -->>
crashed
* OSF/1, 3.2C, solaris 2.4 x86 -->> reboot.
.C.14. FLEXlm
bất cứ host nào chạy FLEXlm có thể bị shutdown bng lệnh:
#lmdown –c /etc/licence.dat
lmdown – copyright © 1989, 1991 highland software, inc.
shutting down FLEXlm on nodes: xxx
are you sure? [y/n]: y
shut down the node xxx
#.