Nghiên cứu bảo đảm an toàn thông tin bằng kiểm soát Lỗ hổng trong dịch vụ web - Pdf 26

1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
oo0oo
NGHIÊN CỨU BẢO ĐẢM AN TOÀN THÔNG TIN BẰNG
KIẾM SOÁT “LỖ HỔNG” TRONG DỊCH VỤ WEB

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Nghành: Công Nghệ Thông Tin HẢI PHÒNG-2007 MỤC LỤC
Bảng chú giải từ viết tắt……………………………………………………… 3
Lời mở đầu…………………………………………………………………… 4
2
Chương 1: KHÁI NIỆM CƠ SỞ…………………………………………… 7
2.5. TẤ
N CÔNG “TỪ CHỐI DỊCH VỤ”………………………………….47
2.5.1. Khái niệm DoS……………………………………………………… 47
a/ Lợi dụng TCP thưc hiện Synflood………………………………….49
3
b/ Tấn công vào băng thông………………………………………… 50
c/ DdoS……………………………………………………………… 52
2.5.2. Biện pháp phòng
tránh…………………………………………………53
2.6. NGÔN NGỮ PHÍA TRÌNH CHỦ…………………………………… 54
2.7. TẤN CÔNG “TRÀN BỘ ĐỆM”………………………………………56

Chương 3: TỔNG KẾT KỸ THUẬT TẤN CÔNG CỦA HACKER……… 58
3.1. THU THẬP THÔNG TIN Ở MỨC HẠ TẦNG CỦA MỤC TIÊU… 58
3.2. KHẢO SÁT ỨNG DỤNG WEB………………………………………61
Ví dụ thử nghiệm…………………………………………………………… 63

dbo Data base owner Người sở hữu cơ sở dữ liệu
Sa System Administrator Người quản trị hệ thống
IIS Internet Information Server Dịch vụ thông tin mạng
OWASP The open web Appllication
standard project
Dự án ứng dụng web
HTML Hyper Text Markup Language Ngôn ngữ đánh dấu siêu văn bản
IIS Internet Infomation Server

LỜI MỞ ĐẦU Ngày nay, khi Internet được phổ biến rộng rãi, các tổ chức, cá nhân đều có
5
nhu cầu giới thiệu thông tin của mình trên xa lộ thông tin cũng như thực hiện
các phiên giao dịch trực tuyến. Vấn đề nảy sinh là khi phạm vi ứng dụng của
các ứng dụng Web ngày càng mở rộng thì khả năng xuất hiện lỗi
(lỗ hổng) và bị tấn công càng cao, trở thành đối tượng cho nhiều người tấn công
với các mục đích khác nhau. Đôi khi, cũng chỉ đơn giản là để thử
tài hoặc đùa
bỡn với người khác.

Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên đó,
số lượng các vụ tấn công trên Internet cũng tăng theo cấp số nhân. Trong khi

của IBM tháng 3/2001, hai hacker đã tìm thấy lỗ hổng trên ứng dụng mà bất
cứ ai với một trình duyệt Web cũng có thể lấy tài khoản của người dùng, thậm
chí cả người quản trị).

Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các
phươ
ng pháp tấn công ngày càng tinh vi và có tổ chức. Mặt khác, việc quản trị
các hệ thống mạng đòi hỏi nhà quản trị hệ thống có kiến thức và kinh nghiệm
về hệ thống mạng chắc chắn, do đó sự yếu kém trong quản lý sẽ tạo nhiều điều
kiện cho các hacker khai thác.

Cũng theo CERT, những cuộc tấn công thời kỳ 1988-1989 chủ yếu là
đoán “tên người sử dụng/mậ
t khẩu” (UserID/password) hoặc sử dụng lỗi của
các chương trình và hệ điều hành (security hole) làm vô hiệu hệ thống bảo vệ,
tuy nhiên các cuộc tấn công vào thời gian gần đây còn bao gồm cả các thao tác
như giả mạo địa chỉ IP, theo dõi thông tin truyền qua mạng, chiếm các
phiên làm việc từ xa (telnet hoặc rlogin), cài trojan hay worm để kiểm soát
hay điều khiển máy tính…vì thế, nhu cầu bảo vệ thông tin trên Internet là cần
thiết nhằm mục đích b
ảo vệ dữ liệu, bảo vệ thông tin người dùng và bảo vệ hệ
thống.

Khi nói đến vấn đề bảo mật, hầu hết các chuyên gia bảo mật đều chú trọng
đến sự an toàn của hệ thống mạng và hệ điều hành. Để bảo vệ hệ thống, phương
pháp thường được chọn là sử dụng firewall. Tuy nhiên, theo tuyên bố của
7
CSI/FBI : 78% nơi bị hại có sử dụng firewall và 59% thì bị tấn công thông qua
Internet, cụ thể hơn là theo báo cáo của CSI/FBI Computer Crime và Security
Survey thì tổng số thiệt hại do những ứng dụng Web bị tấn công từ năm 1997

