Tải bản đầy đủ (.doc) (119 trang)

Nghiên cứu xây dựng website và một số biện pháp bảo mật

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 (4.3 MB, 119 trang )

Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

MỤC LỤC
MỤC LỤC.........................................................................................................1
DANH MỤC HÌNH ẢNH...................................................................4
LỜI MỞ ĐẦU...................................................................................................8
CHƯƠNG I.......................................................................................10
TỔNG QUAN WEBSITE, CẤU TRÚC, CÁC PHƯƠNG PHÁP
XÂY DỰNG, CÁC NGUY CƠ MẤT AN TOÀN..................................10
1.1.Kiến trúc, thành phần và hoạt động của website.........................10
1.1.2.1 Dưới góc độ kỹ thuật.............................................................10
1.1.2.2 Dưới góc độ chức năng.........................................................12
1.1.3.1 CMS (Content Management System)...................................12
1.1.3.2 Webmail................................................................................14
1.1.3.3 Shopping Carts......................................................................14
1.1.3.4 Portal.....................................................................................15
1.1.4.1 Thành phần............................................................................15
1.1.4.2 Mô tả hoạt động.....................................................................17
1.2.Các điểm yếu an ninh mạng và nguy cơ mất an toàn..................18
CHƯƠNG II....................................................................................................32
KẾT HỢP JOOMLA VÀ VIRTUEMART ĐỂ XÂY DỰNG WEBSITE ỨNG
DỤNG.............................................................................................................32
2.1. Tổng quan về Joomla! Các thành phần chức năng, cài đặt và sử
dụng website............................................................................................32
2.1.3.1 Download & Upload bộ cài đặt Joomla!...............................35
2.1.3.2 Chọn ngôn ngữ cài đặt...........................................................35
2.1.3.3 Kiểm tra cấu hình hệ thống...................................................36
1




Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

2.1.3.4 Thông tin bản quyền..............................................................37
2.1.3.5 Thiết lập các thông số để kết nối tới Cơ sở dữ liệu...............38
2.1.3.6 Thiết lập các thông số FTP....................................................38
2.1.3.7 Thiết lập cấu hình site Joomla...............................................39
2.1.4.1 Front-end...............................................................................41
2.1.4.2 Back-end................................................................................42
2.1.5.1 Template................................................................................43
2.1.5.2 Global Configuration.............................................................45
2.1.5.3 User Manager........................................................................48
2.1.5.4 Media Manager.....................................................................49
2.1.5.6 Các thành phần mở rộng (Extension)....................................50
2.1.6. 1 Thêm một Section................................................................55
2.1.6.2 Thêm một Category...............................................................56
2.1.6.3 Thêm một bài viết (Content Item).........................................58
2.2. VỉruteMart..................................................................................59
2.2.2.1 Cấu hình Virtuemart..............................................................60
2.2.2.2 Quản lý User..........................................................................64
2.2.2.3 Quản lý thông tin cửa hàng...................................................65
2.2.2.4 Quản lý danh sách danh mục sản phẩm................................67
2.2.2.5 Quản lý danh sách sản phẩm.................................................68
2.2.2.6 Quản lý danh sách hóa đơn bán hàng....................................71
2.2.2.7 Quản lý đại lý........................................................................72
2.2.2.8 Xem báo cáo..........................................................................72

2.2.2.9 Quản lý thuế..........................................................................73
2.2.2.10 Quản lý nhà sản xuất...........................................................74
2.3.Website bán hàng trực tuyến.......................................................75
2.4.Một số lỗi website Joomla thường gặp.......................................81
2


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

CHƯƠNG III...................................................................................................88
MỘT SỐ GIẢI PHÁP AN TOÀN CHO WEBSITE.......................................88
3.1.Các lỗ hổng bảo mật Joomla! Và giải pháp khắc phục...............88
...........................................................................................................91
3.2. Các giải pháp phòng thủ mềm cho website Joomla...................96
3.2.1 Bảo mật cho file "configuration.php" khỏi các truy nhập trái
phép..........................................................................................................96
3.2.2.1 Bảo mật trang quản trị bằng cookie......................................97
3.2.2.2 Bảo mật trang quản trị bằng mật khẩu..................................98
3.3. Các giải pháp công nghệ để bảo vệ ứng dụng web..................102
3.4. Demo tận dụng lỗ hổng bảo mật của Joomla...........................111
KẾT LUẬN...................................................................................................117
TÀI LIỆU THAM KHẢO.............................................................................119
Tiếng Việt........................................................................................119
Tiếng Anh........................................................................................119

3



Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

DANH MỤC HÌNH ẢNH
.........................................................................................................................16
Hình 1- 1 Kiến trúc 3 lớp của web application................................................16
Hình 1- 2 Kiến trúc n lớp của web application................................................17
Hình 1- 3 Sử dụng Proxy để thay đổi tham số................................................19
Hình 1- 4 Quản lý kiểm soát truy cập tài nguyên trung tâm...........................21
Hình 1- 5 Tấn công XSS.................................................................................23
Hình 1- 6 Lỗi tràn bộ đệm...............................................................................24
Hình 1- 7 Lỗi SQL injection............................................................................26
Hình 1- 8 Báo lỗi thiếu an toàn.......................................................................27
Hình 1-9 Lưu trữ thiếu an toàn........................................................................28
Hình 1-10 Tấn công từ chối dịch vụ................................................................30
Hình 2-1 Cấu trúc 1 website Joomla...............................................................33
Hình 2-2 Sự phát triển của Joomla..................................................................34
Hình 2-3 Cài đặt Joomla – chọn ngôn ngữ......................................................36
Hình 2-4 Kiểm tra cấu hình hệ thống..............................................................37
Hình 2-5 Thông tin bản quyền........................................................................37
Hình 2-6 Chọn cơ sở dữ liệu...........................................................................38
Hình 2-7 Thiết lập thông số FTP.....................................................................39
Hình 2-9 Hoàn thành quá trình cài đặt............................................................41
Hình 2-10 Font-end.........................................................................................42
Hình 2-11 Back-end........................................................................................43
Hình 2-12 Cài đặt phần mở rộng.....................................................................44
Hình 2-13 Cài đặt phần mở rộng 2..................................................................44

