You are on page 1of 18

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.

HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

Ngành: Công nghệ thông tin

ĐỀ TÀI: KIỂM THỬ XÂM NHẬP WEB APPLICATION

HỌC KỲ 1 – NĂM HỌC 2022 - 2023

Danh sách sinh viên thực hiện


Mã số SV Họ và tên
19110074 Trần Nguyễn Thành Đạt
19110192 Lê Minh Đức

Giảng viên hướng dẫn: ThS. Nguyễn Thị Thanh Vân

Thành phố Hồ Chí Minh, Tháng 9 năm 2022


I. Giới thiệu đề tài

Trong thời điểm công nghệ và Internet phát triển mạnh như hiện nay, hầu như các
shop, cửa hàng, doanh nghiệp, cùng nhiều cá nhân kinh doanh online tại nhà thường
hay chọn các sàn thương mại điện tử để bày các sản phẩm của mình, tuy nhiên không
phải lúc nào các trang web của sàn thương mại này cũng có thể đáp ứng được yêu cầu
của họ nên các doanh nghiệp, cửa hàng, cá nhân kinh doanh này có nhu cầu hướng đến
tự xây dựng một website cho riêng họ để tự xây dựng thương hiệu riêng. Có rất nhiều
cách để có thể tự làm 1 web cho mình, có thể đi thuê một công ty tạo một trang web,
hoặc có thể tự tay làm lấy từ các công cụ lập trình web,…
Tuy nhiên, để đảm bảo các dịch vụ hoạt động bình thường, hạn chế tối đa lỗi khi đưa
vào sử dụng thì ta cần kiểm thử website trước khi phổ biến công khai và ngay cả khi
trong quá trình sử dụng. Nhận ra được điều quan trọng này nên nhóm em đã quyết
định chọn một trong những yêu cầu phổ biến nhất chính là kiểm thử xâm nhập web
làm đề tài nghiên cứu

II.

III. Lý do cần kiểm thử xâm nhập


1. Lợi ích của website
Bước vào thời đại phát triển công nghệ mạnh mẽ như hiện nay, các doanh nghiệp hay
cá nhân tham gia vào lĩnh vực kinh doanh buộc phải không ngừng học hỏi và đổi mới
cơ chế quản lý thị trường cũng phương pháp kinh doanh sao cho bắt kịp thời đại cũng
như thị hiếu khách hàng. Khi mạng Internet phát triển càng mạnh, công nghệ kỹ thuật
được đưa lên một tầng cao mới, kéo theo đó là lĩnh vực thuộc thương mại điện tử càng
ngày càng phát triển mạnh mẽ hơn. Tuy nhiên, môi trường càng lớn khiến tính cạnh
tranh càng cao, nên 1 website được thiết kế khá sơ sài, không đáp ứng được nhu cầu về
cơ chế hoạt động và tính bảo mật. Hơn thế nữa, khi doanh nghiệp yêu cầu 1 website để
quản lý việc kinh doanh của mình, họ cần những lợi ích cơ bản nhất định mà 1 trang
web phải có, có thể liệt kê một vài lợi ích tiêu biểu như sau:
- Khả năng quảng cáo không giới hạn để tiết kiệm chi phí: Các sàn thương mại
điện tử, mạng xã hội, kênh truyền thông,… luôn cố gắng tạo ra những điều bất
lợi nếu chúng ta không sử dụng dịch vụ quảng cáo khi sử dụng sản phẩm của
họ( một từ phổ biến ta hay nghe là “bóp” tương tác: giảm độ tiếp cận)
- Dễ tiếp cận khách hàng và nắm bắt được nhu cầu của họ, từ đó từng bước mở
rộng phạm vi kinh doanh: Với các tính năng phản hồi được tích hợp trên trang
web, chúng ta có thể dễ dàng tham khảo được ý kiến của khách hàng về sản
phẩm, dịch vụ mà mình cung cấp. Từ đó, sẽ biết mình nên cải thiện ở đâu để
thu hút và nhận được sự tin tưởng, lựa chọn từ phía khách hàng.
- Xây dựng thương hiệu riêng và tăng độ uy tín: Với một website đẹp và chuyên
nghiệp, việc tạo dựng thương hiệu và uy tín cho doanh nghiệp sẽ vô cùng dễ
dàng. Chưa kể nếu sản phẩm tạo ra đạt chất lượng bằng hoặc hơn khách hàng
mong muốn thì uy tín càng ngày được nâng cao
- Dễ dàng tuyển dụng: Khi đã có thương hiệu rồi, sẽ có nhiều người biết đến
website của mình hơn, có thể một lúc nào đó ta cần tuyển dụng nhân sự nhưng
việc đăng tin tuyển dụng lên trang việc làm hay để biển tuyển dụng tại cửa công
ty chỉ tiếp cận một phần nhỏ, đã vậy còn tốn chi phí và chờ được phê duyệt lâu.
Đăng trực tiếp trên website của mình là một lựa chọn tối ưu và dễ tiếp cận
thông tin ứng viên hơn cả
- Tăng năng lực cạnh tranh: Từ những điều ở trên ta sẽ thấy độ cạnh tranh khi có
web riêng cho mình là vô cùng lớn
2. Lỗ hổng trong công cụ lập trình web

