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

Tìm hiểu về lỗ hổng bảo mật hệ thống

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 (1.07 MB, 38 trang )

MỤC LỤC

DANH MỤC HÌNH ẢNH


Do đó để ngăn chặn với những thách thức về lỗ hổng bảo
mật và tuân thủ tốt trong môi trường mạng ngày nay. Bản thân
chọn đề tài : “ Tìm hiểu về các lỗ hổng bảo mật hệ hống”. Đề tài
này được thực hiện nhằm mục đích tìm hiểu, các lỗ hổng bảo
mật trên và các phương pháp phòng chống các cuộc tấn công.
Bài trình bày còn nhiều thiếu sót, kính mong thầy cô giáo
cùng các bạn góp ý, bổ sung.
Em xin cảm ơn !

2|Page


Tìm hiểu về các lỗ hổng bảo mật hệ thống

CHƯƠNG 1: TỔNG QUAN VỀ CÁC LỖ HỔNG BẢO
MẬT
1.1. Khái niệm vể lỗ hổng bảo mật
Khái niệm: Lỗ hổng trong hệ thống thông tin là những
khuyết điểm trong chức năng, thành phần nào đó của hệ thống
thông tin mà có thể lợi dụng để gây hại cho hệ thống.
Các lỗ hổng bảo mật trên một hệ thống là các điểm yếu có
thể tạo ra sự ngưng trệ của dịch vụ, thêm quyền đối với người
sử dụng hoặc cho phép các truy nhập không hợp pháp vào hệ
thống. Các lỗ hổng cũng có thể có ở ngay các dịch vụ như
sendmail, web, ftp... Ngoài ra các lỗ hổng còn tồn tại ngay trong
chính các hệ điều hành như: Windows NT, Windows 95, UNIX;


hoặc trong các ứng dụng mà người dùng thường xuyên sử dụng
như: Word processing, các hệ databases...
1.2 Phân loại lỗ hổng bảo mật
Có nhiều tổ chức khác nhau tiến hành phân loại các dạng
lỗ hổng đặc biêt. Theo cách phân loại của Bộ quốc phòng Mỹ,
các loại lỗ hổng bảo mật trên một hệ thống được chia như sau:
- Lỗ hổng loại C:
Các lỗ hổng loại này cho phép thực hiện các phương thức
tấn công theo DoS (Dinal of Services - Từ chối dịch vụ). Mức độ
nguy hiểm thấp, chỉ ảnh hưởng tới chất lượng dịch vụ, có thể
làm ngưng trệ, gián đoạn hệ thống; không làm phá hỏng dữ liệu
hoặc đạt được quyền truy nhập bất hợp pháp.
DoS là hình thức tấn công sử dụng các giao thức ở tầng
Internet trong bộ giao thức TCP/IP để làm hệ thống ngưng trệ
dẫn đến tình trạng từ chối người sử dụng hợp pháp truy nhập
3|Page


Tìm hiểu về các lỗ hổng bảo mật hệ thống
hay sử dụng hệ thống. Một số lượng lớn các gói tin được gửi tới
server trong khoảng thời gian liên tục làm cho hệ thống trở nên
quá
tải, kết quả là server đáp ứng chậm hoặc không thể đáp ứng
các yêu cầu từ client gửi tới.
Các dịch vụ có chứa đựng lỗ hổng cho phép thực hiện các
cuộc tấn công DoS có thể được nâng cấp hoặc sửa chữa bằng
các phiên bản mới hơn của các nhà cung cấp dịch vụ. Hiện nay,
chưa có một giải pháp toàn diện nào để khắc phục các lỗ hổng
loại này vì bản thân việc thiết kế giao thức ở tầng Internet (IP)
nói riêng và bộ giao thức TCP/IP đã chứa đựng những nguy cơ

tiềm tàng của các lỗ hổng này.
Tuy nhiên, mức độ nguy hiểm của các lỗ hổng loại này
được xếp loại C; ít nguy hiểm vì chúng chỉ làm gián đoạn cung
cấp dịch vụ của hệ thống trong một thời gian mà không làm
nguy hại đến dữ liệu và người tấn công cũng không đạt được
quyền truy nhập bất hợp pháp vào hệ thống.
Một lỗ hổng loại C khác cũng thường thấy đó là các điểm
yếu của dịch vụ cho phép thực hiện tấn công làm ngưng trệ hệ
thống của người sử dụng cuối; chủ yếu với hình thức tấn công
này là sử dụng dịch vụ Web. Giả sử: trên một Web Server có
những trang Web trong đó có chứa các đoạn mã Java hoặc
JavaScripts, làm "treo" hệ thống của người sử dụng trình duyệt
Web của Netscape bằng các bước sau:
- Viết các đoạn mã để nhận biết được Web Browers sử
dụng Netscape
- Nếu sử dụng Netscape, sẽ tạo một vòng lặp vô thời hạn,
sinh ra vô số các cửa sổ, trong mỗi cửa sổ đó nối đến các Web
Server khác nhau.
4|Page