4


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Hình 2-14 Cài đặt cấu hình Template.............................................................45
Hình 2-15 Configuration.................................................................................45
Hình 2-17 Global Configuration System.........................................................47
Hình 2-18 User Manager.................................................................................48
Hình 2-19 Media Manager .............................................................................49
Hình 2-21 Các vị trí Module trên template.....................................................52
Hình 2-22 Cài đặt Extension...........................................................................54
Hình 2-23 Cách tổ chức nội dung trong Joomla..............................................55
Hình 2-24 Virtuemart......................................................................................59
Hình 2-26 Giao diện Virtuemart simple layor.................................................60
Hình 2-27 Giao diện Virtuemart mở rộng.......................................................60
Hình 2-28 Configuration.................................................................................61
Hình 2-29 Quản lý user...................................................................................65
Hình 2-30 Quản lý thông tin chi tiết cửa hàng................................................65
Hình 2-31 Quản lý sản phẩm...........................................................................67
Hình 2-32 Danh sách sản phẩm.......................................................................68
Hình 2-32 Thêm mới sản phẩm.......................................................................68
Hình 2-33 Nội dung sản phẩm........................................................................69
Hình 2-34 Hiển thị sản phẩm..........................................................................70
Hình 2-35 Trạng thái sản phẩm.......................................................................70
Hình 2-36 các thông số sản phẩm...................................................................70
Hình 2-37 Hình ảnh sản phẩm.........................................................................71

Hình 2-38 Quản lý danh sách đơn đặt hàng....................................................71
Hình 2-39 Quản lý đại lý.................................................................................72
5


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Hình 2-40 Xem báo cáo...................................................................................72
Hình 2-41 Thêm thuế suất...............................................................................73
Hình 2-42 Quản lý nhà sản xuất......................................................................74
Hình 2-43 Menu chính....................................................................................75
Hình 2-44 Giao diện đa ngôn ngữ...................................................................75
Hình 2-45 Giỏ hàng.........................................................................................76
Hình 2-46 Chức năng tìm kiếm.......................................................................76
Hình 2-47 Danh mục sản phẩm.......................................................................77
Hình 2- 48 Thống kê truy cập.........................................................................78
HÌnh 2-49 Module thăm dò ý kiến..................................................................78
Hình 2-51 Giao diện website bằng tiếng Việt.................................................79
Hình 2-52 Giao diện website bằng tiếng Anh.................................................80
Hình 3-1 : Tiền tố mặc định ‘jos_’ khi cài đặt cơ sở dữ liệu...........................89
Hình 3-2 : tiền tố ‘jos_’ trong các bảng cơ sở dữ liệu.....................................90
Hình 3-3 Export cơ sở dữ liệu.........................................................................91
Hình 3-4 Save file cơ sở dữ liệu......................................................................91
Hình 3-5 Replace toàn bộ tiền tố ‘jos_’..........................................................91
Hình 3-6 : Tạo cơ sở dữ liệu mới ‘tientomoi’.................................................92
Hình 3-7 : Import cơ sở dữ liệu.......................................................................92
Hình 3-8 : Cơ sở dữ liệu mới...........................................................................93

Hình 3-9 : config cơ sở dữ liệu........................................................................94
Hình 3-10 Giải pháp bảo vệ cho doanh nghiệp vừa và nhỏ..........................103
Hình 3-11 Giải pháp bảo vệ cho doanh nghiệp lớn.......................................104
Hình 3- 12 : Giải pháp bảo vệ cho Web Security Portal...............................106
6


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Hình 3-13 Giải pháp bảo vệ cho ứng dụng web - hosting.............................109

7


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

LỜI MỞ ĐẦU
Ngày nay thương mại điện tử đang phát triển nhanh chóng và mạnh mẽ,
trở thành xu thế mới thay thế các hình thức kinh doanh truyền thống. Rất
nhiều doanh nghiệp hiện đang sử dụng ứng dụng web để cung cấp dịch vụ
thương mại trực tuyến, kết nối khách hàng, đối tác và nhân viên một cách
hiệu quả nhất.
Bên cạnh đó là những nguy cơ đe dọa tới sự an toàn của hệ thống và dữ
liệu. Đa số ứng dụng web có thể bị những lỗi mà các phương cách phòng