Những lỗ hổng trong ngôn ngữ lập trình

Hầu hết các lỗ hổng ứng dụng mà chúng ta thấy đến từ lỗi do người lập trình chính
ứng dụng đó tạo ra, tuy nhiên bên cạnh đó, những lỗ hổng đến từ chính ngôn ngữ lập
trình mà các nhà phát triển sử dụng cũng có thể gây ra những lỗi nghiêm trọng tương
tự. Có nhiều cuộc tranh luận xảy ra rằng liệu ngôn ngữ lập trình ứng dụng web nào tốt
hơn, an toàn và mạnh mẽ hơn nhưng thực tế là mọi ngôn ngữ lập trình đều có ưu và
nhược điểm riêng để thực hiện nhiệm vụ.

Tuy nhiên, một số nhà phát triển và nhà nghiên cứu cho rằng có một số ngôn ngữ ít
nhiều an toàn hơn các ngôn ngữ khác, nhưng để khẳng định, chúng ta cần xem xét
nhiều yếu tố khi chọn ngôn ngữ lập trình để đảm bảo rằng ứng dụng chúng ta tạo ra sẽ
hạn chế tối đa các lỗ hổng bảo mật gây nguy hại đến hệ thống và đe dọa dữ liệu người
dùng

Theo tổng hợp từ báo cáo của OWASP Foundation và WhiteSource về tính bảo mật
của ngôn ngữ lập trình web, những lỗ hổng thường gặp đó là: XSS, xác thực đầu vào,
quyền (permission), đặc quyền(privileges), rò rỉ thông tin, kiểm soát truy cập,…Trong
đó, các ngôn ngữ dễ bị dính các lỗ hổng sau là:

1. PHP

PHP là ngôn ngữ kịch bản phía máy chủ và là công cụ mạnh mẽ, lựa chọn tuyệt vời để
tạo các trang Web động và tương tác do tính dễ sử dụng và chứa nhiều thư viện có
sẵn . Nó là một giải pháp thay thế được sử dụng rộng rãi, miễn phí và hiệu quả cho các
đối thủ cạnh tranh như ASP của Microsoft. Tuy nhiên, vì những tính phổ biến đó nên
nó dễ dính lỗ hổng hơn và số lượng ứng dụng dính lỗi cũng cao hơn

Các lỗ hổng phổ biến nhất trong Lập trình PHP là:

a. (XSS)Cross-Site Scripting.

b. SQL Injection.

c. Cryptographic Issues.
d. Code Injection.

e. Information leakage.

f. Code Quality.

g. Command or Argument Injection.

h. Untrusted Initialization.

2. Java

Java là một nền tảng điện toán và ngôn ngữ lập trình hướng đối tượng có mục đích
chung phổ biến. Tuy nhiên nó dễ bị tấn công do số lượng thư viện đã cũ, các phiên bản
đã lỗi thời. Các lỗ hổng phổ biến của nó là:

a. CRLF Injection.

b. Cryptographic Attacks.

c. Information Leakage.

d. API Abuse.

e. SQL Injection.

f. XSS (Cross-Site Scripting).

g. Insufficient Input validation.

h. Directory Traversal

Rủi ro bảo mật tiềm ẩn: Mặc dù các bugs hầu hết đã được khắc phục thông qua các
bản phát hành phiên bản ổn định, nhưng Java vẫn dễ bị tấn công bởi các loại phần
mềm độc hại khác nhau. Nếu loại lỗ hổng này bị kẻ tấn công phát hiện và khai thác, nó
có thể cho phép chúng thực thi các lệnh độc hại thay cho nạn nhân hoặc giành quyền
truy cập vào thông tin nhạy cảm. Nền tảng OWASP phân loại việc tiêm phần mềm độc
hại và các dạng đa dạng của nó ở vị trí thứ 3 trong danh sách 10 lỗ hổng bảo mật hàng
đầu của họ. Những phát triển gần đây cũng đã mang đến một mối đe dọa bảo mật
nghiêm trọng đến từ một lỗ hổng được tìm thấy trong Log4J, một tiện ích ghi nhật ký
dựa trên Java. Lỗ hổng mới được phát hiện cho phép kẻ tấn công cài đặt phần mềm
độc hại khai thác tiền điện tử trên các hệ thống bị ảnh hưởng và hiện có hệ số rủi ro là
10 trên 10. Các nhà phát triển đang cố gắng khắc phục sự cố và kêu gọi người dùng
tiềm năng của các nền tảng bị ảnh hưởng cài đặt các bản vá phiên bản mới nhất trên
thiết bị của họ. Lỗ hổng hiện đã xuất hiện trên nhiều bề mặt mạng khác nhau cũng như
đáng chú ý nhất là các máy chủ Minecraft và các chuyên gia đang cảnh báo rằng nhiều
khung và hệ thống khác có khả năng bị tấn công.

