Giới thiệu
Trong thế giới kết nối ngày nay, APIs (Application Programming Interfaces) là xương sống của giao tiếp kỹ thuật số, cho phép các hệ thống phần mềm tương tác liền mạch với nhau. Từ ứng dụng di động đến dịch vụ đám mây, API tạo điều kiện cho việc trao đổi dữ liệu và dịch vụ một cách nhanh chóng. Tuy nhiên, khi API ngày càng trở nên quan trọng, thì các rủi ro liên quan cũng gia tăng. Tần suất xuất hiện các vụ vi phạm bảo mật liên quan đến API càng nhấn mạnh sự cần thiết của các biện pháp bảo mật vững chắc.
API là gì?
API cho phép các thành phần phần mềm khác nhau giao tiếp với nhau, đóng vai trò như cầu nối giữa các hệ thống. Chúng tạo điều kiện cho việc xây dựng các ứng dụng phức tạp thông qua việc cung cấp một tập hợp các giao thức và công cụ để phát triển phần mềm. API rất quan trọng trong hoạt động của dịch vụ web, ứng dụng di động, thiết bị IoT, và nhiều hơn nữa. Tuy nhiên, việc sử dụng rộng rãi cũng khiến API trở thành mục tiêu lý tưởng của các cuộc tấn công.
Những lỗ hổng API phổ biến
Theo OWASP API Security Top 10, những lỗ hổng thường gặp nhất bao gồm:
- Broken Object Level Authorization (BOLA) – xảy ra khi API không kiểm soát truy cập đúng cách, cho phép kẻ tấn công truy cập hoặc sửa đổi dữ liệu không được phép.
- Broken Authentication – khi cơ chế xác thực yếu, dẫn đến truy cập trái phép
- Excessive Data Exposure – API thường hiển thị nhiều dữ liệu hơn cần thiết, khiến thông tin nhạy cảm bị lộ.
- Security Misconfigurations – cấu hình mặc định, không đầy đủ hoặc sai, khiến API dễ bị tấn công.
- Injection Attacks – dữ liệu độc hại được gửi đến API, dẫn đến các khai thác như SQL injection, command injection, v.v.
- Server-Side Request Forgery (SSRF) – khi kẻ tấn công thao túng API để yêu cầu phía server gửi request đến các đích không mong muốn
Đi sâu hơn: BOLA và BFLA
- Broken Object Level Authorization (BOLA): là lỗ hổng nghiêm trọng trong bảo mật API. Khi API không kiểm tra đúng quyền truy cập, kẻ tấn công có thể truy cập hoặc thao tác dữ liệu không được phép. Chẳng hạn, chỉ cần thay đổi một ID trong yêu cầu API để truy cập dữ liệu của người khác là dấu hiệu của BOLA.
- Broken Function Level Authorization (BFLA): khác với BOLA (giới hạn ở truy cập dữ liệu), BFLA liên quan đến quyền thực thi chức năng cao hơn. Lỗ hổng này cho phép người dùng không được phép thực hiện các thao tác nhạy cảm.
Tài liệu và các định nghĩa API
Hiểu rõ các công cụ và tiêu chuẩn dùng để định nghĩa, tài liệu hóa và tương tác với API là rất quan trọng — tuy nhiên, để tài liệu API “mở”, công khai mà không có biện pháp kiểm soát phù hợp là rủi ro lớn. Dưới đây là một số tiêu chuẩn và công cụ phổ biến, thường được dùng để tự động tạo tài liệu API:
- Swagger: khung framework để thiết kế, xây dựng và tài liệu hóa RESTful API. Định nghĩa API theo định dạng tiêu chuẩn, dễ tạo tài liệu tương tác và thư viện khách hàng; giao diện thân thiện giúp kiểm thử API dễ dàng.
- OpenAPI Specification (OAS): tiêu chuẩn định nghĩa RESTful API, mô tả endpoint, định dạng request/response, phương thức xác thực. OpenAPI mở rộng Swagger và là chuẩn ngành phổ biến, đảm bảo tính nhất quán và rõ ràng.
- WSDL (Web Services Description Language): ngôn ngữ XML dùng để mô tả dịch vụ web, đặc biệt với SOAP. Định nghĩa các thao tác cung cấp, thông điệp chấp nhận/trả về và binding. Mặc dù thường liên quan đến dịch vụ doanh nghiệp truyền thống, WSDL vẫn có vai trò trong môi trường enterprise.
- ASP.NET Web API Help Page: tính năng tích hợp trong ASP.NET giúp tự động tạo trang trợ giúp cho API, cung cấp thông tin chi tiết về endpoint, mô tả tham số và mẫu response.
- GraphQL Introspection: cho phép client truy vấn schema của GraphQL API — lấy thông tin chi tiết về type, field và operation trực tiếp từ API, giúp truy vấn động và hiểu rõ khả năng API.
Rủi ro khi để tài liệu API bị lộ
Dù tài liệu API rất cần thiết cho developer, nếu để lộ công khai mà không kiểm soát, hệ thống có thể đối mặt với nhiều rủi ro như Disclosure thông tin, Unauthorized Access, Injection, v.v.
Case Study: Các lỗ hổng được ULTRA RED phát hiện tự động:
- CVE-2023-39375: lỗ hổng BOLA, kiểm tra quyền không đúng cho phép attacker chưa xác thực tạo user admin mới.
- CVE-2023-39376: lỗ hổng BOLA khác, cho phép attacker chưa xác thực vô hiệu hoá các biện pháp bảo mật của ứng dụng.
- CVE-2024-41702: lỗ hổng SQL Injection tại endpoint login API, JSON object injection khiến dữ liệu chưa được sanitize được truyền vào truy vấn SQL.
- PII Exposure: lỗ hổng BFLA cho phép attacker truy cập tài nguyên của người dùng khác — cụ thể là nhân viên của một công ty lớn — và lộ PII nhạy cảm, bao gồm PHI (Protected Health Information).
Vector – SSRF (Server-Side Request Forgery)
- Tóm tắt: SSRF có thể đặc biệt nguy hiểm nếu là SSRF phản chiếu. Trong trường hợp này, có thể sử dụng SSRF để truy cập metadata từ cloud và xâm nhập môi trường đám mây của khách hàng.
- Phát hiện: hệ thống tự động phân tích API Definitions và quét các endpoint để phát hiện lỗ hổng. Không may cho khách hàng, một request API đã tiết lộ lỗ hổng nghiêm trọng.
- Lỗ hổng cho phép attacker gửi email đến người dùng khác, từ máy chủ mail đáng tin cậy của vendor API. Thử nghiệm với parameter hỗ trợ SSRF đã thành công.
- Thậm chí, attacker có thể đính kèm file trong mỗi email bằng cách gửi danh sách URL. Endpoint /api/Email/Send Email có các tham số Address, Emails, CCs, BCCs. Trong thử nghiệm, sử dụng domain do Interactsh sinh tạo địa chỉ giả.
- Họ test các endpoint thú vị như AWS metadata (http://169.254.169.254/latest/meta-data) làm attachment — request thành công, trả về isSuccess = true.
- Sử dụng Interactsh kiểm tra file được gửi, phát hiện tương tác SMTP.
- SSRF cấp hai (second-order SSRF) được tìm thấy! Trong verbose mode, thấy nội dung được mã hoá base64.
- Giải mã cho thấy truy cập thành công metadata của instance.
Cách bảo mật API
Để giảm thiểu các lỗ hổng này, sau đây là một số best practices cần áp dụng:
- Triển khai cơ chế authentication và authorization mạnh mẽ
- Tuân thủ nguyên tắc least privilege để giới hạn truy cập
- Validate và sanitize all inputs để ngăn injection attack
- Sử dụng rate limiting và monitoring để phát hiện hoạt động bất thường
- Cập nhật thường xuyên và patch API để xử lý lỗ hổng đã biết
- Triển khai công cụ scan (như ULTRA RED) để tự động phát hiện lỗ hổng mới và cũ.
Kết luận
Khi API ngày càng mở rộng và là trung tâm kết nối kỹ thuật số, bảo mật API trở nên thiết yếu hơn bao giờ hết. Bằng cách hiểu rõ các lỗ hổng phổ biến theo OWASP API Top 10 và áp dụng các biện pháp bảo mật mạnh mẽ, tổ chức có thể bảo vệ tài sản số và đảm bảo API luôn an toàn.
Thông tin hãng cung cấp giải pháp:
Unitas là nhà phân phối ủy quyền tại Việt Nam của các hãng công nghệ lớn của thế giới: Commvault, ExaGrid, VergeIO, Nexsan, DDN, Tintri, MinIO, LogicMonitor, Netgain, Kela, UltraRed, Sling, Quokka, Safous, Hackuity, Cyabra, Cymetrics, ThreatDown, F-Secure, OutSystems, Micas Networks ….
Liên hệ Unitas ngay hôm nay để được tư vấn chi tiết!