Tìm hiểu về các lỗ hổng bảo mật hệ thống
Với một hình thức tấn công đơn giản này, có thể làm treo
hệ thống. Đây cũng là một hình thức tấn công kiểu DoS. Người
sử dụng trong trường hợp này chỉ có thể khởi động lại hệ thống.
Một lỗ hổng loại C khác cũng thường gặp đối với các hệ
thống mail là không xây dựng các cơ chế anti-relay (chống
relay) cho phép thực hiện các hành động spam mail. Như chúng
ta đã biết, cơ chế hoạt động của dịch vụ thư điện tử là lưu và
chuyển tiếp; một số hệ thống mail không có các xác thực khi

người dùng gửi thư, dẫn đến tình trạng các đối tượng tấn công
lợi dụng các máy chủ mail này để thực hiện spam mail; Spam
mail là hành động nhằm tê liệt dịch vụ mail của hệ thống bằng
cách gửi một số lượng lớn các messages tới một địa chỉ không
xác định, vì máy chủ mail luôn phải tốn năng lực đi tìm những
địa chỉ không có thực dẫn đến tình trạng ngưng trệ dịch vụ. Số
lượng các messages có thể sinh ra từ các chương trình làm bom
thư rất phổ biến trên mạng Internet.
- Lổ hổng loại B:
Các lỗ hổng cho phép người sử dụng có thêm các quyền
trên hệ thống mà không cần thực hiện kiểm tra tính hợp lệ. Mức
độ nguy hiểm trung bình; Những lỗ hổng này thường có trong
các ứng dụng trên hệ thống; có thể dẫn đến mất hoặc lộ thông
tin yêu cầu bảo mật.
Lỗ hổng loại này có mức độ nguy hiểm hơn lỗ hổng loại C,
cho phép người sử dụng nội bộ có thể chiếm được quyền cao
hơn hoặc truy nhập không hợp pháp.
Những lỗ hổng loại này thường xuất hiện trong các dịch vụ
trên hệ thống. Người sử dụng “local” được hiểu là người đã có
quyền truy nhập vào hệ thống với một số quyền hạn nhất định.

5|Page


Tìm hiểu về các lỗ hổng bảo mật hệ thống
Ta sẽ phân tích một số lỗ hổng loại B thường xuất hiện trong các
ứng dụng:
Sendmail: là một chương trình được sử dụng rất phổ biến
trên hệ thống UNIX để thực hiện gửi thư điện tử cho những
người sử dụng trong nội bộ mạng. Thông thường, sendmail là

một daemon chạy ở chế độ nền được kích hoạt khi khởi động hệ
thống. Trong trạng thái, hoạt động, sendmail mở port 25 đợi
một yêu cầu tới sẽ thực hiện gửi hoặc chuyển tiếp thư.
Sendmail khi được kích hoạt sẽ chạy dưới quyền root hoặc
quyền tương ứng (vì liên quan đến các hành động tạo file và ghi
log file). Lợi dụng đặc điểm này và một số lỗ hổng trong các
đoạn mã của sendmail, mà các đối tượng tấn công có thể dùng
sendmail để đạt được quyền root trên hệ thống.
Để khắc phục lỗi của sendmail cần tham gia các nhóm tin
về bảo mật; vì sendmail là chương trình có khá nhiều lỗi; nhưng
cũng có nhiều người sử dụng nên các lỗ hổng bảo mật thường
được phát hiện và khắc phục nhanh chóng. Khi phát hiện lỗ
hổng trong sendmail cần nâng cấp, thay thế phiên bản
sendmail đang sử dụng.
Một loạt các vấn đề khác về quyền sử dụng chương trình
trên UNIX cũng thường gây nên các lỗ hổng loại B. Vì trên hệ
thống UNIX, một chương trình có thể được thực thi với 2 khả
năng:
- Người chủ sở hữu chương trình đó kích hoạt chạy.
- Người mang quyền của người chủ sở hữu chủ nhân của file
đó.
Các loại lỗ hổng loại B khác: một dạng khác của lỗ hổng
loại B xảy ra đối với các chương trình có mã nguồn viết bằng C.
6|Page


Tìm hiểu về các lỗ hổng bảo mật hệ thống
Những chương trình viết bằng C thường sử dụng một vùng đệm
- là một vùng trong bộ nhớ sử dụng để lưu dữ liệu trước khi xử
lý. Những người lập trình thường sử dụng vùng đệm trong bộ

