Website hiện là kênh cung cấp thông tin rất hiệu quả, nhanh chóng và bổ ích của mỗi doanh nghiệp và tổ chức đến với người dùng. Trong thời đại này website và tài khoản cá nhân là đích ngắm của tin tặc nhằm đánh cắp thông tin liên quan bên trong dựa vào nền tảng từ các lỗ hổng đang tồn tại.
Các lỗi bảo mật ứng dụng web là nguyên nhân chủ yếu gây ra các lỗi đối với website đang vận hành. Sau khi xác định các lỗi này, tin tặc sẽ sử dụng các kỹ thuật khác nhau để tiến hành khai thác hệ thống đích. Một số kỹ thuật thường được sử dụng: Buffer Overflows, SQL Injection, and Cross-site Scripting…Việc phân loại các kiểu tấn công thành các nhóm khác nhau sẽ giúp cho người quản trị dễ dàng xác định các nguy cơ cũng như biên pháp đối phó hơn.
Bài viết dưới đây liệt kê 4 phương thức tấn công ứng dụng Web thông dụng nhất cùng biện pháp đối phó khi gặp phải.
XEM THÊM: TOP 10 lỗ hổng trong ứng dụng Web thường gặp
Lỗi chứng thực yếu (Insufficient Authentication)
Lỗi chứng thực yếu xuất hiện khi một website cho phép truy cập các nội dung, tài nguyên nhạy cảm mà không có đủ quyền. Các trang quản trị là một ví dụ dễ thấy nhất. Nếu không có cơ chế phân quyền hợp lý thư mục cũng như tài khoản đăng nhập trang quản trị này. Tin tặc hoàn toàn có khả năng vượt qua được cơ chế đăng nhập để chiếm quyền điều khiển trang này.
Biện pháp đối phó:
Thiết lập cơ chế điều khiển truy cập thông quan .htaccess hoặc tập tin cấu hình httpd.conf
Ví dụ: Điều khiển truy cập thông qua httpd.conf
<LocationMatch “^/admin/”>
SSLRequireSSL
AuthType Digest
AuthName “Admin Area”
AuthDigestfile /usr/local/apache/conf/passwd_digest
Require user admin
</LocationMatch>
Tấn công Bruteforce
Bruteforce là cách thức 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…Nhiều hệ thống cho phép sử dụng mật khẩu hoặc thuật toán mã hóa yếu sẽ tạo điều kiện cho tin tặc sử dụng phương pháp tấn công này để đoán tài khoản và mật khẩu đăng nhập. Sau đó sử dụng các thông tin này để đăng nhập truy cập vào tài nguyên hệ thống.
Biện pháp đối phó:
Tăng cường độ mạnh cho mật khẩu (Độ dài ít nhất 6 ký tự, không chứa chuỗi username, chứa ít nhất 1 ký tự số, chứa ít nhất 1 ký tự đặc biệt, không cho phép thay đổi mật khẩu trùng lặp đã sử dụng, quản lý, điều khiển thông báo lỗi)
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 để xác định dấu hiệu của kiểu tấn công này.
XSS – Cross-Site Scripting
XSS là một trong những kĩ thuật tấn công phổ biến nhất hiện nay, đồng thời nó cũng là một trong những vấn đề bảo mật quan trọng đối với các nhà phát triển web và cả những người sử dụng web. Bất kì một website nào cho phép người sử dụng đăng thông tin mà không có sự kiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều có thể tiềm ẩn các lỗi XSS.
Tin tặc 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. Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết được viết bằng các Client-Site Script như JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML
Ví dụ: Sử dụng XSS chèn mã java script trực tiếp trên URL
http://www.demo.com/search.cgi?query=<script>alert(‘XSS was found !’);</script>
Khi wesite http://www.demo.combị lỗi XSS trình duyệt sẽ hiện lên một thông báo “XSS was found !”.
Nếu như các kĩ thuật tấn công khác có thể làm thay đổi được dữ liệu nguồn của web server (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại đối với website ở phía client mà nạn nhân trực tiếp là những người khách duyệt site đó
Biện pháp đối phó:
Chỉ cho phép những dữ liệu hợp lệ, từ chối nhận các dữ liệu sai, thường xuyên kiểm tra và lọc dữ liệu đầu vào.
Sử dụng Mod_Security để lọc một số dữ liệu tấn công XSS.
SecFilterSelective THE_REQUEST “<[^>]*meta*\”?[^>]*>”
SecFilterSelective THE_REQUEST “<[^>]*style*\”?[^>]*>”
SecFilterSelective THE_REQUEST “<[^>]*script*\”?[^>]*>”
SecFilterSelective THE_REQUEST “<[^>]*iframe*\”?[^>]*>”
SecFilterSelective THE_REQUEST “<[^>]*object*\”?[^>]*>”
SecFilterSelective THE_REQUEST “<[^>]*img*\”?[^>]*>”
SecFilterSelective THE_REQUEST “<[^>]*applet*\”?[^>]*>”
SecFilterSelective THE_REQUEST “<[^>]*form*\”?[^>]*>”
Dự đoán, chèn phiên (Credentical/Session Prediction)
Dự đoán, chèn phiênlà một phương thức chiếm phiên (hijacking). Thông thường, khi một tài khoản thực hiện quá trình chứng thực đối với server (tài khoản/mật khẩu). Dựa vào các thông tin này, server sẽ tạo một giá trị session ID duy nhất để cho phép và duy trì kết nối. Nếu đoán được session ID kế tiếp thì tin tặc có khả năng chiếm phiên đăng nhập của người dùng hợp lệ khác.
Biện pháp đối phó:
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.
Pentest lỗ hổng Website để biết những nguy cơ tiềm ẩn của doanh nghiệp mình XEM TẠI ĐÂY
Nguồn Tổng hợp