Với sự phát triển chóng mặt của công nghệ, rủi ro về an ninh mạng cũng gia tăng lên đáng kể, việc bảo mật API đã trở thành một nhiệm vụ cấp bách. Nếu không được bảo vệ đúng cách, API có thể trở thành điểm yếu chí mạng, mở cửa cho các cuộc tấn công trên không gian số.
Bài viết này sẽ giúp bạn hiểu rõ tầm quan trọng của bảo mật API và bảo mật API key, đồng thời đề xuất những biện pháp cần thiết nhằm đảm bảo an toàn cho hệ thống và dữ liệu trong kỷ nguyên số hóa.
1. API là gì? Vì sao cần bảo mật API?
API (Application Programming Interface – giao diện lập trình ứng dụng) là những phương thức, giao thức kết nối giữa các thư viện và ứng dụng. API cho phép các ứng dụng khác nhau giao tiếp, chia sẻ dữ liệu và chức năng với nhau. Hiểu một cách đơn giản hơn, API là trung gian giao tiếp giữa hai ứng dụng.
Một số loại của API có thể kể đến như:
- Web API: là hệ thống API được sử dụng trong các hệ thống website. Hầu hết các website đều sử dụng đến Web API để cho phép bạn kết nối, lấy dữ liệu hoặc cập nhật cơ sở dữ liệu.
- API trên hệ điều hành: là hệ thống API mà hệ điều hành cung cấp để cho phép các ứng dụng phần mềm tương tác với các dịch vụ của hệ điều hành. API này cho phép các lập trình viên tạo ra các phần mềm ứng dụng có thể tương tác trực tiếp với hệ điều hành.
- API của thư viện phần mềm hay framework: là hệ thống API mà thư viện phần mềm hoặc framework cung cấp để các lập trình viên có thể sử dụng và tích hợp vào ứng dụng của họ. API này cho phép họ tận dụng các chức năng và dịch vụ thư viện hoặc framework cung cấp mà không cần phải tự viết lại tất cả từ đầu.
API thường là mục tiêu hấp dẫn cho tin tặc bởi khả năng truy cập vào các dữ liệu nhạy cảm như thông tin cá nhân, tài chính và dữ liệu doanh nghiệp. Hacker có thể thực hiện tấn công API để truy cập trái phép các dữ liệu nhạy cảm, sửa đổi dữ liệu, xâm phạm tính toàn vẹn của dữ liệu được gửi và nhận qua API. API cũng có thể trở thành mục tiêu của các cuộc tấn công từ chối dịch vụ (DoS), làm quá tải hệ thống và gây gián đoạn dịch vụ, gây ra thiệt hại nghiêm trọng đến uy tín của doanh nghiệp.
Ngoài ra, bảo mật API key cũng là một yếu tố then chốt để tránh những cuộc tấn công API không đáng có. API key là một chuỗi ký tự hoặc mã số được cung cấp cho các ứng dụng, dịch vụ hoặc người dùng để xác thực và quản lý việc truy cập vào các API. Nếu doanh nghiệp bảo mật API key không tốt và bị lộ lọt, hacker có thể lợi dụng nó để truy cập trái phép vào các dịch vụ hoặc tài nguyên, đánh cắp dữ liệu, lạm dụng tài nguyên của hệ thống.
Tháng 10 năm 2016, Uber, một công ty dịch vụ giao thông vận tải công nghệ của Mỹ, đã gặp phải sự cố bảo mật thông tin nghiêm trọng. Tin tặc đã tìm thấy thông tin đăng nhập AWS (Amazon Web Services) của Uber, gồm cả các API key, trong kho lưu trữ GitHub công khai được các kỹ sư Uber sử dụng. Từ đó, hacker đã có quyền truy cập vào một lượng lớn dữ liệu nhạy cảm được lưu trữ trên máy chủ của Uber, bao gồm thông tin cá nhân của 57 triệu người dùng Uber trên toàn thế giới như tên, địa chỉ email và số điện thoại. Ngoài ra, vụ tấn công còn làm lộ số giấy phép lái xe của khoảng 600.000 tài xế Uber. Dễ thấy, ngay cả những công ty lớn trên thế giới cũng mắc phải các lỗi trong việc bảo mật API key, dẫn đến những hậu quả nghiêm trọng về kinh tế cũng như danh tiếng của doanh nghiệp.
>>> Có thể bạn quan tâm: Tiềm ẩn nguy cơ an ninh mạng do API lưu hardcode
2. Top 10 lỗ hổng bảo mật API phổ biến theo chuẩn OWASP
OWASP (Open Web Application Security Project) là một tổ chức phi lợi nhuận chuyên cung cấp các tài nguyên và công cụ nhằm nâng cao nhận thức về an ninh mạng và bảo mật phần mềm cho các nhà phát triển, quản trị viên hệ thống, lập trình viên…
Năm 2023, OWASP đã thống kê và công bố top 10 lỗ hổng bảo mật API phổ biến dưới đây:
- Broken Object Level Authorization
Lỗi này xảy ra khi API không thực hiện kiểm tra quyền truy cập đúng cách, dẫn đến việc người dùng có thể truy cập dữ liệu của người khác thông qua các endpoint API.
- Broken Authentication
Đây là lỗi khi các cơ chế xác thực được triển khai không chính xác, cho phép kẻ tấn công giả mạo danh tính người dùng. Từ đó, tin tặc có thể lạm dụng tài khoản người dùng hoặc xâm phạm các dữ liệu nhạy cảm.
- Broken Object Property Level Authorization
Lỗi thiếu hoặc xác thực ủy quyền không đúng ở cấp thuộc tính đối tượng. Điều này dẫn đến việc lộ thông tin hoặc sửa đổi thông tin bởi kẻ tấn công.
- Unrestricted Resource Consumption
Đây là lỗi thiếu giới hạn tài nguyên dẫn đến việc sử dụng tài nguyên không kiểm soát. Lợi dụng lỗ hổng này, tin tặc có thể thực hiện tấn công DoS hệ thống.
- Broken Function Level Authorization
Lỗi xảy ra do thiếu kiểm tra quyền truy cập đầy đủ đối với các chức năng API, cho phép người dùng thực hiện các hành động vượt quá quyền hạn của họ.
- Unrestricted Access to Sensitive Business Flows
Lỗi không bảo mật quy trình nghiệp vụ nhạy cảm đúng cách. Kẻ tấn công có thể truy cập và thực hiện các quy trình nghiệp vụ quan trọng mà không cần xác thực.
- Server-Side Request Forgery
Lỗi giả mạo yêu cầu phía máy chủ (SSRF) có thể xảy ra khi API đang tìm nạp tài nguyên từ xa mà không xác thực URI do người dùng cung cấp. Điều này cho phép kẻ tấn công lạm dụng API để gửi các yêu cầu tới hệ thống, ngay cả khi hệ thống được bảo vệ bởi tường lửa hoặc VPN.
- Security Misconfiguration
Lỗi xảy ra do cấu hình bảo mật không đúng hoặc không đầy đủ. Kẻ tấn công có thể lợi dụng lỗ hổng này để tấn công vào hệ thống dưới nhiều hình thức khác nhau.
- Improper Inventory Management
Đây là lỗi quản lý sai các endpoint API. Điều này có thể dẫn đến việc bỏ sót hoặc bảo vệ không đúng cách các endpoint quan trọng.
- Unsafe Consumption of APIs
Lỗi bảo mật API của bên thứ ba yếu hoặc sử dụng API không tin cậy. Các nhà phát triển thường tin tưởng dữ liệu nhận được từ API của bên thứ ba hơn dữ liệu đầu vào của người dùng, từ đó chủ quan hơn trong việc áp dụng các tiêu chuẩn bảo mật. Để xâm phạm API, tin tặc sẽ tập trung tấn công các dịch vụ tích hợp của bên thứ ba thay vì cố gắng xâm phạm trực tiếp vào API mục tiêu.
>>> Xem thêm: Những xu hướng bảo vệ mật khẩu đáng chú ý năm 2023
3. Đâu là lời giải cho bài toán bảo mật API?
Bảo mật API là nhiệm vụ quan trọng của các doanh nghiệp. Để giữ cho API an toàn cũng như bảo mật API key không bị rò rỉ, bạn có thể áp dụng các cách thức sau:
Chủ động xác định lỗ hổng
Bằng cách chủ động xác định các lỗ hổng, bạn có thể xử lý các lỗi bảo mật tiềm ẩn trước khi chúng bị khai thác. Bạn có thể thực hiện đánh giá bảo mật toàn diện API của mình để tìm ra các lỗ hổng bảo mật đang tồn tại. Các bước đánh giá bảo mật toàn diện bao gồm:
- Đánh giá mã nguồn
- Kiểm thử thâm nhập (penetration testing)
- Dùng công cụ quét lỗ hổng
- Đánh giá lỗ hổng (vulnerability assessments)
Zero Trust
Đúng như tên gọi, mô hình bảo mật Zero trust (không tin tưởng) bao gồm việc không tin tưởng vào bất kỳ tương tác, yêu cầu hoặc nỗ lực truy cập nào trong mạng từ bất kỳ ai. Dễ hiểu hơn, thay vì tin tưởng rằng tất cả các kết nối đến từ bên trong mạng của bạn là đáng tin cậy thì độ tin cậy được đánh giá liên tục dựa trên các yếu tố như danh tính người dùng, tình trạng thiết bị và hoàn cảnh…
Mô hình Zero trust giúp bạn đảm bảo:
- API luôn xác thực người dùng và ứng dụng
- Người dùng chỉ có quyền kiểm soát truy cập vào các API cần thiết
- Lưu lượng mạng được giám sát chặt chẽ để phát hiện các bất thường
Sử dụng OAuth2 và OpenID Connect
Các tiêu chuẩn như OAuth2 và OpenID Connect (OIDC) cho phép ứng dụng truy cập tài nguyên mà không để lộ thông tin đăng nhập của người dùng. OAuth2 loại bỏ việc ứng dụng lưu trữ thông tin đăng nhập người dùng, giảm nguy cơ đánh cắp thông tin đăng nhập. Thay vào đó, chúng sử dụng mã thông báo truy cập, ít nhạy cảm hơn và có phạm vi giới hạn.Ví dụ khi đăng nhập vào tài khoản Locker Secret Manager, bạn có thể lựa chọn đăng nhập thông qua tài khoản Apple, Google, Facebook… thay vì nhập tài khoản và mật khẩu.
Sử dụng API gateway
Cách bảo mật API này sử dụng một thành phần trung gian đóng vai trò là điểm nhập cho các khách hàng bên ngoài (ví dụ: ứng dụng di động và ứng dụng web) để truy cập API của bạn. Thay vì truy cập trực tiếp từng API, các khách hàng gửi yêu cầu của họ đến API gateway.
Các gateway hoạt động như một lá chắn bảo vệ, giảm nguy cơ tấn công vào các dịch vụ phụ trợ. Bạn có thể tích hợp Apigee, Okta và OPA để thiết lập môi trường microservice.
Sử dụng các trình quản lý secrets
Các trình quản lý bí mật như Locker Secrets Manager là công cụ đắc lực giúp bạn đơn giản hóa việc lữu trữ, kiểm soát và bảo mật API key, SSH key hay mật khẩu CSDL. Trình quản lý bí mật Locker là giải pháp tối ưu để:
- Bảo mật lưu trữ secrets: Lưu trữ và quản lý secrets một cách an toàn.
- Quét và phát hiện lộ lọt secrets: Tự động quét mã nguồn để phát hiện các secrets bị lộ.
- Quản lý quyền truy cập: Kiểm soát quyền truy cập vào các secrets để ngăn chặn truy cập trái phép.
- Xoay vòng secrets: Thường xuyên thay đổi thông tin đăng nhập và API keys để giảm thiểu rủi ro.
>> Nếu quan tâm đến giải pháp bảo mật thông tin secrets của Locker, bạn có thể tìm hiểu thêm trong Tài liệu cài đặt của chúng tôi.