3. JavaScript

JavaScript là một trong những ngôn ngữ lập trình phổ biến nhất thế giới. Lý do cho
điều này khá đơn giản là vì vai trò của nó là scripting language của web trên toàn thế
giới. Nói chính xác hơn, đó là ngôn ngữ lập trình cho phép bạn triển khai những
thứ/thiết kế phức tạp và đẹp mắt trên các trang web

Các lỗ hổng phổ biến của JS là

a. XSS Attack: Cross-Site Scripting, hay XSS, là một trong những lỗ hổng phổ
biến nhất phía trình duyệt. Những kiểu tấn công này xảy ra khi kẻ tấn công đưa mã
độc vào một ứng dụng hợp pháp (nhưng dễ bị tấn công). Kẻ tấn công có thể thao
túng JavaScript và HTML để kích hoạt mã hoặc tập lệnh độc hại.

b. CSRF Attack: Giả mạo yêu cầu trên nhiều trang liên quan đến việc chiếm quyền
hoặc mạo danh phiên trình duyệt của người dùng bằng cách chiếm quyền điều
khiển cookie phiên. Các cuộc tấn công CSRF có thể lừa người dùng thực hiện các
hành động độc hại mà kẻ tấn công muốn hoặc thực hiện các hành động trái phép
trên trang web.

c. Server-Side Javascript Injection: Đây là một kiểu khai thác JavaScript mới hơn,
chủ yếu nhắm mục tiêu vào ứng dụng Node.js khung phụ trợ và NoSQL. Trong khi
các cuộc tấn công XSS được thực hiện trong trình duyệt web của người dùng cuối,
các cuộc tấn công Phía máy chủ được thực hiện ở cấp độ máy chủ, điều này có thể
gây ra nhiều tác động tai hại hơn trên trang web. Trong kiểu tấn công này, kẻ tấn
công có thể tải lên và thực thi các tệp nhị phân độc hại trên máy chủ web.

d. Client-Side logic issues: Xác thực không đúng cách và lỗi logic trong khi tích
hợp mã và nếu mã trang web của bạn mã hóa cứng các khóa API thành JavaScript
phía máy khách, điều này sẽ dễ bị kẻ tấn công tấn công.

4. Python

Python là một ngôn ngữ lập trình đa mục đích mạnh mẽ được tạo bởi Guido van
Rossum. Nó hỗ trợ cả mô hình Hướng đối tượng và mô hình Hướng chức năng. Nó có
một cú pháp đơn giản, làm cho nó trở thành ngôn ngữ hoàn hảo cho những người lần
đầu tiên học lập trình máy tính.

Các lỗ hổng thường gặp của Python là:

a. Cross Site Request Forgery: Lỗ hổng bảo mật này xảy ra khi một ứng dụng web
bị xâm nhập buộc phải thực hiện một hành động bởi một người dùng đã đăng nhập
khác. Ngoài ra, nó bao gồm việc hack hoặc đăng nhập vào một trang web bằng
thông tin đăng nhập của người khác.

b. LDAP Injections: LDAP là viết tắt của Lightweight Directory Access Protocol.
Lỗ hổng này xảy ra khi người dùng độc hại chèn/sửa đổi câu lệnh LDAP dẫn đến
suy đoán.

c. XSS: Lỗ hổng bảo mật này xảy ra khi một người dùng ác ý có thể lừa bất kỳ
ứng dụng web nào để lấy cắp cookie được lưu trữ, mật khẩu đã lưu và mã tập lệnh
phục vụ những người dùng không nghi ngờ của ứng dụng đó.

d. XPATHI: Lỗ hổng bảo mật này xảy ra khi người dùng có ác ý cố tình chuyển
dữ liệu đến một trang web. Họ có thể sử dụng tương tác đó để tìm hiểu cách dữ liệu
được cấu trúc trong XML hoặc họ có thể truy cập dữ liệu được bảo mật mà họ
không thể truy cập bình thường.

Rủi ro tiềm ẩn: Với các thư viện rộng lớn của nó, Python cũng dễ bị lạm dụng các
chức năng nhập và các phụ thuộc lỗi thời có thể chưa được vá khi các phiên bản mới
hơn được phát hành. Việc bảo vệ không đúng cách trong quá trình triển khai chức
năng nhập có thể cho phép kẻ tấn công nhúng đầu vào không đáng tin cậy vào trong
các tệp mà sau đó được nhập vào hệ thống. Những tệp đó có thể chứa mã độc hại có
thể nhắm mục tiêu nạn nhân theo nhiều cách, chẳng hạn như làm rò rỉ các tệp và thông
tin nhạy cảm từ hệ thống của họ cũng như chiếm quyền điều khiển thiết bị của người
dùng, điều này gây ra rủi ro bảo mật nghiêm trọng.

