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

Một số phương pháp bảo vệ websites trong thương mại điện 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 (3.21 MB, 99 trang )

Khóa luận tốt nghiệp 2013
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KHÓA LUẬN TỐT NGHIỆP
(Hệ đại học chính quy)
Đề tài: Một số phương pháp bảo vệ websites trong thương mại điện tử
Giáo viên hướng dẫn: TS. Lê Phê Đô
Sinh viên: Nguyễn Thế Thạo
Hà Nội – 2013
Một số phương pháp bảo vệ websites trong thương mại điện tử
1
Khóa luận tốt nghiệp 2013
LỜI MỞ ĐẦU
Một số phương pháp bảo vệ websites trong thương mại điện tử
2
Khóa luận tốt nghiệp 2013
TÓM TẮT NỘI DUNG
Một số phương pháp bảo vệ websites trong thương mại điện tử
3
Khóa luận tốt nghiệp 2013
MỤC LỤC
Một số phương pháp bảo vệ websites trong thương mại điện tử
4
Khóa luận tốt nghiệp 2013
Chương 1: Tìm hiểu thương mại điện tử và đánh giá tình hình an
toàn an ninh mạng hiện nay.
I. Tìm hiểu về thương mại điện tử
1. Khái niệm:
Có nhiều khái niệm về thương mại điện tử (TMĐT), nhưng hiểu một cách tổng
quát, TMĐT là việc tiến hành một phần hay toàn bộ hoạt động thương mại bằng những
phương tiện điện tử. TMĐT vẫn mang bản chất như các hoạt động thương mại truyền


thống. Tuy nhiên, thông qua các phương tiện điện tử mới, các hoạt động thương mại
được thực hiện nhanh hơn, hiệu quả hơn, giúp tiết kiệm chi phí và mở rộng không gian
kinh doanh.
TMĐT càng được biết tới như một phương thức kinh doanh hiệu quả từ khi
Internet hình thành và phát triển. Chính vì vậy, nhiều người hiểu TMĐT theo nghĩa cụ
thể hơn là giao dịch thương mại, mua sắm qua Internet và mạng (ví dụ mạng Intranet
của doanh nghiệp).
2. Lợi ích:
Lợi ích lớn nhất mà TMĐT đem lại chính là sự tiết kiệm chi phí và tạo thuận lợi
cho các bên giao dịch. Giao dịch bằng phương tiện điện tử nhanh hơn so với giao dịch
truyền thống, ví dụ gửi fax hay thư điện tử thì nội dung thông tin đến tay người nhận
nhanh hơn gửi thư. Các giao dịch qua Internet có chi phí rất rẻ, một doanh nghiệp có
thể gửi thư tiếp thị, chào hàng đến hàng loạt khách hàng chỉ với chi phí giống như gửi
cho một khách hàng. Với TMĐT, các bên có thể tiến hành giao dịch khi ở cách xa
nhau, giữa thành phố với nông thôn, từ nước này sang nước kia, hay nói cách khác là
không bị giới hạn bởi không gian địa lý. Điều này cho phép các doanh nghiệp tiết kiệm
chi phí đi lại, thời gian gặp mặt trong khi mua bán. Với người tiêu dùng, họ có thể ngồi
tại nhà để đặt hàng, mua sắm nhiều loại hàng hóa, dịch vụ thật nhanh chóng.
3. Các loại hình ứng dụng thương mại điện tử:
Dựa vào chủ thể của thương mại điện tử, có thể phân chia thương mại điện tử ra
các loại hình phổ biến như sau:
- Giao dịch giữa doanh nghiệp với doanh nghiệp - B2B (business to business);
- Giao dịch giữa doanh nghiệp với khách hàng - B2C (business to consumer);
- Giao dịch giữa doanh nghiệp với cơ quan nhà nước - B2G (business to government);
- Giao dịch trực tiếp giữa các cá nhân với nhau - C2C (consumer to consumer);
- Giao dịch giữa cơ quan nhà nước với cá nhân - G2C (government to consumer).
4. Thanh toán điện tử:
Một số phương pháp bảo vệ websites trong thương mại điện tử
5
Khóa luận tốt nghiệp 2013

Thanh toán điện tử là hình thức thanh toán tiến hành trên môi trường internet,
thông qua hệ thống thanh toán điện tử người sử dụng mạng có thể tiến hành các hoạt
động thanh toán, chi trả, chuyển tiền,
Thanh toán điện tử được sử dụng khi chủ thể tiến hành mua hàng trên các siêu thị
ảo và thanh toán qua mạng. Để thực hiện việc thanh toán, thì hệ thống máy chủ của
siêu thị phải có được phầm mềm thanh toán trong website của mình.
5. Quảng cáo trên Internet:
Cũng như các hình thức quảng cáo khác, quảng cáo trên mạng nhằm cung cấp
thông tin đẩy nhanh tiến độ giao dịch giữa người bán và người mua. Tuy nhiên, quảng
cao trên mạng khác hẳn với quảng cáo trên các phương tiện thông tin đại chúng khác
vì nó giúp người tiêu dùng có thể tương tác với quảng cáo. Trên mạng mọi thứ đều có
thể đưa vào quảng cáo, từ bố trí sản phẩm tới thiết kế các ảnh nền phía sau nội dung
quảng cáo, làm cho logo hoặc bất cứ nhãn hiệu sản phẩm nào cũng trở nên nổi bật.
Quảng cáo trên Internet cũng tạo cơ hội cho các nhà quảng cáo nhắm chính xác vào
đối tượng khách hàng của mình và giúp họ quảng cáo với đúng sở thích và thị hiếu
người dùng. Ngoài ra, quảng cáo trên mạng còn là sự kết hợp của quảng cáo truyền
thống và tiếp thị trực tiếp. Đó là sự kết hợp giữa cung cấp nhãn hiệu, cung cấp thông
tin và trao đổi buôn bán ở cùng một nơi.
* Các hình thức quảng cáo trên Internet:
- Quảng cáo bằng các banner, đường link qua các website khác
- Quảng cáo qua E-mail
- Quảng cáo trên Website
II. Tình hình an toàn an ninh mạng hiện nay
Tại Việt Nam, nhiều doanh nghiệp phải đối mặt với việc hình thành và lan tràn
nhiều biến thể virut mới, tấn công trên mạng ngày càng nở rộ với mục đích vụ lợi cá
nhân cũng như mục đích kinh tế, thậm chí ảnh hưởng đến hoạt động kinh doanh và an
ninh quốc gia. Các website trong nước liên tiếp bị tấn công với mức độ phức tạp gia
tăng mà điển hình là việc báo điện tử Vietnamnet bị tấn công nhiều lần (tháng 11,
12/2010, 1/2011). Hình thức lừa đảo trực tuyến các email bằng tiếng việt đã bắt đầu
xuất hiện và phát tán rộng…đã đặt ra yêu cầu đối với sự nhận thức đúng đắn về mức