nhớ trước khi gán một khoảng không gian bộ nhớ cho từng khối
dữ liệu. Ví dụ, người sử dụng viết chương trình nhập trường tên
người sử dụng; qui định trường này dài 20 ký tự. Do đó họ sẽ
khai báo:
char first_name [20];
Với khai báo này, cho phép người sử dụng nhập vào tối đa
20 ký tự. Khi nhập dữ liệu, trước tiên dữ liệu được lưu ở vùng
đệm; nếu người sử dụng nhập vào 35 ký tự; sẽ xảy ra hiện
tượng tràn vùng đệm và kết quả 15 ký tự dư thừa sẽ nằm ở một
vị trí không kiểm soát được trong bộ nhớ. Đối với những người
tấn công, có thể lợi dụng lỗ hổng này để nhập vào những ký tự
đặc biệt, để thực thi một số lệnh đặc biệt trên hệ thống. Thông
thường, lỗ hổng này thường được lợi dụng bởi những người sử
dụng trên hệ thống để đạt được quyền root không hợp lệ.
Việc kiểm soát chặt chẽ cấu hình hệ thống và các chương
trình sẽ hạn chế được các lỗ hổng loại B.
- Lỗ hổng loại A:
Các lỗ hổng này cho phép người sử dụng ở ngoài có thể truy
nhập vào hệ thống bất hợp pháp. Lỗ hổng rất nguy hiểm, có thể
làm phá hủy toàn bộ hệ thống.
Các lỗ hổng loại A có mức độ rất nguy hiểm; đe dọa tính
toàn vẹn và bảo mật của hệ thống. Các lỗ hổng loại này thường
xuất hiện ở những hệ thống quản trị yếu kém hoặc không kiểm
soát được cấu hình mạng. Một ví dụ thường thấy là trên nhiều
hệ thống sử dụng Web Server là Apache. Đối với Web Server
này thường cấu hình thư mục mặc định để chạy các scripts là
7|Page


Tìm hiểu về các lỗ hổng bảo mật hệ thống

cgi-bin; trong đó có một Scripts được viết sẵn để thử hoạt động
của apache là test-cgi. Đối với các phiên bản cũ của Apache
(trước version 1.1), có dòng sau trong file test-cgi
echo QUERY_STRING = $QUERY_STRING
Biến môi trường QUERY_STRING do không được đặt trong
có dấu " (quote) nên khi phía client thực hiện một yêu cầu trong
đó chuỗi ký tự gửi đến gồm một số ký tự đặc biệt; ví dụ ký tự
"*", web server sẽ trả về nội dung của toàn bộ thư mục hiện
thời (là các thư mục chứa các scipts cgi). Người sử dụng có thể
nhìn thấy toàn bộ nội dung các file trong thư mục hiện thời trên
hệ thống server.
Một ví dụ khác cũng xảy ra tương tự đối với các Web server
chạy trên hệ điều hành Novell; các web server này có một
scripts là convert.bas, chạy scripts này cho phép đọc toàn bộ
nội dung các files trên hệ thống. Những lỗ hổng loại này hết sức
nguy hiểm vì nó đã tồn tại sẵn có trên phần mềm sử dụng;
người quản trị nếu không hiểu sâu về dịch vụ và phần mềm sử
dụng sẽ có thể bỏ qua những điểm yếu này.
1.3. Nguồn gốc tồn tại lỗ hổng bảo mật


Hệ điều hành
Lỗ hổng: là các chương trình hợp pháp với các lỗ hổng bảo
mật có nguy cơ đưa đến một số rủi ro. Có hai lý do để phát hiện:



Lỗi phần mềm, chẳng hạn như Microsoft Office, Java, Flash
Player, QuickTime.




Các tập tin tạm thời của một chương trình được cài đặt
hoặc cập nhật, hoặc cập nhật Windows.
Làm thế nào để giảm thiểu ảnh hưởng của lỗ hổng bảo mật:



Cập nhật phần mềm sẽ cải thiện bảo mật: luôn luôn cập
nhật các bản vá của phần mềm hoặc hệ điều hành.
8|Page


Tìm hiểu về các lỗ hổng bảo mật hệ thống


Sử dụng các phần mềm có tính năng phát hiện các lỗ hổng
bảo mật và phòng chống tấn công.



Các dịch vụ được cài đặt
Ngay cả những phần mềm tầm trung đơn giản, chỉ phục vụ
một vài tác vụ chuyên biệt cũng đã tạo thành từ một lượng lớn
code. Cấu trúc phần mềm được thiết kế bởi con người, và những
dòng code trong đó cũng được viết bởi con người, vì vậy việc
xuất hiện lỗi là không thể tránh khỏi. Trong phần lớn trường
hợp, nếu một phần mềm được sản xuất một cách chuyên
nghiệp – các lỗi này không thể có tác động gì quá lớn, nhất là
đến các khía cạnh về bảo mật. Cùng lắm ta sẽ thấy một vài

chức năng không hoạt động, đôi lúc phần mềm “treo” khi đang
làm việc hoặc làm việc chậm chạp .v.v..

Hình 1: Mô hình tấn công một lỗ hổng


Hạ tầng mạng và kết nối
Cần hiểu rằng, các công cụ về bảo mật hiện đại ngày nay
như tường lửa, phần mềm anti-virus, anti-malware…thường có
cơ chế hoạt động thông minh để phát hiện khi một đoạn mã nào
đó có hành vi đáng ngờ, bất kể đoạn mã đó có sẵn trong cơ sở
9|Page


