News Các phương thức tấn công ứng dụng web hay gặp

Thảo luận trong 'Tin công nghệ' bắt đầu bởi thaihihi001, 16/8/18.

  1. thaihihi001 PageRank 1 Member

    Tham gia ngày:
    10/7/18
    Đối với các cơ quan, tổ chức website là kênh cung cấp thông tin hiệu quả và nhanh chóng nhất. Cũng chính đặc điểm này, các website thường xuyên là mục tiêu tấn công của tin tặc để khai thác đánh cắp các thông tin liên quan bên trong. Một trong những phương thức tấn công phổ biến là khai thác các lỗi bảo mật liên quan đến ứng dụng web.
    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.

    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.

    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/”>SSLRequireSSLAuthType DigestAuthName “Admin Area”AuthDigestfile /usr/local/apache/conf/passwd_digestRequire user admin</LocationMatch>

    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.
    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.

    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*\”?[^>]*>”

    SQL injection

    Tấn công SQL Injection được thực thi bằng cách 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à trình ứng dụng. Quá trình khai thác lỗi SQL Injection thành công có thể giúp tin tặc lấy được các dữ liệu nhạy cảm trong cở sở dữ liệu, thay đổi cơ sở dữ liệu (Insert/Update/Delete), thực thi các hành động với quyền của người quản trị và cao hơn có thể điều khiển được hệ điều hành máy chủ
    Ví dụ: Xét đoạn mã truy vấn SQL sau:
    SELECT * FROM Users WHERE Username=’$username’ AND Password=’$password’
    Đây là một câu truy vấn thường hay được dùng trong các trình ứng dụng nhằm xác thực người dùng. Nếu câu truy vấn trả về một giá trị nói rằng thông tin về người dùng đang đăng nhập là đúng và được lưu trong cơ sở dữ liệu, thì người dùng được phép đăng nhập vào hệ thống, ngược lại thì không đăng nhập được. Người dùng nhập thông tin đó vào các trường gọi là web form.
    Thay vì nhập đúng tên đăng nhập và mật khẩu, thử nhập vào các ký tự đặc biệt như:

    $username = 1′ or ‘1’ = ‘1$password = 1′ or ‘1’ = ‘1
    Khi đó câu truy vấn sẽ là:

    SELECT * FROM Users WHERE Username=’1′ OR ‘1’ = ‘1’ AND Password=’1′ OR ‘1’ = ‘1’
    Giả sử rằng giá trị của các tham số được gửi tới máy chủ bằng phương thức GET, thì có một câu lệnh khai thác lỗi như sau:

    http://www.example.com/index.php?username=1’ or ’1’ = ’1&password=1’ or ’1’ = ’1
    Khi đó, truy vấn sẽ trả về một giá trị (hay một loạt các giá trị) vì điều kiện trên luôn luôn đúng (OR 1=1). Trong trường hợp này tin tặc sẽ đăng nhập được vào hệ thống mà không cần biết tên đăng nhập và mật khẩu. Trường hợp này sẽ rất nguy hiểm nếu dòng đầu tiên trong bảng “Users” là tài khoản của người quản trị (admin) vì tin tặc sẽ đăng nhập vào hệ thống bằng tài khoản đầu tiên trong bảng này.

    Biện pháp đối phó:
    • Kiểm tra dữ liệu đầu vào.
    • Sử dụng Mod_Security để lọc một số dữ liệu tấn công SQL injection.
    SecFilter “delete[[:space:]]+from”SecFilter “insert[[:space:]]+into”SecFilter “select.+from”SecFilter xp_cmdshellSecFilter xp_regreadSecFilter xp_regwriteSecFilter xp_regdeletekeySecFilter xp_enumdsnSecFilter xp_filelistSecFilter xp_availablemedia

    Nguồn: SecurityBox
     
    Quan tâm nhiều
    Rút tiền 33WIN bởi 33winlemcom, 25/11/24 lúc 21:16
    33winlemcom bởi 33winlemcom, 25/11/24 lúc 21:08
    33winlemcom bởi 33winlemcom, 25/11/24 lúc 21:09
    Ngan12345@ bởi 33winlemcom, 25/11/24 lúc 21:10
    Ngan12345@ bởi 33winlemcom, 25/11/24 lúc 21:13
    Ngan12345@ bởi 33winlemcom, 25/11/24 lúc 21:14
    #1

Chia sẻ trang này