Tấn công ứng dụng web
Giảng viên: Nguyễn Trọng Hưng
Thực hiện: Đỗ Đức Cảnh
NỘI DUNG
TỔNG QUAN VỀ ỨNG DỤNG WEB
CÁC HÌNH THỨC TẤN CÔNG THƯỜNG GẶP
DEMO TẤN CÔNG XSS
1.
Tổng quan về ứng dụng web
Let’s start with the first set of slides
ỨNG DỤNG WEB LÀ GÌ?
Chạy trực tiếp trên nền tảng web
LỢI ÍCH CỦA ỨNG DỤNG
Anywhere
Safe
Newest Version
Browser
NGUY CƠ BẢO MẬT
CENZIC Web app Attack Types Q1/2016
Other; 11%
XSS; 25%
CSRF; 6%
XSS
Information
Leakage
Authentication
Session
Management
SQL Injection
CSRF
SQL Injection; 7%
Session Management; 13%
Information Leakage; 23%
Authentication; 15%
2.
Các hình thức tấn công thường gặp
Let’s start with the second set of slides
LOCAL ATTACK
1.
2.
3.
Tấn công 1 website nào đó trên cùng server
Dùng mã khai thác (shell) viết bằng PHP, ASP.NET,
Python,…
Khi 1 hosting bị upload shell lên, hacker dùng câu
lệnh để thâm nhập sang các hosting khác cùng 1
server
LOCAL ATTACK
LOCAL ATTACK
Không sử dụng các mã nguồn không rõ nguồn gốc. Vì có thể có nhiều lỗi hoặc bị chèn mã độc vào sẵn
Thường xuyên update các phiên bản mới của các loại mã nguồn mở để vá lỗi
Sử dụng VPS thay vì dùng hosting
Thường xuyên backup dữ liệu và quét dữ liệu xem có chứa mã độc hay không
BRUTE FORCE
Thử tất cả các khả năng có thể có để đoán các thông tin cá
nhân đăng nhập: tài khoản, mật khẩu, số thẻ tín dụng…
Hệ thống cho phép sử dụng mật khẩu hoặc thuật toán mã
hóa yếu => dễ đoán tài khoản và mật khẩu đăng nhập.
BRUTE FORCE
Tăng cường độ mạnh cho mật khẩu
Sử dụng cơ chế chứng thực (Basic hoặc Digest
Authentication)
Hạn chế số lần đăng nhập hoặc khóa tài khoản đăng nhập
sai
Sử dụng module Mod_Dosevasive
DỰ ĐOÁN, CHÈN PHIÊN (SESSION HIJACKING)
Đăng nhập
Chiếm phiên đăng nhập của
người dùng khác
Server tạo SessionID duy nhất
Hacker đoán ra SessionID
DỰ ĐOÁN, CHÈN PHIÊN (SESSION HIJACKING)
Sử dụng SSL (mod_ssl) trong quá trình chứng thực để
chống lại việc nghe lén dữ liệu quan trọng.
Sử dụng cơ chế tạo session ID ngẫu nhiên, thuật toán mã
hóa mạnh.
Session ID phải đủ lớn để làm khó quá trình tấn công
brute-fore.
Giới hạn thời gian tồn tại của session ID.
VƯỢT ĐƯỜNG DẪN (PATH TRAVERSAL)
1.
Cho phép truy cập đến những thư mục giới hạn, thực
thi lệnh ngoài thư mục gốc của web server
2.
Hacker có thể tìm ra các thư mục, file hệ thống
3.
Thực thi các lệnh nguy hiểm như cmd.exe trên server
VƯỢT ĐƯỜNG DẪN (PATH TRAVERSAL)
1.
GET HTTP/1.1
2.
Host: server.com
3.
Sử dụng mod_security để lọc dữ liệu đầu vào
TỪ CHỐI DỊCH VỤ (DoS)
1.
Ngăn cản người dùng truy cập và sử dụng một dịch
vụ nào đó.
2.
Chiếm dụng lượng lớn tài nguyên mạng (băng
thông, bộ nhớ, …)
3.
Server không thể đáp ứng yêu cầu sử dụng dịch vụ
từ client
TỪ CHỐI DỊCH VỤ (DoS)
DoS
DDoS
DRDoS
TỪ CHỐI DỊCH VỤ (DoS)
Giảm thời gian thiết lập kết nối và chờ kết nối (đặc biệt với tấn công DOS truyền thống)
Dùng những phần mềm phát hiện DDOS
Dùng firewall và IDS, IPS để có thể hiệu quả hơn
SQL INJECTION
1.
Chèn các câu truy vấn SQL vào dữ liệu tương tác giữa
máy khách và ứng dụng
2.
Lấy được các dữ liệu nhạy cảm trong CSDL, thay đổi
CSDL (Insert/Update/Delete)
3.
Thực thi các hành động với quyền của admin và cao
hơn có thể điều khiển được hệ điều hành máy chủ
SQL INJECTION
ĐĂNG NHẬP
Tên đăng nhập:
Mật khẩu:
select * from tb.users where user=‘meoconlonton’ and pass=‘ahihi’
meoconlonton
ahihi
SQL INJECTION
ĐĂNG NHẬP
Tên đăng nhập:
Mật khẩu:
select * from tb.users where user=‘’OR 1=1;/*’ and pass=‘*/--’
‘OR 1=1;/*
*/--
SQL INJECTION
RẤT NGUY HIỂM nếu User đầu tiên trong CSDL là Admin
Kiểm tra dữ liệu đầu vào
Dùng mod_security để lọc dữ liệu đầu vào tấn công SQL
XSS (CROSS-SITE SCRIPTING)
XSS (CROSS-SITE SCRIPTING)
Chèn mã client-script
Người dùng truy cập vào trang
(Javascript/HTML) vào trang web
dính XSS
Hacker ăn cắp cookie, chiếm
session, chiếm quyền quản trị
Mã độc được thực thi