• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Một số phương pháp tấn công web phổ biến và đề xuất một số phương án phòng chống

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Một số phương pháp tấn công web phổ biến và đề xuất một số phương án phòng chống

    Sinh viên thực tập: HOÀNG MINH TUẤN

    Chương 2: Một số phương pháp tấn công web phổ biến và đề xuất một số phương án phòng chống

    Mặc dù web được bảo mật bằng những phương thức khác nhau, thế nhưng hacker là những người rất tinh tế. Họ tìm tòi và suy nghĩ ra những phương pháp tấn công rất thông minh và độc đáo dựa trên các lỗ hổng của ứng dụng web. Dưới đây là thống kê vào năm 2009 về một vài phương pháp tấn công phổ biến.


    Hình 2.1 Một số lỗ hổng bảo mật phổ biến được thống kê vào năm 2009

    Sau đây, sẽ là một số phương pháp tấn công cụ thể phổ biến

    2.1 Authentication attacks

    Authentication đóng một vai trò rất quan trọng trong việc đảm bảo tính an ninh của một web application. Khi một user cung cấp login name và password để xác thực tài khoản của mình, web application cấp quyền truy xuất cho user dựa vào login name mà user nhập vào đã được lưu trong cơ sở dữ liệu.
    HTTP có một số phương thức xác thực:
    • Basic
    • Digest
    • Form-based.
    • NTLM.
    • Negotiate.
    • Client-side.
    • Microsoft Passport.

    Kiểu tấn công này không dựa vào lỗ hổng an ninh trên hệ điều hành và phần mềm của server. Nó phụ thuộc vào mức độ an ninh và phức tạp của password được lưu trẽ và mức độ khó khan để cho attacker có thể tiếp cận được server.
    Khi thực hiện tấn công này, hacker có thể vượt rào xác thực, và vào hệ thống với quyền truy xuất mà mình mong muốn. Với quyền đăng nhập cao nhất (admin), hacker có thể toàn quyền điều khiển hệ thống web bị tấn công.
    Giải pháp tốt hơn cho vấn đề này là sử dụng một vài hình thức “multi-factor authentication” (chứng thực sử dụng nhiều yếu tố).

    Vấn đề ở đây là sức mạnh tính toán của các máy tính ngày này ngày càng tăng. Chúng có khả năng xử lý một lượng lớn dữ liệu chỉ trong một khoảng thời gian ngắn. Một “password” chỉ là một chuỗi các ký tự (có trên bàn phím) mà một người cần ghi nhớ và cung cấp cho máy tính khi cần thiết (như để đăng nhập vào máy tính, truy cập tài nguyên trên mạng…).

    Thật không may, các mật khẩu mà quá phức tạp để ghi nhớ đối với con người thì lại dễ dàng bị dò ra bởi các công cụ “pasword cracking” trong một khoảng thời gian ngắn đến kinh ngạc. Các kiểu tấn công như “dictionary attack”, “brute fore attack” và “hybrid attack” thường được sử dụng để đoán và bẻ khóa mật khẩu.

    Phương thức bảo vệ duy nhất chống lại những “threat” như vậy là tạo ra các mật khẩu mạnh - “strong password” (độ dài của mật khẩu thường từ 8 ký tự trở lên, trong đó bao gồm cả chữ cái in thường/in hoa, chữ số, ký tự đặc biệt) và sử dụng thêm các yếu tố khác (vân tay, smart card, võng mạc mắt,…) cho việc chứng thực.

    Nhưng ngay cả khi người ta có thể nhớ được các “strong password” (tất nhiên độ phức tạp của “password” này cần ở mức vừa phải) như dài từ 12 đến 16 ký tự, thì vẫn còn các vấn đề khác mà các hệ thống chứng thực chỉ dựa vào “password” phải đối mặt, bao gồm:

    • Mọi người có thói quen sử dụng cùng một “password” cho nhiều tài khoản, đặc biệt là các tài khoản ở các Website kém bảo mật trên Internet.

    • Mọi người thường ghi các “password” của họ xuống đâu đó (như mẩu giấy, tập tin trên máy tính…) và cất giấu chúng ở những nơi không an toàn (như ngăn kéo bàn, tập tin không được mã hóa (clear text)…). Lời khuyên trong trường hợp này là bạn nên định kỳ đổi các “password” của mình.

    • Sử dụng các giao thức không an toàn kém an toàn (insecure protocol) như HTTP (web service), SMTP/POP3/IMAP (mail service), FTP (file transfer)… để truyền đi các “password” dưới dạng “clear text”.

    • Các phần mềm ghi nhận lại các thao tác gõ phím (keylogger) cũng là một “threat” đáng lo ngại khi chúng sẽ âm thầm gửi các “password” thu thập được cho hacker.

    • Kẻ xấu có thể nhìn trộm bạn gõ “password” từ đằng sau hoặc đặt camera giám sát việc sử dụng máy tính của bạn.

    Các hành vi đánh cắp, bẻ khóa, đoán “password” thì vẫn còn là những “threat” đáng lo ngại đối với môi trường CNTT của bất kỳ tổ chức nào. Cách bảo vệ tốt nhất để chống lại những “threat” này là triển khai các hệ thống “multi-factor authentication” và chỉ dẫn người dùng hình thành thói quen quản lý mật khẩu sao cho an toàn.

    2.2 HTTP Response Splitting

    Lỗi HTTP Response Splitting tấn công vào ứng dụng web và diễn ra khi nó không thể xử lý đúng các thông tin đầu vào người dùng nhập.
    Kẻ tấn công từ xa có thể gửi một yêu cầu HTTP đặc biệt làm cho máy chủ web định dạng yêu cầu nhầm tưởng rằng nó chứa 2 yêu cầu HTTP chứ không phải một.
    Chỉ yêu cầu thứ nhất được xử lý bởi người sử dụng. HTTP Response Splitting cho phép tiến hành một lượng lớn các cuộc tấn công kiểu như web cache poisioning, deface, “cross-user defacement”, chặn và ăn cắp thông tin người dùng và Cross site Scritpting.

    2.3 D
    irectory traversal
    Directory traversal hay còn được biết với một số tên khác như “dot-dot-slash”, “Path Traversal”,”directory clumbing” và “backtracking” là hình thức tấn công truy cập đến những file và thư mục mà được lưu bên ngoài thư mục webroot. Hình thức tấn công này không cần sử dụng một công cụ nào mà chỉ đơn thuần thao tác các biến với ../ (dot-dot-slash) để truy cập đến file, thư mục, bao gồm cả source code, những file hệ thống, …
    Những hàm của những ngôn ngữ lập trình Web có khả năng gây lỗi Path Traversal như sau:
    • PHP: include(), include_once(), require(),
      require_once(), fopen(), readfile(), ...
    • JSP/Servlet: java.io.File(), java.io.FileReader(), ...
    • ASP: include file, include virtual, ...

    2.4 File Inclusion Attacks
    Khi một trang web sử dụng các lệnh include, require,… để gọi đến một file khác. Và sơ ý để người dùng có thể thay đổi file cần gọi đến. Như vậy website đó đang đứng trước nguy cơ bị tấn công File Inclusion.
    Tùy vào mức độ bảo mật của Server, hacker có thể include đến file trên Server( local include) đó hoặc include đến file trên Server khác( remote include). Với từng mức độ hacker có thể có nhiều cách để up shell.
    Nếu server kém bảo mật thì kẻ tấn công có thể đọc được file của toàn bộ hệ thống, file của các website khác trên cùng máy chủ đó.
    Lỗi này hay được tấn dụng để tấn công local : kiểu tấn công máy chủ, website qua một site bị lỗi trên máy chủ. Nếu có quyền ghi, tất cả các file có thể bị thay đổi: deface trang chủ, chèn mã độc để thu thập thông tin đăng nhập, ẩn dấu backdoor để lần sau vào tiếp,…
    Có thể lấy thông tin truy nhập cơ sở dữ liệu (database) qua file cấu hình của website, sau đó truy nhập vào cơ sở dữ liệu : xem dữ liệu, xóa, thay đổi dữ liệu,… Trong trường hợp này, cơ sở dữ liệu là MySql cho phép sử dụng hàm load_file().
    Phòng chống File Inclusion Attacks
    • Server an toàn
      • Trong php.ini đặt các tham số allow_url_fopen=Off (allow_url_fopen=Off) , register_globals=Off, Safe_mode=On, display_error=Off
      • Đặt quyền cho các thư mục hợp lý
    • Lập trình an toàn
      • Bắt lỗi chặt chẽ
      • Bất cứ biến nào cũng cần khởi tạo
      • Sử dụng đường dẫn tuyệt đối

    (còn tiếp...)
    Lâm Văn Tú
    Email :
    cntt08520610@gmail.com
    Viet Professionals Co. Ltd. (VnPro)
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel: (08) 35124257 (5 lines)
    Fax (08) 35124314
    Tập tành bước đi....



  • #2
    hay, đọc tham khảo cái:D
    Pro Spammer

    Comment

    Working...
    X