Tìm hiểu về các lỗ hổng bảo mật hệ thống
dữ liệu về virus, malware hay không. Cũng tương tự như một
trinh sát dày dạn có thể phát hiện dấu hiệu khả nghi của một kẻ
trộm mà không cần lệnh truy nã hay chữ “trộm” to đùng trước
trán.
1.4. Ảnh hưởng của các lỗ hổng bảo mật trên mạng
Internet
Phần trình bày ở trên đã phân tích một số trường hợp có
những lỗ hổng bảo mật, những người tấn công có thể lợi dụng
những lỗ hổng này để tạo ra những lỗ hổng khác tạo thành một
chuỗi mắt xích những lỗ hổng. Ví dụ, một người muốn xâm nhập
vào hệ thống mà anh ta không có tài khoản truy nhập hợp lệ
trên hệ thống đó. Trong trường hợp này, trước tiên anh ta sẽ tìm
ra các điểm yếu trên hệ thống, hoặc từ các chính sách bảo mật,
hoặc sử dụng các công cụ dò quét thông tin trên hệ thống đó để
đạt được quyền truy nhập vào hệ thống. Sau khi mục tiêu như

nhất đã đạt được, anh ta có thể tiếp tục tìm hiểu các dịch vụ
trên hệ thống, nắm bắt được các điểm yếu và thực hiện các
hành động tấn công tinh vi hơn.
Tuy nhiên, có phải bất kỳ lỗ hổng bảo mật nào cùng nguy
hiểm đến hệ thống hay không? Có rất nhiều thông báo liên
quan đến lỗ hổng bảo mật trên mạng Internet, hầu hết trong số
đó là các lỗ hổng loại C, và không đặc biệt nguy hiểm đối với hệ
thống. Ví dụ, khi những lỗ hổng về sendmail được thông báo
trên mạng, không phải ngay lập tức ảnh hưởng trên toàn bộ hệ
thống. Khi những thông báo về lỗ hổng được khẳng định chắc
chắn, các nhóm tin sẽ đưa ra một số phương pháp để khắc phục
hệ thống.
Trên mạng Internet có một số nhóm tin thường thảo luận
về các chủ đề liên quan đến các lỗ hổng bảo mật đó là:
10 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
- CERT (Computer Emergency Reponse Team): Nhóm tin
này hình thành sau khi có phương thức tấn công Worm xuất
hiện trên mạng Internet. Nhóm tin này thường thông báo và đưa
ra các trợ giúp liên quan đến các lỗ hổng bảo mật. Ngoài ra
nhóm tin còn có những báo cáo thường niên để khuyến nghị
người quản trị mạng về các vấn đề liên quan đến bảo mật hệ
thống. Địa chỉ Web site của nhóm tin:
- CIAC (Department of Energy Computer Incident Advisory
Capability): tổ chức này xây dựng một cơ sở dữ liệu liên quan
đến bảo mật cho bộ năng lượng của Mỹ. Thông tin của CIAC
được đánh giá là một kho dữ liệu đầy đủ nhất về các vấn đề liên
quan đến bảo mật hệ thống. Địa chỉ web site của CIAC :


- FIRST (The Forum of Incident Response and Security
Teams): Đây là một diễn đàn liên kết nhiều tổ chức xã hội và tư
nhân, làm việc tình nguyện để giải quyết các vấn đề về an ninh
của

mạng

Internet.

Địa

chỉ

Web

site

của

FIRST:

. Một số thành viên của FIRST gồm:
- CIAC - NASA Automated Systems Incident Response
Capability.
- Purdue University Computer Emergency Response Team
-Stanford University Security Tea
1.5. Quá trình khai thác lỗ hổng bảo mật
Trong thế giới tin học, một lỗ hổng thường do một lỗi lập
trình, lỗi hoặc sự cố phần mềm, nằm trong một hoặc nhiều

thành phần tạo nên hệ điều hành hoặc trong chương trình cài
đặt trên máy tính. Nói chung, chúng tương tự như các hành
động bất thường của phần mềm độc hại. Một lỗ hổng bị khai
thác với mục đích xấu sẽ giúp hỗ trợ việc xâm nhập của phần
11 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
mềm độc hại vào máy tính và cho phép hacker tấn công chiếm
quyền điều khiển việc sử dụng ban đầu của ứng dụng, trong đó
có việc kích hoạt mã độc từ xa.
Những lỗ hổng này tạo điều kiện thuận lợi cho việc cài đặt
hoặc tải vi rút về máy tính. Và lỗi chưa được vá kịp thời sẽ làm
hệ thống máy tính của bạn bị hỏng, và giúp cho những kẻ có ý
đồ xấu dễ dàng đánh cắp những thông tin bí mật, quan trọng.
Chuỗi sự kiện điển hình thường là như sau:
1.

Xuất hiện một lỗ hổng có thể bị khai thác bằng các công
nghệ hiện có.

2.

Kẻ tấn công phát hiện lỗ hổng.

3.

Kẻ này lập tức tiến hành viết và phát tán công cụ khai thác lỗ
hổng này.


4.

Hãng sản xuất đồng thời phát hiện lỗi và lập tức tìm cách sửa
chữa

5.

Lỗ hổng được công bố ra ngoài

