Cũng như nhiều vấn đề liên quan đến bảo mật, đó là câu trả lời tinh tế - kolossus cung cấp một cái nhìn tổng quan tốt.
Điều này giúp hiểu cách kẻ tấn công có thể làm ảnh hưởng đến API của bạn và có bao nhiêu vi phạm bảo mật xảy ra.
Hầu hết các vi phạm bảo mật là do lỗi hoặc sự giám sát và kẻ tấn công tìm kiếm những lỗi đó. Kẻ tấn công đang cố gắng xâm phạm API của bạn trước tiên sẽ cố gắng thu thập thông tin về nó - vì đó là API, có lẽ bạn xuất bản tài liệu sử dụng chi tiết.Kẻ tấn công sẽ sử dụng tài liệu này và thử nhiều cách khác nhau để làm cho trang web của bạn bị lỗi (và do đó hiển thị thêm thông tin, nếu anh ta may mắn) hoặc phản ứng theo cách bạn không lường trước được.
Bạn phải thừa nhận kẻ tấn công có rất nhiều thời gian, và sẽ tấn công họ để thử mọi đại lộ duy nhất - giống như tên trộm với thời gian vô hạn, người đi quanh nhà bạn đang thử mọi cửa sổ và cửa sổ, từ mọi nỗ lực. Vì vậy, nếu API của bạn hiển thị một phương thức như getUserInfo(userid)
và userID là số nguyên, kẻ tấn công sẽ viết một tập lệnh để lặp lại từ 0 trở lên để tìm hiểu xem bạn có bao nhiêu người dùng. Họ sẽ thử số âm và max(INT) + 1
. Ứng dụng của bạn có thể rò rỉ thông tin trong tất cả các trường hợp đó và - nếu nhà phát triển quên xử lý các lỗi nhất định - có thể hiển thị nhiều dữ liệu hơn bạn dự định.
Nếu API của bạn bao gồm logic để hạn chế quyền truy cập vào dữ liệu nhất định - ví dụ: bạn được phép thực thi getUserInfo
cho người dùng trong danh sách bạn bè của mình - kẻ tấn công có thể gặp may với một số con số do lỗi hoặc giám sát và anh ta sẽ biết rằng thông tin mà anh ta đang nhận được liên quan đến người dùng hợp lệ, vì vậy họ có thể xây dựng mô hình cách ứng dụng của bạn được thiết kế. Đó là tương đương với một tên trộm biết rằng tất cả các ổ khóa của bạn đến từ một nhà sản xuất duy nhất, vì vậy họ chỉ cần mang theo lựa chọn khóa đó.
Chính nó, điều này có thể không có lợi cho kẻ tấn công - nhưng nó làm cho cuộc sống của họ trở nên dễ dàng hơn một chút.
Với nỗ lực của việc sử dụng UUID hoặc một số nhận dạng vô nghĩa khác, điều này có thể khiến mọi thứ trở nên khó khăn hơn cho kẻ tấn công. Dĩ nhiên, đây không phải là điều quan trọng nhất - nó có thể không làm cho 5 điều hàng đầu bạn nên làm để bảo vệ API của bạn khỏi những kẻ tấn công - nhưng nó giúp ích.
Nguồn
2012-09-12 09:08:57