Tải bản đầy đủ (.docx) (7 trang)

BÁO CÁO TÌM HIỂU CSF

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (658.37 KB, 7 trang )

BÁO CÁO TÌM HIỂU CSF
I. Nội dung báo cáo
1, Tìm hiểu tường lửa CSF.
2, Những tính năng chính của CSF.
3, Áp dụng CSF vào một số tình huống cụ thể.
4, Demo chống DDOS HTTP Get.
II. Nội dung chính
1, Tìm hiểu tường lửa CSF
1.1 Khái niệm về SPI (Stateful Packet Inspection) firewall.
SPI firewall là tường lửa có thể theo dõi trạng thái của kết nối( TCP streams, UDP
communication). Nhờ đó nó có thể phân biệt được gói tin hợp pháp, chỉ những gói tin
phù hợp với kết nối mới được cho phép. Nó khác với stateless firewall, một loại
firewall có hiệu suất xử lý tốt hơn, hoạt động ở layer 3 và chỉ xem header gói tin.
Nhược điểm stateless firewall là không kiểm tra được state của gói tin vì vậy nó dễ bị
giả mạo gói tin.
1.2 Login/Instrusion Detection and Security application.
Tính năng phát hiện đăng nhập, xâm nhập vào hệ thống của firewall qua việc kiểm tra
log của các chương trình trong hệ thống. Ngoài ra còn theo dõi sự thay đổi của các thư
mục, file, tài khoản người dùng. Kiểm tra, giới hạn số lượng process, memory. Chống
lại việc tấn công từ bên trong hệ thống bằng việc thực thi shell độc hại.
1.3 CSF
CSF là một SPI firewall, Login/Intrusion Detection and Security application cho Linux
servers.
Làm việc trên nền tảng iptables, CSF được thiết kế chuyên dụng để bảo vệ cho những
server dịch vụ. Những tính năng của CSF đều được các chuyên gia hàng đầu về bảo mật
lựa chọn kỹ lưỡng. Với đặc điểm là mã nguồn mở, CSF luôn được cập nhật liên tục để
hoàn thiện thêm các tính năng mới. Ngoài ra CSF cực kỳ hữu hiệu để chống lại DoS và
DDoS. Đặc điểm cơ bản của chống tấn công DoS trên firewall là giới hạn số kết nối tăng
quá mức bình thường, kiểm tra tính hợp lệ trong state của gói tin. CSF làm rất tốt việc này,
nó có những tính năng cụ thể để lọc ra những người dùng thực sự hay là những zombie
đang tấn công server. Để ngăn chặn hầu hết các hình thức DoS ta sẽ phải thắt chặt ở


firewall và tinh chỉnh tốt các dịch vụ.
2, Những tính năng chính của CSF.
 Bảovệ server trướchầuhếthìnhthứctấncông DDOS :
SynFlood, UDPFlood, PortFlood, PingofDeath…
• Bảovệ server trướchìnhthứctấncôngtàikhoản : Brute-force attack, Distributedattacks.
• Bảovệ server trướckiểuthămdòtìmhiểu server :
PortScan, PortKnocking.
• Chốngthựcthishelltrên server, kiểmtrahệthống file server, process.
• Cấmtruycậptheoquốcgia, IP thuộcBlacklist, IP bịchặn ở server khác( cũngsửdụng
CSF)
• Chặn IP tạmthời, vĩnhviễn
• TruyvấnkiểmtraDNS(Global Lists/DYNDNS/Blacklists) xácđịnhnguồngốc IP
kếtluân spam hoặc IP cấmtruycập
• Hỗtrợ Mail server trongquảnlý IP, accountđăngnhập POP3, IMAP.
• Hệthống log tuỳ chỉnh cao, gửibáocáotới mail củaquảntrị, gửithôngbáotớingườidùng
khi bịchặn IP.
3, Áp dụng CSF vào một số tình huống cụ thể.
3.1: Tình huống hệ thống bị DDoS dồn dập với dạng tấn công SYN FLOOD.
SYN FLOOD là một kiểu tấn công mà attacked sử dụng nhiều IP ( có thể giả mạo)
gửi liên tiếp những gói tin SYN-ACK(chấp nhận kết nối) và chờ gói ACK từ client để hoàn
thành bắt tay 3 bước. Nhưng attacked hoặc không trả lời ACK hoặc ip giả mạo nên cũng
không có ACK phản hồi nên server sẽ chờ gói ACK cho đến hết timeout. Khi số lượng gói
SYN được gửi đến server dồn dập như vậy ta phải có các biện pháp khắc phục hiệu quả để
giảm số lượng những gói SYN đến từ những địa chỉ giả mạo hoặc ip zombie.
Khi server bị tấn công SYNFLOOD với cường độ thấp (ví dụ 1000/s) thì SYN
COOKIES sẽ hoạt động hiệu quả. SYN COOKIES là một tính năng sẵn có để chống lại
SYN FLOOD. Nó kiểm tra tính hợp lệ của gói tin. Nhanh chóng huỷ những kết nối không
đúng. Khi server phải tiếp nhận SYNFLOOD với cường độ lớn, ta phải giới hạn
SYNFLOOD_RATE, SYNFLOOD_BURST hợp lý.
Với trường hợp server chạy dịch vụ web server sử dụng để chạy website tin tức. Một

