Danh sách OWASP 2025 vừa công bố – những rủi ro bạn chưa từng nghĩ tới lại đứng top!

Tổng quan
Năm 2025 đã đánh dấu một bước ngoặt lớn trong cách chúng ta nhìn nhận về an ninh mạng nói chung và an ninh ứng dụng nói riêng. Bộ OWASP Top 10 – danh sách được coi là “kim chỉ nam” cho mọi chương trình AppSec trên thế giới vừa chính thức cập nhật phiên bản mới nhất. Khác so với những lần trước đó OWASP không chỉ nói về những lỗi lập trình cổ điển như SQL Injection hay XSS nữa. Thay vào đó, họ nhấn mạnh một thông điệp rõ ràng: bảo mật không chỉ nằm trong dòng code, mà nằm trong toàn bộ vòng đời phần mềm – từ chuỗi cung ứng, thiết kế, đến cách hệ thống phản ứng khi gặp lỗi.

So với bản 2021, OWASP 2025 mang đến nhiều thay đổi đáng chú ý: hai hạng mục hoàn toàn mới xuất hiện, nhiều nhóm rủi ro được tái định nghĩa, và trọng tâm chuyển hẳn sang “thiết kế an toàn” và “toàn vẹn hệ thống”. Đặc biệt, sự xuất hiện của “Software Supply Chain Failures” và “Mishandling of Exceptional Conditions” cho thấy ngành bảo mật đang bước vào giai đoạn mà một lỗi trong thư viện bên thứ ba hay một exception bị xử lý sai cũng có thể mở toang cánh cửa cho kẻ tấn công.

Chi tiết Top 10 OWASP
Trong bài phân tích này sẽ chỉ phân tích những thay đổi so với các phiên bản cũ trước đó. Có thể nói thay đổi mới nhất trong năm 2025 có lẽ là Mishandling of Exceptional Conditions (A10), đây là một hạng mục hoàn toàn mới. Tại sao các chuyên gia bảo mật lại thêm hạng mục này vào danh sách?

Có thể hiểu đơn giản Mishandling of Exceptional Conditions là khi ứng dụng không xử lý đúng các tình huống bất thường (exceptions, lỗi runtime, lỗi I/O, timeout, lỗi mạng, thất bại dịch vụ phụ trợ, input bất hợp lệ, v.v.), dẫn tới:
Tiết lộ thông tin nhạy cảm (stack traces, nội dung lỗi),
Bỏ qua kiểm tra quyền hoặc bước xác thực,
Rơi vào trạng thái fail-open (mở cửa khi lỗi) thay vì fail-secure (khóa chặt),
Gây ra hành vi không mong muốn có thể bị lợi dụng.
Để hiểu rõ hơn ta sẽ đi qua một ví dụ đơn giản, đầu tiên một API /user nhận id từ query string và dùng cách ghép chuỗi để tạo truy vấn SQL (không dùng parameterized query). Vấn đề ở đây là Input id không được parameterize có thể dẫn đến SQL injection

Khi đó kẻ tấn công sẽ gửi một giá trị gây lỗi (ví dụ nhập ký tự không hợp lệ vào chỗ số), DB engine sẽ trả lỗi kèm thông tin. Từ đó kẻ tấn công sẽ lấy được thông tin nhạy cảm từ DB và bán chúng lên các chợ đen tiềm tàn rất nhiều rủi ro cho cá nhân cũng như doanh nghiệp.

Tiếp theo một xu hướng mới nữa được OWASP đề cập trong bản thay đổi lần này là: A03 - Software Supply Chain Failures. A03 không chỉ là “thư viện bị lỗi” hay “component outdated” mà bao gồm toàn bộ chuỗi cung ứng phần mềm: mã nguồn (proprietary & OSS), dependency, quy trình build (CI/CD), artifacts (container/image, packages), hệ thống phân phối (registry, mirrors), và cả pipeline vận hành (GitHub Actions, runners, secrets).

Trên thực tế đã có 3 trường hợp liên quan tới Software Supply Chain Failures và để lại hậu quả vô cùng nghiêm trọng:
SolarWinds / Sunburst: backdoor được nhúng vào bản phát hành chính thức của Orion, dẫn tới tấn công vào hàng nghìn tổ chức. Hậu quả khôn lường đó là kẻ tấn công có thể truy cập hệ thống chính phủ, công ty lớn.
event-stream (npm): kẻ tấn công được chuyển quyền maintainer rồi thêm dependency độc hại (flatmap-stream) dẫn tới lây lan sang nhiều dự án.
Chiến dịch "Shai-Hulud" (2025, npm): chiến dịch worm-like nhắm vào npm packages, tự nhân rộng, cố gắng ăn cắp token/credentials trong CI để mở rộng ảnh hưởng.
Chúng ta cũng sẽ cùng phân tích một ví dụ như sau để hiểu rõ hơn về xu hướng này, một công ty phát triển ứng dụng thanh toán nội bộ, dùng Node.js với hơn 200 package npm. Trong đó có package phổ biến tên fast-logger – giúp ghi log hiệu năng cao. Tuy nhiên mỗi một lần merge code vào nhánh main thì lại xảy ra các vấn đề sau:
Không có bước kiểm tra signature hoặc hash của dependency.
Luôn tải “latest version” từ npm registry trong quá trình build (
npm install fast-logger).Không có SBOM hay cơ chế kiểm tra thay đổi maintainer.
Khi tài khoản maintainer của fast-logger bị lộ lọt từ một diễn đàn nào đó hoặc là bị Bruteforce tài khoản, thì kẻ tấn công sẽ phát hành một phiên bản 4.2.3 chứa dòng mã ẩn trong file postinstall.js như sau

