--- Top 10 lỗ hổng bảo mật ứng dụng web OWASP năm 2013 ---
OWASP (Open Web Application Security Project) là một dự án mở về bảo mật ứng dụng web, dự án là sự cố gắng chung của cộng đồng với mục đích giúp các doanh nghiệp có thể phát triển, mua và bảo trì các ứng dụng web một cách an toàn. Ở OWASP bạn sẽ được cung cấp miễn phí và mở:
- Các công cụ và các tiêu chuẩn về an toàn thông tin
- Tài liệu về kiểm tra bảo mật ứng dụng, lập trình an toàn và kiểm định mã nguồn
- Thư viện và các tiêu chuẩn điều khiển an ninh thông tin
- Các chi nhánh của hội ở khắp thế giới
- Các nghiên cứu mới nhất
- ....
Bài viết này sẽ cung cấp tới bạn đọc thông tin về Top 10 lỗ hổng bảo mật ứng dụng web OWASP năm 2013
OWASP Top 10 là danh sách được OWASP tổng hợp và nghiên cứu theo từng năm, nhằm đưa ra những cảnh bảo rủi ro an ninh của ứng dụng web một cách ngắn gọn và dễ hiểu nhất. Từ đó, đưa ra những giải pháp phù hợp, nâng cao an toàn hệ thống thông tin. Danh sách này được cập nhật liên tục theo thời gian do sự thay đổi về mức ảnh hưởng của từng lỗ hổng.
Danh sách 10 lỗ hổng an ninh nghiêm trọng nhất trên các ứng dụng Web:
A1. Injection (Chèn mã)
Nguyên nhân: Các truy vấn đầu vào tại ứng dụng bị chèn thêm dữ liệu không an toàn dẫn đến mã lệnh được gửi tới máy chủ cơ sở dữ liệu. Một số dạng tấn công Injection: Buffer overflow (tràn bộ đệm), SQL Injection, Xpath Injection, XML Injection, LDAP lookups, Shell command Injection
Nguy cơ:
- Truy cập dữ liệu bất hợp pháp
- Insert/update dữ liệu vào DB
- Thực hiện một số tấn công từ chối dịch vụ (refref, benchmark,...)
A2. Broken Authentication and Session Management (Xác thực yếu trong quản lý phiên)
Khâu xác thực (authentication) và trao quyền (authorisation) được sử dụng khá phổ biến trong các ứng dụng web. Nếu các khâu xác thực không đủ mạnh thì đây chính là lỗ hổng để kẻ tấn công truy nhập đánh cắp thông tin. Do đó phiên làm việc (sesstion) cần được quản lý chặt chẽ, Nếu không kẻ tấn công có thể lợi dụng để chiếm quyền và điểu khiển phiên làm việc của ngươi dùng
Ví dụ: Đưa ID của người dùng vào URL mà không có mã hóa, kiểm tra:
http://www.error-site.com/test.aspx?session_id=12345
A3. XSS - Cross Site Scripting
Là dạng tấn công lên trình duyệt người dùng. Kẻ tấn công chèn mã Script (thường là javascript) và các trang web có lỗi XSS. Khi người dùng mở các trang này thì mã script của kẻ tấn công được thực hiện giúp đánh cắp thông tin lưu trong trình duyệt người dùng. Nguyên nhân của lỗ hổng này là do việc sai sót trong kiểm duyệt nội dung đầu vào.
A4. Insecure Drict Object References - Tham chiếu các đối tượng trực tiếp không an toàn
Việc tham chiếu các đối tượng, các file cần được thực hiện gián tiếp và thông tin nhạy cảm cần được che giấu. Việc phân quyền yếu (weak authorization) cho phép người dùng có thể truy cập dữ liệu của người khác. Trong trường hợp hacker có thể xác định được chính xác cấu trúc gửi đến server, hacker có thể nhanh chóng thu thập dữ liệu như Credit Card, mã khách hàng,...
Ví dụ: tham chiếu không an toàn
http://www.error-site.com/download.aspx?filename=/docs/12345.pdf
-> kẻ tấn công có thể gõ tên file theo quy luật và tải các file không được phép.
A5. Security Misconfiguration - Lỗi cấu hình an ninh máy chủ web
Việc thắt chặt các cấu hình bảo mật tại các tầng trong kiến trúc web là rất cần thiết: platform, OS, web server,... nhằm tránh những nguy cơ có thể bị khai thác vào ứng dụng. Một số lỗi cấu hình an ninh máy chủ web: lỗi quyền truy nhập file; lỗi thực hiện các trang; lỗi liệt kê các file; lỗi cho phép tải lên và thực hiện các file mã.
A6. Sensitive Data Exposure - Lưu trữ các tham số mã hóa không an toàn
Các dữ liệu nhạy cảm như mật khẩu cần được lưu dưới dạng mã hóa. Nên dùng các hàm băm 1 chiều (SHA). Hạn chế quyền truy nhập vào các file chứa thông tin nhạy cảm. Một số tình huống lưu trữ dữ liệu không an toàn như:
- Tình huống 1: Thẻ tín dụng/Tài khoản đăng nhập được lưu trữ cleartext (bản rõ không được băm).
- Tình huống 2: Kênh truyền HTTPS bị hacker nghe lén và dữ liệu được giải mã thông qua lỗ hổng CRIME.
A7. Missing Function Level Access Control - Không thực sự hạn chế truy nhập các URL nội bộ
Các trang riêng/trang quản trị cần có cơ chế hạn chế truy nhập đủ mạnh. Hạn chế sử dụng địa chỉ IP, hạn chế sử dụng phân quyền.
Ví dụ hạn chế yếu: hệ thống phân quyền dùng cơ chế ẩn hiện các links theo quyền truy nhập mà không thực sự kiểm tra -> nếu gõ link bằng tay thì vẫn truy nhập được.
A8. CSRF - Cross-Site Request Fogery
Là dạng tấn công người dùng web, lợi dụng cơ chế tự động đăng nhập của một số website. Kẻ tấn công lừa người dùng thực hiện các đoạn mã độc, nhúng trong các trang web bình thường trong ngữ cảnh người dùng đang trong phiên làm việc với website. Mã độc chạy trên trình duyệt của người dùng đang làm việc có thể giúp hacker thực hiện các giao dịch hoặc đánh cắp thông tin.
A9. Using Componets with Known Vulnerabilities
Viêc sử dụng các lỗ hổng bảo mật trong các thư viện, plugin, module, ứng dụng,...được công khai trong cộng đồng giúp hacker nhanh chóng khai thác các lỗ hổng bảo mật.
A10. Unvalidated Redirects and Forwards - Không kiểm tra các địa chỉ URLL redirect và chuyển tiếp
Các địa chỉ URL redirect và chuyển tiếp cần được kiểm tra và tránh để kẻ tấn công lợi dụng đưa địa chỉ website giả mạo vào.
Ví dụ: Trang đăng nhập:
http://www.error-site.com/logon.aspx?url=/member/home.aspx
có thể bị sửa thành:
http://www.error-site.com/logon.aspx?url=http://hacker-site.com và lừa người dùng kích vào
Trên đây là bài viết tổng hợp 10 lỗ hổng bảo mật nghiêm trọng được OWASP đánh giá và công bố năm 2013. Vừa mới đây OWASP cũng đã công bố 10 lỗ hổng trong ứng dụng web, các bạn có thể tham khảo tại đây.
Tài liệu tham khảo:
- http://antoanthongtin.ictu.edu.vn/lohongbaomat/392-top-10-rui-ro-bao-mat-web-application-pho-bien.html
- http://antoanthongtin.vn/Portals/0/TempUpload/pProceedings/2014/9/26/scb2013-kh%E1%BB%95ng%20v%C4%83n%20c%C6%B0%E1%BB%9Dng-%20owasptop10-2013-131028002253-phpapp02.pdf
- http://infosecptit.com/webdbsecurity/DauHoang-WebDBSecurity-Chuong%201%20-%20Tong%20quan%20ve%20bao%20mat%20UD%20web.pdf
0 Comments