6.

Các phần mềm anti-virus được cập nhật thông tin để phát
hiện khi có các đoạn mã tìm cách khai thác lỗ hổng này

7.

Hãng sản xuất hoàn thành bản vá

8.

Hãng hoàn tất phát hành bản vá lỗi đến tất cả khách hàng
Thời điểm của đợt tấn công đầu tiên hiển nhiên nằm giữa
bước 3 và 5. Theo một nghiên cứu mới đây của đại học Carnegie
Mellon của Mỹ, giai đoạn này trung bình kéo dài 10 tháng. Tuy
nhiên không phải lúc nào tất cả người dùng cuối cũng bị nguy
hiểm trong giai đoạn này. Dạng tấn công tận dụng thời điểm
hãng sản xuất chưa phát hiện (hoặc chưa sửa được lỗi) này có
lợi thế lớn nhất là sự kín đáo – phù hợp cho việc lấy trộm thông
tin hoặc phá hoại ngầm mà không bị phát hiện. Vì vậy giai đoạn
này đối tượng bị nhắm đến thường là một nhóm người có thể

12 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
đem lại lợi ích cụ thể cho kẻ tấn công để sau đó hắn có thể rút
đi êm thấm. Mục tiêu dó có thể là các tổ chức, tập đoàn mà kẻ
này muốn phá hoại hoặc các thông tin tài khoản có thể sử dụng
để kiếm lời.
Giai đoạn từ bước 5 đến 8 mới thực sự nguy hiểm. Đây là
lúc thông tin về lỗ hổng được công bố, và cùng với các công ty
phát triển anti-virus, những tin tặc chưa biết đến lỗi này cũng có
thể tiếp cận được thông tin. Làn sóng tấn công lúc này không
còn âm thầm, mà dồn dập hơn rất nhiều. Nếu ví đợt tấn công
trước đó nguy hiểm như một nhát dao đâm sau lưng, thì đợt tấn
công lúc này như một chuỗi đòn đánh trực diện, không hiệu quả
với những ai cẩn thận đề phòng nhưng vẫn không kém phần
nguy hiểm nếu như gặp đúng những người lơ là bảo mật hoặc
nhỡ sử dụng công cụ bảo mật kém chất lượng, cập nhật chậm.

1.6. Hệ thống đánh giá lỗ hổng CVSS
Hệ thống đánh giá lỗ hổng CVSS (Common Vulnerabilities
Scoring System) là một chuẩn đánh giá mức độ nguy hiểm của
các lỗ hổng. CVSS được nghiên cứu bởi National Infrastructure
Advisory Council (NIAC) từ năm 2003/2004. Từ tháng 4/2005,
CVSS được tiếp tục nghiên cứu phát triển bởi FIRST(Forum of
Incident Response and Security Team). CVSS có 3 version, và
mới nhất là version 3.0 được phát hành vào tháng 6 năm 2015.
CVSS được sử dụng phổ biến trong các phần mềm quét lỗ hổng
hiện nay. Hệ thống này sẽ chấm điểm cho các lỗ hổng, cho phép
người sử dụng có thể dựa vào đó để đánh giá mức độ nguy hiểm

và đưa ra ưu tiên sửa lỗi. Điểm được chấm từ 0 đến 10, với 10 là
mức nguy hiểm nhất. Một lỗ hổng được CVSS chấm 3 điểm số:

13 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
cơ bản, thời gian và môi trường. Các phần mềm quét lỗ hổng
hiện nay hầu hết chỉ chấm điểm số cơ bản làm đặc trưng.

Hình 2: Đặc điểm chính của ba điểm số CVSS đưa ra

Hình 3: Biểu đồ phân bố mức độ và số lượng các lỗ hổng theo thang điểm.

CHƯƠNG 2: MỘT SỐ HÌNH THỨC TẤN CÔNG LỖ
HỔNG VÀ CÁC BIỆN PHÁP PHÒNG TRÁNH
14 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
2.1 Tấn công DoS
2.1.1 Định nghĩa về DoS
DoS (Denial of Service) là hình thức tấn công từ chối dịch
vụ, có nhiều cách để thực hiện tấn công kiểu này (VD: SYN
Flooding,..), thực chất là Hacker tận dụng lỗ hổng bảo mật nào
đó để yêu cầu Server làm việc nào đó, mục đính là không để
Server có khả năng đáp ứng yêu cầu dịch vụ của các Client
khác, như vậy gọi là "từ chối dịch vụ" của các Client khác.
Thường thì kẻ tấn công là từ một máy.
DoS có thể mô tả như hành động ngăn cản những người

dùng hợp pháp của một dịch vụ nào đó truy cập và sử dụng
dịch vụ đó. Nó bao gồm cả việc làm tràn ngập mạng, làm mất
kết nối với dịch vụ… mà mục đích cuối cùng là làm cho server
không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các
client.
2.1.2 Các dạng tấn công của DoS
a)