độ cấp thiết, tối quan trọng của an ninh mạng, bảo mật thông tin.
Mạng Internet Việt Nam còn tiềm ẩn rất nhiều những nguy cơ về mặt an ninh an
toàn thông tin. Hàng loạt website lớn bị tấn công với mức độ phức tạp ngày càng gia
tăng. Rất nhiều các website của các tổ chức, doanh nghiệp còn tồn tại các l€ hổng an
toàn thông tin. Nhiều l€ hổng an toàn thông tin mới được phát hiện. Tội phạm mạng
đang diễn ra với tốc độ nhanh hơn, quy mô hơn, tính chuyên nghiệp, trình độ kỹ thuật
ngày càng cao hơn.
Qua tìm hiểu sơ bộ, có 1 số điểm đáng lưu ý:
Một số phương pháp bảo vệ websites trong thương mại điện tử
6
Khóa luận tốt nghiệp 2013
Trong năm 2009, ở nước ta có hơn 1000 (1.037) website bị hacker tấn công, tăng
hơn gấp đôi so với năm 2008 (461 website) và gấp ba lần so với năm 2007 (342
website).
 Trong 3 tháng đầu năm 2010 đã có hơn 300 website của các cá nhân và tổ chức có
tên miền .vn bị các hacker nước ngoài thăm dò, tấn công.
 Tính đến cuối quý I/2011, số người sử dụng Internet tại Việt Nam đạt 27.559.006
người, chiểm 31,9 % dân số; số thuê bao internet trên cả nước ước tính đạt 3,8
triệu thuê bao. Đa số các doanh nghiệp và các tổ chức có hệ thống mạng và
website giới thiệu, quảng bá thương hiệu (191.667 tên miền .vn và hàng triệu tên
miền thương mại). Có rất nhiều doanh nghiệp đã ứng dụng thanh toán trực tuyến
vào công việc kinh doanh, giao dịch,…
 Tại Hội thảo về an toàn thông tin trong cơ quan nhà nước và doanh nghiệp do Sở
TT-TT Hà Nội tổ chức hôm 21/9/2012, Trung tâm Ứng cứu khẩn cấp Máy tính
Việt nam (VNCERT, thuộc Bộ TT-TT) công bố "Gần 80% website có thể bị tấn
công thay đổi nội dung hoặc đánh sập". Đây là 1 điều đáng quan tâm lo ngại hiện
nay.
 Các website bị tấn công chủ yếu là các website kinh doanh trực tuyến, ngân hàng,
các tổ chức cung cấp dịch vụ ,…( Nguyên nhân: chủ yếu là sự yếu kém trong quản
trị website và không thường xuyên kiểm soát l€ hổng, ít quan tâm đến các cảnh

báo an ninh của các cơ quan, tổ chức có chức năng đảm bảo an ninh an toàn thông
tin quốc gia).
Trên thế giới, rất nhiều các websites thương mại nổi tiếng cũng bị tấn công không
chỉ 1 mà nhiều lần, ví dụ như website của Amazon.com tại Anh, Pháp, Đức và Tây
Ban Nha đã ngưng hoạt động trong khoảng nửa giờ đồng hồ vào tối 12/12/2010.
Vào khoảng cuối tháng 7, đầu tháng 8/2011, có khoảng hơn 6 triệu website bị tấn
công bởi loại malware có tên Willysy. Loại malware này đã khai thác một l€ hổng
của hệ điều hành mã nguồn mở osCommerce đang được sử dụng khá phổ biến với
các website thương mại điện tử trên thế giới. Trước đó, vụ tấn công đầu tiên của
malware Willysy được phát hiện lần đầu tiên xuất hiện ở phiên bản oSComerce 2.2.
Willysy đã khai thác một một l€ hổng trên phiên bản này sau đó cài mã độc chờ sẵn
các “nạn nhân”.
Những kẻ gian dùng các phương pháp tấn công các websites thương mại điện tử
nhằm mục đích chiếm đoạt tiền và tài sản của nạn nhân:
Một số phương pháp bảo vệ websites trong thương mại điện tử
7
Khóa luận tốt nghiệp 2013
 Dùng thủ đoạn Phishing, trojan horse, spyware để lấy cắp địa chỉ email, thông tin
