5 đối sách để bảo mật API

Đối với các website ngày nay, các dữ liệu khổng lồ được truy cập thông qua API. Trên thực tế, các chương trình web.com hiện có hơn 10.000 API được công khai.

Vai trò nền tảng mà các API hiện đang được sử dụng trong cơ sở hạ tầng hiện nay, việc bảo mật cho API là vô cùng quan trọng. Trong bài viết này, chúng tôi sẽ đề cập đến năm phương pháp tốt nhất mà các tổ chức có thể làm theo để giúp bảo mật API.

Xác thực và ủy quyền cho bảo mật API – Authentication and Authorization for API Security

Xác thực và ủy quyền là dòng bảo vệ đầu tiên cho API. Xác thực đề cập đến việc xác thực danh tính người dùng trong khi ủy quyền xảy ra, sau khi danh tính được xác thực bằng hệ thống. Ủy quyền yêu cầu xác định cấp độ truy cập và truy cập cho dữ liệu, tệp, thông tin,…

Xác thực và ủy quyền có ý nghĩa cụ thể trong ngữ cảnh bảo mật API có nghĩa là API nên có phương tiện xác định người dùng hoặc ứng dụng và sau đó xác định xem người dùng có mức truy cập phù hợp để gọi điểm cuối hay không. Các khóa API được thêm vào mọi yêu cầu nên được sử dụng để xác định và ủy quyền cho người dùng.

Mã hóa APIAPI Encryption

Dữ liệu API phải được bảo vệ khỏi xem lén (và truy cập trái phép khác) thông qua mã hóa. Tùy thuộc vào giao thức API cụ thể mà bạn làm việc với và cách thức triển khai, bạn có thể sử dụng một trong các phương pháp sau để mã hóa API:

HTTP: Nên được thực hiện để bảo vệ yêu cầu chuyển tiếp, để các tin nhắn được bảo mật và được mã hóa bằng TLS.

JSON WEB TOKEN: Đối với dữ liệu phản hồi JSON, mã thông báo web JSON (JWT) là một tiêu chuẩn mở xác định các cách để truyền thông tin một cách an toàn dưới dạng đối tượng JSON giữa các bên. JWT có thể được ký bằng cách sử dụng một bí mật (với thuật toán HMAC) hoặc cặp khóa công khai / riêng bằng RSA.

PASSWORD HASH: Điều này là cần thiết để bảo vệ hệ thống (hoặc giảm thiểu thiệt hại), ngay cả khi có sự thỏa hiệp do nỗ lực hack. Các thuật toán băm bao gồm MD5, SHA, PBKDF2,…

Tấn công vào các điểm cuối API là một phương thức phổ biến để các ứng dụng hài hòa thông qua API. Việc bảo vệ chống lại kiểu tấn công này là triển khai bảo mật ở cấp ứng dụng, sử dụng các kỹ thuật như sau:

  • Ross-site scripting – Các tập lệnh độc hại được đẩy vào một trong các tham số yêu cầu.
  • Code injection – Nạp code vào các dịch vụ, chẳng hạn như SQL (SQL injection) hoặc XQuery, để mở giao diện cho người dùng kiểm soát.
  • Business logic  – Cho phép kẻ tấn công phá vỡ các quy tắc kinh doanh
  • Parameter pollution attacks – Khai thác dữ liệu được gửi trong yêu cầu API bằng cách sửa đổi các tham số của yêu cầu API
  • Input Validation – Áp dụng xác thực đầu vào nghiêm ngặt của người dùng, bao gồm:

– Hạn chế các giá trị tham số cho danh sách trắng các giá trị dự kiến, nếu có thể.

               – Tạo điều kiện cho danh sách trắng (gõ kiểu giá trị lớn trong đầu vào)

              – Xác thực dữ liệu cấu trúc được đăng dựa trên ngôn ngữ lược đồ chính thức để hạn chế nội dung và cấu trúc.

Đây không phải là một danh sách đầy đủ; bất kỳ biện pháp bảo vệ nào bạn có thể thực hiện trong ứng dụng để hạn chế quyền truy cập trái phép vào các điểm cuối API sẽ giúp cải thiện bảo mật API tổng thể của bạn.

Danh sách trắng là một cách tiếp cận mạnh mẽ để hạn chế quyền truy cập vào tài nguyên theo mặc định và chỉ mở quyền truy cập cho người dùng đáng tin cậy cụ thể.

Trong danh sách trắng API,  doanh nghiệp nội bộ APIs nên triển khai lưu lượng API ở cấp địa chỉ IP và phải có một danh sách các thiết bị, máy chủ, mạng và địa chỉ IP khách hàng được chấp nhận. Tùy thuộc vào phạm vi của mạng, danh sách này sẽ có kích thước khác nhau.

Cuối cùng nhưng không kém phần quan trọng, API phải luôn được ghi lại. Nhật ký có thể giúp bạn giải quyết các vấn đề bảo mật API, cũng như giám sát hoạt động và khám phá bất kỳ mô hình hoặc việc sử dụng quá mức nào có thể báo hiệu một nỗ lực xâm nhập hoặc xâm nhập.

Khi định cấu hình nhật ký API, đó là một cách thực hành tốt để trả về các đối tượng lỗi đơn giản với mã trạng thái HTTP thông thường và để giữ các thông báo lỗi bắt buộc ở mức tối thiểu. Điều này sẽ cải thiện xử lý lỗi và bảo vệ chi tiết triển khai API khỏi kẻ tấn công.

Kết luận

Các phương pháp bảo mật API được mô tả ở trên sẽ hữu ích nhiều cho việc giữ các API của bạn và các tài nguyên mà chúng kiểm soát an toàn. Tuy nhiên, đây hoàn toàn không phải là một hướng dẫn đầy đủ về bảo mật API. Vì là tài nguyên bảo mật API cho mục đích chung, dự án bảo mật API OWASP là phiên bản tốt nhất.