Tấn công băng thông
Có hai loại BandWith Depletion Attack:
+ Flood attack: Điều khiển các Agent gởi một lượng lớn
traffic đến hệ thống dịch vụ của mục tiêu, làm dịch vụ này bị
hết khả năng về băng thông.
+ Amplification attack: Điều khiển các agent hay client tự
gửi message đến một địa chỉ IP broadcast, làm cho tất cả các
máy trong subnet này gửi message đến hệ thống dịch vụ của
mục tiêu. Phương pháp này làm gia tăng traffic không cần thiết,
làm suy giảm băng thông của mục tiêu.

b)

Tấn công tràn ngập yêu cầu dịch vụ
15 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
Một kẻ tấn công hoặc nhóm zombie cố gắng làm cạn kiệt
tài nguyên máy chủ bằng cách thiết lập và phá hủy các kết nối
TCP. Nó bắt đầu gửi yêu cầu trên tất cả kết nối và nguồn gốc từ
server kết nối tốc độ cao.

c)

Tấn công tràn ngập SYN
Transfer Control Protocol hỗ trợ truyền nhận với độ tin cậy
cao nên sử dụng phương thức bắt tay giữa bên gởi và bên nhận
trước khi truyền dữ liệu. Bước đầu tiên, bên gửi gởi một SYN
REQUEST packet (Synchronize). Bên nhận nếu nhận được SYN
REQUEST sẽ trả lời bằng SYN/ACK REPLY packet. Bước cuối
cùng, bên gửi sẽ truyền packet cuối cùng ACK và bắt đầu truyền
dữ liệu.

Hình 4 :Tấn công tràn ngập SYN
d)

Tấn công tràn ngập ICMP
Kiểu tấn công ICMP là thủ phạm gửi số lượng lớn của gói
tin giả mạo địa chỉ nguồn tới server đích để phá hủy nó và gây
ra ngừng đáp ứng yêu cầu TCP/IP.

16 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
Sau khi đến ngưỡng ICMP đạt đến, các router từ chối yêu
cầu phản hồi ICMP từ tất cả địa chỉ trên cùng vùng an toàn cho
phần còn lại.
e)

Tấn công điểm nối điểm
Dùng điểm nối điểm để tấn công, kẻ tấn công chỉ đạo

client của mô hình điểm nối điểm chia sẽ file trung tâm gây
ngắt kết nối từ mạng của họ và kết nối tới website giả mạo của
victim.
Kẻ tấn công khai thác lỗ hổng tìm thấy trên mạng dùng
giao thức DC++ (kết nối trực tiếp), cho phép hoán đổi file giữa
các tin nhắn client ngay lập tức.
Dùng phương pháp này, kẻ tấn công chạy tấn công DoS rất
lớn và làm hại website.

f)

Tấn công tràn ngập ở cấp độ dịch vụ
Tấn công làm tràn ngập ở cấp độ ứng dụng, kẻ tấn công cố
gắng:





Tràn ngập ứng dụng web tới lưu lượng người sử dụng hợp lệ.
Ngắt dịch vụ cụ thể của hệ thống hoặc con người.
Làm tắt nghẽn cơ sở dữ liệu của ứng dụng kết nối bằng truy vấn
thủ công nguy hiểm SQL.
2.1.3 Cách phòng chống tấn công DoS



Phòng ngừa các điểm yếu của ứng dụng.
Các điểm yếu trong tầng ứng dụng có thể bị khai thác gây
ra lỗi tràn bộ

đệm dẫn đến dịch vụ bị chấm dứt. Lỗi chủ yếu được tìm thấy
trên các ứng dụng mạng nội bộ của Windows, trên các chương
trình WebServer, DNS hay SQL Database. Cập nhập bản vá là
một trong những yêu cầu quan trọng cho việc phòng ngừa.
Ngoài ra hệ thống cần đặc biết xem xét những yêu cầu trao đổi
17 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
nội dung giữa client và server, nhằm tránh cho server chịu sự
tấn công qua các thành phần gián tiếp.


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át
tán như TFN, tấn công dựa theo nguyên lý Smurf, UDP, SYN
hay ICMP. 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 mục đích cụ
thể. Hệ thống cần có sự giám sát và ngăn ngừa các công các
kênh phát động đó.



Ngăn chặn tấn công trên băng thông
Khi một cuộc tấn công đượ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. 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 này.



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 nay dù tác hại của nó không giảm. Điểm căn bản đề
phòng ngừa 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.
2.2 Tấn công Cross-Site Scripting (XSS)

2.2.1 Khái niệm về XSS
18 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
Cross-Site Scripting hay còn được gọi tắt là XSS là một kĩ
thuật tấn công bằng cách chèn vào các website động (ASP, PHP,
CGI, JSP ...) những thẻ HTML hay những đoạn mã script nguy
hiểm có khả năng đánh cắp hay thiết lập được những thông tin
quan trọng như cookies, mật khẩu, username…. Trong đó,
những đoạn mã nguy hiểm đựơc chèn vào hầu hết đƣợc viết
bằng các Client-Site Script như JavaScript,

JScript, DHTML và

cũng có thể là cả các thẻ HTML.
2.2.2 Mục đích của tấn công XSS