3. Nguy cơ và tác hại khi web bị tấn công*


Tuy nhiên, khi website lớn mạnh, sẽ phải đứng trước nguy cơ có thể bị tấn công
web, có thể đến từ đối thủ cạnh tranh với chiêu trò không lành mạnh, hoặc do một
kẻ xấu nào đó cố gắng phá hoại vì mục đích khác,…ngoài ra lỗ hổng phần mềm
cũng là mối đe dọa với website, một vài thứ tiêu biểu có thể kể như:
- SQL Injection: là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng
của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi
của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các câu lệnh
SQL bất hợp pháp. SQL injection có thể cho phép những kẻ tấn công thực hiện
các thao tác, delete, insert, update, v.v. trên cơ sở dữ liệu của ứng dụng, thậm
chí là server mà ứng dụng đó đang chạy. Một vài kỹ thuật SQLi hay thấy như:
o Retrieving hidden data: sửa đổi truy vấn SQL để trả về kết quả bổ sung
o Subverting application logic : thay đổi một truy vấn để can thiệp vào
logic của ứng dụng (bypass)
o UNION attacks : trích xuất dữ liệu từ các bảng cơ sở dữ liệu khác nhau.
o Examining the database: trích xuất thông tin về phiên bản và cấu trúc của
cơ sở dữ liệu
o Blind SQL injection : là một kiểu tấn công SQL injection truy vấn cơ sở
dữ liệu sử dụng các mệnh đề để đoán biết. Cách tấn công này thường
được sử dụng khi mà một ứng dụng (web, apps) được cấu hình để chỉ
hiển thị những thông báo lỗi chung chung, không hiển thị ra lỗi của
SQL.

- Cross site scripting(XSS): XSS là kỹ thuật tấn công bằng cách chèn vào các
website những đoạn mã script nguy hiểm như javascript hoặc HTML. Một vài
tấn công XSS tiêu biểu như:
o Reflected XSS : là kỹ thuật tấn công khi hacker gửi cho người dùng một
URL có chứa đoạn mã nguy hiểm (thường là javascript). Người dùng chỉ
cần request đến URL này thì ngay lập tức hacker sẽ nhận được respond
chứa kết quả mong muốn (tính phản xạ thể hiện ở đây).
o Stored XSS : Đầu tiên hacker sẽ thông qua các điểm đầu vào (form,
input, textarea…) không được kiểm tra kỹ để chèn vào CSDL các đoạn
mã nguy hiểm, khi người dùng truy cập vào ứng dụng web và thực hiện
các thao tác liên quan đến dữ liệu được lưu này, đoạn mã của hacker sẽ
được thực thi trên trình duyệt người dùng.
o DOM Based XSS : là kỹ thuật khai thác XSS dựa trên việc thay đổi cấu
trúc DOM của tài liệu, cụ thể là HTML.

- …
Mà một khi website tồn tại lỗ hổng có thể tấn công được thì khi bị tấn công sẽ để
lại hậu quả, tác hại vô cùng lớn. Nhẹ thì:
- Ngăn cản khả năng truy cập: Việc làm này gây ảnh hưởng đến tính sẵn sàng của
website, làm nó bị trì hoãn, ngưng trệ, tốn thời gian khá lâu để web có thể hoạt
động trở lại
- Ngừng các hoạt động về cập nhật dữ liệu
Hoặc nặng hơn thì:
- Mất dữ liệu vào tay hacker xấu: Dữ liệu được lưu trữ trong các website có rất
nhiều thứ nhạy cảm như thông tin cá nhân của khách hàng. Việc để lọt các dữ
liệu này vào tay kẻ xấu thì hậu quả vô cùng lớn
- Truy cập trái phép vào các máy tính khác trong server:
- …
Và để tránh việc website bị tấn công nhằm mục đích phá hoại như thế, một trong
những việc cần làm đó là kiểm tra thử xem trên web tồn tại lỗ hổng gì để có thể tìm
ra giải pháp kịp thời ngăn chặn việc web bị tấn công, công việc đó gọi là
Penetration Testing ( Pentest)

4. Pentest ứng dụng


Các bước để thực hiện việc pentest:
- Đầu tiên ta sẽ phải xác định phạm vi của mục tiêu được kiểm thử bao gồm các
trang web nào, các phương pháp được sử dụng để thực hiện việc kiểm thử. Thu
thập các thông tin như tên miền , các path ẩn có trong web,..
- Sau đó ta sử dụng các công cụ để có thể quét các cổng hoặc các lỗ hổng bảo
mật của ứng dụng web.