thẻ tín dụng và thông tin cá nhân như tên, địa chỉ,số điện thoại, số thẻ an ninh xã
hội, thông tin giấy phép lái xe…
 Mua bán thông tin thẻ tín dụng trên mạng internet.
 Trộm cắp tiền từ thẻ tín dụng và tài khoản, làm thẻ tín dụng giả rút tiền từ máy
ATM.
 Rửa tiền: chuyển tiền từ tài khoản trộm cắp được sang tài khoản e-money tại e-
gold, e-passport.
 Lừa đảo qua quảng cáo, bán hàng trực tuyến trên mạng internet, trong hoạt động
thương mại điện tử,trong mua bán ngoại tệ,cổ phiếu qua mạng, đánh bạc và rửa
tiền, thực hiện hành vi trốn thuế.
Một số phương pháp bảo vệ websites trong thương mại điện tử
8

Khóa luận tốt nghiệp 2013
Chương 2: Các phương thức tấn công phổ biến và cách phòng tránh
I. Phòng chống các kỹ thuật tấn công cơ bản:
1. Lập bản đồ trang:
I.1. Nội dung:
- Sử dụng một chương trình thu thập đi theo các liên kết trong ứng dụng và chỉ ra
luồng di chuyển theo các trang của ứng dụng và cơ chế xác thực.
- Đọc ghi chú trong các tài liệu gửi đến trình duyệt để có được sự gợi ý về logic
trong kinh doanh hay các thuật toán.
- Tìm tên người dùng, mật khẩu, và tên cơ sở dữ liệu trong các các tài liệu gửi cho
khách hàng.
- Tìm các truy vấn SQL để có manh mối về cấu trúc cơ sở dữ liệu và cách truy vấn
được xây dựng từ dữ liệu động.
- Xác định vị trí trường ẩn trong form.
- Tìm ra giá trị của các tham số chuyển giữa các trang web.
- Tạo ra các trường hợp l€i khác nhau để xem máy chủ trả lời. Một ví dụ là, nếu
kiểm tra máy chủ khác nhau đưa ra một thông báo l€i cho một không đúng tên
người dùng so với sai mật khẩu.
I.2. Cách phòng tránh:
- Tránh đưa ra các thông tin về các truy vấn SQL.
- Không gắn kèm các ghi chú trong mã gửi đến khách hàng.
- Không đặt tên người dùng, mật khẩu, cơ sở dữ liệu vào chu€i kết nối, trong mã và
thông báo l€i.
2. Đoán tập tin và thư mục:
II.1. Nội dung:
Những kẻ tấn công sẽ đoán những tệp và thư mục chứa thông tin quan trọng và cố
gắng truy cập vào đó để lấy thông tin:
- Tập tin như config.inc, web.xml, và server.xml có thể chứa thông tin kết nối cơ
sở dữ liệu.
- Tập tin. Htpasswd có thể chứa thông tin tên người dùng và mật khẩu của họ.

- Thư mục như template/ có thể chứa các tệp tin với thông tin về các ứng dụng.
II.2. Các phòng tránh:
- Sử dụng danh sách kiểm soát truy cập để chặn những nguời dùng truy cập vào các
thư mục và tệp hệ thống không được phép.
- Bảo vệ bất kỳ tệp tin không liên quan đến người dùng, bằng cách đặt chúng trong
thư mục bên ngoài hệ thống file hoặc trong những nơi được bảo vệ đặc biệt như
WEB-INF/.
3. Khai thác khi đã biết những luồng bảo mật:
3.1. Nội dung:
Một số phương pháp bảo vệ websites trong thương mại điện tử
9
Khóa luận tốt nghiệp 2013
- Tất cả các phần mềm bao gồm cả hệ điều hành, ứng dụng máy chủ, và các
công cụ h€ trợ đều có l€i.
- Khi l€i đã được tìm thấy, cách bản sửa l€i thường được cung cấp để sửa chữa
chúng.
- Thời gian mà các quản trị viên hệ thống áp dụng bản sửa l€i bảo mật vào hệ
thống của mình thì những kẻ tấn có thể khai thác những l€ hổng đã được phát
hiện trong thời gian giữa bản l€i và bản được sủa của người quản trị.
Ta có thể hiểu đơn giản là phương pháp này dựa trên sự “nhanh tay nhanh
chân” của kẻ tấn công, nhanh chóng tấn công vào 1 l€i đã được công bố nhưng hệ
thống chưa kịp update các bản vá l€i.
3.2. Cách phòng tránh:
Thực hiện sửa l€i các l€ hổng đã phát hiện một cách nhanh chóng nhất có thể.
4. Vượt qua hạn chế trên các lựa chọn đầu vào:
4.1. Nội dung:
Một lớp tấn công khác là vượt qua hạn chế trên lựa chọn đầu vào:
- Thông tin người dùng nhập vào thường bị hạn chế theo những phạm vi để dễ kiểm
soát.
- Để cải thiện kinh nghiệm người sử dụng, mã của phía client sẽ thực hiện việc xác