Truy cập thông tin nhạy cảm hoặc bị hạn chế.



Theo dõi thói quen lướt web của người dùng.



Thay đổi tính năng của trình duyệt.



Hủy hoại ứng dụng web.



Tấn công từ chối dịch vụ.
2.2.3 Các dạng tấn công XSS



Stored XSS
Stored XSS là dạng tấn công mà hacker chèn trực tiếp các
mã độc vào cơ sở dữ liệu của website. Dạng tấn công này xảy ra
khi các dữ liệu được gửi lên server không được kiểm tra kỹ
lưỡng mà lưu trực tiếp vào cơ sở dữ liệu. Khai người dùng truy
cập trực tiếp vào trang web này thì những đoạn script độc hại
sẽ được thực thi chung với quá trình load trang web.


HACKER
4. Dữ liệu được
gửi về hacker
1. Chèn các đoạn
19 | P a g e
USER

2. User truy cập
trang web chứa mã độc

script

độc

server
SERVER

hại

vào


Tìm hiểu về các lỗ hổng bảo mật hệ thống

3. Server gửi lại
trang web kèm theo mã
độc

Hình 5 :Mô hình tấn công bằng Stored XSS


Như hình trên, ta có thể thấy được quá trình tấn công như
sau:


Trước tiên, hacker sẽ khai thác lỗi Stored XSS trên website bằng
cách tìm
những form (khung đăng ký, khung comment, khung liên hệ
…) không được kiểm tra kỹ dữ liệu đầu vào và tiến hành chèn
các đoạn mã độc vào cơ sở dữ liệu.



Sau đó khi người dùng truy cập vào trang web có chứa dữ liệu
liên quan đến
cơ sở dữ liệu này thì ngay lập tức các đoạn script độc hại sẽ
được chạy chung với trang web.



Khi các đoạn script được thực thi, tùy vào mục đích của hacker
các đoạn script sẽ gửi về cho hacker những thông tin như
cookie, session token … đến đây coi như quá trình tấn công của
hacker thành công.



Reflected XSS
Reflected XSS là dạng tấn công thường gặp nhất trong các
loại hình XSS.

Với Reflected, hacker không gửi dữ liệu độc hại lên server
nạn nhân, mà gửi trực tiếp link có chứa mã độc cho người dùng,
20 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
khi người dùng click vào link này thì trang web sẽ được load
chung với các đoạn script độc hại. Reflected XSS thường dùng
để ăn cắp cookie, chiến session … của nạn nhân hoặc cài
keylogger, trojan … vào máy tính nạn nhân.

4. Các dữ liệu
HACKER

được gửi về cho hacker

2. User click vào URL

USER

có chứa mã độc

1. Hacker gửi URL có

SERVER

chứa mã độc cho user

Hình 6: Mô hình tấn công bằng Reflected XSS


Như hình trên, ta có thể thấy được quá trình tấn công như
sau:


Trước tiên, hacker sẽ gửi cho nạn nhân 1 đường link có chứa mà
độc

đi

kèm,



dụ:

/>
id=<script>alert(document.cookie)</script> nhưng đường link
trên sẽ khiến nạn nhân chú ý và nghi ngờ, nên khi gửi đường
link trên cho nạn nhân, hacker có thể sẽ mã hóa nó thành các


tự

lạ

khó

đọc,




dụ:

http%3A%2F%2Fvictim.com

%2Findex.php%3Fid%3D%3Cscript%3Ealert%2
document.cookie%29%3C%2Fscript%3E
như vậy nạn nhân sẽ không nghi ngờ đường link lạ và click
vào link.

21 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống


Khi nạn nhân click vào đường link được hacker gửi, trình duyệt
sẽ load trang web và thực thi các đoạn script kèm theo, sau đó
gửi về cho hacker những thông tin của nạn nhân.
2.2.4 Cách phòng chống
Với những dữ liệu, thông tin nhập của người dùng, người
thiết kế ứng dụng Web cần phải thực hiện vài bước cơ bản sau:



Tạo ra danh sách những thẻ HTML được phép sử dụng.



Xóa bỏ thẻ <script>.




Lọc ra bất kì một đoạn mã JavaScript/ Java/ VBScript /ActiveX/
Flash
Relatedb nào.



Lọc dấu nháy đơn hay kép.



Lọc kí tự Null.



Xóa những kí tự “ > ”, “ < ”



Vẫn cho phép nhập những kí tự đặc biệt nhưng sẽ được mã hóa
theo chuẩn riêng.
Đối với người dùng, cần cấu hình lại trình duyệt để nhắc
nhở người dùng có chothực thi ngôn ngữ kịch bản trên máy của
họ hay không? Tùy vào mức độ tin cậymà người dùng sẽ quyết
định.
2.3 Tấn công SQL Injection
2.3.1 Khái niệm SQL Injection
SQL Injection (còn gọi là SQL Insertion) là một hình thức

