Trong thời đại 4.0 hiện nay, API là một giao diện ứng dụng đang phát triển mạnh mẽ và được áp dụng rộng rãi trong lĩnh vực công nghệ thông tin. Bên cạnh những tính ứng dụng của nó thì đi theo đó lại tiềm ẩn những rủi ro không lường trước được. BAC sẽ cùng bạn tìm hiểu những kiến thức rõ hơn về API nói chung và những rủi ro đến từ Rogue APIs và Zombie APIs nhé!
1. API là gì?
API viết tắt của cụm từ Application Programming Interface, ta có thể hiểu theo nghĩa tiếng Việt là giao diện lập trình ứng dụng. API là một phần mềm trung gian cho phép giao tiếp giữa những hệ thống hoặc hai ứng dụng khác với nhau.
- Ví dụ thực tế của API: Khi bạn muốn đặt lịch xem phim nhưng chẳng muốn đặt trên một website của 1 rạp nào cụ thể như: CGV, BHD,Lotte,...mà muốn đặt trên một app có đầy đủ các thông tin và lịch chiếu phim của tất cả các rạp để tham khảo về giá vé, giờ xem, chỗ ngồi,...tiêu biểu là ứng dụng ví điện tử MoMo. Trong trường hợp này, dịch vụ đặt vé xem phim của MoMo sẽ tương tác API của các rạp chiếu phim và yêu cầu lấy thông tin từ cơ sở dữ liệu của rạp chiếu phim. Sau đó hệ thống của các rạp sẽ xem xét duyệt cho MoMo và hiển thị cho bạn những thông tin cập nhật mới nhất trên app MoMo.
2. Ưu điểm của API
- Kết nối mọi lúc mọi nơi nhờ vào Internet và có mã nguồn mở.
- Giao tiếp API là hai chiều và phải được xác nhận trong các giao dịch nên thông tin rất đáng tin cậy.
- Cung cấp các trải nghiệm thân thiện với người dùng.
- Khi các nhà pháp triển tìm thấy được những cách sử dụng mới thì API trao đổi để cung cấp các giải pháp phát triển.
- So sánh với WCF thì cấu hình API đơn giản hơn.
- Hỗ trợ chức năng RESful một cách đầy đủ.
- Hỗ trợ đầy đủ các thành phần MWC như: routing, controller, action result, filter, model binder, IoC container, dependency injection,unit test.
- Khả năng trình diễn cao.
3. Nhược điểm của API
- Tốn nhiều chi phí phát triển, vận hành, chỉnh sửa.
- Đòi hỏi kiến thức chuyên sâu.
- Có thể gặp vấn đề bảo mật khi bị tấn công hệ thống.
4. Rogue APIs với Zombie APIs
Khi bạn đã hiểu rõ về API thì sẽ xuất hiện 2 loại API gây hại là: Rogue APIs và Zombie APIs thường tồn tại trong mọi hệ thống của mọi tổ chức. Rougue API một API không được tổ chức ủy quyền. API Zombie là một API được ủy quyền nhưng không còn được sử dụng.
Mặc dù cả hai loại API đều có thể gây ra những vấn đề về bảo mật và những vấn đề khác, nhưng các Rogue API thật sự nguy hiểm vì chúng có thể bị những kẻ gian lợi dụng để đánh cắp dữ liệu hoặc giành quyền truy cập vào hệ thống của tổ chức. Ở ATG, đội vận hành và bảo mật cần thường xuyên phải đảm bảo theo dõi tất cả các API đang được sử dụng để xác định và giảm thiểu rủi ro do các Rogue API và Zombie API có thể gây ra.
4.1 Rogue APIs thực chất là gì?
Rogue API là một API không được ủy quyền hoặc phê duyệt bởi công ty sở hữu dữ liệu hoặc nội dung mà API đó cung cấp quyền truy cập không được ủy quyền hoặc phê duyệt.
- Ví dụ: Một Rogue API có thể cung cấp quyền truy cập trái phép vào dữ liệu khách hàng từ hệ thống CRM. Việc sử dụng Rogue API có thể cho phép mọi người lấy dữ liệu khách hàng từ hệ thống CRM mà không được phép hoặc họ có thể vượt qua các biện pháp kiểm soát bảo mật trên một trang web.
4.2 Zombie APIs là gì?
Thực tế cho thấy thì có nhiều loại Zombie API khác nhau, nhưng tất cả chúng đều có chung một đặc điểm: chúng không còn được duy trì hoặc hỗ trợ bởi chính công ty, tổ chức sở hữu, nhà cung cấp ban đầu. Do đó, các API này thường không đáng tin cậy, lỗi thời và khó sử dụng. Dễ hình dung nó là các phiên bản cũ của các API mà không được gỡ bỏ khỏi hệ thống.
Một số ví dụ điển hình về Zombie APIs:
- API Google Maps đã chính thức ngừng hoạt động vào ngày 3 tháng 3 năm 2019. Tuy nhiên, một số nhà phát triển đã có thể duy trì hoạt động của API này bằng cách đảm bảo không làm break các hệ thống legacy khác.
- API thời tiết của Yahoo! đã ngừng hoạt động vào ngày 3 tháng 1 năm 2019. Tuy nhiên, có một số API thời tiết của Yahoo! đã được tạo ra bởi các nhà phát triển bên thứ 3.
- API Twitter v1.0 đã chính thức ngưng hoạt động vào ngày 11 tháng 6 năm 2013. Tuy nhiên, có một số API Twitter không chính thức đã được tạo ra bởi các nhà phát triển bên thứ 3.
4.3 Sự khác biệt chính giữa Rogue APIs và Zombie APIs
- Rogue API thường được tạo với mục đích xấu, trong khi Zombie APIs thì không.
- Rogue API thường được tạo mà không có sự cho phép của công ty sở hữu dữ liêu, trong khi Zombie API được tạo với sự cho phép của công ty nhưng không còn được hỗ trợ.
- Cuối cùng, các Rogue API thường không có bất kỳ tài liệu nào (có thể swagger), trong khi các API Zombie thì có.
4.4 Rogue API với Zombie API cái nào nguy hiểm hơn?
Nhìn chung, Rogue API nguy hiểm hơn Zombie API vì chúng được tạo ra với mục đích gây hại. Tuy nhiên, Zombie API vẫn có thể nguy hiểm vì chúng không còn được công ty hỗ trợ và có thể chứa các lỗ hổng bảo mật.
4.5 Làm cách nào để phát hiện các Rogue API?
Các API vốn không có tài liệu mô tả, nếu đội pentest thông qua hành động gửi/nhận đến các APIs này để đoán được hành vi cũng như tính logic của nó mà không cần có document thì đây có thể là một rogue API.
Một cách là tìm một API không được ghi nhận công khai và cố gắng đoán định dạng của các yêu cầu và phản hồi, bạn có thể sử dụng một công cụ như fuzzer đẻ thực hiện các yêu cầu ngẫu nhiên có thể khiến API thực hiện điều gì đó khác đi.
Một cách khác là khai thác các Rogue API là tìm một APU có tài liệu mô tả đầy đủ nhưng không có đủ các biện pháp bảo mật thích hợp. Ví dụ: API có thể không yêu cầu xác thực hoặc API có thể không kiểm tra chính xác đầu vào hợp lệ. Bằng cách tận dụng những sai sót này, hacker có thể lấy được những dữ liệu qua trọng hoặc làm những việc không nên.
Các công ty cần nhận thức được các Rogue API và thự hiện các bước để bảo vệ dữ liệu của họ. Họ nên cân nhắc sử dụng các giải pháp quản lý API có thể giúp ngăn chặn việc tạo ra các Rogue API. Họ cũng nên theo dõi các API của mình để phát hiện hoạt động đáng ngờ và tìm giải pháp xử lý nếu họ cho rằng một API trái phép đang được sử dụng. Đây là những gì họ nên làm.
4.6 Còn đối với các Zombie API thì sao?
Một trong những cách phổ biến nhất mà zombie API có thể bị khai thác là mạo danh người dùng khác. Điều này có thể được thực hiện bằng cách đánh cắp thông tin đăng nhập của người dùng hoặc bằng cách sử dụng bot để tự động điền vào biểu mẫu đăng nhập trên API. Sau khi kẻ tấn công có quyền truy cập vào tài khoản của nạn nhân, họ có thể làm bất cứ điều gì mà người dùng có thể làm, bao gồm truy cập dữ liệu nhạy cảm, thực hiện các thay đổi đối với tài khoản và thậm chí xóa tài khoản hoàn toàn.
Một cách phổ biến khác để khai thác API zombie là thông qua các cuộc tấn công bằng hình thức injection. Đây là nơi kẻ tấn công cố gắng đưa mã độc hại vào API để thực thi nó trên máy chủ. Điều này có thể được thực hiện thông qua một số phương pháp, bao gồm SQL injection và cross -site scripting (XSS).
Một trong những cách nghiêm trọng nhất mà API zombie có thể bị khai thác là sử dụng nó để thực hiện các cuộc tấn công từ chối dịch vụ (DDoS) phân tán. Điều này có thể được thực hiện bằng cách thực hiện một số lượng lớn yêu cầu tới API hoặc bằng cách sử dụng mạng botnet để tạo lưu lượng truy cập. Các cuộc tấn công DDoS có thể gây ra rất nhiều vấn đề và thậm chí chúng có thể gây mất dữ liệu quan trọng, vì vậy hãy cẩn thận.
Zombie API là một cách tuyệt vời để thu thập dữ liệu về người dùng và hành vi của họ. Chúng cũng có thể được sử dụng để tiêm mã độc xâm nhập vào các trang web hoặc ứng dụng.
Các tổ chức sở hữu API zombie cần nhận thức và lường trước được những rủi ro mà họ gặp phải và thực hiện các bước để bảo mật API của họ. Điều này bao gồm các bước: triển khai các kiểm soát xác thực và ủy quyền, triển khai xác thực đầu vào và đảm bảo rằng API luôn được cập nhật với các phiên bản bảo mật mới nhất.
5. Phần Kết Luận
Thực chất chúng ta sẽ không biết API nào có tính nguy hiểm hơn nhưng xét về bản chất thì API Rogue và API Zombie đều nguy hiểm. Độ nguy hiểm của nó phụ thuộc vào tình huống cụ thể và cách sử dụng API. Rogue API có thể được sử dụng để truy cập dữ liệu hoặc chức năng mật mà người dùng trái phép không thể truy cập được. Điều này có thể dẫn đến vi phạm an ninh và mất dữ liệu. Zombie API có thể không gây ra rủi ro bảo mật nhưng nó vẫn có thể gây ra sự cố nếu nó được sử dụng để truy cập dữ liệu trái phép hoặc các chức năng không còn khả dụng. Điều này có thể dẫn đến lỗi và kết quả không mong đợi.
Có nhiều giảm pháp giảm thiểu tốt, một trong số đó là bảo mật BLST (Business Logic Security Testing) có thể giúp bạn tìm Zombie API bằng cách quét những lỗ hổng và hành vi nguy hiểm tiềm ẩn. Ngoài ra, BLST có thể giúp xác định và giám sát các tương tác API để bảo vệ chống truy cập và giả mạo trái phép.
Nhu cầu đào tạo doanh nghiệp
CÁC KHOÁ HỌC BUSINESS ANALYST BACs.VN DÀNH CHO BẠN
Khoá học Online:
Khoá học Offline:
Tại Tp.HCM:
Tại Hà Nội:
Tham khảo lịch khai giảng TẤT CẢ các khóa học mới nhất
Ban biên tập nội dung - BAC