chống mạng thông thường không bảo vệ được. Lỗi và lỗ hổng trong mã
nguồn của ứng dụng web có thể gây ra những hậu quả nghiêm trọng như lộ
dữ liệu nhạy cảm, gây tổn thương đến toàn hệ thống hạ tầng công nghệ thông
tin. Sự cố bảo mật trong ứng dụng web có thể ảnh hưởng đến danh tiếng của
công ty, mất mát về mặt tài chính, ảnh hưởng đến uy tín với khách hàng và
các vấn đề liên quan đến ràng buộc pháp lý.
Khi một tổ chức triển khai trực tuyến một ứng dụng web, điều này
đồng nghĩa với việc cho phép bất kỳ ai có kết nối Internet truy cập vào ứng
dụng qua giao thức HTTP. Những cuộc tấn công nằm trong những truy cập
HTTP này có khả năng vượt qua tường lửa, hệ thống lọc tầng mạng, các lớp
bảo vệ hệ thống, và cả hệ thống phát hiện xâm nhập. Những thiết bị trên
không thể phát hiện được những cuộc tấn công này vì các mã tấn công đều
nằm trong các gói giao thức HTTP hợp lệ. Ngay cả những trang Web có mức
độ bảo mật cao sử dụng SSL cũng đều cho phép tất cả các dữ liệu đi qua mà
không hề kiểm tra tính hợp lệ của những dữ liệu này. Điều này có nghĩa là
bảo mật ứng dụng web là một yếu tố quan trọng nằm trong hệ thống phòng
thủ ngọai vi, cùng với tường lửa và các thiết bị bảo mật khác. Vì vậy việc
thực hiện nghiên cứu xây dựng website và xây dựng các giải pháp an toàn anh
ninh cho web là đề tài rất cấp thiết và có ý nghĩa thực tiễn.
8


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Đề tài được thực hiện với mục đích xây dựng được website thương mại
điện tử với đầy đủ các chức năng cần thiết, bên cạnh đó phân tích các điểm
yếu an ninh trong các ứng dụng web, đồng thời sử dụng công cụ dò quét,

đánh giá điểm yếu an ninh Acunetix, để đánh giá an ninh toàn diện cho các
ứng dụng web nhằm phát hiện các điểm yếu và đề xuất các phương án khắc
phục để giảm thiểu rủi ro do bị tấn công.
Nội dung đồ án gồm 3 chương :
Chương I : Tổng quan về website, các thành phần và cấu trúc tạo nên
website, các phương pháp xây dựng website. Các nguy cơ mất an toàn đối với
website.
Chương II : Sử dụng các kỹ năng lập trình, nghiên cứu và sử dụng phần
mềm Joomla, kết hợp với thành phần mở rộng Virtuemart để phân tích,
nghiên cứu và xây dựng một website hoàn chỉnh, với chức năng là một
website bán hàng trực tuyến.
Chương III : Bảo mật cho website. Phân tích các nguy cơ, lỗ hổng an
ninh mạng để đưa ra các biện pháp bảo mật. Thử nghiệm khai thác một số lỗi
của website để tiến hành tấn công. Cách khắc phục những lỗ hổng bảo mật,
giúp cho các nhà quản trị, người thiết kế, sử dụng và bảo trì có một giải pháp
tối ưu về an toàn khi thiết kế website và các ứng dụng.
Em xin phép được gửi lời cám ơn tới các Thầy, Cô giáo Học viện Kỹ
Thuật Mật Mã đã truyền đạt những kiến thức quý báu cho em trong suốt quá
trình học tập. Đặc biệt, em xin bày tỏ lòng chân thành sâu sắc đến thầy
TS. Trần Đức Sự người đã tận tình hướng dẫn và giúp đỡ em trong quá trình
làm đồ án tốt nghiệp.
Xin cám ơn tất cả bạn bè đã và đang động viên, giúp đỡ em trong quá
trình học tập và hoàn thành tốt đồ án tốt nghiệp này.

9


Đồ án tốt nghiệp
mật


Nghiên cứu xây dựng website và một số biện pháp bảo

CHƯƠNG I
TỔNG QUAN WEBSITE, CẤU TRÚC, CÁC PHƯƠNG PHÁP
XÂY DỰNG, CÁC NGUY CƠ MẤT AN TOÀN
1.1.Kiến trúc, thành phần và hoạt động của website
1.1.1 Khái niệm
Website là một tập hợp các trang web (web pages) bao gồm văn bản,
hình ảnh, video, flash v.v... thường chỉ nằm trong một tên miền (domain
name) hoặc tên miền phụ (subdomain). Trang web được lưu trữ ( web
hosting) trên máy chủ web (web server) có thể truy cập thông qua Internet.
Website đóng vai trò là một văn phòng hay một cửa hàng trên mạng
Internet – nơi giới thiệu thông tin về doanh nghiệp, sản phẩm hoặc dịch vụ do
doanh nghiệp cung cấp… Có thể coi website chính là bộ mặt của doanh
nghiệp, là nơi để đón tiếp và giao dịch với các khách hàng, đối tác trên
Internet
1.1.2 Các thành phần của website
Chúng ta tìm hiểu các thành phần của website dưới 2 góc độ : góc độ kỹ thuật
và góc độ chức năng
1.1.2.1 Dưới góc độ kỹ thuật
Web được định nghĩa là môi trường có khả năng thực thi chương trình
cao, cho phép tạo các tùy biến trên triển khai trực tiếp của một lượng lớn các
ứng dụng tới đa người dùng. Hai thành phần quan trọng nhất của website hiện
là trình duyệt Web linh hoạt và các ứng dụng Web.
-

Web browser (trình duyệt web ) là một phần mềm ứng dụng cho

phép người sử dụng xem và tương tác với các văn bản, hình ảnh, đoạn phim,
10



Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

