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

Nghiên cứu giải pháp đảm bảo an toàn ứng dụng web (tt)

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 (883.87 KB, 24 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN ĐỨC SƠN

NGHIÊN CỨU GIẢI PHÁP
ĐẢM BẢO AN TOÀN ỨNG DỤNG WEB

Chuyên ngành: Hệ thống thông tin
Mã số: 8.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI, NĂM 2018


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: PGS.TS Lê Hữu Lập

Phản biện 1: TS. Hoàng Xuân Dậu

Phản biện 2: PGS.TS. Đặng Văn Chuyết

Luận văn được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: 9 giờ 20 ngày 6 tháng 1 năm 2018

Có thể tìm hiểu luận văn tại:
Thư viện Trường Học viện Công nghệ Bưu chính Viễn thông



HÀ NỘI, NĂM 2018


1

MỞ ĐẦU
Việc thiếu quan tâm và đầu tư đúng mức đến đảm an toàn hệ thống và dữ liệu của
bộ phận chuyên trách dẫn đến các vụ tấn công vào các website rất phổ biến. Điều này cũng
đồng nghĩa với việc dữ liệu có nguy cơ bị đánh cắp, hệ thống bị ngưng trệ hoặc bị khai
thác trái phép là rất lớn khi an ninh hệ thống không được đảm bảo. Vì vậy cần phải tăng
cường khả năng phòng, chống các nguy cơ tấn công vào các ứng dụng web và biện pháp
ngăn chặn, khắc phục kịp thời các sự cố này.
Việc đi sâu tìm hiểu về các dạng tấn công vào các website sẽ giúp cho chúng ta
hiểu hơn về những lổ hổng trong công tác quản lý website, qua đó đưa ra những giải pháp
giúp các nhà quản lý có những biện pháp khắc phục, ngăn chặn sự thâm nhập từ bên
ngoài, cũng như vai trò quan trọng trong việc triển khai ứng dụng những công nghệ mới
an toàn và bảo mật hơn.
Mục tiêu của luận văn là tìm hiểu một số cách thức tấn công vào ứng dụng web và
một số giải pháp phòng chống tấn công, từ đó đề xuất giải pháp đảm bảo an toàn an ninh
mạng cho các website của trường Đại học Công nghệ Giao thông vận tải.
Ngoài phần Mở đầu và Kết luận, cấu trúc luận văn gồm 3 chương với mô tả sơ lược
nội dung từng chương như sau:
Chương 1 - Tổng quan an toàn ứng dụng web: Chương này luận văn nêu tổng
quan về thực trạng lỗ hổng an ninh web, kỹ thuật tấn công, các ảnh hưởng khi bị tấn công.
Chương 2 - Nghiên cứu giải pháp phòng chống tấn công web: Chương này luận
văn tập trung nghiên cứu cách phòng chống một số dạng tấn công phổ biến.
Chương 3 - Đề xuất giải pháp an toàn an ninh mạng của trường Đại học Công
nghệ Giao thông vận tải: Chương này khảo sát, đánh giá, đề xuất giải pháp nâng cao độ
an toàn an mạng của trường Đại học Công nghệ Giao thông vận tải.



2

Chương 1. TỔNG QUAN AN TOÀN ỨNG DỤNG WEB
1.1. Thực trạng an toàn ứng dụng web
Trong cuộc chạy đua số hóa, bùng nổ công nghệ thông tin đã đẩy mạnh các ứng
dụng web để nâng cao khả năng quản lý, phục vụ công việc. Do mong muốn đưa các ứng
dụng này vào thực tế càng nhanh càng tốt nên việc chuẩn bị đầy đủ các quy trình kiểm soát
bảo mật thường xảy ra thiếu sót.
Các ứng dụng web được đưa vào sử dụng quá nhanh chóng nên chưa được đầu tư
kiểm tra an toàn an ninh đầy đủ, thường là không được kiểm tra. Nếu có thì chỉ là tự dùng
một số công cụ/phần mềm để kiểm tra lỗ hổng bảo mật, chưa thuê công ty bảo mật chuyên
nghiệp để thực hiện, có thể vì chi phí khá cao hoặc đội ngũ bảo mật không chú trọng hoặc
không biết rõ về yêu cầu[12].
Người sử dụng cuối không được đào tạo bài bản hoặc không được cảnh báo về nguy
cơ bảo mật nên họ rất dễ mắc sai lầm khi giao dịch trên Internet nên họ chính là lỗ hổng
bảo mật lớn nhất đối với vấn đề an ninh mạng của ứng dụng web.
Đa số các thiết bị bảo mật hiện tại đã cũ, không còn phù hợp với tình hình an ninh
mạng hiện tại, trừ khi vừa mới đầu tư mua mới các thiết bị này. Chẳng hạn như thiết bị
tường lửa truyền thống vẫn còn được sử dụng, trong khi nó không thể đảm bảo an toàn cho
hệ thống như các thiết bị tường lửa thế hệ mới.
Việc trang bị thiết bị tường lửa cho ứng dụng web cũng chưa được chú trọng và đầy
đủ. Hoặc đôi khi quá tự tin vào hệ thống tường lửa thế hệ mới vừa được trang bị nên không
chú ý rằng nó không đủ chức năng để bảo vệ các ứng dụng trên Internet. Hơn nữa việc đầu
tư các thiết bị tường lửa cũng khá đắt nên không phải ai cũng sẵn sàng đầu tư để mua các
thiết bị này.
Đội ngũ công nghệ thông tin thường thiếu người chuyên trách về bảo mật và thường
là nhân viên quản trị mạng hoặc quản trị hệ thống kiêm nhiệm công việc này do thiếu ngân
sách cho nhân lực. Do đó việc có nhân viên chuyên trách về bảo mật cho ứng dụng web là

điều khá xa xỉ. Ngoài ra, đội ngũ chuyên trách về kiến trúc và thiết kế hệ thống cũng bị
thiếu, thường thì cũng kiêm nhiệm.


3
Chính sách hoặc quy trình bảo mật chưa được xây dựng đầy đủ nên không ngăn
chặn được các nguy cơ về an ninh mạng hoặc nhân viên thực thi sai quy trình bảo mật hoặc
đội ngũ giám sát bảo mật không đủ mạnh để kiểm soát các vấn đề an ninh mạng.
Những khiếm khuyết kể trên đã được các kẻ tấn công khai thác triệt để để tạo ra các
cuộc tấn công và gây ra rất nhiều tổn thất nặng nề. Có rất nhiều giải pháp được đưa ra bởi
các tổ chức, cá nhân nhưng chưa thực sự có hiệu quả trong vấn đề phòng chống các cuộc
tấn công. Nguy hiểm hơn, các cuộc tấn công vào ứng dụng web diễn ra rất phức tạp, tinh
vi, khó đoán trước và gây ra hậu quả rất lớn.

1.2. Các kỹ thuật tấn công ứng dụng web
1.2.1 Tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ (DoS - Denial of Service) là một sự kiện bảo mật xảy ra
khi kẻ tấn công có hành động ngăn cản người dùng hợp pháp truy cập hệ thống máy tính,
thiết bị hoặc các tài nguyên mạng khác. Trong tấn công từ chối dịch vụ, kẻ tấn công nhằm
vào các máy tính và sử dụng mạng máy tính dùng để ngăn cản truy cập email, website, tài
khoản trực tuyến và các dịch vụ khác.
Tấn công từ chối dịch vụ phân tán (DDoS - Distributed Denial of Service) là nỗ lực
làm sập một dịch vụ trực tuyến bằng cách làm tràn ngập nó với traffic từ nhiều nguồn. Trong
tấn công từ chối dịch vụ phân tán (DDoS), một kẻ tấn công có thể sử dụng các máy tính cá
nhân để tấn công vào các máy tính khác. Bằng cách lợi dụng những lỗ hổng về bảo mật
cũng như sự không hiểu biết, kẻ này có thể giành quyền điều khiển máy tính. Sau đó chúng
sử dụng máy tính bị chiếm quyền điều khiển để gửi số lượng lớn dữ liệu đến một website
hoặc gửi thư rác đến một địa chỉ hòm thư nào đó. Tấn công này được được gọi là phân tán
vì kẻ tấn công sử dụng nhiều máy tính để thực hiện tấn công Dos. Mặc dù DDoS cung cấp
một chế độ tấn công ít phức tạp hơn các dạng tấn công mạng khác, nhưng chúng đang ngày

càng mạnh mẽ và tinh vi hơn.
Tấn công từ chối dịch vụ theo phương pháp phản xạ DRDoS (Distributed Reflection
Denial of Service):Để thực hiện, kẻ tấn công tìm cách chiếm dụng và điều khiển nhiều máy
tính hoặc mạng máy tính trung gian (đóng vai trò zombie) từ nhiều nơi để đồng loạt gửi ào
ạt các gói tin (packet) với số lượng rất lớn, mục đích chiếm dụng tài nguyên và làm tràn
ngập đường truyền của một mục tiêu xác định nào đó. DRDoS chỉ mới xuất hiện gần đây


4
nhưng lại là loại nguy hiểm nhất. Nếu được thực hiện bởi các kẻ tấn công chuyên nghiệp,
không một hệ thống nào có thể đứng vững được trước nó. Đáng nói hơn, hiện cũng đã xuất
hiện nhiều loại virus, worm, trojan có chức năng tự động thực hiện tấn công DoS. Đây có
lẽ là kiểu tấn công lợi hại nhất và làm boot máy tính của đối phương nhanh gọn nhất.

1.2.2 Tấn công SQL Inejection
SQL Injection (chèn mã độc SQL) là một kỹ thuật cho phép kẻ tấn công chèn mã
SQL vào dữ liệu gửi đến máy chủ và được thực hiện trên máy chủ cơ sở dữ liệu[1].
Nguyên nhân: dữ liệu đầu vào từ người dùng hoặc từ các nguồn khác không được
kiểm tra hoặc kiểm tra không kỹ lưỡng.
Tùy mức độ tinh vi, SQL Injection có thể cho phép kẻ tấn công:
• Vượt qua các khâu xác thực người dùng
• Chèn, xóa hoặc sửa đổi dữ liệu
• Đánh cắp các thông tin trong CSDL
• Chiếm quyền điều khiển hệ thống
Có rất nhiều công cụ phát hiện và khai thác lỗ hổng này. Hình 1.6 là ví dụ về 1 ứng
dụng web lỗi SQL Injection và bị tool tấn công

1.2.3 Tấn công SSL
SSL (Secure Sockets Layer) là tiêu chuẩn của công nghệ bảo mật, truyền thông mã
hoá giữa máy chủ Web server và trình duyệt (browser). Tiêu chuẩn này hoạt động và đảm

bảo rằng các dữ liệu truyền tải giữa máy chủ và trình duyệt của người dùng đều riêng tư và
toàn vẹn[14].
Lợi dụng quá trình chuyển gói tin đi qua nhiều trạm (hop) thuộc các mạng khác
nhau, kẻ tấn công chặn bắt các thông điệp giữa 2 bên tham gia truyền thông và chuyển
thông điệp lại cho bên kia. Kiểu tấn công này trong giới chuyên môn gọi là man-in-themiddle (người đứng giữa), là một trong nhiều kỹ thuật tấn công mạng, cho phép kẻ nào đó
can thiệp vào kết nối Internet của người khác và thu thập mọi thông tin truyền trên hệ thống
mạng đó. Loại tấn công này thường được sử dụng để đánh cắp thông tin.


5
Có hai bước để thực hiện tấn công kiểu man-in-the-middle. Đầu tiên, kẻ tấn công
phải xâm nhập được vào hệ thống mạng. Thứ hai, kẻ tấn công phải giải mã dữ liệu.
• Xâm nhập vào hệ thống mạng: Có 4 cách thông dụng
- Giả điểm truy cập Wi-Fi.
- Giả ARP: Kẻ tấn công thiết lập địa chỉ MAC của chính chúng như là một gateway
hoặc thiết bị của nạn nhân, kẻ tấn công có thể can thiệp hoặc chỉnh sửa mọi luồng dữ liệu.
- Chiếm proxy/SSL Bump: Kẻ tấn công lừa người dùng cài một ứng dụng độc hại
hoặc một profile cấu hình nào đó, hoặc sử dụng một phương thức bảo mật khác.
Luồng dữ liệu trên thiết bị bị định hướng đến kiến trúc mạng dựng sẵn của kẻ tấn công.
- VPN giả: Một người dùng bị lừa để tải về một ứng dụng hay một profile cấu hình
để yêu cầu kích hoạt VPN. Luồng dữ liệu trên thiết bị bị định hướng trỏ vào VPN của kẻ
tấn công.
• Giải mã dữ liệu: Có vài cách sau để giải mã dữ liệu trong khi dữ liệu đang di
chuyển trên hệ thống mạng. Trong đó, ba cách sau là thường gặp nhất:
- Tấn công chứng thực host: Kết nối thông qua man-in-the-middle, kẻ tấn công thiết
lập session SSL với host đã nhắm trước, Host hồi đáp với chứng thực SSL, chứng thực giả
tới người dùng cuối và người dùng chấp nhận. Nếu người dùng bị lừa cài đặt một chứng
thực root thì thậm chí hệ thống vô hiệu hoá cảnh báo về chứng thực về sau.
- SSL Strip: Kết nối thông qua kẻ tấn công, kẻ tấn công viết lại nội dung nhưng
không gồm các link HTTPS, thông tin vào ra, như tài khoản đăng nhập, sẽ hiển thị ở dạng

văn bản thuần, không hề mã hoá.
- Hạ cấp giao thức TLS: Kẻ tấn công chiếm kết nối để hạ cấp giao thức. Những giao
thức lỗi thời như TLS lại rất dễ giải mã nếu kẻ tấn công am tường công nghệ.

1.2.4 Tấn công XSS
Cross Site Scripting (XSS) là một trong những kĩ thuật tấn công phổ biến nhất hiên
nay, đồng thời 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. Đây là một kĩ thuật tấn công bằng cách chèn vào các website động


6
(ASP, PHP, CGI, JSP …) những thẻ HTML hay những đoạn mã script nguy hiểm có thể
gây nguy hại cho những nạn nhân sử dụng.
Lỗi này xảy ra khi ứng dụng web thu nhận các dữ liệu nguy hiểm được nhập từ kẻ
tấn công. Một website thường chứa các link, thông qua các link này kẻ tấn công có thể chèn
các đoạn code vào và khi người dùng nào đó sử dụng link này thì coi như 99% là sập bẫy,
kẻ tấn công có thể thông qua lỗi này để chèn code vào site hay link để lấy các thông tin
quan trọng từ nạn nhân.
Hầu hết các ứng dụng web hiện nay dùng cookie để kết hợp 1 tài khoản duy nhất
cho 1 người dùng nào đó, nghĩa là cookie của người nào người đó dùng. Các webmail, web
bán hàng, nhà băng , … đa số đều dùng cookie với mục đích chứng thực ngừơi dùng, và
đây là cái mà kẻ tấn công cần.
Các đoạn mã trong thẻ script không hề bị giới hạn bởi chúng hoàn toàn có thể thay
thế bằng một file nguồn trên một server khác thông qua thuộc tính src của thẻ script. Cũng
chính vì lẽ đó mà chúng ta chưa thể lường hết được độ nguy hiểm của các lỗi XSS.
Nhưng 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 đó. Tất nhiên đôi khi

các hacker cũng sử dụng kĩ thuật này đề deface các website nhưng đó vẫn chỉ tấn công vào
bề mặt của website. Thật vậy, 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 nặng hơn là mất mật khẩu,
mất cookie thậm chí máy tính của họ có thể sẽ bị cài các loại virus, backdoor, worm ..

1.2.5 Một số loại tấn công khác
CSRF (Cross Site Request Forgery): là kiểu tấn công bằng cách sử dụng quyền
chứng thực của người sử dụng đối với một website khác (mượn quyền ceritification ), các
ứng dụng web hoạt động theo nguyên tắc nhận các lệnh http từ người dùng sau đó thực thi
nó. CSRF sẽ lừa trình duyệt của người dùng để gửi đi các lệnh http đến các ứng dụng web


7
trong trường hợp session (phiên làm việc) của người dùng chưa hết hiệu lực thì các lệnh
http trên sẽ được thực hiện với quyền chứng thực của người dùng trước đó.
Path traversal: là một khai thác HTTP cho phép hacker truy cập đến những chỉ mục
bị giới hạn, thực thi lệnh bên ngoài chỉ mục gốc của máy chủ web. Nếu như truy cập thành
công thì hacker có thể xem được các file, thư mục bị giới hạn và thực thi được các câu lệnh
trên server mắc lỗi này đều không kiểm tra đầu vào dữ liệu được gửi từ client. Path
Traversal hay còn được biết với một số tên khác như “dot-dot-slash”, “directory
traversal”,”directory clumbing” và “backtracking”.
OS Comanding: kẻ tấn công có thể thực hiện các câu lệnh, dòng code của OS
để thực hiện các hành vi không tốt đối với hệ thống. Việc chèn thêm (injection) vào ứng
dụng để thực thi hành vi không tốt là một lỗi vô cùng nguy hiểm. Có thể gây lỗi cho host,
lấy cắp thông tin, thậm chí chiếm quyền quản lý server.


1.3. Ảnh hưởng của các cuộc tấn công
Các cuộc tấn công mạng nói chung, đặc biệt là tấn công vào ứng dụng web gây ra
những hậu quả về kinh tế, chính trị của các tổ chức, cá nhân. Tấn công ứng dụng web xảy
ra với mật độ dày đặc với rất nhiều quy mô trên thế giới, Việt Nam cũng không phải ngoại
lệ nếu không muốn nói là nơi xảy ra nhiều vụ điển hình.

1.4 Kết chương
Chương I đã giới thiệu tổng quan về thực trạng lỗ hổng an ninh web, một số kỹ

thuật tấn công phổ biến, các ảnh hưởng khi bị tấn công. Từ những trình bày khái quát
các kỹ thuật tấn công làm nền tảng làm cơ sở xây dựng phương án phù hợp để giải quyết
bài toán ngăn chặn tấn công ở chương 2.


8

Chương 2. NGHIÊN CỨU GIẢI PHÁP PHÒNG CHỐNG
TẤN CÔNG WEB
2.1. Phòng chống tấn công từ chối dịch vụ.
2.1.1. Phòng chống tấn công từ chối dịch vụ tổng quát
Nhìn chung, tấn công từ chối dịch vụ không quá khó thực hiện, nhưng rất khó phòng
chống do tính bất ngờ và thường là phòng chống trong thế bị động khi sự việc đã rồi. Việc
đối phó bằng cách tăng cường “phần cứng” cũng là giải pháp tốt, nhưng thường xuyên theo
dõi để phát hiện và ngăn chặn kịp thời cái gói tin IP từ các nguồn không tin cậy là hữu hiệu
nhất[13].

2.1.2. Biện pháp phòng chống tấn công DDoS
Tấn công DDoS có thể được phân loại dựa trên 6 tiêu chí chính[2]:
- Dựa trên phương pháp tấn công.
- Dựa trên mức độ tự động.

- Dựa trên giao thức mạng.
- Dựa trên phương thức giao tiếp.
- Dựa trên cường độ tấn công.
- Dựa trên việc khai thác các lỗ hổng an ninh.
Có thể chia các biện pháp phòng chống tấn công DDoS thành 3 dạng theo 3 tiêu chí
chính: Dựa trên vị trí triển khai, dựa trên giao thức mạng và dựa trên thời điểm hành động.
Phần tiết theo mô tả các biện pháp phòng chống tấn công DDoS thuộc 3 dạng trên.
- Dựa trên vị trí triển khai
- Dựa trên giao thức mạng
- Dựa trên thời điểm hành động
Nhìn chung, việc phòng chống tấn công DDoS rất phức tạp, thậm chí khi thực hiện
tất cả các phương án vẫn không thể chống lại các cuộc tấn công. Tùy thuộc vào đặc thù của
ứng dụng web mà cân nhắc lựa chọn các giải pháp cho phù hợp. Cũng nên có phương án


9
backup, dự phòng trong trường hợp bị tất công, tính cả đến phương án không thể khắc phục
hậu quả.

2.2. Phòng chống tấn công SQL Inejection.
2.2.1. Các biện pháp phòng chống ở mức lập trình
- Các biện pháp phòng chống dựa trên kiểm tra và lọc dữ liệu đầu vào:
• Kiểm tra tất cả các dữ liệu đầu vào, đặc biệt dữ liệu nhập từ người dùng và từ các
nguồn không tin cậy;
• Kiểm tra định dạng và kích thước dữ liệu đầu vào;
• Tạo các bộ lọc để lọc bỏ các ký tự đặc biệt và các từ khóa của các ngôn ngữ trong
các trường hợp cần thiết mà kẻ tấn công có thể sử dụng
Đưa tất cả các câu truy vấn (SELECT) và cập nhật, sửa xóa dữ liệu (INSERT,
UPDATE, DELETE) vào thủ tục; dữ liệu truyền vào thủ tục thông qua các tham số -> tách
dữ liệu khỏi mã, giúp hạn ngăn chặn hiệu quả tấn công chèn mã SQL.

• Hạn chế thực hiện các câu lệnh SQL động trong thủ tục.

2.2.2. Các biện pháp phòng chống ở mức nền tảng
- Các biện pháp phòng chống dựa trên thiết lập quyền truy nhập người dùng cho phù
hợp[1]:
• Không sử dụng người dùng có quyền system admin hoặc database owner làm
người dùng truy cập dữ liệu;
• Chia nhóm người dùng, chỉ cấp quyền vừa đủ để truy cập các bảng biểu, thực hiện
câu truy vấn và chạy các thủ tục.
• Tốt nhất, không cấp quyền thực hiện các câu truy vấn, cập nhật, sửa, xóa trực tiếp
dữ liệu; Thủ tục hóa tất cả các câu lệnh và chỉ cấp quyền thực hiện thủ tục.
- Sử dụng ứng dụng tường lửa web WAF (Web Application Firewall): Giải pháp
WAF là một giải pháp toàn diện hơn so với giải pháp bảo vệ thời gian chạy.
- Sử dụng hệ thống phát hiện xâm nhập (IDS): Là hệ thống phát hiện xâm nhập dựa
trên lưu lượng trên mạng để phát hiện ra tấn công chèn mã SQL. Tuy nhiên, các IDS thường
không được tối ưu riêng cho ứng dụng web. Nó chỉ giúp phát hiện ra các cuộc tấn công từ


10
bên ngoài mạng nội bộ, tuy nhiên vẫn có thể sử dụng nó như một phòng tuyến bổ sung
chống lại các cuộc tấn công.
- Tường lửa cơ sở dữ liệu: Có thể xem là biện pháp cuối cùng để bảo vệ cơ sở dữ
liệu trong mô hình bảo vệ nhiều lớp. Chính xác hơn, tường lửa cơ sở dữ liệu hoạt động
như một proxy đứng giữa ứng dụng web và cơ sở dữ liệu.

2.3. Phòng chống tấn công SSL
Việc chiếm quyền điều khiển SSL theo cách này là hầu như không thể phát hiện từ
phía trình chủ vì máy chủ cứ tưởng nó vẫn truyền thông bình thường với máy khách. Nó
không hề có ý tưởng rằng đang truyền thông với một client bởi proxy.


2.3.1. Sử dụng kết nối an toàn HTTPS
Khi thực hiện tấn công, nó sẽ làm mất đi tính an toàn của kết nối, thứ có thể xác
định được trong trình duyệt. Điều này có nghĩa rằng nếu đăng nhập vào tài khoản ngân
hàng trực tuyến và thấy rằng nó chỉ là một kết nối chuẩn HTTP thì chắc chắn có thứ gì đó
sai ở đây. Bất cứ khi nào sử dụng trình duyệt cũng cần bảo đảm rằng biết cách phân biệt
các kết nối an toàn với những kết nối không an toàn

2.3.2. Sử dụng các tài khoản trực tuyến an toàn
Người dùng có thói quen lưu tài khoản trực tuyến (tên đăng nhập, mật khẩu) trên
các trình duyệt, việc này là tiện dụng nhưng không đảm bảo an toàn thông tin. Trong 1
mạng nội bộ thì việc nghe lén thông tin rất dễ xảy ra (nhất là khi dùng wifi công cộng), các
thiết bị có nguy cơ bị chiếm quyền điều khiển và bị khai thác trái phép. Một trong những
mục tiêu lớn nhất cho tấn công chiếm quyền điều khiển session là giao dịch trực tuyến, tuy
nhiên thủ phạm này có thể áp dụng cho bất cứ thứ gì. Để hạn chế nguy cơ trên, người dùng
nên sử dụng các kết nối mạng cá nhân (mạng tại gia đình, mạng 3G/4G), không lưu cookie
và các tài khoản quan trọng trên trình duyệt, kiểm tra kỹ thông tin trước khi xác nhận thực
hiện giao dịch.

2.3.3. Bảo mật các thiết bị trong mạng
Sử dụng các biện pháp tăng cường bảo mật, bảo vệ các thiết bị trong hệ thống mạng
để giảm thiểu các nguy cơ bị tấn công. Nếu các thiết bị mạng được an toàn thì nguy cơ bị


11
thỏa hiệp các host để sau đó được sử dụng để khởi chạy tấn công chiếm quyền điều khiển
session cũng sẽ giảm.

2.3.4. Sử dụng chứng chỉ số tin cậy
Một Certificate Authority (CA) là một tổ chức bên thứ ba hoạt động như một trung
gian đáng tin cậy, cấp phát và thẩm định chứng thực số SSL/TLS. Có hàng trăm tổ chức

tin cậy như vậy có quyền cấp phát chứng thực SSL hợp lệ cho bất cứ domain nào đó của
người dùng, dù domain đó đã được cấp chứng thực bởi CA khác. Đây chính là điểm yếu
của của hệ thống CA và nó gây ra các lỗ hổng.
Các tổ chức nên chỉnh sửa trang web để phát hiện và ngừng dịch vụ trên các trình
duyệt cũ, yêu cầu người dùng nâng cấp lên phiên bản mới.

2.4. Phòng chống tấn công XSS
2.4.1. Lọc
Có hai khái niệm cơ bản vềquá trình lọc (filter) XSS: lọc đầu vào (input filtering)
và lọc đầu ra (output filtering). Cách sử dụng phổ biến nhất là lọc đầu vào. Input
Filteringđược xem là chính xác hơn so với Output Filtering, đặc biệt trong trường hợp XSS
Reflected. Tuy nhiên có một sự khác biệt nhỏ, quá trình lọc đầuvào áp dụng cho tất cả các
loại dữ liệu, loại bỏnhững nội dung không hợp lệ trong khi lọc đầu ra chỉ mang tính áp
dụng lại, mục đích bài trừ các loại mã độc còn xót lại.
Có hai loại thanh lọc dữ liệu đầu vào và đẩu ra: White List Filtering và Black List
Filtering
Các bước để thanh lọc dữ liệu:
- Từ chối nhận các dữ liệu hỏng;
- Liên tục kiểm tra và thanh lọc dữ liệu;
- Tạo ra danh sách những thẻ HTML được phép sử dụng, xóa bỏ thẻ <script> hoặc
đóng các thẻ script trong thẻ <comment> coi đoạn script đó như là một đoạn trích dẫn;
- Lọc ra bất kì một đoạn mã JavaScript/Java/VBScript/ActiveX/Flash Related;
- Lọc dấu nháy đơn hay kép;
- Lọc kí tự Null;


12
- Xóa những kí tự “>”, ”<” hoặc Output Encoding các dòng như sau: < &lt; > >
( ( ) ) # # & &
- Kiểm tra xem thực thể đó có thuộc White-List hay Black-List không.


2.4.2. Mã hóa đầu vào
Một trong những nhược điểm chính của mã hóa đầu vào (Input Encoding) là phải
làm việc trên quy mô lớn Website, mặt khác không phải ai đều dùng cố định một bảng mã
duy nhất. Có thể thấy tùy thuộc vào hoàn cảnh mà sử dụng mã hóa đầu vào sao cho hợp lí
nhất, Input Encoding chỉ thật sự có ý nghĩa khi biết được chính xác dữ liệu đầu vào, điều
này tương đối khó khăn trong môi trường có quy mô lớn. Mã hóa đầu vào có thể trở thành
một vị trí trung tâm cho tất cả các bộ lọc, đảm bảo chỉ có một điểm duy nhất cho tất cả các
bộ lọc.
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 (encoding) thích hợp để ngăn chặn chạy các cript 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ó. Nói chung, việc mã hóa (encoding) đượ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 hiên việc mã hóa tất cả dữ liệu không đáng tin cậy có thể tốn tài
nguyên và ảnh hưởng đến khả năng thực thi của một số máy chủ.
Một trong những cách hay sử dụng là mã hoá các kí tự đặc biệt trước khi in ra
website, nhất là những gì có thể gây nguy hiểm cho người sử dụng. Trong trường hợp này
thẻ script sẽ được đổi thành script. Như vậy nó sẽ vẫn được in ra màn hình mà không hề
gây nguy hiểm cho người sử dụng.

2.4.3. Mã hóa đầu ra
Mục đích của việc mã hóa đầu ra (vì nó liên quan Cross Site Scripting) là chuyển
đổi đầu vào không tin cậy vào một hình thức an toàn, nơi đầu vào sẽ được hiển thị như dữ
liệu cho người sử dụng mà không thực hiện được như đang trong trình duyệt. Một số
phương pháp mã hóa đầu ra quan trọng:


13
Loại mã hóa

HTML Entity Encoding

HTML AttributeEncoding
URL Encoding
JavaScript Encoding

Cơ chế mã hóa
Convert&to& ConvertConvert'to' Convert / to /
Ngoại trừ cho các ký tự chữ và số, còn lại sẽ loại bỏ
các định dạng HTML &#xHH, khoảng trắng
Mã hóa theo tiêu chuẩn %
Ngoại trừ các ký tự chữ và số, còn lại sẽ loại bỏ các
định dạng \uxxx của mã uniode

CSS (Cascading Style

CSS hỗ trợ loại bỏ các ký tự có dạng \XX

Sheets) Hex Encoding

và\XXXXXX

2.4.4. Bảo mật trình duyệt
Lựa chọn trình duyệt: Lựa chọn trình duyệt có lẽ là điều quan trọng nhất để bảo vệ
trực tuyến, có thể người dùng thường chỉ quan tâm đến loại trình duyệt có tốc độ xử lý
nhanh, giao diện thân thiện nhưng lại không để ý tới tính bảo mật của chúng. Khi sử dụng
trình duyệt để lướt web cần phải quan tâm hơn đến yếu tố bảo mật vì ít ra nó cũng bảo vệ
đượ c người dùng tránh các cuộc tấn công trên mạng.
Thêm nhiều tính năng bảo mật vào trình duyệt: Có nhiều chương trình và công cụ

có sẵn để giúp trình duyệt tự bảo vệ mình, tránh các trang web lừa đảo, vô hiệu hóa một số
tính năng không tốt, bảo vệ mật khẩu rơi vào tay kẻ xấu
Vô hiệu hóa một số tính năng không cần thiết: Đơn giản chỉ cần bỏ một số tính năng
không cần thiết sẽ làm cho trình duyệt của bạn an toàn hơn. JavaScript, Java, Active, Script,
VBScript, Flash và QuickTime tất cả chúng đều có khả năng gây nguy hiểm.
Không nên nhấn vào các liên kết không rõ ràng trong E-mail: Khi vào một rang web
mới cần phải cân nhắc khi click vào các link, và với email cần phải kiểm tra các link hay
những hình ảnh quảng cáo thật kĩ. Sẽ an toàn hơn khi có sự cảnh giác cao hơn.

2.4.5. Sử dụng máy ảo


14
Một giải pháp mới được đưa ra là sẽ chạy trình duyệt trong môi rường đã được ảo
hóa, được an toàn. Hiện nay có một số công nghệ ảo hóa của MWare và Microsoft giúp có
một môi trường chạy thử nghiệm thật an toàn.

2.4.6. Bảo vệ Web Mail
Hàng trăm triệu người sử dụng Web Mail với nhiều cách khác hau, quan trọng hơn
là phải bảo mật tài khoản của riêng. Nhiều người có tài hoản trực tuyến quan trọng gắn với
một địa chỉ Web mail duy nhất. Nếu chẳng may một ai đó được quyền truy cập vào tài
khoản e-mail của bạn, tất cả các tài khoản liên quan khác có thể bị tổn hại. Nên thay đổi
mật khẩu theo một khoảng thời gian nào đó và không sử dụng mật khẩu quá đơn giản.

2.4.7. Cẩn thận với độ dài chuỗi URL
Khi duyệt web hay sử dụng bất kỳ dịch vụ nào liên quan đên web, hãy để ý rằng
thỉnh thoảng sẽ nhận được các liên kết URL có độ dài bất thường và bên trong đó có chứa
các ký tự đặc biệt như: % , ‘, @, #, $, &, (, … lúc đó cần thật sự cẩn trọng khi nhấn vào các
liên kết đó, vì khả năng nhiễm mã độc từ các liên kết như thế là rất cao.


2.5. Phân tích, đánh giá các giải pháp phòng chống tấn công web
Mỗi ứng dụng web có đặc thù khác nhau, vì thế nguy cơ bị tấn công và các giải pháp
phòng chống cũng khác nhau.
Những website của chính phủ, các tập đoàn lớn thường có nguy cơ bị tấn công cao
nhất. Chính vì vậy mà những website này được triền khai các biện pháp phòng chống tấn
công mạng toàn diện nhất. Chúng được các chuyên gia hàng đầu triển khai các biện pháp
phòng chống tấn công một cách chuyên nghiệp, thường xuyên cập nhật các công nghệ mới.
Những website này có độ mật cực cao, để khai thác các lỗ hổng thì cũng cần tốn rất nhiều
thời gian, công sức, tiền bạc và phải những người có kiến thức rất sâu rộng mới có thể làm
được. Việc phối hợp các giải pháp đảm bảo an toàn an ninh cũng được tối ưu hóa, cải tiến
các phương pháp để vừa nâng cao hiệu quả vừa giảm thiểu chi phí
Với những website của các cơ quan hành chính sự nghiệp, các doanh nghiệp vừa và
các cơ sở giáo dục chuyên nghiệp thường có mức độ an toàn an ninh mạng thấp hơn. Tùy
vào mục đích và tính chất của các website mà có những giải pháp phòng chống tấn công
mạng tương ứng, có thể áp dụng các giải pháp phòng chống tấn công phù hợp.


15
Với những website của các doanh nghiệp nhỏ và các cá nhân thường không có khả
năng phòng vệ trước các cuộc tấn công từ chối dịch vụ, dễ bị khai thác các lỗ hổng để tấn
công SSL, XSS. Các website này thường sử dụng mã nguồn mở hoặc khả năng lập trình
còn hạn chế, sử dụng các thiết bị phần cứng không có chức năng hỗ trợ phòng chống tấn
công.
Kết uận chương 2:
Để có giải pháp toàn diện chống tấn công ứng dụng web cần nghiên cứu kỹ đặc thù
của hệ thống, tuân thủ các quy trình đảm bảo an toàn an ninh về cả phần cứng và phần
mềm. Cần có sự kiểm tra, giám sát thường xuyên và có sự tư vấn của các chuyên gia. Bên
cạnh đó cũng cần có sự hướng dẫn, khuyến cáo đến người sử dụng để tránh rủi ro.



16

Chương 3. ĐỀ XUẤT GIẢI PHÁP AN TOÀN AN NINH MẠNG CỦA
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI
3.1. Khảo sát một số ứng dụng web của Trường Đại học Công nghệ Giao
thông vận tải.
Là một đơn vị giáo dục, hoạt động của trường được hỗ trợ bởi một số website:
Cổng thông tin điện tử utt.edu.vn: là cổng thông tin điện tử chính thức của Trường
Đại học Công nghệ Giao thông vận tải. Chức năng chính của hệ thống là đăng tải các thông
tin, thông báo liên quan đến hoạt động của Nhà trường.

Hình 3.1 Cổng thông tin điện tử utt.edu.vn

Cổng thông tin đào tạo qldt.utt.edu.vn: là cổng thông tin thông báo các hoạt động
liên quan đến người học (đăng ký học, tra cứu điểm, thời khóa biểu, lịch thi, học phí…).

Hình 3.2 Chức năng tra cứu quá trình đăng ký học


17
Hệ thống thi trắc nghiệm utt.test.vn: là hệ thống phục vụ cho quá trình kiểm tra
giữa kỳ, thi kết thúc các học phần.

Hình 3.3 Hệ thống thi trắc nghiệm

Các hệ thống trên chức năng, cấu trúc, đặc thù khác nhau. Chính vì vậy việc
quản trị, đảm bảo an ninh an toàn cho các hệ thống gặp không ít khó khăn. Dưới đây là một
số đánh giá các hệ thống và đề xuất một số giải pháp nâng cao tính an toàn an ninh cho các
ứng dụng web.


3.2. Đề xuất giải pháp nâng cao độ an toàn an ninh cho một số ứng dụng
web của trường Đại học Công nghệ Giao thông vận tải
3.2.1. Đề xuất giải pháp chung
Sử dụng công cụ để phát hiện các lỗ hổng Nessus vulnerability scanner, xây dựng
các phương án khắc phục phù hợp. Nếu xuất hiện những lỗ hổng lớn cần có sự tư vấn của
các chuyên gia. Công cụ này được phát triển và được kiểm nghiệm trong thời gian dài,
được đánh gía là tốt, ổn định và dễ sử dụng.
Nâng cấp các phiên bản phần mềm mà hệ thống sử dụng để cập nhật các bản vá lỗi,
tối ưu hóa ứng dụng: Windows Server Update Services 3.0 gói dịch vụ 2 (thay thế cho bản
Services 2.0 đang dùng), cập nhật chứng chỉ máy chủ Web VeriSign cho IIS: chứng chỉ
trung gian VeriSign hết hạn có thể dẫn đến kết nối không xác thực với trang web bằng SSL
(Chứng chỉ thẩm quyền xác thực International (Global) Server Intermediate VeriSign 128
bit đã hết hạn).
Sử dụng các tường lửa web ModSecurity: Đây là phần mềm nguồn mở có thể hoạt
động như một module trong máy chủ Apache hoặc là một thành phần độc lập. ModSecurity
sử dụng biểu thức chính quy trong việc bảo vệ máy chủ web từ các cuộc tấn công được xác


18
định trước dựa theo các dấu hiệu hoặc các cuộc tấn công bất thường khác. Bên cạnh đó,
ModSecurity cũng có khả năng lọc các siêu ký tự do người dùng chèn vào ứng dụng web,
phù hợp với hệ thống web của Nhà trường.
Nâng cao năng lực của quản trị viên, cập nhật các thông tin mới nhất để nắm bắt
được tình hình thực tiễn, đưa ra các nhận định đúng đắn, nâng cáo hiệu quả công việc.
Hướng dẫn chi tiết, khuyến cáo người dùng phòng chống các nguy cơ mất an toàn
thông tin.

3.2.2. Đề xuất một số giải pháp cụ thể
Đối với cổng thông tin điện tử utt.edu.vn
Đóng một số cổng không cần thiết, tránh trường hợp bị lợi dụng để tạo những kết nối

ngầm hoặc nhận các gói tin không mong muốn. Hiện tại có rất nhiều cổng được mở
Sử dụng tường lửa để nâng cao tính bảo mật, nâng cao khả năng phòng thủ trước các
cuộc tấn công cũng như những nguy cơ mất an toàn thông tin. Hiện tại hệ thống không sử
dụng tưởng lửa, đây là một điểm yếu có thể bị khai thác bất cứ lúc nào, thậm chí đang bị
khai thác mà không phát hiện ra.
Sử dụng các công cụ miễn phí (cần lưu ý nguồn cung cấp tránh bị cài các tệp tin không
mong muốn) để kiểm tra, giám sát, phát hiện, hạn chế các mối nguy hại: Nmap, Cain,
Wireshark, SQLmap, Damn Vulnerable Web Application (DVWA)
Sử dụng dịch vụ Project Shield của Google để tăng khả năng chống tấn công từ chối
dịch vụ. Mặc dù khả năng bị tấn công từ chối dịch vụ là không cao, tuy nhiên với việc sử
dụng Project Shield vẫn mang lại khả năng phòng chống và tăng hiệu suất của ứng dụng.
Đối với cổng thông tin đào tạo qldt.utt.edu.vn
Máy chủ phục vụ không sử dụng tưởng lửa chuyên dụng, điều này rất nguy hiểm. Cần
cài đặt ngay tưởng để giảm thiểu rủi ro.


19

Hình 3.9 Máy chủ qldt.utt.edu.vn không được tường lửa bảo vệ

Sử dụng các giải pháp tương tự với cổng thông tin điện tử utt.edu.vn. Tuy nhiên,
do đặc thù máy chủ đặt tại trường và có sử dụng các thiết bị trong mạng nội bộ nên cần
chú ý đến việc bị tấn công từ mạng nội bộ. Giảm thiểu các kết nối vật lý không cần thiết
để hạn chế việc bắt các gói tin qua các thiết bị trung gian. Gán địa chỉ MAC tĩnh để hạn
chế bị bắt các gói tin nhạy cảm (hình 3.9)

Hình 3.10 Thiết lập địa chỉ MAC tĩnh

Thiếu các biện pháp bảo vệ, phòng chống nên có thể dễ dàng bắt được các thông
tin nhạy cảm và có thể lợi dụng để gây ra những hành động xấu. Khi sử dụng Cain có thể

bắt được các thông tin về tài khoản của sinh viên (tên đăng nhập và mật khẩu – hình 3.10)
. Nếu mật khẩu không đủ mạnh có thể dễ dàng giải mã, tài khoản bị đánh cắp và kẻ đánh
cắp hoàn toàn có thể thực hiện ý đồ của mình.


20

Hình 3.11 Công cụ Cain bắt được các thông tin nhạy cảm gửi tới máy chủ

Ngoài ra, hệ thống nên có một số thay đổi để người dùng có thể kiểm tra, giám sát
tài khoản trực tuyến của mình tốt hơn:
Hiện thị thời gian đăng nhập lần gần nhất: nếu có người khác đăng nhập có thể dễ
dàng phát hiện;
Trong thời gian thực chỉ cho phép một tài khoản login: nếu đang online mà có người
khác đăng nhập thì hệ thống thông báo và yêu cầu đăng nhập lại, thậm chí tạm khóa tài
khoản trong một khoảng thời gian nào đó để yêu cầu xác mình;
Với các thao tác đăng ký/hủy học phần đăng ký yêu cầu mã xác thực qua số điện
thoại người dùng để đảm bảo chính chủ đang thực hiện thao tác.
Trong những thời điểm có lưu lượng người truy cập lớn (trong thời gian đăng ký
học) vẫn xảy ra trình trạng nghẽn mạng, không thể đăng nhập hay thực hiện các thao tác
đăng ký. Vì vậy, cần nâng cấp hạ tầng để nâng cao khả năng phục vụ: tăng tốc độ đường
truyền, nâng cao cấu hình máy chủ, sử dụng các biện pháp cân bằng tải để đáp ứng tính
liên tục của dịch vụ. Sử dụng thiết bị cân bằng tải internet và server Cisco RV042G của
Cisco để:
• Làm tăng khả năng đáp ứng và tránh tình trạng quá tải trên hệ thống của máy chủ,
hệ thống đường truyền internet đồng thời đảm bảo tính linh hoạt cũng như khả năng mở
rộng hệ thống.


21

• Tăng khả năng dự phòng cho hệ thống: Nhờ trang bị tính năng hiện đại, thiết bị
cân bằng tải giúp làm tăng tính High Availability và ngăn chặn các sự cố gây gián đoạn
dịch vụ tại các điểm cung cấp.
• Tăng tính bảo mật: thiết bị cân bằng tải sẽ tiếp nhận và xử lí thông tin được gửi
đến sau đó chuyển chúng tới hệ thống máy chủ.
• Ngăn chặn người dùng giao tiếp trực tiếp với các máy chủ, nhằm ngăn chặn sự
xâm nhập trái phép của hacker để đánh cắp thông tin nội bộ quan trọng.

Kết luận chương 3:
Chương này đã trình bày các khảo sát một số ứng dụng web của trường Đại học
Công nghệ Giao thông vận tải. Từ đó đề xuất một số giải pháp phòng chống tấn công, khai
thác lỗ hổng để nâng cao độ an toàn an ninh cho các website của trường. Do đặc thù của
các hệ thống nên chưa thể thử nghiệm hết các giải pháp đưa ra, mà chỉ đề xuất giải pháp từ
những tìm hiểu ở chương 2. Các giải pháp đưa ra phù hợp các tính chất của các website
được khảo sát và có tính khả thi.


22

KẾT LUẬN
Kết quả đạt được
Luận văn trình bày khái quát về một số dạng tấn công phổ biến vào ứng dụng web.
Phân tích cơ chế, mục đích, đối tượng tấn công cũng như những tác hại mà các cuộc tấn
công này gây ra.
Luận văn đưa ra các biện pháp phát hiện, ngăn chặn một số phương thức tấn công
phổ biến: tấn công từ chối dịch vụ, tấn công SQL Inejection, tấn công XSS, tấn công SSL.
Khảo sát các website của trường Đại học Công nghệ Giao thông vận tải, từ đó dề
xuất một số giải pháp nhằm nâng cao độ an toàn an ninh mạng. Giải pháp đưa ra có tính
khả thi, có kết quả tốt thi thực nghiệm.
Hướng phát triển

Đề tài của luận văn có thể phát triển theo hướng:
Tiếp tục tìm hiểu, cập nhật các dạng tấn công các, đưa ra các giải pháp hữu dụng
với mỗi dạng tấn công. Việc này có ý nghĩa quan trọng trong việc phòng chống các cuộc
tấn công.
Nghiên cứu kết hợp các giải pháp cho các ứng dụng web khác ngoài trường Đại học
công nghệ Giao thông vận tải.
Xây dựng một phương pháp đánh giá toàn diện, chuyên sâu và khắc phục được các
lỗ hổng trong ứng dụng web, nâng cao khả năng phòng thủ giúp ứng dụng web hoạt động
tốt nhất.



×