Bảo vệ web không còn là khái niệm xa lạ đối với những người lập trình
web, những nhà quản trị mạng,…
Mục tiêu bảo vệ web gồm có:
Bảo mật: Thông tin không được đọc trái phép.
Bảo toàn: Thông tin không bị sửa đổi một cách trái phép.
Bảo đảm tính sẵn sàng:
Người dùng hợp pháp có quyền truy cập hay sử dụng thông tin.

Hai đối tượng chính trong sử dụng dịch vụ web là người dùng và người
quản trị h
ệ thống.
Phía người dùng dịch vụ web, an toàn trên mạng trước hết là yêu cầu đặt
ra với server. Thứ nhất, những yêu cầu gửi đến server phải được thưc thi và phản
hồi trong thời gian nhất định (tính sẵn sàng). Thứ hai, thông tin gửi tới phải được
đảm bảo không bị virut hay bị sửa đổi bởi tác nhân khác (tính toàn vẹn). Thứ ba,
server không phổ biến thông tin cá nhân trên mạng (tính bí mật).
Phía nhà quản trị hệ
thống, họ có những yêu cầu cũng khá giống với
người dùng nhưng nhìn dưới một góc độ khác. Thứ nhất, họ phải đảm bảo rằng
người dùng không thể xâm nhập vào server để thay đổi nội dung của website
(tính toàn vẹn). Thứ hai, người dùng không thể truy cập vào các thông tin không
thuộc quyền của họ (tính bí mật và bắt buộc). Thứ ba, người dùng không thể tấn
công server làm nó không thể phục vụ người dùng khác (tính sẵn sàng). Th
ứ tư,
người dùng đã được nhận dạng phải chịu trách nhiệm và không thể chối bỏ hành
động của mình (tính xác thực).
 Đối tượng tấn công mạng (Intruder):

ụ cung cấp,…
Mức độ ảnh hưởng của các lỗ hổng là khác nhau:
có lỗ hổng chỉ ảnh hưởng tới chất lượng dịch vụ, có lỗ hổng ảnh hưởng
sâu sắc tới toàn bộ hệ thống,….
 Một số hình thức tấn công mạng
10
Dựa vào lỗ hổng bảo mật trên mạng:
lỗ hổng này thường là những điểm yếu của dịch vụ mà hệ thống cung cấp.
Sử dụng các công cụ để phá hoại:
ví dụ các chương trình phá khóa mật khẩu để truy cập bất hợp pháp vào
chương trình.
Kẻ tấn công có thể kết hợp cả hai hình thức trên để đạt được mục đích.
Tùy thuộc vào cách t
ấn công mà mức nguy hại tới hệ thống là khác nhau.

Các mức tấn công hệ thống:
Mức 1: Tấn công vào một số dịch vụ mạng: web, email,… dẫn đến
Nguy cơ lộ thông tin về cấu hình mạng.

Mức 2: Kẻ phá hoại dùng tài khoản của người dùng hợp pháp để chiếm
đoạt tài nguyên hệ thống. Kẻ phá hoại có thể thay đổi quyền truy nhập qua các
lỗ hổng bảo m
ật hoặc đọc các thông tin trong tập tin liên quan đến truy nhập hệ
thống như: /etc/passwd (Linux) và SAM file (windows).

Mức 3,4,5: Kẻ phá hoại không sử dụng quyền của người dung thông
thường, mà có thêm một quyền cao hơn với hệ thống như quyền kích hoạt một
số dịch vụ, xem các thông tin khác trên hệ thống.

Mức 6: Kẻ tấn công chiếm được quyền root hoặc admin trên hệ thống.

người không có nhiệm vụ vào phòng máy, dùng các hệ thống khóa trên máy
tính, cài các hệ thống báo động khi có truy nhập trái phép.
Lớp thứ năm: cài đặt các hệ thống tường lửa, nhằm ngăn chặn các truy
nhập trái phép và cho phép lọc các gói tin không muốn gửi đi, hoặc nhận vào vì
lý do nào đó.
 Nguyên nhân của các vụ tấn công:
12
Có rất nhiều nguyên nhân dẫn đến tình trạng bảo mật kém của ứng dụng
web. Tuy nhiên ta có thể tổng kết một số nguyên nhân chính:
+ Các ứng dụng web được viết dựa trên cơ chế bảo mật client_server chuẩn
đơn giản. Khi xây dựng giao thức HTTP, người ta chưa tính đến vấn đề bảo mật
cho giao thức này. Do vậy việc xuất hiện nhiều lỗ hổng bảo mật là điều d
ễ hiểu.
+ Sự phức tạp của các ứng dụng web làm cho việc viết các đoạn mã bảo mật rất
khó khăn. Các ngôn ngữ lập trình mới ra đời, các chuẩn về định dạng dữ liệu,…
làm cho các ứng dụng web thêm phức tạp.
+ Những người phát triển web tập trung nhiều vào chức năng và tốc độ chứ
không phải bảo mật. Các bước xây dựng một ứng dụng web là
phân tích- thiết
kế- lập trình- kiểm thử. Ở các bước này, vấn đề bảo mật thông thường chỉ được
quan tâm ở giai đoạn cuối. Ở giai đoạn này nếu phát hiện ra các lỗ hổng về bảo
mật thì cũng chỉ vá lỗi chứ không giải quyết triệt để các lỗi đó.
+ Lỗi nằm trong các dịch vụ nền tảng web như: hệ điều hành, trình duy
ệt web,
các công cụ lập trình web. Theo thống kê của IBM’s waston Research Lab, cứ
1500 dòng mã lệnh có một lỗ hổng được tìm thấy. Hệ điều hành winXP có tới
45 000 000 dòng lệnh (có 30 000 lỗ hổng), còn win2000 có 35 000 000 dòng mã
(khoảng 23 000 lỗ hổng)
+ Nội dung trang web thường xuyên thay đổi.
+ Nhà quản trị mạng còn yếu kém về năng lực và sử dụng dịch vụ.

Một ứng dụng web thường có kiến trúc:

Hình 1: Kiến trúc của ứng dụng Web
Lớp trình bày: Lớp này có nhiệm vụ hiển thị dữ liệu cho người dùng, ngoài
14
ra còn có thể có thêm các ứng dụng tạo bố cục cho trang web.
Lớp ứng dụng: là nơi xử lý của ứng dụng Web. Nó sẽ xử lý thông tin người
dùng yêu cầu, đưa ra quyết định, gửi kết quả đến “lớp trình bày”. Lớp
này thường được cài đặt bằng các kỹ thuật lập trình như CGI, Java, PHP hay
ColdFusion, được triển khai trên các trình chủ như IBM WebSphere, WebLogic,
Apache, IIS…
Lớp dữ liệu: thường là các hệ quản trị CSDL (DBMS-database
management system) chịu trách nhiệm quản lý các file dữ liệu và quyền sử
dụng.

1.2.2. Hoạt động
Hình 2: Mô hình hoạt động của một ứng dụng Web

Mô hình hoạt động của một ứng dụng web thường có:
¾ Trình khách (trình duyệt (client)): Internet Explorer, Netscap Navigator.
¾ Trình chủ (Server): Apache, IIS, ….
¾ Hệ quản trị CSDL : SQL Server, MySQL, Access….
Mô tả hoạt động:
15

1.3. MỘT SỐ CÔNG CỤ BẢO VỆ WEB
16
1.3.1. Tường lửa (firewall)
Tường lửa là một công cụ được tích hợp vào hệ thống mạng để chống lại
sự truy cập trái phép nhằm bảo vệ các nguồn thông tin nội bộ cũng như hạn chế
sự xâm nhập vào hệ thống của một số thông tin khác không mong muốn.
Internet FireWall là một tập hợp thiết bị (bao gồm phần cứng và phần
mềm) giữa mạng c
ủa một tổ chức, một công ty, hay một quốc gia (Intranet) và
Internet.

Hình 3: Truy cập thông qua tường lửa
Chức năng:
Tường lửa quyết định những dịch vụ nào từ bên trong được phép truy cập
từ bên ngoài, những người nào từ bên ngoài được phép truy cập đến các dịch vụ
bên trong, và cả những dịch vụ nào bên ngoài được phép truy cập bởi những
người bên trong.

FireWall bao gồm :
Một hoặc nhiều hệ thống máy chủ kết nối với các bộ định tuyến (router)
hoặc có chức năng router.
Các phần mềm quản lí an ninh chạy trên hệ thống máy chủ. Thông thường
là các hệ quản trị xác thực (Authentication), cấp quyền (Authorization) và kế
toán (Accounting).

Nhiệm vụ cơ bản của FireWall là bảo vệ:
17
+ Dữ liệu: Những thông tin cần được bảo vệ do những yêu cầu: Bảo mât, tính
toàn vẹn, tính kịp thời.
+ Tài nguyên hệ thống.

VPN gồm các máy tính kết nối với nhau qua mạng Internet, nhưng sử
dụng các biện pháp xác thực bằng mật khẩu và mã hoá dữ liệu để tạo thành một
mạng riêng biệt giả lập.
Hệ thống VPN phân chia một cách logic. Hệ thống mạng riêng được xây
dựng trên nền tảng hạ tầng chung, hay hạ tầng công cộng ứng dụng các công
nghệ đảm bảo tự triển khai được sự phân chia tài nguyên, và sự an toàn c
ủa dữ
liệu, hoặc do nhà cung cấp dịch vụ cung cấp. Mạng VPN có thể xây dựng trên
Internet hoặc trên giao thức IP, hay hạ tầng ATM của nhà cung cấp dịch vụ. Hình 4: cấu trúc mạng riêng ảo