nhạc, trò chơi và các thông tin khác ở trên một trang web của một địa chỉ web
trên mạng toàn cầu hoặc mạng nội bộ. Văn bản và hình ảnh trên một trang
web có thể chứa siêu liên kết tới các trang web khác của cùng một địa chỉ web
hoặc địa chỉ web khác. Trình duyệt web cho phép người sử dụng truy cập các
thông tin trên các trang web một cách nhanh chóng và dễ dàng thông qua các
liên kết đó. Trình duyệt web đọc định dạng HTML để hiển thị, do vậy một
trang web có thể hiển thị khác nhau trên các trình duyệt khác nhau.
Một số trình duyệt web hiện nay cho máy tính cá nhân bao
gồm Internet Explorer, Mozilla Firefox, Safari, Opera, Avant Browser,
Konqueror, Lynx, Google Chrome, Flock, Arachne, Epiphany, K-Meleon và
AOL Explorer.
-

Ứng dụng Web là một ứng dụng chủ/khách sử dụng giao thức

HTTP để tương tác với người dùng hay hệ thống khác.
Ứng dụng web được chia thành hai loại chính: ứng dụng web Public và ứng
dụng web Private.


Ứng dụng web Public: là website dùng để quảng bá thông tin, cung cấp

và trao đổi thông tin với với bên ngoài như các website thương mại điện tử, các

website của các công ty chứng khoán, các ngân hàng,…


Ứng dụng web Private: là các website cung cấp và trao đổi thông tin

trong một tổ chức, doanh nghiệp và các đối tác chiến lược,… Các website này
thường dùng để cung cấp thông tin cho các văn phòng, chi nhánh, các nhân viên
đi công tác hoặc làm việc tại nhà và đôi khi là cho các đối tác chiến lược kết nối
qua môi trường internet.
-

Web Server (máy chủ web) là máy chủ có dung lượng lớn, tốc

độ cao, được dùng để chứa những website đã được thiết kế cùng với những
thông tin liên quan khác (các mã Script, các chương trình, và các file
Multimedia), Web Server có khả năng gửi đến máy khách những trang Web
11


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP - giao thức
được thiết kế để gửi các file đến trình duyệt Web và các giao thức khác.
1.1.2.2 Dưới góc độ chức năng
Ứng dụng Web là các chương trình máy tính cho phép người dùng
website đăng nhập, truy vấn vào/ra dữ liệu qua mạng Internet trên trình duyệt
Web yêu thích của họ. Dữ liệu sẽ được gửi tới người dùng trong trình duyệt

theo kiểu thông tin động (trong một định dạng cụ thể, như với HTML thì
dùng CSS) từ ứng dụng Web qua một Web Server.
Các ứng dụng Web truy vấn máy chủ chứa nội dung (chủ yếu trên cơ
sở dữ liệu lưu trữ nội dung) và tạo tài liệu Web động để phục vụ yêu cầu của
máy khách (chính là người dùng website). Tài liệu được tạo trong kiểu định
dạng tiêu chuẩn hỗ trợ trên tất cả mọi trình duyệt (như HTML, XHTML).
JavaScript là một dạng script client-side cho phép yếu tố động có ở trên từng
trang (như thay đổi ảnh mỗi lần người dùng di chuột tới). Nó dịch và chạy tất
cả script, lệnh… khi hiển thị trang web và nội dung được yêu cầu. Wikipedia,
bộ bách khoa toàn thư trực tuyến lớn nhất thế giới hiện nay định nghĩa Web
browser là “máy khách chung cho mọi ứng dụng web”.
Một cải tiến đáng kể khác trong quá trình xây dựng và duy trì các ứng
dụng Web là chúng có thể hoạt dộng mà không cần quan tâm đến hệ điều
hành hay trình duyệt chạy trên các máy client. Ứng dụng Web được triển khai
ở bất cứ nơi nào có Internet, và hầu hết không đòi hỏi yêu cầu cài đặt cho
người dùng cuối.
1.1.3Một số ứng dụng phổ biến của website
1.1.3.1 CMS (Content Management System)
CMS là gì? CMS – Content Management System tạm dịch là thống
quản lý nội dung.CMS được sử dụng để tạo và chỉnh sửa nội dung.” Nội
dung” ở đây là bao gồm hình ảnh, video, file âm thanh, tài liệu đính kèm của
12


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

một trang web . Hay về mặt trình bày có thể là quản lý các menu, quản lý các

category, bài viết, thông tin hiển thị trên web.
Ứng dụng của CMS? CMS được sử dụng với nhiều ứng dụng : quản lý
văn bản , quản lý người dung, quản lý các tài liệu, theo dõi, xuất bản nội
dung, tìm kiếm, chỉnh sửa nội dung.CMS được thiết kế ẩn so với người dung
thông thường.
Các CMS phổ biến
Trong thế giới thiết kế web, có rất nhiều loại cms từ các loại cms trả
phí đến các CMS mã nguồn mở do cộng đồng xây dựng. Sau đây là sự so
sánh những CMS mã nguồn mở đình đám, đã trưởng thành, phát triển ổn định
như WordPress, Joomla, Drupal..
- Tại Việt Nam, Joomla đứng vị trí nhất trong cuộc thi hệ quản trị nội
dung mã nguồn mở xuất sắc nhất. Một vài ví dụ website sử dụng
joomla như :
• Ngân hàng Đông Á SeaBank. (seabank.com.vn) – 25 Trần Hưng
Đạo – Hà Nội
• Việt báo (vietbao.vn ) – website đứng top 100 site hàng đầu Việt
Nam về lượng truy cập, hệ thống SEO tốt và cập nhật tin nhanh.
- Tại nhiều quốc gia trên thế giới, Drupal cũng là một CMS có vị trí
rất cao sử dụng mã nguồn mở . Ví dụ
• Các web-site của chính phủ: Web-site Nhà Trắng, Phòng thương
mại Mỹ,chính phủ Bỉ…
• Các web-site công nghệ: Nokia, Symbian, Symantec, AT&T…
• Các web-site giải trí: Grammy, Christina Aguilera, Robbie
Williams,Beyonce…

