Tải bản đầy đủ (.pdf) (6 trang)

Hacker Professional Ebook part 49 pptx

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 (139.65 KB, 6 trang )

hi vọng với một vài ví dụ vừa rồi, các bạn cũng đã hiểu phần nào về XSS.

4. Phát hiện XSS bằng cách nào ?
Nếu như các bạn sử dụng các mã nguồn của các chương trình có sẵn bạn có thể
tham khảo danh sách các lỗ hổng của chương trình bạn trên các trang web chứa các
thông tin về bảo mật như securityfocus.com, securiteam.com, Tuy nhiên nếu các
website được tự viết mã nguồn thì bạn không thể áp dụng phương pháp trên. Trong
trường hợp này bạn cần đến các chương trình scanner tự động. Nếu như bạn sử
dụng trong môi trường Windows bạn có thể dùng N-Stealth hay AppScan, đó là
những chương trình scan khá tuyệt, bạn không chỉ kiểm tra được các lỗi XSS mà
nó còn cho phép bạn kiểm tra các lỗi khác trong Website đó, Server đó.
Tất nhiên đâu phải lúc nào bạn cũng cần kiểm tra tất cả, nếu như bạn chỉ muốn
kiểm tra các lỗi XSS có trong website, bạn chỉ cần sử dụng screamingCSS. Đó là
một Perl Script sẽ mở các kết nối tới website (sử dụng Perl's socket) để kiểm tra
các lỗi XSS của bạn. Hơn nữa bạn có thể sử dụng nó trong cả môi trường Unix lẫn
Windows.

5. Ngăn ngừa XSS như thế nào ?
Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng không
quá khó khăn để ngăn ngừa XSS. Có rất nhiều cách để có thể giải quyết vấn đề
này.
OWASP (The Open Web Application Standard Project) nói rằng để có thể xây
dựng các website bảo mật cao, đối với các dữ liệu của người sử dụng bạn nên
+ Chỉ chấp nhận những dữ liệu hợp lệ.
+ Từ chối nhận các dữ liệu hỏng.
+ Liên tục kiểm tra và thanh lọc sữ liệu.
Tuy nhiên trên thực tế, một số trường hợp bạn phải chấp nhận mọi loại dữ liệu hay
không có một bộ lọc phù hợp. Chính vì vậy bạn phải có những cách riêng để giải
quyết.
Một trong những cách hay sử dụng là bạn mã hoá các kí tự đặc biệt trước khi in ra
website, nhất là những gì có thể gây nguy hiểm cho người sử dụng. Trong trường


hợp này thẻ <script> sẽ được đổi thành <script>. Như vậy nó sẽ vẫn được in ra
màn hình mà không hề gây nguy hiểm cho người sử dụng.
Tôi lấy ví dụ với script search.cgi với mã nguồn là


Code:
#!/usr/bin/perl
use CGI;

my $cgi = CGI->new();
my $query = $cgi->param('query');

print $cgi->header();
print "You entered $query";


Đây hoàn toàn là một script có lỗi bởi vì nó in ra trực tiếp dữ liệu được nhập vào.
Dĩ nhiên là khi in ra, nó sẽ in ra dưới dạng đoạn mã HTML, như thế nó không chỉ
không in ra chính xác những dữ liệu vào một cách trực quan mà còn có tiềm ẩn lỗi
XSS.
Như đã nói ở trên, để có thể giải quyết vấn đề này, chúng ta có thể mã hoá các kí tự
đặc biệt của HTML với hàm HTML::Entities::encode(). Như vậy ta có thể có một
mã nguồn hoàn hảo hơn như sau:


Code:
#!/usr/bin/perl
use CGI;
use HTML::Entities;


my $cgi = CGI->new();
my $text = $cgi->param('text');

print $cgi->header();
print "You entered ", HTML::Entities::encode($text);


Tất nhiên với phương pháp này bạn cũng có thể áp dụng đối với các ngôn ngữ Web
Application khác (ASP, PHP ). Để kiểm tra việc lọc và mã hoá dữ liệu trước khi
in ra, các bạn có thể dùng một chương trình được viết bằng ngôn nhữ PHP, đặc biệt
nó được thiết kế để phòng chống các lỗi XSS. Bạn có thể lấy mã nguồn chương
trình từ
Lọc và mã hoá các dữ liệu cho vấn là cách tốt nhất để chống XSS nhưng nếu bạn
đang sử dụng mod_perl trên Apache Server thì bạn có thể dùng ngay module
Apache::TaintRequest. Khi đó mã nguồn chương trình sẽ có dạng :


Code:
use Apache::TaintRequest;

my $apr = Apache::TaintRequest->new(Apache->request);
my $text = $apr->param('text');

$r->content_type("text/html");
$r->send_http_header;

$text =~ s/[^A-Za-z0-9 ]//;
$r->print("You entered ", $text);




Kĩ thuật XSS được mô tả lần đầu tiên cách đây 2 năm và hầu hết các khả
năng tiềm ẩn của kĩ thuật này đã được biết đến. Tuy nhiên chúng ta mới chỉ
khắc phục được một phần của nó. Không phải vô tình mà Yahoo Mail lại để
sót một lỗi XSS trong bộ lọc của mình. Một phương pháp tối ưu vẫn còn đang
ở phía trước.

Tiêu đề: Tấn công bằng DDOS

DDOS - Distributed Denial Of Service ?

• 1998 Chương trình Trinoo Distributed Denial of Service (DDoS) được viết bởi
Phifli.
• Tháng 5 – 1999 Trang chủ của FBI đã ngừng họat động vì cuộc tấn công bằng
(DDOS)
• Tháng 6 – 1999 Mạng Trinoo đã được cài đặt và kiểm tra trên hơn 2000 hệ thống.

DDOS – Distributed Denial Of Service ?

• Cuối tháng 8 đầu tháng 9 năm 1999, Tribal Flood Network đầu tiiên ra đời,
Chương trình được Mixter Phát triển.
• Cuối tháng 9 năm 1999, Công cụ Stacheldraht đã bắt đầu xuất hiện trên những hệ
thống của Châu âu và Hoa kỳ.
• Ngày 21 tháng 10 năm 1999 David Dittrich thuộc trường đại học Washington đã
làm những phân tích về công cụ tấn công từ chối dịch vụ

DDOS - Distributed Denial Of Service ?

• Ngày 21 tháng 12 năm 1999 Mixter phát hành Tribe Flood Network 2000 (
TFN2K ).

• 10 : 30 / 7 – 2 -2000 Yahoo! ( Một trung tâm nổi tiếng ) đã bị tấn công từ chối
dịch vụ và ngưng trệ hoạt động trong vòng 3 giờ đồng hồ. Web site Mail Yahoo và
GeoCities đã bị tấn công từ 50 địa chỉ IP khác nhau với nhửng yêu cầu chuyễn vận
lên đến 1 gigabit /s.

DDOS - Distributed Denial Of Service ?

• 8 -2 nhiều Web site lớn như Buy.com, Amazon.com, eBay, Datek, MSN, và
CNN.com bị tấn công từ chối dịch vụ.
• Lúc 7 giờ tối ngày 9-2/2000 Website Excite.com là cái đích của một vụ tấn công
từ chối dịch vụ, dữ liệu được luân chuyễn tới tấp trong vòng 1 giờ cho đến khi kết
thúc, và gói dữ liệu đó đã hư hỏng nặng.

DDOS - Distributed Denial Of Service?

• Qua đó ta có thể thấy rõ những vụ tấn công từ chối dịch vụ (Denial Of Services
Attack ) và những cuộc tấn công về việc gửi nhửng gói dữ liệu tới máy chủ (Flood
Data Of Services Attack) tới tấp là những mối lo sợ cho nhiều mạng máy tính lớn
và nhỏ hiện nay,

DDOS - Distributed Denial Of Service?

• Khi một mạng máy tính bị Hacker tấn công nó sẽ chiếm một lượng lớn tài nguyên
trên server như dung lượng ổ cứng, bộ nhớ, CPU, băng thông …. Lượng tài
nguyên này tùy thuộc vào khả năng huy động tấn công của mỗi Hacker. Khi đó
Server sẽ không thể đáp ứng hết những yêu cầu từ những client của những người
sử dụng và từ đó server có thể sẽ nhanh chóng bị ngừng hoạt động, crash hoặc
reboot.

DDOS - Distributed Denial Of Service?


• Tấn công từ chối dịch vụ có rất nhiều dạng như Ping of Death, Teardrop, Aland
Attack, Winnuke, Smurf Attack, UDP/ICMP Flooding, TCP/SYN Flooding,
Attack DNS.

DDOS - Distributed Denial Of Service?
• Ping Of Death.
Một số máy tính sẽ bị ngưng họat động, Reboot hoặc bị crash khi bị nhận những
gói dữ liệu ping có kích thước lớn.
• Ví dụ như : ping địachỉ -n 1000
trong đó : số 1000 là số lần gửi gói dữ liệu.
• TCP/SYN Flooding:
Bước 1: Khách hàng gửi một TCP SYN packet đến cổng dịch vụ của máy chủ
Khách hàng =è SYN Packet ===è Máy chủ

DDOS - Distributed Denial Of Service?

• Bước 2 : Máy chủ sẽ phản hồi lại khách hàng bằng 1 SYN/ACK Packet và chờ
nhận một 1 ACK packet từ khách hàng
Máy chủ è SYN/ACK Packet è Khách hàng
• Bước 3: Khách hàng phản hồi lại Máy chủ bằng một ACK Packet và việc kết nối
hòan tất Khách hàng và máy chủ thực hiện công việc trao đổi dữ liệu với nhau.
Khách hàng è ACK Packet è Máy chủ

DDOS - Distributed Denial Of Service?

• Trong trường hợp Hacker thực hiện việc SYN Flooding bằng cách gửi tới tấp,
hàng loạt TCP SYN packet đến cổng dịch vụ của máy chủ sẽ làm máy chủ bị quá
tải và không còn khả năng đáp ứng được nữa.


DDOS - Distributed Denial Of Service?

• UDP/ICMP Flooding:
Hacker thực hiện bằng cách gửi 1 số lượng lớn các gói tin UDP/ICMP có kích
thước lớn đến hệ thống mạng, khi hệ thống mạng chịu phải sự tấn công này sẽ bị
qua tải và chiếm hết băng thông đường truyền đi ra bên ngòai của mạng này, vì thế
nó gây ra nhửng ảnh hưởng rất lớn đến đường truyền cũng như tốc độ của mạng,
gây nên những khó khăn cho khách hàng khi truy cập từ bên ngoài vào mạng này.

DDOS - Distributed Denial Of Service?

• Những điều kiện đủ để có những cuộc tấn công DoS Có hiệu quả:
Để có được những cuộc tấn công DOS có hiệu quả thông thường một Hacker phải
lựa chọn cho mình những đường truyền có dung lượng lớn cũng như tốc độ máy
được dùng làm công cụ tấn công. Nếu không hội tụ được những điều kiện trên thì
cuộc tấn công sẽ không mang lại mấy khả quan.

DDOS - Distributed Denial Of Service?


×