người dùng bình thường sẽ tạo nhiều nhất 10 kết nối mới trong 1 phút. Ta có thể giới hạn
như sau để không ảnh hưởng đến người dùng mà lại vô hiệu hoá mức độ tham lam của
attacker khi muốn DoS server.
SYNFLOOD_RATE=4/s
SYNFLOOD_BRUST=2
Tức là cho phép trong 2s có 4 kết nối SYN đến. Cái thứ 6 trong vòng 2s sẽ drop. Đây là một
ví dụ. Mỗi server cấu hình khác nhau, dịch vụ khác nhau, số lượng user khác nhau sẽ có
cách cấu hình khác nhau.
3.2: Tình huống tấn công DDoS vào lớp ứng dụng.
Các tấn công vào lớp ứng dụng vừa đánh vào yếu kém trong việc cấu hình dịch vụ,
vừa tăng số lượng kết nối lên cao, dồn dập yêu cầu server trả lời kết nối làm cho server quá
tải hoặc đường truyền bão hoà. Một số tấn công vào lớp ứng dụng như HTTP get; HTTP
post; Xflash; Slowloris đều thực sự hiệu quả khi có rất nhiều kết nối đến server. Vậy để
giới hạn không cho server đạt đến ngưỡng giới hạn khả năng chịu tải thì trước khi tinh chỉnh
dịch vụ, thông số kernel, dựa vào các IDS, module lọc gói tin ở lớp ứng dụng thì ta phải
làm việc đầu tiênlà giới hạn current connection(số connection ở trạng thái ESTABLISHED),
theo dõi IP nào có hiện tượng truy vấn dồn dập thì ngưng tạm thời truy cập từ IP đó.
CONNLIMIT = 80;5
PORTFLOOD = 80;tcp;20;10
Tức là tại mỗi thời điểm chỉ cho phép 5 kết nối truyển dữ liệu tại port 80. Port 80 giao thức
tcp trong10s mà có hơn 20 yêu cầu kết nối đến server thì khoá IP đó đến 10s sau yêu cầu kết
nối cuối cùng đến server.
Hoặc ta dựa vào tổng số kết nối đến server trong 1 khoảng thời gian để khoá tạm thời hoặc
vĩnh viễn luôn IP đó:
CT_LIMIT=200
CT_INTERVAL=60
CT_PERMANENT=0
Trong vòng 60 giây có 200 kết nối đến server thì khoá tạm thời trong CT_BLOCK_TIME.
3.3: Chống lại Scan các port đặc biệt.
Khi server của ta public ra internet việc quản trị từ xa là yêu cầu tất yếu. Làm thế nào để bảo