Và đương nhiên khi Team DevOps thực hiện tải code xuống thì chuỗi lây nhiễm đã được thực thi và kẻ tấn công sẽ có được GITHUB_TOKEN. Từ đây chúng dễ dàng:
Push thêm mã độc vào một repo nội bộ (
finpay-utils).Tạo Pull Request giả mạo từ account hợp pháp.
Bên trên là những sự thay đổi đáng chú ý nhất của các xu hướng lần này, bên cạnh đó thì các hạng mục còn lại chỉ thay đổi thứ tự và mức độ nguy hiểm.
A01: Broken Access Control – Lỗi kiểm soát truy cập: Kẻ tấn công có thể truy cập vào dữ liệu, chức năng hoặc tài nguyên mà chúng không được phép, dẫn đến rò rỉ dữ liệu, chiếm quyền tài khoản hoặc kiểm soát toàn bộ hệ thống.
A02: Security Misconfiguration – Lỗi cấu hình bảo mật: Cấu hình sai (server, framework, container, cloud, header HTTP…) là nguyên nhân phổ biến nhất của tấn công hiện nay. Từ đó hacker có thể khai thác cổng mở, service test còn sót lại hoặc header yếu để tấn công.
A04: Cryptographic Failures – Lỗi trong mật mã: Thông tin nhạy cảm bị lộ hoặc giả mạo nếu sử dụng thuật toán yếu, khóa ngắn, hoặc lưu trữ dữ liệu chưa mã hóa.
A05: Injection – Lỗi chèn mã: Kẻ tấn công có thể chèn mã độc vào câu lệnh SQL, hệ thống shell, LDAP, NoSQL… để thực thi lệnh trái phép hoặc trích xuất dữ liệu.
A06: Insecure Design – Thiết kế không an toàn: Ứng dụng dù “code sạch” vẫn có thể bị tấn công nếu thiết kế tổng thể sai – ví dụ, quên xác thực lại ở API phụ, hoặc cho phép người dùng đoán URL để truy cập.
A07: Authentication Failures – Lỗi xác thực: Nếu xác thực yếu, hacker có thể chiếm quyền người dùng, bypass đăng nhập hoặc khai thác token để truy cập hệ thống.
A08: Software or Data Integrity Failures – Lỗi toàn vẹn dữ liệu/phần mềm: Phần mềm hoặc dữ liệu có thể bị sửa đổi, chèn mã độc trong quá trình cập nhật hoặc đồng bộ. Điều này ảnh hưởng trực tiếp đến tính tin cậy và an toàn của hệ thống.
A09: Logging & Alerting Failures – Lỗi ghi log và cảnh báo: Nếu hệ thống không log đúng hoặc không cảnh báo kịp thời, các cuộc tấn công có thể diễn ra trong im lặng mà không bị phát hiện.
Khuyến nghị
Sử dụng mật khẩu mạnh và khác nhau cho từng tài khoản
Tránh dùng mật khẩu trùng lặp.
Kết hợp chữ hoa, chữ thường, số và ký tự đặc biệt.
Cân nhắc password manager như 1Password, Bitwarden để quản lý.
Bật xác thực hai lớp (2FA/MFA) khi có thể
Giúp ngăn kẻ tấn công truy cập ngay cả khi mật khẩu bị lộ.
Sử dụng app như Google Authenticator, Authy hoặc key bảo mật (YubiKey).
Cẩn trọng khi tải phần mềm và ứng dụng
Chỉ tải từ nguồn chính thức (App Store, Google Play, website uy tín).
Kiểm tra chữ ký, đánh giá và review trước khi cài đặt.
Cập nhật phần mềm và hệ điều hành thường xuyên
Bản vá mới giúp khắc phục lỗ hổng bảo mật.
Kể cả trình duyệt, plugin, ứng dụng di động đều cần cập nhật.
Cẩn trọng với liên kết và tệp đính kèm
Không click vào link lạ, email giả mạo hoặc file tải về không rõ nguồn.
Kiểm tra URL trước khi đăng nhập hoặc nhập thông tin nhạy cảm.
Quản lý quyền ứng dụng
Không cấp quyền quá mức cho ứng dụng (ví dụ: quyền truy cập danh bạ, camera, vị trí nếu không cần thiết).
Kiểm tra và thu hồi quyền định kỳ.
Sao lưu dữ liệu cá nhân quan trọng
Giúp khôi phục khi xảy ra sự cố, ransomware hoặc lỗi phần mềm.
Sử dụng cả offline backup và cloud backup an toàn.
Giám sát hoạt động tài khoản
Theo dõi email, ngân hàng, mạng xã hội… để phát hiện hoạt động bất thường.
Kích hoạt cảnh báo login hoặc thông báo truy cập từ thiết bị lạ.
Nhận thức về bảo mật
Học cách nhận biết phishing, scam, hoặc website giả mạo.
Không chia sẻ thông tin nhạy cảm qua email, chat, hay mạng xã hội công khai.
Sử dụng trình duyệt và công cụ bảo mật
Bật HTTPS Everywhere hoặc chế độ bảo mật nâng cao trên trình duyệt.
Sử dụng plugin chặn script độc hại hoặc quảng cáo chứa malware.
Kết luận
Phiên bản 2025 của OWASP Top 10 thể hiện rõ: bảo mật ứng dụng không chỉ là viết mã đúng mà còn là quản lý môi trường, chuỗi cung ứng phần mềm, và cách ứng dụng hành xử khi có lỗi. Việc “fail safely”, “giám sát”, và “phòng thủ hệ thống” đã lên vị trí rất cao. Đối với các tổ chức muốn nâng cao posture AppSec, việc cập nhật theo danh sách này là bước cần thiết để chuẩn bị cho tương lai - nơi mà phần mềm ngày càng phức tạp, liên kết và dễ bị tấn công từ nhiều hướng hơn.