VPN thực hiện kết nối điểm-điểm, các dòng dữ liệu và thông tin liên kết
người dùng được truyền trên mạng chung trong một ống ảo (tunnel). Ống ảo
giữa hai người dùng xuất hiện như một liên kết riêng -> thông tin an toàn và bảo
mật hơn khi truyền trên nó. VPN không duy trì liên kết cố định giữa các điểm
cuối, kết nối chỉ tạo khi cần, khi không cần nữa thì mạng lại dành dung lượng và

(/tintuc/homnay.asp) và phiên bản HTTP/1.1.
Accept-Language: Cho biết ngôn ngữ dùng trong trang web.
Host: Cho biết địa chỉ của máy chủ.
Referer: Cho biết địa chỉ của trang web tham chiếu tới.
User-Agent: thông tin từ máy người dùng.
Accept-Encoding: kiểu mã hóa dữ liệu.
Header của HTTP request sẽ kết thúc bằng một dòng trống.

20
Header trả lời:

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 13 Jul 2000 05:46:53 GMT
Content-Length: 2291

Content-Type: text/html
Set-Cookie:
ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ;
path=/
Cache-control: private

<HTML>
<BODY>
Dòng đầu là dòng trạng thái, để cho biết phiên bản HTTP được dùng
(HTTP/1.1), mã trạng thái (200) và trạng thái (OK).
Server: trình duyệt máy chủ sử dụng.
Date: thời gian trả lời yêu cầu.
Tiếp theo là một dòng trống để báo hiệu kết thúc header, tiếp theo là phần
thân của HTTP response.

chỉnh sửa thuộc tính form, phá hoại bằng cách nhằm vào CSV hay SSI, sau đó
gửi đi. Phương pháp kiểm tra này thất bại khi hacker có thể sử
a lại Referer
header, giống như được gửi từ trang web hợp lệ:
Referer: www.redhat.com/login.asp

Biện pháp khắc phục

+ Không tin tưởng vào HTTP header nếu chưa có các biện pháp an toàn.
+ Với các header gửi từ trình chủ thì có thể được mã hoá.
+ Với các header gửi từ trình khách thì không nên dùng các tham số
như referer,… để thực hiện các biện pháp an toàn. 22
2.1.2. Chỉnh sửa địa chỉ URL (URL Malipulation)
Khái niệm:
Khi nhập một form HTML thì kết quả sẽ được gửi đi theo hai
cách: GET hay POST. Nếu dùng GET, thì tất cả các tên biến và giá trị của
nó sẽ xuất hiện trong chuỗi URL.
Ví dụ 3: Có một trang web ứng dụng cho phép thành viên được thay đổi
mật khẩu.

Với:

trình duyệt nhưng người dùng có thể tìm thấy nội dung của nó trong “view
source”, đây là điểm yếu để hacker lợi dụng bằng cách lưu nội dung trang
web xuống trình duyệt, thay đổi nội dung trang và gửi đến trình chủ.

Ví dụ 4:
Form gốc có n
ội dung như sau:

<form action=" method="POST">
<input type="hidden" name="giaca" value="99.99">
</form>

Nếu không có sự thay đổi nào thì yêu cầu đến trình chủ có nội dung :

POST /cuahang.pl HTTP/1.0
giaca=99.99

Nhưng nếu hacker gán một giá trị khác cho trường “giaca” :

<form action=" method="POST">


một hidden field gọi là “Chuỗi mẫu”. Khi giá trị trong form được gửi đi, các thao
tác như trên được thực hiện lại với cùng một khoá mà ta định trước. Sau đó đem
so sánh với “Chuỗi mẫu”, nếu chúng không khớp nhau thì chứ
ng tỏ giá trị trong
biểu mẫu đã bị thay đổi.
Dùng một sessionID để tham chiếu đến thông tin được lưu trữ trên
CSDL.
+ Non-persistent cookie thì được lưu trữ trên bộ nhớ RAM của máy khách
và sẽ bị hủy khi đóng trang web hay nhận được lệnh hủy từ trang web.
+ Secure cookie chỉ có thể được gửi thông qua HTTPS (trình chủ s
ẽ cung
cấp chế độ truyền bảo mật.).
+ Non-Secure cookie được gửi qua hai giao thức HTTPS hoặc HTTP.

Trích đoạn Tấn công vượt qua kiểm tra đăng nhậ p Tấn công kiểu “ấn định phiên làm việ c”
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status