tấn công trong đó truy vấn SQL của ứng dụng đã bị chèn thêm
các tham số đầu vào “không an toàn” do người dùng nhập vào,
từ đó mã lệnh được gửi tới máy chủ database để phân tích cú
pháp và thực thi.
22 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
Hình thái chính của SQL Injection bao gồm việc chèn trực
tiếp mã vào các tham số mà sẽ được ghép vào các câu lệnh SQL
(quá trình này gọi là sinh truy vấn SQL động) để tạo thành truy
vấn của ứng dụng gửi tới máy chủ database. Một cách tấn công
khác ít trực tiếp hơn, đó là chèn mã độc vào các xâu mà đích
đến là việc lưu trữ trong các bảng hoặc từ điển dữ liệu.
2.3.2 Các dạng tấn công SQL Injection
a)

Dạng tấn công vượt qua kiểm tra lúc đăng nhập.
Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các
trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác
trên cơ sở dữ liệu của ứng dụng web.
Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm
tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết
định cho phép hay từ chối thực hiện tiếp.
- Ví dụ: Nếu hacker nhập vào chuỗi ' OR 1=1 Câu truy vấn
sẽ là:
SELECT * FROM T_USERS WHERE USR_NAME ='' OR 1=1
and USR_PASSWORD= ‘' OR 1=1
1. Kiểm tra USR_NAME =‘’ đúng hay sai? --> Sai
2. Kiểm tra 1=1 đúng hay sai --> Đúng

3. Kiểm tra USR_PASSWORD =‘’ đúng hay sai? --> Sai
4. Kiểm tra 1=1 đúng hay sai --> Đúng
P (1) or (2) -> Đúng ,

(3) or (4) -> Đúng

Câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi
của T_USERS và đoạn mã tiếp theo xử lí người dùng đăng nhập
bất hợp pháp này như là người dùng đăng nhập hợp lệ.
- Tương tự như vậy, hacker có thể lợi dụng và làm những
điều tồi tệ hơn trên chính website của bạn …
23 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
b)

Tấn công sử dụng câu lệnh SELECT.
Dạng tấn công này phức tạp hơn. Để thực hiện được kiểu
tấn công này, kẻ tấn công phải có khả năng hiểu và lợi dụng các
sơ hở trong các thông báo lỗi từ hệ thống để dò tìm các điểm
yếu khởi đầu cho việc tấn công.
Xét một ví dụ rất thường gặp trong các website về tin tức.
Thông thường, sẽ có một trang nhận ID của tin cần hiển thị rồi
sau đó truy vấn nội dung của tin có ID này. Ví dụ:
/>Lúc này Hacker sẽ thêm dấu nháy đơn ‘ sau link, nếu có lỗi
thì site sẽ báo như thế này:

Hình 7:Website bị lỗi sau khi nhúng dấu phẩy (‘)


Khi đó hacker sẽ lợi dụng lỗi của site sẽ khai thác và lấy
thông tin như: table, columns …, hoặc hiệu chỉnh, xóa dữ liệu
bằng các câu lệnh SQL.
Tương tự như trên, tin tặc có thể lợi dụng sơ hở trong câu
truy vấn SQL để nhập vào trường tên tác giả bằng chuỗi giá trị:
‘ UNION SELECT ALL SELECT OtherField FROM OtherTable
WHERE ' '='

(*)

Lúc này, ngoài câu truy vấn đầu không thành công,
chương trình sẽ thực hiện thêm lệnh tiếp theo sau từ khóa
UNION nữa.
c)

Tấn công sử dụng câu lệnh INSERT.
Thông thường các ứng dụng web cho phép người dùng
đăng kí một tài khoản để tham gia. Chức năng không thể thiếu
là sau khi đăng kí thành công, người dùng có thể xem và hiệu
24 | P a g e


Tìm hiểu về các lỗ hổng bảo mật hệ thống
chỉnh thông tin của mình. SQL injection có thể được dùng khi hệ
thống không kiểm tra tính hợp lệ của thông tin nhập vào.
Một câu lệnh INSERT có thể có cú pháp dạng:
INSERT INTO TableName
VALUES('Value One', 'Value Two', 'Value Three').
- Nếu hacker nhập vào tại: Value One chuỗi:
‘ + SELECT TOP 1 FieldName FROM TableName + ’

Lúc này câu truy vấn sẽ là:
INSERT INTO TableName
VALUES('

'

+

(SELECT

TOP

1

FieldName

FROM

TableName) + ' ', 'abc', 'def')
Lúc thực hiện lệnh xem thông tin, xem như bạn đã yêu cầu
thực hiện thêm một lệnh nữa đó là:
SELECT TOP 1 FieldName FROM TableName
Vậy tất cả những dữ liệu nằm trên website của bạn, hacker
đều có thể lấy cắp được.
<%
strSQL = "INSERT INTO TableName VALUES(' " & strValueOne & " ', ' " _
& strValueTwo & " ', ' " & strValueThree & " ') "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..."


Set objRS = Nothing
%>

Hình 8:Một đoạn mã ví dụ tấn công bằng câu lệnh Insert;

d)

Dạng tấn công Stored – Procedures

25 | P a g e


×