- Sau khi đã hiểu về đối tượng, giai đoạn này sẽ thực hiện tấn công vào ứng dụng,
dựa vào những thông tin ta đã tìm được ở bước scan thì ta có thể biết được lỗ
hỏng ở phần nào từ đó đưa ra các cách thức tấn công như: XSS, SQL injection,
chèn backdoors, trojan,..

- Bước tiếp đến ta sẽ tìm hiểu xem lỗ hỏng có thể sử dụng để duy trì quyền truy
cập được không từ đó có thể suy ra được những hacker khai thác hệ thống một
cách chuyên sâu.

- Cuối cùng sau khi thực hiện việc kiểm thử thì những kết quả thu lại được sẽ
được tổng hợp thành một báo cáo chi tiết với những thông tin như:
o Các lỗ hổng cụ thể đã khai thác được
o Những dữ liệu nhạy cảm đã truy cập được
o Khoảng thời gian Pentest đã ở trong hệ thống mà không bị phát hiện.

Các công cụ để thực hiện Pentest


a. Nessus

Nessus cũng là một trình quét phổ biến dành cho pen-testers. Đây là một trong những
công cụ nhận dạng lỗ hổng mạnh mẽ nhất hiện có. Nó chuyên kiểm tra tính tuân thủ,
tìm kiếm dữ liệu nhạy cảm, quét IP, quét trang web, v.v. và hỗ trợ trong việc tìm kiếm
những điểm yếu bảo mật.

b. Burp Suite

Burpsuite về cơ bản cũng là một máy quét (với một công cụ can thiệp có giới hạn cho
các cuộc tấn công). Nhiều chuyên gia kiểm tra bảo mật cho rằng họ không thể pen-
testing nếu thiếu Burpsuite. Điểm mạnh của ứng dụng là chặn proxy, thu thập nội dung
và chức năng, quét ứng dụng web, v.v. Bạn có thể sử dụng Burpsuite trên Windows,
Mac OS X và Linux. Tuy công cụ này không miễn phí nhưng rất đáng tiền.

c. John the Ripper

Một công cụ bẻ khóa mật khẩu khác là John the Ripper. Công cụ này hoạt động trên
hầu hết các hệ điều hành, mặc dù nó chủ yếu dành cho UNIX. Nó được coi là một
trong những công cụ nhanh nhất trong thể loại này. Mã băm mật khẩu và mã kiểm tra
cường độ cũng được cung cấp để tích hợp vào phần mềm/mã của riêng bạn. Công cụ
này có ở dạng pro và miễn phí.
d. Hydra

Hydra là một trình bẻ khóa đăng nhập song song hỗ trợ nhiều giao thức để tấn công.
Nó rất nhanh và linh hoạt, và dễ dàng thêm các mô-đun mới.

Nó hỗ trợ: Cisco AAA, Cisco auth, Cisco enable, CVS, FTP, HTTP (S) -FORM-GET,
HTTP (S) -FORM-POST, HTTP (S) -GET, HTTP (S) -HEAD, HTTP- Proxy, ICQ,
IMAP, IRC, LDAP, MS-SQL, MySQL, NNTP, Oracle Listener, Oracle SID, PC-
Anywhere, PC-NFS, POP3, PostgreSQL, RDP, Rexec, Rlogin, Rsh, SIP, SMB (NT) ,
SMTP, SMTP Enum, SNMP v1 + v2 + v3, SOCKS5, SSH (v1 và v2), SSH KEY,
Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC và XMPP.

e. SQL map

Khái niệm về Sqlmap

SQLMAP là công cụ khai thác những lỗ hổng của cơ sở dữ liệu SQL. Công cụ này
được xem là công cụ khai thác SQL tốt nhất hiện nay. Được giới bảo mật và giới
hacker sử dụng thường xuyên. Với người dùng Kali hoặc Back Track 5 thì SQLMAP
đã được tích hợp sẵn vào hệ điều hành. Riêng Windows thì chúng ta phải cài đặt thêm
python và SQLMAP để sử dụng

Đây là công cụ mã nguồn mở, tự động hóa quá trình phát hiện và khai thác lỗ hổng
SQL. Nó đi kèm với một công cụ phát hiện mạnh mẽ, nhiều tính năng thích hợp cho
trình kiểm tra thâm nhập cuối cùng
Tính năng

● Hỗ trợ đầy đủ làm việc với các hệ quản trị cơ sở dữ liệu MySQL, Oracle,
PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite,
Firebird, Sybase, SAP MaxDB, Informix, MariaDB, MemSQL, TiDB,
CockroachDB, ...

● Hỗ trợ đầy đủ cho các kỹ thuật tấn công SQL Injection: boolean-based blind, time-
based blind, error-based, UNION query-based, stacked queries và out-of-band