vệ những dịch vụ này trước con mắt dòm ngó của những kẻ nhiều chuyện?
Có hai tính năng giúp ta việc này:
+ Port Scan: PS_INTERVAL=300
PS_LIMIT=10
PS_PERMANENT=0
PS_BLOCK_TIME=3600
Một IP nào đó gửi yêu cầu truy cập đến 10 port không được mở trên server
trong 300s thì khoá trong thời gian 1h.
+ PortKnocking: PORTKNOCKING=22;TCP;20;10000;20000;30000.
Port 22 là port mặc định chạy dịch vụ SSH trên *nix. Bình thường ta sẽ đổi
port dịch vụ để tránh việc scan của attacker. Như vậy chưa đủ an toàn vì attacker vẫn có thể
tìm ra. Tính năng trên cho phép ta đóng port 22, nhưng khi ta gửi gói SYN đến port
10000;20000;30000 trong vòng 20s thì port 22 sẽ được mở ra cho IP vừa gửi 3 gói SYN
trên. Một tính năng vô cùng hữu hiệu.
3.4: Chống brute force attack.
Tính năng chống lại việc đăng nhập sai nhiều lần từ một IP hay một tài khoản(thay đổi IP)
trong một khoảng thời gian. Trong SECTION:Login Failure Blocking and Alerts cho phép
ta giới hạn số lần đăng nhập sai ở một số dịch vụ. Nếu vượt quá số lần IP sẽ bị khoá tạm
thời.
3.5: Alert and Report.
Ngoài việc chống một số loại tấn công thì CSF còn hỗ trợ cảnh báo hoặc báo cáo các hiện
tượng trên cho người dùng hoặc admin. Khi có sự thay đổi về thư mục, script exploits,
account hệthống CSF sẽ report cho admin qua mail.
LF_ALERT_TO=
4, Demo chống DDOS HTTP Get.
HTTP Get là một dạng truyền dữ liệu vào webserver yêu cầu server trả lời câu truy vấn Get
từ client. DDOS HTTP GET sẽ có 2 mục đích chính: Tăng số lượng kết nối thật nhiều đến
server làm quá giới hạn phục vụ, bắt server thực hiện các cú Get dẫn đến quá tải server do
xử lý PHP, truy vẫn database.
Hiện nay các hệ thống botnet lớn rất thông minh. Nó có thể thực hiện three-way handshake,

HTTPGET với URI ngẫu nhiên, User Agent như người dùng bình thường. Nên việc chống
DDOS phải có sự kết hợp ở nhiều lớp. Trên firewall ta phải thực hiện giới hạn số
connection, khoá những IP có lượng truy vấn đột biến, cho phép gói tin hợp lệ ra vào.
Khi một webserver không có firewall hoặc có firewall nhưng không cấu hình giới hạn
connection, connection tracking. Thực hiện request HTTP GET với rate=100/s. Server
nhanh chóng quá tải và DoS.
Hình1: Server bị quá tải do trả lời quá nhiều request
Hình2: Hình ảnh request liên tục của 1 IP.
Hình3: TCP stream với URI hoàn toàn hợp lệ
Để hạn chế loại tấn công với bên vỏ ngoài hoàn toàn hợp lệ này ta phải giới hạn connection,
phân biệt rõ đặc tính của 1 zombie và 1 người dùng hợp lệ để chặn đùng đối tượng.
Như cấu hình ở phần 3.2:
CONNLIMIT = 80;5
PORTFLOOD = 80;tcp;20;10
Ta giới hạn tại một thời điểm 1 IP có 5 connection tồn tại.
Trong 10s IP đó không yêu cầu quá 20 connection.
Đây là 1 ví dụ điển hình cho 1 forum hay 1 trang tin tức với dung lượng 1 trang không quá
lớn. 5conn/s có thể sử dụng cho 3 người dùng cùng 1 IP 1 thời điểm. Tình trạng
PORTFLOOD như trên chỉ nên áp dụng khi server đang bị DDOS còn không thì ta nên để
giới hạn cao hơn một chút.
Ngay khi ra thực hiện điều chỉnh trên thì số connection giữa client và server được giới hạn ở
mức 5 current Connection. Trung bình mỗi người tải trang web chỉ cần tối đa 3 connection
trong vòng 2s là đủ. Trong 10s để tải 5 trang web trên cùng 1 host cần 15 connection. Vậy
chỉ có những zombie tham lam mới cần trên 20 conection trong vòng 10s. Ta có thể hạn chế
những zombie bằng cách sẽ deny ip đó cho đến khi nó thôi không tấn công vào server nữa.
Như ví dụ trên là IP nào mở hơn 20 connection tới port 80 trong vòng 10s sẽ bị chặn và sau
10s tính từ yêu cầu kết nối cuối cùng sẽ được thả ra.
Tình trạng kết nối tới server của máy tấn công khi không bị ngăn cản:
Và sau khi giới hạn 5 kết nối:
Tuy có rất nhiều yêu cầu kết nối tới server nhưng server chỉ chấp nhận tối đa 5 kết nối. Việc

giới hạn số connection này có thể áp dụng cho tất cả các loại tấn công DDoS.
Kết luận: Xây dựng trên nền tảng iptables nên tính linh hoạt của CSF khá cao. Ngoài những
tính năng cung cấp sẵn ta cũng có thể can thiệp trực tiếp vào iptables. CSF được xây dựng
dựa trên các yêu cầu của 1 server dịch vụ nên những tính năng của nó được tinh chỉnh sao
cho vừa gọn nhẹ lại phục vụ được các nhu cầu cần thiết của server. Đây là một sự lựa chọn
cực kỳ hữu hiệu cho bất cứ server public nào.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×