Winston is a highly experienced digital marketing professional, specializing in Cybersecurity, IT services, and Software as a Service (SaaS).
Hardcode các dữ liệu nhạy cảm (secrets) như API key trong ứng dụng di động là thói quen của nhiều lập trình viên. Tuy nhiên, đây cũng chính là nguyên nhân khiến hacker dễ dàng truy cập trái phép vào hệ thống backend và hệ thống cloud của bạn. Một nghiên cứu vào năm 2022 trên 1800 ứng dụng di động được khảo sát của Symantec đã phát hiện:
- 77% có chứa key AWS hợp lệ để truy cập vào private cloud.
- 47% trong số đó cũng có chứa token AWS hợp lệ, cấp quyền truy cập vào nhiều tệp riêng tư trên Amazon S3. Ngoài ra, hơn một nửa số ứng dụng (53%) đã sử dụng cùng một token giống nhau, từ đó gây ra hiện tượng lộ lọt dữ liệu hàng loạt.
Lạm dụng khóa API – mối đe dọa tiềm tàng
Nghiên cứu của Symantec cho thấy 53% ứng dụng đang sử dụng cùng token giống nhau, mặc dù chúng đến từ các công ty và nhà phát triển khác nhau.
Tại sao lại xảy ra hiện tượng này?
Các token này thường đến từ các thư viện dùng chung, mô-đun của bên thứ ba và các bit khác được sử dụng để dựng app. Hãy tưởng tượng các nhà phát triển copy – paste code từ StackOverflow hoặc dán các ví dụ từ tài liệu API mà không kiểm tra chi tiết trong code đó. Dù được hướng dẫn cụ thể nhưng các dev thường bỏ qua, copy-paste một cách mù quáng và vô tình tạo ra cơ hội cho hacker tấn công.
Các API publisher luôn cố gắng giúp các dev dễ dàng sử dụng dịch vụ của họ, nhưng các dev cũng cần hạn chế chia sẻ các công cụ xác thực như khóa API.
Hacker khai thác các lỗ hổng này như thế nào?
Hacker có thể khai thác triệt để nếu bạn thiết lập API key cẩu thả và log yếu. Tương tự như việc bạn để chìa khóa nhà ở nơi mà bất cứ ai cũng có thể lấy được, khi token xác thực được lưu trên những nền tảng như GitHub, bất cứ ai cũng có thể tìm thấy và sử dụng chúng.
Hacker có thể sử dụng các dữ liệu này để xâm nhập vào các endpoint API, lưu trữ đám mây và nhiều vị trí nhạy cảm khác và thực hiện các cuộc tấn công tinh vi mà không bị phát hiện. Ngoài ra, nếu không có thông báo lỗi rõ ràng thì bạn cũng rất khó để nhận ra hệ thống đang bị tấn công.
Lộ dữ liệu nhạy cảm do sử dụng các thư viện chung
Thông tin nhạy cảm, như dữ liệu sinh trắc học, đã bị rò rỉ cho một số lượng lớn người dùng ngân hàng do việc sử dụng rộng rãi SDK nhận dạng kỹ thuật số của bên thứ ba.
Điều này cho thấy tầm quan trọng của việc các dev phải cẩn thận với các công cụ họ sử dụng và cách họ xử lý dữ liệu nhạy cảm. Tấn công qua các công cụ của bên thứ 3 để chiếm API cũng là một phương thức rất phổ biến đối với các hackers.
Các trường hợp bị tấn công API trong thực tế
1. Tấn công vét cạn tài nguyên (resource exhaustion) và tấn công từ chối dịch vụ phân tán (DDoS)
Hãy tưởng tượng một API không chỉ di chuyển dữ liệu, nó giống như công cụ hỗ trợ các tác vụ nặng trên máy chủ, tương tự như cách các ứng dụng di động gửi thông tin lên đám mây.
Lợi dụng điều này, hacker có thể gửi nhiều yêu cầu tạo báo cáo tức thì để gây quá tải hệ thống.
Ngoài ra, hãy kiểm tra cách API xử lý các khóa xác thực. Nếu không cẩn thận, hoạt động này có thể tiêu tốn hết tài nguyên của trang web.
Case study
Trước đây, API Google Maps đã bị khai thác do quản lý tài sản kém. Khóa API bị rò rỉ cho phép sử dụng trái phép dữ liệu bản đồ trên các trang web bên ngoài mà không cần tài khoản Google. Điều này nhấn mạnh việc Google từng bỏ bê các bộ phận hệ thống cũ. Cuối cùng, chủ sở hữu khóa đã bị đình chỉ vì sử dụng quá hạn ngạch của họ, cắt quyền truy cập của người dùng, gây ra gián đoạn dịch vụ nghiêm trọng.
2. Bội chi ngân sách và thiếu cơ chế quản lý chi phí cloud
Hậu quả sau khi bị vét cạn tài nguyên cloud không chỉ làm ảnh hưởng tới performance của hệ thống mà còn để lại các hậu quả tài chính. Nghiêm trọng hơn, hacker còn sao chép khóa và dùng trên nền tảng khác mà bạn không thể kiểm soát được. Điều này cho thấy việc quản lý lỗ hổng bảo mật API và theo dõi chi phí đám mây là vấn đề không thể xem nhẹ. Dù đây có thể không phải mục tiêu tấn công chính, nhưng vẫn cần lưu ý, đặc biệt trong quá trình kiểm tra bảo mật.
Làm sao để phát hiện kịp thời và loại bỏ API key được hardcode?
Các công cụ như Locker Secrets Manager có thể hỗ trợ nhà phát triển phát hiện khóa API bị rò rỉ, xác định khóa API được lưu trữ ở định dạng hardcode và xóa bỏ chúng. Ngoài ra, các công cụ này còn cung cấp khả năng lưu trữ an toàn và thuận tiện cho các khóa API cũng như các loại secrets khác.
1. Giải pháp phát hiện và xóa bỏ key API được hardcode
- Kiểm soát truy cập và lưu trữ an toàn: Các trình quản lý secrets như Locker mã hóa và lưu trữ khóa API cũng như các dữ liệu nhạy cảm một cách an toàn, kiểm soát chặt chẽ quyền truy cập thông qua cơ chế phân quyền và xác thực mạnh mẽ. Từ đó ngăn người dùng không được phân quyền truy cập hoặc thay đổi các key, nhằm giảm nguy cơ truy cập trái phép vào hệ thống phụ trợ và dịch vụ đám mây.
- Xoay vòng bí mật động: Các công cụ secrets mật thường hỗ trợ xoay vòng secrets động, tự động làm mới các khóa API định kỳ hoặc khi nghi ngờ có vi phạm hoặc rò rỉ xảy ra. Việc này sẽ giới hạn cửa sổ hiển thị của các key bị xâm phạm vì công cụ này sẽ tự động tạo và triển khai các khóa mới.
- Quản lý lịch sử và phiên bản của secrets: Quản trị viên có thể theo dõi các thay đổi đối với secrets theo thời gian, bao gồm cả quyền truy cập và sửa đổi, bằng các công cụ quản lý secrets. Từ đó tracking được khả năng sử dụng bí mật để xác định các sự cố bảo mật hoặc vi phạm tuân thủ.
2. Giải pháp lưu trữ API key tối ưu
- Inject các secrets trong ứng dụng: Các công cụ quản lý secrets hỗ trợ tích hợp với quy trình deploy ứng dụng, cho phép các dev đưa secrets vào ứng dụng một cách an toàn trong khi chạy. Điều này ngăn không cho thông tin nhạy cảm như khóa API bị hardcode vào source code hoặc tệp cấu hình của ứng dụng, giảm thiểu nguy cơ bị lộ lọt dữ liệu.
- Kiểm soát truy cập và phân quyền (RBAC): Trình quản lý secrets hỗ trợ kiểm soát truy cập dựa trên cơ chế phân quyền, cho phép quản trị viên xác định chính sách truy cập chi tiết dựa trên vai trò và trách nhiệm của từng người dùng, từ đó đảm bảo rằng chỉ cá nhân có quyền mới truy cập được vào secrets.
- Thu hồi secrets: Ngoài tính năng rotation, Trình quản lý secrets sẽ cho phép bạn xử lý các secrets cần thu hồi thủ công hoặc bị hết hạn nhằm vô hiệu hóa các key bị xâm phạm hoặc hết hạn.
- Tuân thủ quy định bảo mật: Công cụ quản lý secrets cũng bao gồm các tính năng quản lý tuân thủ, giúp các tổ chức thực thi chính sách bảo mật và đáp ứng các quy định như PCI DSS, HIPAA, GDPR, v.v. để đảm bảo rằng dữ liệu nhạy cảm được xử lý phù hợp với tiêu chuẩn ngành và nghĩa vụ pháp lý.
Hãy khám phá Locker Secrets Manager để lưu trữ khóa API an toàn và tiện lợi hơn!