● Kết nối trực tiếp với cơ sở dữ liệu mà không cần thông qua SQL SQL, bằng cách
cung cấp thông tin đăng nhập DBMS, địa chỉ IP, cổng và tên cơ sở dữ liệu.

● Liệt kê người dùng, password hash, đặc quyền, vai trò, cơ sở dữ liệu, bảng và cột.

● Tự động nhận dạng các định dạng băm mật khẩu và hỗ trợ bẻ khóa chúng bằng
cách sử dụng một cuộc tấn công dựa trên từ điển.

● Trích xuất hoàn toàn các bảng cơ sở dữ liệu, một loạt các mục hoặc các cột cụ thể
theo lựa chọn của người dùng

● Tìm kiếm tên cơ sở dữ liệu cụ thể, các bảng cụ thể trên tất cả các cơ sở dữ liệu
hoặc các cột cụ thể trên tất cả các bảng của cơ sở dữ liệu

● Tải xuống và tải lên bất kỳ tệp nào từ máy chủ cơ sở dữ liệu bên dưới hệ thống tệp
khi phần mềm cơ sở dữ liệu là MySQL, Postgres Query hoặc Microsoft SQL
Server.

● Thực hiện các lệnh tùy ý và truy xuất đầu ra tiêu chuẩn của chúng trên máy chủ cơ
sở dữ liệu bên dưới hệ điều hành khi phần mềm cơ sở dữ liệu là MySQL,
PostgreQuery hoặc Microsoft SQL Server

f. Kali linux
Kali Linux là một dự án nguồn mở được duy trì bởi Offensive Security. Một số tính
năng chính của Kali Linux bao gồm Khả năng truy cập, tùy chỉnh hoàn toàn của Kali
ISOs, Live USB với Persistence Stores, mã hóa toàn bộ đĩa, chạy trên Android, mã hóa
đĩa trên Raspberry Pi 2, v.v.

g. Metasploit

Đây là framework tiên tiến và phổ biến nhất được sử dụng để thâm nhập kiểm thử. Nó
hoạt động dựa trên khái niệm “exploit” – một mã khai thác có thể vượt qua các biện
pháp bảo mật và thâm nhập vào một hệ thống nhất định. Nếu được nhập, Metasploit sẽ
chạy “payload”, một mã thực hiện các hoạt động trên máy đích, do đó tạo ra một
framework hoàn hảo để kiểm tra thâm nhập.

Metasploit có thể được sử dụng trên các ứng dụng web, mạng, máy chủ,… đồng thời
sở hữu giao diện dòng lệnh và GUI, hoạt động trên Linux, Apple Mac OS X và
Microsoft Windows. Mặc dù vậy, vì là một sản phẩm thương mại nên nên Metasploit
chỉ có một vài bản dùng thử miễn phí.

h. ImmuniWeb

ImmuniWeb là một nhà cung cấp web và ứng dụng mobile về kiểm thử bảo mật, chấm
điểm bảo mật toàn cầu.

Nền tảng AI của ImmuniWeb® đã giành giải thưởng sử dụng công nghệ Multilayer
Application Security Testing (AST) để thử nghiệm thâm nhập ứng dụng nhanh và có
hỗ trợ DevSecOps. Các nhà phân tích của Gartner, Forrester và IDC đã đề cao
ImmuniWeb vì sự đổi mới và hiệu quả của nó.

ImmuniWeb cung cấp bốn sản phẩm thương mại chính:

● ImmuniWeb® Discovery – phát hiện tài sản và xếp hạng rủi ro bảo mật (web,
mobile, cloud, tên miền, certs, IoT);

● ImmuniWeb® On-Demand – thâm nhập kiểm thử web (web, API, đám mây,
AWS);

● Immune Web® MobileSuite – thâm nhập kiểm thử mobile (Ứng dụng iOS và
Android, API cuối cùng);

● Immune Web® Continuous – Giám sát bảo mật và xâm nhập kiểm thử liên tục
24/7 (web, API, đám mây, AWS).

ImmuniWeb cũng cung cấp các bài kiểm tra bảo mật MIỄN PHÍ sau đây cho cộng
đồng an ninh mạng:

● SSL Security Test

● Website Security Test

● Mobile App Security Test

● Phishing Test

Immune Web® đã giành giải thưởng SC Awards Châu Âu 2018 ở hạng mục “Best
Usage of Machine Learning and AI Technology”.

i. RAPID7 INSIGHTVM

Khái niệm RAPID7 INSIGHTVM

Rapid7 là sản phẩm nằm trong nhóm dẫn đầu trong đánh giá về các sản phẩm phục vụ
an toàn thông tin và kiểm soát lỗ hổng của hệ thống được thực hiện vào năm 2020.
Rapid7 luôn được các tổ chức bảo mật uy tín đáng giá cao nhờ sự nỗ lực không ngừng.
Rapid7 tin tưởng rằng các sản phẩm của họ sẽ đáp ứng tốt nhất nhu cầu về bảo mật
toàn diện cho hệ thống của khách hàng.

