QUY TRÌNH KIỂM TRA ĐẢM BẢO
AN TOÀN THÔNG TIN CHO ỨNG
DỤNG WEB
Nội dung chính
•
I. Giới thiệu chung về Web
•
II. Quy trình kiểm tra đảm bảo ATTT cho ứng dụng
web
•
III. Các công cụ sử dụng để khai thác và bảo vệ ứng
dụng web
I. Giới thiệu chung về Web
•
1. Khái niệm web
▫
World Wide Web (www),
gọi tắt là web, là một
không gian thông tin toàn
cầu mà mọi người có thể
truy nhập (gửi và nhận
thông tin) qua các máy
tính nối với mạng Internet.
▫
Web là 1 dịch vụ trên
mạng Internet
I. Giới thiệu chung về Web
•
2. Mô hình hoạt động của Web
I. Giới thiệu chung về Web
•
Cổng (ví dụ: 80, 8080)
Đường dẫn tuyệt đối chỉ đến tên file (ví dụ: thumuc/trang/…).
:80/Trang/default.aspx
\____/ \_____________/ \_/ \______________/
| | | |
| Tên miền | Đường dẫn tuyệt đối
Giao thức Cổng
I. Giới thiệu chung về Web
•
3. Các thành phần của mô hình
3.3 Giao thức http và https:
HTTP (Hypertext Transfer Protocol) là giao thức thuộc lớp ứng
dụng trong mô hình tham chiếu OSI.
Hoạt động thông thường ở port 80 và là giao thức hướng kết nối.
HTTPS = HTTP + SSL/TLS
I. Giới thiệu chung về Web
•
3. Các thành phần của mô hình
3.3 Giao thức http và https:
Web Application là nơi các kịch bản hay mã nguồn phát triển ra ứng
dụng web được thực thi. Lớp này sẽ biên dịch các mã nguồn tương
ứng và thực hiện các truy vấn đến cơ sở dữ liệu dựa vào mã nguồn
ứng dụng.
Trong giai đoạn khởi đầu của website, có rất nhiều ngôn ngữ lập trình
được sử dụng như: JSP, ASP, PHP, ASP.NET, Nhưng hiện tại có hai
ngôn ngữ được dùng phổ biến là PHP và ASP.NET.
I. Giới thiệu chung về Web
•
3. Các thành phần của mô hình
▫
3.6 Database Server – Máy chủ cơ sở dữ liệu
Database Server (cơ sở dữ liệu) là máy chủ lưu trữ tất cả các dữ liệu
liên quan đến website. Bất kỳ người sử dụng nào trên mạng máy tính,
tại các thiết bị đầu cuối, về nguyên tắc có quyền truy nhập khai thác
toàn bộ hay một phần dữ liệu theo quyền hạn hay tương tác mà
không phụ thuộc vào vị trí địa lý.
Một số hệ cơ sở dữ liệu được sử dụng hiện nay như: MS SQL Server,
Oracle, MySQL, Postgres
II. Quy trình kiểm tra đảm bảo ATTT cho ứng dụng web
1. Kiểm tra quản lý cấu hình
2. Kiểm tra xác thực tài khoản
3. Kiểm tra quản lý phiên làm việc
4. Kiểm tra phân quyền tài khoản
5. Kiểm tra xác duyệt thông tin
6. Kiểm tra khả năng tấn công từ chối dịch vụ
xử lý đó có thể suy luận để biết ứng dụng hỗ trợ những công nghệ gì.
1.6.Kiểm tra những file cũ, sao lưu, không có tham chiếu
•
Kiểm tra xem trên ứng dụng có để lộ ra thông tin gì từ việc nâng cấp lên các phiên bản mới (mà
vẫn còn để lại những file của phiên bản cũ, hay bị tự động đổi tên), rồi những thông tin để lộ trong
những phần dự phòng mà có thể truy xuất được. Những file mà vốn không tham chiếu đến từ ứng
dụng nhưng bị dự đoán được tên cũng có thể tạo ra những lỗi trong bảo mật của toàn bộ ứng dụng.
1. Kiểm tra quản lý cấu hình
1.7. Kiểm tra các giao diện hạ tầng và quản trị ứng dụng (nếu có)
•
Xem xét các giao diện quản trị trong hệ thống để tìm ra xem có thể truy
xuất vào đấy mà không cần xác thực hay xác thực mặc định không.
1.8. Kiểm tra các phương thức HHTP và XST
•
Có nhiều phương thức HTTP cho phép người dùng thực hiện nhiều thao
tác đặc biệt (chỉnh sửa, xóa, dò vết…) trên phía ứng dụng. Phần này kiểm
tra xem những phương thức không cần thiết đó đã bị chặn hay chưa.
2. Kiểm tra xác thực tài khoản
2.1. Kiểm tra quyền ủy nhiệm qua các kênh mã hóa
•
Kiểm tra xem ứng dụng có hỗ trợ những giao thức nào: http, https. Thông thường quan tâm đến khả
năng hỗ trợ https của ứng dụng.
2.2. Kiểm tra liệt kê user
•
Sử dụng những thông báo khác nhau trong ứng dụng để có thể tập hợp được danh sách các tài
khoản trong ứng dụng, thường quan tâm đến những tài khoản quản trị hơn. Mục đích cuối cùng là
lập ra được danh sách những tài khoản của ứng dụng.
2.3. Kiểm tra tài khoản khách hoặc mặc định
•
Kiểm tra mật khẩu mặc định, hay cặp (tài khoản, mật khẩu) mặc định trong hệ thống có được sử
2.10. Kiểm tra các điều kiện tương tự
•
Kiểm tra trong những tiến trình xảy ra đồng thời cùng can thiệp vào một tài nguyên (thường là
biến nào đó) thường có gây ra hiện tượng sai lệch nào không.
3. Kiểm tra quản lý phiên làm việc
3.1. Kiểm tra lược đồ quản lý phiên
•
Kiểm tra khả năng từ việc phân tích những session (đã có) có thể dự đoán
được những session tiếp theo. Hay từ những session thu được có thể phân
tích ra những giá trị như: tên tài khoản, mật khẩu,… ở trong đó hay không.
3.2. Kiểm tra thuộc tính Cookies
•
Các thuộc tính của cookies như: HTTP Only, Secure, cần phải được triểm
tra để đảm bảo những thông tin nhạy cảm luôn được truyền trong những
đường đã mã hóa.
3.3. Kiểm tra khả năng đặt trước phiên làm việc
•
Kiểm tra xem hệ thống có thể bị tấn công định trước phiên hay không.
3. Kiểm tra quản lý phiên làm việc
3.4. Kiểm tra khẳ năng lộ các biến phiên làm việc
•
Các biến lộ rõ trong session cũng có thể để lộ những dữ liệu nhạy cảm với
người dùng. Phần này sẽ kiểm tra nhằm đảm bảo những giá trị trong các
biến này là không nhạy cảm.
3.5. Kiểm tra các lỗi giả lập yêu cầu liên kết chéo
•
Kiểm tra xem ứng dụng có thể chống lại CSRF hay không.
4. Kiểm tra phân quyền tài khoản
4.1.Kiểm tra khả năng truy cập file, thư mục (Path Traversal)
•
chèn các câu truy vấ dữ liệu vào các phần điền thông tin phía người dùng nhằm ăn cắp thông tin về dữ liệu.
5.5. Kiểm tra kiểu tấn công chèn XML vào ứng dụng (XML Injection)
•
Kiểm tra Website có bị lỗ hổng hay không khi mà kẻ tấn công tìm cách chèn đoạn XML sai cú pháp thông qua
điền thông tin của ứng dụng để gây lỗi nhằm thu thập thông tin
5.6. Kiểm tra kiểu tấn công chèn các lệnh thực thi phía máy chủ
•
Kiểm tra xem kẻ tấn công có khả năng chèn các câu lệnh thực thi phía máy chủ thông qua điền thông tin của
Website để lấy thông tin về máy chủ hay không
5. Kiểm tra xác duyệt thông tin
5.7. Kiểm tra kiểu tấn công chèn các câu truy vấn theo cú pháp của Xpath
•
Xpath là ngôn ngữ được thiết kế và phát triển để thiết kế và phát triển để thao tác
trên dữ liệu được mô tả với XML, nó được thiết kế giống SQL. Việc kiểm tra
nhằm xác định Website có khả năng bị kẻ tấn công ăn cắp thông tin về CSDL
thông qua việc chèn câu truy vấn Xpath vào điền thông tin của ứng dụng
5.8. Kiểm tra kiểu tấn công vào mail máy chủ (SMTP server)
•
Kiểm tra Website có bị tấn công không khi kẻ tấn công gửi dữ liệu nguy hiểm
thông qua mẫu thư đóng góp ý kiến lên máy chủ
5.9. Kiểm tra kiểu tấn công chèn các đoạn mã thực thi lên máy chủ (Code
Injection)
•
Kiểm tra Website có khả năng chống lại lỗi khi kẻ tấn công chèn các đoạn mã lên
máy chủ thông qua các file đính kèm nhằm thực thì các mục đích phá hoại