nhận dữ liệu của người dùng.
- Các ứng dụng được viết một cách đơn giản tin tưởng các giá trị được gửi lên sẽ
nằm trong phạm vi mong đợi.
- Bởi vượt qua được giao diện người dùng, những kẻ tấn công có thể gán các giá trị
tùy ý cho biến đầu vào của người dùng.
4.2. Cách phòng tránh:
Để giảm thiểu rủi ro, cần xác nhận tính hợp lệ tất cả các dữ liệu đến từ client.
II. Phòng chống tấn công dựa vào trạng thái của trang
Giao thức HTTP không lưu trạng thái của các trang web hay người dùng khi
tương tác với ứng dụng. Do yêu cầu của ứng dụng websites thương mại điện tử như
đăng nhập vào hệ thống để sử dụng những tiện ích(mua bán, giao dịch, xác nhận, )
hay đơn giản chỉ là đánh dấu những nơi đã đi qua nên các ứng dụng web sẽ lưu lại
trạng thái các phiên làm việc bằng cách thiết lập giá trị nào đó được lưu lại ở máy
tính của người dùng hay trong mã gửi đến người dùng thông qua trình duyệt.
Trạng thái của phiên làm việc sẽ được lưu theo ba cách sau:
- Trường ẩn trong form
- Tham số CGI (cả trong phương thức GET và POST)
Một số phương pháp bảo vệ websites trong thương mại điện tử
10
Khóa luận tốt nghiệp 2013
- Cookies
1. Tấn công vào trường ẩn:
1.1. Nội dung:
Ta có 1 form đơn giản gồm cả trường ẩn sau:
<form action = “giaodich.php” method = “post”>
<input type = “hidden” name = “price” value = “99”/>
</form>
Nếu không có gì thay đổi, thì máy chủ sẽ nhận được giá trị của biến price là
99. Nếu hacker thay đổi giá trị của biến price:
<form action = “giaodich.php” method = “post”>

<input type = “hidden” name = “price” value = “0.99”/>
</form>
Như vậy là giá trị của biến price chỉ còn là 0.99 khi đến máy chủ. (Nếu đây là
form xác nhận mua hàng thì cửa hàng sẽ bị l€ rất nhiều).
1.2. Cách phòng tránh:
- Đặt cho trường ẩn một cái tên khó hiểu.
- Sử dụng các giá trị được băm hay mã hóa.
- Nếu có thể thì không sử dụng trường ẩn.
- Kiểm tra giá trị của chúng khi đến server.
2. Tấn công dựa vào tham số CGI:
2.1. Nội dung:
Tham số CGI có thể nhìn thấy ở cuối của URL trong yêu cầu GET đằng sau dấu
“?”, m€i tham số là một cặp gồm tên-giá trị phân cách nhau bằng dấu “=”, các
tham số được phân cách nhau bởi dấu “&”. Nếu trong phương thức POST, ta có thể
tìm thấy ở phần chính của yêu cầu.
Ví dụ: />Ta thấy trong chu€i trên có tham số f và có giá trị là t%E1%BA%A5n+c
%C3%B4ng
Ta có thể chỉnh sửa URL một cách thủ công bằng cách thay đổi giá trị của tham
số hoặc thêm vào các tham số khác.
Ví dụ: nếu ứng dụng web cho phép người dùng thay đổi mật khẩu và trang thay đổi
có URL truyền đi như sau:
/>Trong URL trên có 2 tham số là:
Một số phương pháp bảo vệ websites trong thương mại điện tử
11
Khóa luận tốt nghiệp 2013
Tham số u_name là tên tài khoản người dùng, có giá trị là thao
Tham số new_passwd là mật khẩu mới của tài khoản thao, có giá trị là abc
Ta có thể thay đổi giá trị của new_passwd từ abc thành xyz chẳng hạn.
Như trong ví dụ trên ta có thể thay đổi mật khẩu của 1 tài khoản mà không cần tới
mật khẩu cũ. (tất nhiên là trong thực tế sẽ không tồn tại khả năng như vậy).

2.2. Cách phòng tránh:
- Xử lý tham số như xử lý phần người dùng nhập vào.
- Kiểm tra giá trị của chúng khi gửi lên server.
- Không sử dụng các phương thức GET truyền biến qua địa chỉ như vậy, hoặc nếu có
dùng thì hạn chế tối đa và đặt tên biến khó hiểu.
Ví dụ như:
/>như trên em đã dùng 1 biến là pass để làm khóa cho file checklogin.php, nếu điền
đúng giá trị của pass thì mới sử dụng được giá trị a là biến chứa tên tài khoản, và b
là biến chứa mật khẩu.
3. Tấn công bằng cách làm nhiễm độc cookie:
3.1. Nội dung:
Cookie là dữ liệu dùng chung của server và client, do server tạo ra và lưu ở máy
tính của client (có thể lâu dài hoặc không lâu dài). Cookie được lưu ở dạng file text
và chứa những thông tin về người dùng, phiên làm việc hiện tại hay đã kết thúc…
Cookie của m€i ứng dụng web là khác nhau tùy vào người thiết kế ứng dụng, khác
nhau theo cả trình duyệt web của người dùng. Cookie có thể được thay đổi dễ dàng
trong file text.
Hình 1 - Cookies được lưu của trang web
Hacker sẽ thay đổi những giá trị các trường trong cookie như là:
Một số phương pháp bảo vệ websites trong thương mại điện tử
12
Khóa luận tốt nghiệp 2013
- Thay đổi thời hạn của cookie
- Thay đổi các dữ liệu xác thực
- Thay đổi thông tin giỏ hàng
3.2. Cách phòng tránh:
- Sử dụng đối tượng session thay cho cookie lưu trữ thông tin quan trọng trên
server. Khi ứng dụng cần kiểm tra thông tin của một người dùng, ứng dụng sẽ
dùng sessionID của người dùng để chỉ đến thông tin của người dùng đó trong
cache hay cơ sở dữ liệu.