Các báo

điện

tử: Belgian


Forbes, Information Week, BBC…

Các web-site trường

đại

men’s

học: Harvard, Portland

University, MIT,Strayer University, Stanford…
13

magazine,

Russian
State


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Drupal đang được thừa nhận là công cụ phù hợp với giải pháp website lớn.
-

Một CMS nổi tiếng khác là WordPress đang phát triển mạnh mẽ.


Được ứng dụng nhiều với vai trò blog, tạp chí.
Ví dụ như : People.com – tạp chí people nổi tiếng
Mashable.com – tạp chí về thiết kế và tin công nghệ.
1.1.3.2 Webmail
Thuật ngữ Email trên nền web và Webmail ám chỉ việc hiện thực một
chương trình xem e-mail dưới dạng một ứng dụng web cho phép người dùng
truy cập e-mail của họ thông qua một trình duyệt web, thay vì sử dụng
chương trình xem email nên nền máy tính để bàn như Microsoft Outlook,
Mozilla Thunderbird hay Eudora. Một webmail khách thường được cung cấp
bởi dịch vụ email, cho phép khách hàng của nó truy cập thư được lưu trữ trên
máy chủ của dịch vụ, nhưng cũng có những ngoại lệ.
Dịch vụ Webmail đầu tiên là Hotmail. Những nhà cung cấp Webmail
phổ biến nhất hiện nay là Yahoo! Mail, Windows Live Hotmail và Gmail.
Những nhà cung cấp Webmail khác bao gồm Inbox.com, AIM Mail,
Mail.com, Fastmail.FM, Lycos Mail, BlueTie, Everyone.net, and LuxSci.
Những phần mềm Webmail thương mại bao gồm Outlook Web Access
(OWA), Laszlo Mail, Atmail and SmarterMail. Phần mềm Webmail mã
nguồn mở bao gồm Horde IMP, OpenWebmail (dựa trên NeoMail),
RoundCube, Zimbra, và SquirrelMail.
1.1.3.3 Shopping Carts
là một loại ứng dụng web dùng cho việc mua sắm trực tuyến, Các
shopping cart không yêu cầu phần mềm giao dịch an toàn. Chúng thực tế là
một phần của site ảo để bán hàng trực tuyến, Các shopping cart sử dụng các
14


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo


cookie để xác định danh sách các sản phẩm mà khách hàng đã chọn mua. Có
hai cách mà một công ty có thể thiết lập cookie. Cách thứ nhất là sao lưu từng
giao dịch shopping cart vào một cookie ở máy tính của khách hàng. Cách thứ
hai là gắn một ID khách hàng và lưu ID này ở trong một cookie
1.1.3.4 Portal
Portal hay cổng thông tin điện tử được hiểu như là một trang web xuất
phát mà từ đó người sử dụng có thể dễ dàng truy xuất các trang web và các
dịch vụ thông tin khác trên mạng máy tính. Lợi ích lớn nhất mà portal đem lại
là tính tiện lợi, dễ sử dụng, Thay vì phải nhớ vô số các địa chỉ khác nhau cho
các mục đích sử dụng khác nhau, thì với một web portal như Yahoo, người
dùng chỉ cần nhớ yahoo.com. Hiện nay ở Việt nam, các cơ quan nhà nước,
các công ty vẫn sử dụng loại ứng dụng web này. Một vài Portal tiêu biểu
như:
Portal của Mobifone: />Hay Portal của chính phủ:
/>_pageid=517,1&_dad=portal&_schema=PORTAL
1.1.4 Kiến trúc của ứng dụng web
1.1.4.1 Thành phần
Hình bên dưới minh họa chi tiết mô hình ứng dụng Web ba lớp :
+ Lớp đầu tiên Presentation layer là trình duyệt Web hoặc giao diện người
dùng.
+ Lớp thứ hai Business logic layer là công nghệ kỹ thuật tạo nội dung động
như Java servlets (JSP) hay Active Server Pages (ASP).
+Lớp thứ ba là Data access layer-cơ sở dữ liệu chứa nội dung (như tin tức) và
dữ liệu người dùng (như username, password, mã số bảo mật xã hội, chi tiết
thẻ tín dụng).
15


Đồ án tốt nghiệp

mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Hình 1- 1 Kiến trúc 3 lớp của web application
Lớp trình bày (Prensentation layer)
Gồm các thành phần giao diện đồ họa người dùng (GUI – Graphic User
Interface) chuẩn giúp hiển thị dữ liệu cho người dùng, ngoài ra còn có thể có
thêm các ứng dụng tạo bố cục cho trang web. Nó phải hoạt động cùng với lớp
business logic để xử lý việc truyền dữ liệu cho người dùng xem và sử dụng.
Lớp này có thể nói chuyện trực tiếp với lớp dữ liệu Data layer.
Lớp ứng dụng (Bussiness logic layer)
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, .NET, PHP ,
được triển khai trên các trình chủ như Apache, IIS…
Lớp dữ liệu (Data access layer)
Thường là các hệ quản trị dữ liệu (DBMS) chịu trách nhiệm quản lý
các file dữ liệu và quyền sử dụng. Lớp này là optional (ứng dụng đơn giản
không có tier này), chỉ hoạt động với dữ liệu và truy cập đến dữ liệu. Ví dụ về
lớp này:
• Microsoft SQL Server
16


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo


• Oracle Database Server
• MySQL Server
• OpenLDAP
1.1.4.2 Mô tả hoạt động
Đầu tiên trình duyệt sẽ gửi một yêu cầu (request) đến trình chủ Web
thông qua các lệnh cơ bản GET, POST… của giao thức HTTP, trình chủ lúc
này có thể cho thực thi một chương trình được xây dựng từ nhiều ngôn ngữ
như Perl, C/C++… hoặc trình chủ yêu cầu bộ diễn dịch thực thi các trang
ASP, JSP… theo yêu cầu của trình khách.

Hình 1- 2 Kiến trúc n lớp của web application
Tùy theo các tác vụ của chương trình được cài đặt mà nó xử lý, tính
toán, kết nối đến cơ sở dữ liệu, lưu các thông tin do trình khách gửi đến…và
từ đó trả về cho trình khách 1 luồng dữ liệu có định dạng theo giao thức
HTTP, nó gồm 2 phần:
• Header mô tả các thông tin về gói dữ liệu và các thuộc tính, trạng
thái trao đổi giữa trình duyệt và WebServer.
• Body là phần nội dung dữ liệu mà Server gửi về Client, nó có thể là
một file HTML, một hình ảnh, một đoạn phim hay một văn bản bất kì.
Với firewall, luồng thông tin giữa trình chủ và trình khách là luồng
thông tin hợp lệ. Vì thế, nếu hacker tìm thấy vài lỗ hổng trong ứng dụng
17


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Web thì firewall không còn hữu dụng trong việc ngăn chặn hacker này. Do

đó, các kĩ thuật tấn công vào một hệ thống mạng ngày nay đang dần tập
trung vào những sơ suất (hay lỗ hổng) trong quá trình tạo ứng dụng của
những nhà phát triển Web hơn là tấn công trực tiếp vào hệ thống mạng, hệ
điều hành. Tuy nhiên, hacker cũng có thể lợi dụng các lỗ hổng Web để mở
rộng sự tấn công của mình vào các hệ thống không liên quan khác.

1.2.Các điểm yếu an ninh mạng và nguy cơ mất an toàn
Đi kèm với những lợi ích về kinh tế và thời gian cũng nảy sinh nhiều
vấn đề về an toàn đối với các ứng dụng trực tuyến. Chính vì sự tiện dụng và
công khai như vậy nên nó sẽ là đối tượng dễ bị tấn công của các Hacker ở
khắp mọi nơi. Những dữ liệu nhạy cảm, bí mật, các tiến trình quan trọng sẽ là
mục tiêu bị tấn công. Đó là lý do tại sao ở Việt Nam chưa nhiều tổ chức,
doanh nghiệp đưa ứng dụng trực tuyến trên nền web để thực hiện các nghiệp
vụ quan trọng dù họ rất mong muốn bởi thực tế họ rất sợ bị tấn công, gây
thiệt hại nghiêm trọng về tài chính, hoạt động, hình ảnh của tổ chức.
Hiện nay có rất nhiều điểm yếu của ứng dụng dạng này mà các hacker
có thể khai thác
1.2.1. Dữ liệu đầu vào không được kiểm tra
Ứng dụng Web sử dụng dữ liệu đầu vào trong các truy cập HTTP (hoặc
trong các tập tin) nhằm xác định kết quả phản hồi. Tin tặc có thể sửa đổi bất
kỳ phần nào của một truy xuất HTTP, bao gồm URL, querystring, headers,
cookies, form fields, và thậm chí field ẩn (hidden fields), nhằm vượt qua các
cơ chế bảo mật. Các tấn công phổ biến dạng này bao gồm:
• Chạy lệnh hệ thống tùy chọn
• Cross site scripting
• Lỗi tràn bộ đệm
18


Đồ án tốt nghiệp

mật

Nghiên cứu xây dựng website và một số biện pháp bảo

• Tấn công Format string
• SQL injection
• Cookie poisoning
• Sửa đổi field ẩn
Một số Web site bảo vệ chống lại loại tấn công này bằng cách thiết lập
bộ lọc dữ liệu đầu vào. Vấn đề nan giải là có rất nhiều cách để mã hóa
(encode) dữ liệu, và những phương cách mã hóa này không giống như các
cách mã hóa thông thường khác ở chỗ là nó dễ dàng được giải mã. Tuy vậy,
những nhà lập trình viên thường quên giải mã tất cả các tham số trước khi sử
dụng chúng. Tham số cần phải được chuyển đổi đến dạng đơn giản nhất trước
khi được kiểm tra, nếu không, dữ liệu xấu đầu vào có thể được mã hóa ẩn và
vượt qua tầng bảo vệ của các module kiểm tra dữ liệu.
Một số lượng lớn ứng dụng chỉ sử dụng các cơ chế lọc phía trình duyệt
để kiểm tra dữ liệu đầu vào. Các cơ chế kiểm tra phía trình duyệt rất dễ dàng
được vượt qua, và ứng dụng web xem như không được bảo vệ bởi cơ chế này.
Tin tặc có thể tạo ra các truy xuất HTTP không thông qua trình duyệt bằng
cách sử dụng các công cụ như telnet, truy xuất thẳng đến cổng 80 của máy
chủ web. Kiểm tra dữ liệu ở phía máy trình duyệt có lợi điểm về hiệu suất và
tính dễ sử dụng, tuy nhiên cơ chế này không cung cấp bất cứ lợi điểm gì về
bảo mật. Kiểm tra dữ liệu ở phía server đóng vai trò thiết yếu trong việc ngăn
cản những cuộc tấn công dạng sửa đổi tham số đầu vào. Khi các cơ chế bảo
vệ ở server đã được thiết lập, cơ chế bảo vệ phía trình duyệt có thể được sử
dụng nhằm giảm bớt dung lượng các dữ liệu không hợp lệ đến máy chủ.