Sản phẩm Rapid7 InSighTVM là giải pháp đánh giá lỗ hổng, nguy cơ bị tấn cơ của các
phần mềm, thiết bị trên toàn hệ thống. Từ đó người quản trị có cái nhìn tổng quát, chủ
động thực hiện các bước cập nhật, vá lỗ hổng, nâng cấp hệ thống để ngăn chặn ngay
lập tức các nguy cơ bị tấn công có thể xảy ra.

Các tính năng nổi bật của Rapid7 INSIGHTVM

- Lightweight Endpoint Agent

Giám sát trực tiếp với Insight Agent

Rapid7 Insight Agent tự động thu thập dữ liệu từ tất cả các thiết bị đầu cuối, ngay cả
những người dùng làm việc ở xa và ít khi tham gia vào mạng nội bộ của công ty.

Giám sát liên tục và gọn nhẹ

Insight Agent sẽ chụp nhanh một snapshot trong khi cài đặt, từ đó Agent chỉ gửi
những thay đổi đến Insight flatform để giảm thiểu tối đa tác động đến các thiết bị đầu
cuối và môi trường mạng.
Nhẹ và mạnh mẽ, Rapid7 Insight Agent cũng thống nhất dữ liệu trên
InsightIDR và InsightOps. Vì vậy bạn chỉ cần cài đặt một Agent duy nhất để đánh giá
các lỗ hổng bảo mật liên tục, phát hiện sự cố và thu thập các Data Log.

Đánh giá thiết bị truy cập từ xa

Insight Agent có thể thu thập dữ liệu từ những thiết bị bất kỳ có truy cập với
Internet. Vì vậy, với những nhân viên ở xa hoặc những khu vực có băng thông mạng
yếu có thể được đánh giá liên tục như khi họ đang ngồi tại trong phòng máy chủ của
bạn.

Giới hạn quản lý thông tin xác thực

Chức năng Credentialed Scanning mang lại kết quả chính xác nhất nhưng nó
cũng có thể gây khó khăn trong việc quản lý thông xin xác thực. Agent-based scanning
giúp bạn đánh giá chuyên sâu về hiện trạng mà không cần lưu trữ và ghi nhớ thông tin
đăng nhập.

Triển khai dễ dàng hơn

Insight Agent có thể triển khai dễ dàng trên các nền tảng thiết bị Windows,
MAC, và Linux, tự động Updates mà không cần cấu hình bổ xung. Nó cũng có thể
được nhúng vào Gold Images để đảm bảo các thiết bị mới của bạn sẽ tự động gửi dữ
liệu lỗ hổng bảo mật đến InsightVM để InsightVM tiến hành phân tích.

Real risk prioritization

Xác định mức độ ưu tiên của các lỗ hổng bảo mật

Hàng ngàn lỗ hổng bảo mật được phát hiện bởi CVSS-Based risk scores. Không
có doanh nghiệp hoặc các nhà phân tích nào có thời gian để có thể làm được điều đó.
Những mối rủi ro thực sự được chúng tôi cung cấp dựa trên thang điểm 1-1000 để có
thể dễ dàng xác định và hành động dựa trên khả năng kẻ tấn công khai thác lỗ hổng
trong một cuộc tấn công thực sự. InsightVM cho phép bạn ưu tiên các lỗ hổng bảo mật
theo cách mà những kẻ tấn công sẽ làm.
5. Thực nghiệm

6. Biện pháp phòng thủ

Giải pháp phòng chống tấn công web

Bảo mật website với tường lửa

WAF (Web Application Firewall) là lớp bảo vệ giữa trình duyệt web (Web Client) và
máy chủ web (Web Server). Tường lửa web hoạt động như một lớp bảo mật bổ sung,
phân tích và kiểm soát mọi lưu lượng truy cập đến tài nguyên của công ty.

Trên thị trường đang có 3 loại WAF được sử dụng ở các môi trường khác nhau như:
nền tảng mạng lưới (Network-Based), nền tảng đám mây (Cloud-Based) và nền tảng
máy chủ (Host-Based).

Bảo mật với các công cụ có sẵn

Các quy trình tạo ra các bảo mật cho một ứng dụng website có khuynh hướng kéo dài,
gây buồn chán và đôi khi có những dòng lệnh có thể bị quên đi bởi các nhà lập trình
viên. Đó là lý do tại sao các công cụ tự động hóa việc phát hiện các lỗ hổng bảo mật
của website được ra đời và cung cấp rất nhiều giải pháp về việc phát hiện ra các lỗ
hổng ứng dụng web ví dụ như:

Nmap: công cụ này khá linh hoạt, nó có thể xử lý những lỗ hổng bảo mật nhỏ và giúp
cho doanh nghiệp kiểm tra bảo mật của hệ thống mạng và dịch vụ mạng.

