SQL injection

Download Report

Transcript SQL injection

Phạm vi (scope)
• Kiểm tra giá trị nhập và giá trị xuất
• Sự thay đổi các luồng xủ lý
• Các giá trị vượt quá mức kiểu dữ liệu
(overflow).
• Sự sai lệch trong quá trình xử lý
Phương pháp kiểm
Black box
• Chỉ đưa ra các giá trị nhập có phá hoại muốn đánh sập nó (invalid value). Sử
dụng kỹ thuật domain-testing.
White box
• Phân tích source code thuần và cách thiết kế. Tương tự như phân tích rủi ro.
Gray box
• Sự kết hợp của Black box và white box.
• Một mặt chỉ đưa ra đầu vào phá hoại, mặt khác kết hợp đầu vào để xem
luồng xử lý.
• Ngược lại xem source code hay thiết kế để đưa ra đầu ra phá hoại.
Phương pháp kiểm
Phân quyền đăng nhập:
• Thường thì những ứng dụng desktop hay web, việc bảo mật truy xuất được thực hiện dựa vào
việc quản lý phân quyền. Nó thường được coi như là một yêu cầu chức năng.
• Vậy làm sao để test: Để kiểm vấn đề này:
• Thường thì ban đầu ta phải kiểm tra hết toàn bộ những quyền hạn có trong tài liệu yêu cầu.
• Sau đó, ta tạo ra những người dùng với những quyền hạn kết hợp với nhau, kiểm tra những
người dùng đó. Nếu phát hiện có xung đột thì nên tạo log cho những vấn đề phát sinh.
• Xung đột: tức là khi đăng nhập với người dùng có hai quyền hạn mà ta chỉ có thể thao tác
trong một quyền hạn,…..
Brute-Force Attack:
• Đây là cách tấn công vét cạn, dùng để đoán username hay password của ứng dụng. Một cách
chống lại kiểu tấn công này là sử dụng những thông tin đăng nhập trong một khoảng thời gian
ngắn rồi thay đổi.
• Làm sao test:
• Login với những tài khoản người dùng không hợp lệ.
• Kiểm tra xem ứng dụng có chống lại việc liên tục đăng nhập với nhiều tài khoản hay password
khác nhau trong khoản thời gian ngắn.
Công cụ
• Application Verifier
• Các công cụ cho phép automation.
Môi trường
• Cấu hình phần cứng (theo trang web
microsoft):
•
•
•
•
Máy vi tính với cấu hình phổ thông
CPU >= 2.0 GHz
RAM >= 512MB
HDD trống >= 2GB
Mở đầu
• Ứng dụng Web ngày càng trở nên phổ biến
- Web là môi trường giao tiếp, trao đổi thông
tin.
- Web đóng vai trò quan trọng trong nền kinh tế
thế giới.
• Đảm bảo an toàn cho ứng dụng Web là yêu
cầu cấp thiết.
Nguy cơ bảo mật
• Đánh cắp dữ liệu, thông tin người dùng
• Phá hoại, sửa đổi dữ liệu
• Tấn công từ chối dịch vụ (DDOS)
Hướng tiếp cận
•
•
•
•
•
•
•
Hidden manipulation
Buffer overflow attack - Tràn bộ đệm
Parameter Tampering - Chèn tham số
SQL injection
Cross Site Scripting (XSS)
Cookie Poisoning
Session attack
Hướng tiếp cận
• Hidden manipulation (Thao tác trên phân vùng ẩn)
Các phần bị giấu đi trong trang Web thường được dùng
để lưu thông tin về phiên làm việc của client.Tuy vậy, phần
bị giấu đi này không "ẩn" thực sự, chức năng "View
Source" của trình duyệt cho phép đọc được mã nguồn
của phần bị giấu của trang Web. Dựa vào mã nguồn này
tin tặc có thể giả lập phiên làm việc để truy cập thông tin
trên máy chủ hay tìm ra sơ hở của trang WEB để tấn
công,...
Hướng tiếp cận
• Buffer overflow attack - Tràn bộ đệm
Tình trạng tràn bộ đệm xảy ra khi dữ liệu được gửi đến
ứng dụng nhiều hơn mong đợi. Kỹ thuật tấn công này có
thể làm cho hệ thống bị tê liệt hoặc làm cho hệ thống mất
khả năng kiểm soát.
Hướng tiếp cận
• Parameter Tampering - Chèn tham số
Đây là cách thức tấn công bằng cách đưa tham số trực
tiếp vào địa chỉ URL để truy cập thông tin không dành cho
người dùng (người dùng thao tác qua giao diện trên trình
duyệt không thể thấy được các thông tin này). Câu lệnh
SQL truy cập CSDL nền của ứng dụng trên mạng thường
được thể hiện trên địa chỉ URL. Tin tặc có thể thao tác
trên đoạn mã SQL này để truy cập thông tin trong CSDL.
Thường thao tác tham số có thể thực hiện với: HTML
Form Field Manipulation, URL Manipulation, HTTP Header
Manipulation.
Hướng tiếp cận
• SQL injection
Kĩ thuật tấn công này lợi dụng những lỗ hỗng trên ứng
dụng(không kiểm tra kĩ những kí tự nhập từ người dùng).
Thực hiện bằng cách thêm các mã vào các câu lệnh hay
câu truy vấn SQL (thông qua những textbox) trước khi
chuyển cho ứng dụng web xử lý, Server sẽ thực hiện và
trả về cho trình duyệt (kết quả câu truy vấn hay những
thông báo lỗi) nhờ đó mà các tin tặc có thể đăng nhập mà
không cần username và password, điều hành từ xa, kết
xuất, xoá, sửa cở sở dữ liệu và lấy root của SQL server.
Hướng tiếp cận
• Cross Site Scripting (XSS)
Cross-Site Scripting là một kĩ thuật tấn công bằng
cách chèn vào các website động (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 người
sử dụng khác.
Hướng tiếp cận
• Cookie Poisoning
Phương thức tấn công này tham chiếu đến cookie
và sửa đổi dữ liệu của nó và quay trở lại dùng
cookie bị sửa đổi để truy cập tới tài khoản đó.
Kỹ thuật thực hiện
• Automation test (thực hiện bằng các tools)
• Code review
• Manual (tự thiết kế test case )
Một số công cụ hỗ trợ
• Websecurify (www.websecurify.com)
• Selenium (seleniumhq.org)
• WebScarab
(www.owasp.org/index.php/Category:OWASP_
WebScarab_Project )
• Paros Proxy (www.parosproxy.org)
G1
Mobile Security Testing
Proplems
www.themegallery.com
Contents
1
Mobile Security Testing là gì?
2
Môi trường dùng cho testing
3
Phương thức testing
4
Tools
www.themegallery.com
Mobile Security Testing
Mobile Testing là gì?
– Hoạt động nhằm tìm kiếm, kiểm tra và phát hiện
các lỗi trên một ứng dụng dùng cho mobile.
Mobile Security Testing ?
 Hoạt động nhằm xác định và giảm nhẹ các rủi ro
(lỗ hổng) về an ninh từ các ứng dụng trên di động.
www.themegallery.com
Môi trường dùng cho testing
Mobile
www.themegallery.com
Phương Thức Test
Sử dụng kiểm thử tự động (Automation
testing)
Sử dụng các máy giả lập và thiết bị thực tế
(Emulators and actual devices)
Kiểm thử trên các môi trường và ứng dụng
di động phức tạp
www.themegallery.com
Các Loại Test Có Thể áp Dụng
•
•
•
•
•
•
•
•
Authentication checks
Input Validation checks
Session Management checks
Encryption checks
Application checks
SQL injection checks
LDAP injection checks
XPATH injection checks
Tools
http://experitest.com/
www.themegallery.com