Hình 1- 3 Sử dụng Proxy để thay đổi tham số
19



Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Hình 3 mô tả phương cách phổ biến của hacker hiện nay sử dụng để tấn
công ứng dụng web. Trước tiên, hacker thiết lập một proxy đứng giữa trình
duyệt và máy chủ ứng dụng web. Proxy này có khả năng chặn các gói dữ liệu
trước khi chuyển đến máy chủ, do đó cho phép hacker sửa đổi dữ liệu truy
cập và chèn các mã tấn công trước khi gửi đến ứng dụng web.
Những cuộc tấn công dạng này đang có xu hướng ngày càng phổ biến
hơn do số lượng các công cụ hỗ trợ các chức năng tạo tham số bất kỳ, tạo mã
tấn công, tấn công brute force đang ngày càng tăng. Hậu quả cuộc việc sử
dụng các tham số không được kiểm tra không nên được xem nhẹ. Một số
lượng lớn các cuộc tấn công sẽ gây khó khăn cho nhà lập trình web nếu họ
không có một hệ thống tập trung kiểm tra tính hợp lệ của tất cả các truy xuất
HTTP.
1.2.2 Lỗi kiểm soát truy cập nguồn tài nguyên
Những giới hạn về quyền truy cập tài nguyên của người sử dụng không
được thi hành đúng. Tin tặc có thể tận dụng những lỗi này nhằm truy cập vào
tài khoản của người khác, xem các tập tin nhạy cảm, hoặc thi hành những
chức năng không cho phép.
Kiểm soát truy cập tài nguyên (authorization), là cơ chế mà ứng dụng
web cho phép truy cập đến nội dung, tính năng ứng dụng cho một số người sử
dụng và từ chối truy cập cho một số người sử dụng khác. Những kiểm tra này
được thực hiện sau quá trình xác thực, và quản lý các quyền truy cập mà
người sử dụng được phép. Kiểm soát truy cập bề ngoài tưởng chừng là một
vấn đề đơn giản nhưng thực tế là một vấn đề rất khó được thi hành đầy đủ.

Một mô hình quản lý truy cập tài nguyên cho ứng dụng web cần được thiết kế
theo sát các nội dung và hàm chức năng của một web site cung cấp.

20


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Hình 1- 4 Quản lý kiểm soát truy cập tài nguyên trung tâm
Những nhà lập trình viên thường không đánh giá được mức độ khó
khăn trong việc xây dựng một cơ chế quản lý kiểm soát truy cập dữ liệu. Đa
số những chức năng này không đựơc thiết kế từ lúc đầu mà được xây dựng
kèm theo tùy tính năng của ứng dụng. Vì vậy, các chức năng kiểm soát được
xây dựng ở khắp các module khác nhau trong mã nguồn. Khi ứng dụng được
phát triển xong và đưa và triển khai, các mã kiểm soát này sẽ trở nên không
thống nhất và gây ra nhiều lỗ hổng nghiêm trọng khó phát hiện được.
1.2.3 Lỗi liên quan đến quá trình quản lý xác thực và phiên truy
cập
Quá trình xác thực và quản lý phiên truy cập không được bảo vệ tốt có
thể dẫn đến việc thông tin tài khoản bị mất cắp.
Quản lý xác thực và phiên truy cập bao gồm tất cả các yếu tố quản lý
xác thực người sử dụng và các phiên truy cập. Xác thực người dùng là một
yếu tố quan trọng trong quy trình này, nhưng ngay cả những cơ chế xác thực
mạnh nhất vẫn có thể bị mắc những lỗi liên quan đến các chức năng quản lý
21



Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

xác thực, bao gồm thay đổi password, quên password, nhớ password ở trình
duyệt, cập nhật tài khỏan, và những hàm chức năng khác.
Xác thực người dùng trên ứng dụng web thường bao gồm sử dụng một
username và password. Những phương pháp xác thực khác mạnh hơn bao
gồm các giải pháp phần cứng hoặc mềm dựa trên các token mã hóa hoặc dùng
phương pháp sinh trắc học (biometrics). Tuy nhiên những phương pháp này
có phần hạn chế do giá thành cao. Một số lượng lớn lỗi ứng dụng trong các
hàm quản lý tài khoản và phiên truy cập có thể dẫn đến mối nguy cơ lộ tài
khỏan người sử dụng và thậm chí tài khỏan của người quản trị.
Ứng dụng web thường phải theo dõi và duy trì phiên truy cập của người
dùng nhằm phân biệt các truy cập từ người dùng khác nhau. Giao thức HTTP
không cung cấp khả năng này và do đó ứng dụng web phải tự tạo cơ chế này.
Thường thì, môi trường phát triển ứng dụng cung cấp cơ chế quản lý phiên
truy cập (thường là dưới hình thức cookie token), tuy nhiên, đa số các nhà lập
trình nghiêng về phát triển cơ chế riêng của họ. Trong cả hai trường hợp, nếu
token quản lý phiên truy cập không được bảo vệ, tin tặc có thể ăn cắp token
truy cập tài khoản của người khác.
1.2.4 Lỗi Cross Site Scripting (XSS)
Lỗi Cross-site scripting (thường được gọi tắt là XSS) xảy ra khi một
ứng dụng web bị lợi dụng để gửi dữ liệu xấu (thường là đoạn mã script) đến
trình duyệt của người sử dụng. Những lỗ hổng này rất phổ biến và xảy ra
trong bất cứ phần nào của ứng dụng web có sử dụng dữ liệu từ người dùng
trong các giá trị phản hồi mà không kiểm tra tính hợp lệ.
Một tin tặc có thể sử dụng lỗ hổng này để gửi các đoạn mã đến người
dùng. Trình duyệt trong máy người dùng không thể biết được nên tin hay