- Xây dựng một cơ chế kiểm tra nội dung của cookie để tìm ra những giá trị
không hợp lệ từ đó biết được cookie đó là giả. Ví dụ là nếu biến id “người quản
trị” được được thiết lập là đúng trong cookie, nhưng giá trị của số thứ tự người
dùng trong cookie lại không giống như giá trị số thứ tự của “người quản trị”
được lưu trữ trên server.
- Phương pháp cuối cùng là mã hoá cookie. Có một số phương pháp mã hoá như
symmetric (dùng 1 khóa duy nhất cho cả mã hóa và giải mã) hay asymmetric
(mã hóa dùng 2 khóa riêng biệt, một khóa dùng chung cho mã hóa và một khóa
riêng để giải mã)
4. Tấn công bằng nhảy URL:
4.1. Nội dung:
Người dùng gõ vào một URL và nhảy tới trang đó, không tuân theo thứ tự các
trang thông thường của ứng dụng. Ví dụ: Người dùng có thể truy cập mà không cần
đăng nhập. Người dùng có thể mua hàng mà không cần trả tiền.
Ta có thể hiểu:
Khi có 1 trang mua bán hàng hóa khi ta gõ địa
chỉ trên vào thanh url của trình duyệt, trình duyệt sẽ đưa ta đến file index.php tức là
mặc định sẽ là . Ở đây chúng ta cần đăng
nhập rồi sau đó trình duyệt sẽ dẫn tới file trade.php để thực hiện giao dịch:

Nhưng ta có thể gõ luôn để mua bán mà ko
cần đăng nhập.
Phương pháp này rất hiếm khi thành công (không bao giờ).
4.2. Cách phòng tránh:
- Hạn chế truy cập vào tất cả các URL không dành cho người sử dụng như
những trang dành cho admin
- Khóa sự truy cập vào những nơi không phải là trang web
Một số phương pháp bảo vệ websites trong thương mại điện tử
13
Khóa luận tốt nghiệp 2013

- Sử dụng thêm cookie, trường ẩn để chặn truy cập vào các trang không đúng
trình tự.
- Sử dụng session để lưu phiên làm việc của từng user.
5. Tấn công chiếm hữu phiên làm việc (Session hijacking):
5.1. Nội dung:
Ứng dụng web lưu trạng thái m€i phiên làm việc của người dùng bằng mã phiên
làm việc (session ID). Server sẽ cung cấp m€i session ID khác nhau cho m€i người
dùng khác nhau để chứng thực phiên làm việc đó.
Để duy trì phiên làm việc, SessionID thường được lưu vào:
- Tham số CGI
- Trường ẩn trong form
- Các cookie
Thông thường, sau khi người dùng được chứng thực dựa trên những thông tin
cá nhân như tên/mật khẩu, session ID được xem như một mật khẩu tĩnh tạm thời
cho những lần yêu cầu tiếp theo. Điều này đã khiến cho Session ID là mục tiêu lớn
cho những hacker. Trong nhiều trường hợp, hacker giành được session ID hợp lệ
của người dùng để từ đó đột nhập vào phiên làm việc của họ.
Hình 2 - Thông tin về session trong 1 phiên làm việc.
Những kẻ tấn công có thể thực hiện những cách sau:
- Đoán mã của một phiên làm việc hợp lệ.
- Ăn cắp một mã phiên qua các mạng lưới giám sát:
Một số phương pháp bảo vệ websites trong thương mại điện tử
14
Khóa luận tốt nghiệp 2013
Hình 3 - Ăn cắp session qua mạng lưới giám sát
- Ăn cắp một mã phiên thông qua XSS. Hacker sẽ sử dụng đoạn mã trên trình duyệt của
nạn nhân và gửi kết quả về máy của mình.
- Ấn định phiên làm việc. (Session fixation)
Một số phương pháp bảo vệ websites trong thương mại điện tử
15

Khóa luận tốt nghiệp 2013
Hình 4 - Tấn công ấn định phiên làm việc
Trong tấn công ấn định phiên làm việc, kẻ tấn công ấn định sẵn SessionID cho nạn
nhân trước khi họ đăng nhập vào hệ thống. Sau đó kẻ tấn công sẽ sử dụng SessionID này
để tiếp tục phiên làm việc của nạn nhân.
5.2. Cách phòng tránh:
- Chống việc đăng nhập với một session ID có sẵn: Theo kiểu tấn công này, người
dùng đăng nhập vào hệ thống thông qua một session ID do hacker tạo sẵn thay vì
cho trình chủ tạo mới, do đó để có thể phòng chống, ứng dụng phải hủy bỏ session
ID được cung cấp bởi trình duyệt của người dùng khi đăng nhập và luôn tạo một
session ID mới khi người dùng đăng nhập thành công.
- Phòng chống những hacker bên ngoài hệ thống Việc tạo ứng dụng trên hệ thống
theo hướng giới hạn ( chỉ tạo một session ID mới cho người dùng sau khi họ thành
công ) sẽ khiến cho những hacker không phải là người dùng hợp lệ của hệ thống
không thể sử dụng phương pháp tấn công này.
- Giới hạn phạm vi ứng dụng của session ID:
 Kết hợp Session ID với địa chỉ của trình duyệt.
 Kết hợp Session ID với thông tin chứng thực được mã hoá SSL của người
dùng.
Một số phương pháp bảo vệ websites trong thương mại điện tử
16
Khóa luận tốt nghiệp 2013
 Xóa bỏ session khi người dùng thoát khỏi hệ thống hay hết hiệu lực, có thể
thực hiện trên trình chủ hoặc trình duyệt (cookie)
 Người sử dụng phải dùng chế độ thoát khỏi hệ thống để xóa bỏ session hiện
thời và có thể những session ID còn lưu lại trên hệ thống khi họ quên thoát ra
ngoài những lần trước
 Thiết lập thời gian hết hiệu lực cho session, tránh trường hợp hacker có thể
duy trì session và sử dụng nó lâu dài.
Chú ý:

- Không được chủ quan khi nghĩ rằng thuật toán tạo session của ứng dụng là bảo mật,
không ai có thể đoán được.
- Với session ID quá ngắn, hacker có thể dùng kĩ thuật “vét cạn”. Nhưng không vì thế
mà cho rằng ứng dụng sẽ bảo mật với session ID dài và phức tạp vì kích thước
session ID sẽ là một vấn đề nếu thuật toán không tốt.
III. Phòng chống chèn mã lệnh thực thi trên trình duyệt (cross-sites scripting -
XSS):
1. Nội dung:
Cross-Site Scripting (XSS) là một trong những kỹ thuật tấn công phổ biến, nó cũng là
một trong những vấn đề bảo mật quan trọng đối với các nhà phát triển Web và cả những
người sử dụng Web. Bất kì một Website nào cho phép người sử dụng đăng thông tin mà
không có sự kiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều có thể tiềm ẩn các l€i XSS.
Hacker sẽ lợi dụng sự kiểm tra lỏng lẻo từ ứng dụng và hiểu biết hạn chế của người
dùng cũng như biết đánh vào sự tò mò của họ dẫn đến người dùng bị mất thông tin một
cách dễ dàng. Hacker thực hiện tấn công XSS 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ó thể
gây hại cho những người sử dụng khác.
Thông thường hacker lợi dụng địa chỉ URL để đưa ra những liên kết là tác nhân kích
hoạt những đoạn chương trình 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 và cũng có thể là cả các thẻ HTML,… được thực
thi trên chính trình duyệt của nạn nhân.
Ví dụ 1: Hacker thường gắn thêm đoạn mã độc vào URL của Website và gởi đến nạn
nhân, nếu nạn nhân truy cập URL đó thì sẽ bị dính mã độc.
http:// thao-demo .com/search.cgi?query= <script>alert(document.cookie);</script>
Lợi dụng cách truyền tham số trên URL mà hacker có thể dễ dàng thêm vào đoạn mã
đánh cắp cookie. Điều này xảy ra do ta không chú ý điều kiện lọc input từ URL của
Website.
Ví dụ 2: Trường hợp mở các bức thư mà không hề cảnh giác với XSS. Chỉ cần với một
đoạn mã HTML gửi trong thư thì đã hoàn toàn bị mất cookie của mình.
Một số phương pháp bảo vệ websites trong thương mại điện tử

17
Khóa luận tốt nghiệp 2013
Khi nhận thư, nếu vô tình người dùng đưa con chuột qua bức ảnh gửi kèm thì cũng có
nghĩa là đã bị lấy mất cookie. Và với cookie lấy được, các hacker có thể dễ dàng login
hòm thư của người sử dụng này.
<form action=" />method="post" name="XSS">
<input type="hidden" name="cookie">
</form>
<img border="0" onmouseover ="window.document
.XSS.cookie.value = document.cookie; window.document
.XSS.submit();" src="anh.jpg">
Nhưng thực sự thì có rất nhiều cách để thêm đoạn mã JavaScript với mục đích tấn
công kiểu XSS. Hacker có thể dễ dàng lợi dụng Document Object Model (DOM) để thay
đổi ngữ cảnh và nội dung ứng dụng web. Một vài loại thẻ có thể chèn đoạn mã:
<link rel="stylesheet" type="text/css"
href="javascript:[code]" />
<script type="text/javascript">[code]</script>
<script>[code]</script>
<iframe src="vbscript:[code]" />
<img src="[code]" />
<img src="blah" onmouseover="[code]" />
<xml src="javascript:[code]" />