Xenotix XSS Exploit Framework: Đây là công cụ của OWASP (Open Web
Application Security Project), công cụ Xenotix giúp nhận diện các tấn công XSS
(Cross Site Scripting) để từ đó bạn có thể nhanh chóng xác nhận đầu vào của trang
web có dễ bị ảnh hưởng bởi các trình duyệt như Chrome, Firefox và Cốc Cốc hay
không.

Bảo mật bằng cách thường xuyên cập nhật phiên bản mới nhất cho website

Một trong những cách dễ dàng nhất để tin tặc thâm nhập vô được website của doanh
nghiệp là qua các lỗ hổng, các lỗ hổng này thường tồn tại ở các phiên bản website lỗi
thời hoặc chưa được sửa chữa.

Một số bản cập nhật, cụ thể là hệ điều hành OS và các bản cập nhật của phần mềm
thuộc máy chủ sẽ được tự động cập nhật. Tuy nhiên một số khác cần được làm bằng
“thủ công” ví dụ như hệ quản trị nội dung (Content Management System - CMS) và
tiện ích mở rộng (Extension) đem đến nhiều lợi ích.

Để đảm bảo website doanh nghiệp không tồn tại các lỗ hổng, hãy để ý CMS,
Extension và mọi tập lệnh luôn được cập nhật phiên bản mới nhất.

Bảo mật bằng cách sao lưu dữ liệu (Backup Website) định kỳ

Việc bảo mật website trở nên hiệu quả và dễ dàng hơn khi doanh nghiệp thường xuyên
sao lưu dữ liệu. Không có gì là đảm bảo hoàn toàn 100% tin tặc sẽ không thể vượt qua
hàng rào bảo mật dày đặc để xâm nhập website cả. Trong trường hợp website doanh
nghiệp bị tấn công hoặc gặp sự cố dẫn đến sập website và nặng hơn nữa là mất hết tất
cả dữ liệu, doanh nghiệp có thể khôi phục dữ liệu website với các bản sao lưu dữ liệu
từ trước, từ đó việc khôi phục lại website sẽ trở nên dễ dàng hơn.

Doanh nghiệp có thể sử dụng lưu trữ đám mây (Cloud Storage) là nơi bảo mật cao để
bảo mật dữ liệu website của doanh nghiệp trong trường hợp xấu nhất có thể xảy ra.

Giải pháp để đảm bảo an toàn cho ứng dụng web

Sử dụng công cụ giám sát

Việc áp dụng các công cụ giám sát thời gian thực trên hệ thống sẽ giúp các đội an ninh
của doanh nghiệp giám sát và quản lý theo thời gian thực 24/7 hệ thống của mình. Khi
có vấn đề bảo mật, xâm nhập hệ thống hoặc các sự cố khác thì hệ thống sẽ báo ngay
cho quản trị viên, từ đó có thể xử lý sự cố một cách nhanh nhất, ngăn ngừa và giảm
thiểu những thiệt hại có thể xảy ra.

Khi kiểm tra bảo mật ứng dụng web liên tục sẽ giúp doanh nghiệp xác định các lỗ
hổng bảo bảo mật trên hệ thống, 90% các lỗ hổng bảo mật sẽ xuất phát từ quá trình
doanh nghiệp xây dựng hệ thống ứng dụng web. Những lỗ hổng này sẽ luôn tồn tại,
chờ cơ hội leo thang và gây thiệt hại cho doanh nghiệp.
Mã hóa dữ liệu

Mã hóa dữ liệu là quy trình cơ bản hóa thông tin để bảo vệ dữ liệu của người dùng
khỏi bất kỳ những kẻ có mưu đồ xấu có thể tiếp cận.

Bản thân mã hóa dữ liệu không có quyền can thiệp vào việc truyền tải dữ liệu nhưng
mã hóa dữ liệu có thể xáo trộn dữ liệu cho những người cố ý truy cập vào để lấy thông
tin, giúp cho ứng dụng web ngày càng bảo mật hơn.

Đánh giá rủi ro

Việc nhận diện được các nhu cầu bảo mật là rất quan trọng khi bạn đang tạo ra các
giao thức hiệu quả, ở giai đoạn này doanh nghiệp phải tính và đánh giá những yếu tố
đó có khả năng ảnh hưởng đến bảo mật của ứng dụng web hay không.

Ví dụ: mức độ nhạy cảm của dữ liệu, khả năng truy xuất nguồn gốc, nghĩa vụ pháp lý,
ai có thể truy cập,… Sau quá trình nhận diện được các nhu cầu bảo mật, doanh nghiệp
nên ưu tiên các yếu tố có tác động lớn đến ứng dụng web để tiến tới việc thiết lập các
chiến lược bảo mật ứng dụng web phù hợp nhất.

IV. Kết luận

You might also like