không tin đoạn mã nào, và sẽ thi hành đoạn script này. Bởi vì trình duyệt tin
rằng đoạn mã đến từ một nguồn tin tưởng, đoạn mã script có thể truy cập đến
22


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

cookies, session tokens, hoặc bất kỳ thông tin nhạy cảm nào được lưu lại
trong trình duyệt có liên quan đến trang web đang truy cập. Những đoạn mã
này còn có thể sửa đổi nội dung trang web.
Hậu quả của tấn công dạng XSS có thể rất nguy hiểm, bao gồm lộ
session cookie, cho phép tin tặc chiếm quyền sở hữa tài khoản. Những hậu
quả khác bao gồm: lộ các tập tin của người dùng, cài đặt các chương trình
trojan, di chuyển người sử dụng đến trang web khác, sửa đổi nội dung trang
web nhằm đánh lừa người dùng.
Hình 5 mô tả một ví dụ tấn công dạng cross site scripting với hậu quả là
khách hàng bị lừa truy cập vào trang web giả mạo nhằm ăn cắp tài khoản
khách hàng:

Hình 1- 5 Tấn công XSS
Hacker phát hiện lỗ hổng cross-site-scripting trên trang web của một ngân
hàng thật
Hacker tạo một trang web trông giống ngân hàng thật tại địa chỉ

Hacker soạn một email giả từ nhân viên của ngân hàng gửi đến cho một khách
hàng. Trong email, hacker soạn một nội dung yêu cầu khách hàng bấm vào
một link trông giống như một link truy cập vào ngân hàng thật

/>23


Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

Khách hàng nhận được email, tưởng là email từ phía ngân hàng thật, nên bấm
vào link.
Khi bấm vào link, thay vì truy cập vào ngân hàng thật, trình duyệt của khách
hàng được chuyển tự động đến trang web ngân hàng giả do hacker tạo sẵn
trông giống như ngân hàng thật

Khách hàng nhập thông tin đăng ký vào trang ngân hàng giả và thông tin này
được chuyển đến hacker
1.2.5 Lỗi tràn bộ đệm
Tin tặc sử dụng lỗi tràn bộ đệm nhằm ảnh hưởng đến dòng lệnh thực thi
của ứng dụng web. Bằng cách gửi một đoạn mã được thiết kế đặc biệt đến
ứng dụng, tin tặc có thể làm cho ứng dụng web thi hành bất kỳ đoạn mã nào,
điều này tương đương với việc chiếm quyền làm chủ máy server. Mặc dù là
một lỗi phổ biến, lỗi tràn bộ đệm là loại lỗi rất khó được phát hiện và ngay cả
khi đã được phát hiện, lỗi này rất khó được lợi dụng do tin tặc cần một trình
độ rất cao để có thể viết đoạn mã khai thác.

Hình 1- 6 Lỗi tràn bộ đệm
Hình 6 mô tả một cuộc tấn công tràn bộ đệm, hacker gửi đến ứng dụng
web một truy cập với gói dữ liệu có độ dài vượt mức cho phép mà hàm xử lý
của ứng dụng có thể xử lý. Thông thường, dữ liệu đầu vào được lưu trữ trên
24



Đồ án tốt nghiệp
mật

Nghiên cứu xây dựng website và một số biện pháp bảo

bộ nhớ đệm trước khi xử lý, dữ liệu vượt quá độ dài đăng ký sẽ được chèn lên
các dữ liệu quan trọng khác trong bộ đệm, dẫn đến khả năng thi hành mã tùy
ý cho hacker.
1.2.6 Lỗi Injection
Lỗi injection cho phép tin tặc lợi dụng lỗ hổng trong ứng dụng web làm
phương tiện để gửi các đoạn mã nguy hiểm đến hệ thống. Những cuộc tấn
công dạng này bao gồm các mã gọi hàm đến hệ điều hành, gọi các ứng dụng
qua lệnh shell, và các hàm gọi đến cơ sở dữ liệu (SQL injection). Những đoạn
mã nguy hiểm được viết bằng perl, python và ngôn ngữ khác có thể được
chuyển đến và thực thi bởi ứng dụng web, hệ điều hành hoặc các ứng dụng
khác.
Rất nhiều ứng dụng web sử dụng các hàm của hệ điều hành và các
chương trình ngoài để thi hành các chức năng. Sendmail là một trong những
chương trình ngoài được sử dụng nhiều nhất. Khi ứng dụng web sử dụng dữ
liệu từ người dùng để tạo ra đoạn mã thực thi, dữ liệu từ người dùng cần được
lọc kỹ lưỡng. Nếu không, tin tặc có thể kèm vào các ký tự đặc biệt, đoạn lệnh,
và những thông tin xấu này có thể được chuyển đến hệ thống và các chương
trình ngoài.

25



×