Phần in đậm là phần có thể đặt đoạn mã đánh cắp thông tin.
Nếu như các kỹ thuật tấn công khác có thể làm thay đổi được dữ liệu nguồn của
Web server (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại đối với Website ở
phía client mà nạn nhân trực tiếp là những người khách duyệt site đó.
Đôi khi các hacker cũng sử dụng kỹ thuật này đề phá hoại các Website nhưng đó
vẫn chỉ tấn công vào bề mặt của Website. XSS là những Client-Side Script, những đoạn
mã này sẽ chỉ chạy bởi trình duyệt phía client do đó XSS không làm ảnh hưởng đến hệ

thống Website nằm trên server.
Mục tiêu tấn công của XSS không ai khác chính là những người sử dụng khác của
Website, khi họ vô tình vào các trang có chứa các đoạn mã nguy hiểm do các hacker để lại
họ có thể bị chuyển tới các Website khác, đặt lại homepage, hay mất mật khẩu, mất
cookie, hay có thể sẽ bị cài các loại virus, backdoor, worm,…
2. Cách phòng tránh:
Một số phương pháp bảo vệ websites trong thương mại điện tử
18
Khóa luận tốt nghiệp 2013
Như đã biết, một tấn công XSS chỉ thực hiện được khi gửi một trang Web cho trình
duyệt Web của nạn nhân có kèm theo mã script độc của kẻ tấn công. Vì vậy những nhà
phát triển có thể bảo vệ ứng dụng Web khỏi bị lợi dụng thông qua những tấn công XSS
này, đảm bảo những trang phát sinh động không chứa các tag của script bằng cách lọc và
xác nhận hợp lý các dữ liệu đầu vào từ phía người dùng hoặc mã hóa (endcoding) và lọc
các giá trị xuất cho người dùng.
 Lọc, xác nhận tính hợp lý:
Luôn luôn lọc các dữ liệu nhập từ phía người dùng bằng cách lọc các ký tự đặc
biệt, dấu nháy đơn kép, ký tự Null,… được định nghĩa trong đặc tả của HTML. M€i
trường nhập liệu bao gồm cả tham số liên kết sẽ được kiểm tra để phát hiện các thẻ
script. Hiện tại có khá nhiều bộ lọc để ta lựa chọn (như bộ thư viện viết bằng PHP cho
phép filter HTML để ngăn chặn kẻ xấu post mã độc XSS thông qua Website, đó là
HTML Purifier. Website: )
 Mã hóa:
L€i XSS có thể tránh được khi máy chủ Web đảm bảo những trang phát sinh được
mã hóa thích hợp để ngăn việc chạy các script không mong muốn. Mã hóa phía máy
chủ là một tiến trình mà tất cả nội dung phát sinh động sẽ đi qua một hàm mã hóa nơi
mà các thẻ script sẽ được thay thể bởi mã của nó. Việc mã hóa được khuyến khích sử
dụng vì nó không yêu cầu phải đưa ra quyết định những kí tự nào là hợp lệ hoặc
không hợp lệ. Tuy nhiên việc mã hóa tất cả dữ liệu có thể tốn tài nguyên và ảnh
hưởng đến khả năng thực thi của máy chủ.

 Người dùng:
Người sử dụng cần cấu hình lại trình duyệt để được nhắc nhở có cho thự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ậy mà người dùng sẽ
quyết định.
Kỹ thuật XSS khá phổ biến và dễ dàng áp dụng, tuy nhiên mức độ thiệt hại chỉ
dừng lại ở mức độ tấn công trên máy nạn nhân. Vì thế, ngoài việc ứng dụng kiểm tra tính
đúng đắn của dữ liệu thì việc cần nhất là người dùng nên cảnh giác trước khi bước vào
một trang Web mới. Có thể nói, nhờ vào sự cảnh giác của người dùng thì 90% đã đạt
được sự bảo mật trong kỹ thuật này.
IV. Phòng chống chèn mã SQL – SQL Injection:
1. Khái niệm SQL Injection:
Trong chương này, chúng ta sẽ tìm hiểu kỹ càng hơn về phương pháp tấn công SQL
Injection và các phương pháp phòng tránh hữu hiệu.
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.
Một số phương pháp bảo vệ websites trong thương mại điện tử
19
Khóa luận tốt nghiệp 2013
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 (metadata).
Khi các chu€i đó được ghép vào các câu lệnh SQL thì đoạn mã đó sẽ được chạy. Khi
ứng dụng Web thất bại trong việc lọc các tham số đầu vào (được dùng làm nguyên liệu
cho quá trình sinh SQL động), ngay cả khi dùng hình thức tham số hóa (parameterize) thì
kẻ tấn công có thể dễ dàng điều chỉnh quá trình xây dựng truy vấn SQL. Một khi kẻ tấn
công có thể sửa câu truy vấn SQL, thì những truy vấn SQL anh ta muốn sẽ được thực thi
với quyền của người sở hữu ứng dụng, và thiệt hại anh ta có thể gây ra sẽ tùy theo quyền

hạn được cấp.
SQL Injection là một dạng tấn công dễ thực hiện, hầu hết mọi thao tác người tấn công
cần được thực hiện với một trình duyệt web, có thể kèm theo một ứng dụng proxy server.
Chính vì đơn giản như vậy cho nên bất cứ ai cũng có thể học cách tiến hành một cuộc tấn
công. L€i bắt nguồn từ mã nguồn của ứng dụng web chứ không phải từ phía database,
chính vì thế bất cứ thành phần nào của ứng dụng mà người dùng có thể tương tác được để
điều khiển nội dung (ví dụ : các form, tham số URL, cookie, tham số referrer, user-agent,
…) đều có thể được sử dụng để tiến hành chèn truy vấn có hại.
Có thể rút ra vài nhận xét sau về l€i SQL Injection:
 Xác suất gặp phải l€ hổng bảo mật loại này trong một trang web là khá cao.
 Là một trong số những l€i bảo mật phổ biến nhất.
 Được sử dụng nhiều, lý do một phần bởi tính đơn giản, không đòi hỏi nhiều
công cụ h€ trợ.
 Thời gian khắc phục các điểm yếu này thường khá lâu, do đó hậu quả thường
nặng nề hơn.
Trên thực tế, các cuộc tấn công SQL Injection thường nhắm đến các cơ sở dữ liệu
mang tính thương mại, ví dụ các trang web thương mại điện tử. Thông thường, các cuộc
tấn công này thường sẽ tiến hành việc sửa đổi nội dung của database đối tượng và chèn
các đoạn mã JavaScript độc. Bản chất điểm yếu SQL Injection là xuất hiện từ trong quá
trình xử lý dữ liệu input của người dùng bên trong mã nguồn, do chính thời gian bảo trì
mã nguồn thường kéo dài nên các l€i SQL Injection cũng chậm được khắc phục triệt để.
Với tính nghiêm trọng của các cuộc tấn công, tính dễ thực hiện một cuộc tấn công đã
khiến cho SQL Injection một thời từng là hiểm họa nghiêm trọng đối với các giao dịch
thương mại điện tử trên các ứng dụng Web được phát triển thiếu an toàn. Hiện nay, việc
nghiên cứu SQL Injection đã có hệ thống và toàn diện hơn, mối nguy hiểm này đã giảm
đi, nhưng các số liệu thống kê vẫn cho thấy vấn đề này còn chưa được giải quyết triệt để.
2. Cơ chế sinh truy vấn SQL bên trong ứng dụng:
Một số phương pháp bảo vệ websites trong thương mại điện tử
20
Khóa luận tốt nghiệp 2013

Tham số được nhập vào sẽ được sử dụng để xây dựng các truy vấn SQL nên nó sẽ cần
thỏa mãn các ràng buộc cú pháp với thành phần trước và sau trong truy vấn gốc.
Xét đoạn mã PHP xử lý đăng nhập sau:
<?php
$_username = $_POST['username'];
$_passwd= $_POST['passwd'];
$str = "select * from users where username =
‘$_username’ && password = ‘$_passwd’";
$query = mysql_query($str);

?>
Xâu truy vấn SQL được sinh ra trong trường hợp trên sử dụng trực tiếp giá trị input
được người dùng nhập vào, do đó mô hình xây dựng truy vấn dạng này được gọi chung là
xây dựng truy vấn động (dynamic query). Truy vấn thu được sẽ có dạng như sau:
SELECT * FROM users WHERE username=’$_username’ && password =
‘$_passwd’;
Trong đó hai giá trị $_username và $_passwd được nhập từ người dùng. Khi thực
hiện nhập giá trị username là admin’ or ‘1’=’1 truy vấn động thu được sẽ như sau:
SELECT * FROM users WHERE username=’admin’ or ‘1’=’1’ &&
password=’’;
Truy vấn này tuy có cụm luôn đúng, nhưng do toán tử AND có độ ưu tiên cao hơn OR
do đó truy vấn trên tương đương với:
SELECT * FROM users WHERE username=’admin’ AND password=’’;
Trường hợp này rõ ràng đăng nhập thất bại. Tiếp tục thử với việc thêm cả cụm ‘ or
‘1’=’1 vào cả password, ta có truy vấn được sinh ra:
SELECT * FROM users WHERE username=’admin’ or ‘1’=’1’ AND
password=’’ or ‘1’=’1’;
Truy vấn trên tương đương với:
SELECT * FROM users WHERE username=’admin’ and password=’’ or
‘1’=’1’;

Một số phương pháp bảo vệ websites trong thương mại điện tử
21
Khóa luận tốt nghiệp 2013
Trường hợp này việc xác thực đã thành công do mệnh đề WHERE luôn đúng. Ngoài
cách trên ta có thể thực hiện chèn thêm một đoạn or ‘1’=’1 vào username, tức là admin’
or ‘1’=’1’ or ‘1’=’1 vào, kết quả thu được cũng tương tự, do toán tử AND đã được “khử”
trước các toán tử OR.
3. Các phương pháp tấn công phổ biến:
3.1. Tấn công khai thác dữ liệu thông qua toán tử Union:
Khai thác thông tin thông qua việc sử dụng UNION là một trong 2 nhánh chính của
việc khai thác dữ liệu thông qua l€i SQL Injection. Các điểm yếu SQL Injection có thể
khai thác được thông qua UNION là dạng điểm yếu mà thông tin trả về có thể được hiển
thị trực tiếp trên thông điệp phản hồi. Loại hình thứ hai đó là thông qua các toán tử điều
kiện sẽ được đề cập ở phần sau.
Toán tử union sẽ thực hiện ghép dữ liệu của truy vấn gốc và truy vấn khai thác.
Điều kiện là hai truy vấn này phải trả về cùng số cột, và các cột này có cùng kiểu dữ liệu.
Để có thể thực hiện các khai thác thông qua toán tử UNION, chúng ta cần thực hiện ban
đầu hai giai đoạn, đó là tìm số cột, kiểu dữ liệu của các cột, và giai đoạn hai đó là tìm cột
nào có thể “chứa” thông tin trả về của truy vấn khai thác.
3.1.1. Tìm số cột và kiểu dữ liệu của cột:
Xét một trang web chứa điểm yếu SQL Injection trên biến id tại đường dẫn
sau: />Một số phương pháp bảo vệ websites trong thương mại điện tử
22
Khóa luận tốt nghiệp 2013
Hình 5 - Trang nạn nhân ban đầu
Để tìm ra số cột của bảng hiện thời, có hai cách có thể sử dụng, sử dụng UNION hoặc
sử dụng ORDER BY. Giả sử truy vấn của ứng dụng xây dựng để trả về kết quả hiện thời
có dạng:
SELECT * FROM tbl_products WHERE id=4;
Mệnh đề ORDER BY được sử dụng để sắp xếp kết quả trả về bởi truy vấn theo cột

được chỉ định. Nếu cột đó không tồn tại,một thông báo l€i trả về. Giả sử ta muốn sắp xếp
theo cột thứ 2 ta chèn tham số ORDER BY 2 vào giá trị tham số product_id, ví dụ ta có
truy vấn kiểu sau:
SELECT * FROM tbl_products WHERE id=4 ORDER BY 2
Một số phương pháp bảo vệ websites trong thương mại điện tử
23
Khóa luận tốt nghiệp 2013
Hình 6 - Trang nạn nhân, order by 2
Thấy có l€i báo và thấy luôn cả câu truy vấn của mã nguồn: có 2 câu lệnh order by,
do đó cần chỉnh sửa câu lệnh của ta một chút:
SELECT * FROM tbl_products WHERE id=4 ORDER BY 2
Trong đó, ta thêm dấu - - để loại bỏ các câu truy vấn phía sau của mệnh đề.
Một số phương pháp bảo vệ websites trong thương mại điện tử
24
Khóa luận tốt nghiệp 2013
Hình 7 – trang nạn nhân với truy vấn order by 2
Không có l€i trả về, vậy bảng hiện tại có ít nhất 2 cột, ta tiếp tục tăng số cột dự đoán
lên. Chiến thuật đoán này có thể sử dụng tìm kiếm nhị phân, tức chúng ta xác định hai
mốc lớn nhất và bé nhất, từ đó tìm nhị phân giữa hai mốc này.
Ví dụ với mốc 6 cột, ta thấy trả về l€i :
Một số phương pháp bảo vệ websites trong thương mại điện tử
25

×