Những thủ thuật phát hiện hành vi độc hại của API

09:47 | 19/04/2022
Quang Minh (Theo Threatpost)

Jason, tin tặc cộng tác của công ty phần mềm an ninh mạng Cequence Security (trụ sở tại California, Mỹ), đã đăng bài về cách theo dõi kết nối của các “tác nhân người dùng” tới API trên di động và máy tính nhằm phát hiện hành vi độc hại.

Khi đang phân tích luồng truy cập API của khách hàng, Jason nhận ra vài điểm lạ về những thiết bị đang sử dụng API trên ứng dụng di động. Cụ thể là những trình duyệt tiêu chuẩn như Firefox và Chrome đang đi tới những điểm cuối API mà chỉ nên được tác động bởi giao tiếp ứng dụng di động.

Trong phát triển ứng dụng, các trình duyệt web được gọi là các tác nhân người dùng (User Agents – UA) hay các chuỗi tác nhân người dùng. Ví dụ, khi nhà phân tích nhìn vào một loạt các nhật ký đăng nhập web, họ sẽ thấy một UA Chrome xuất hiện như "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_5_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36". Đây là một người dùng sử dụng máy tính xách tay hoặc máy tính bàn sử dụng Chrome để truy cập trang web.

Trên một ứng dụng di động, nhân viên phát triển sẽ tạo ra một UA cho ứng dụng của họ. Tác nhân người dùng có thể là "CoolAppV1-iPhone" hoặc những chuỗi tương tự tùy thuộc vào nhân viên phát triển. Những tác nhân người dùng trên iPhone và Android thường khác nhau, nhưng hầu hết đều là một chuỗi mã cứng có ý nghĩa đối với nhà phát triển. Bằng cách này, có thể theo dõi được các loại thiết bị đang tương tác với API vì những điểm cuối API của ứng dụng di động và ứng dụng web là hoàn toàn khác nhau.

Phân chia các miền di động và web

Việc sử dụng các thuật ngữ chung mà chỉ đội ngũ phát triển biết có thể phân biệt giữa các miền di động và web, hỗ trợ việc phát hiện những hành vi độc hại dễ dàng hơn. Ví dụ, các ứng dụng trên iPhone và Android có thể giao tiếp với app.example.com, trong khi trang web là www.example.com. Việc tách biệt giữa miền phụ và ứng dụng cho phép phát hiện vị trí có thể của những UA ngoại lệ.

Một ví dụ khác, khi nhìn thấy hoạt động trình duyệt Chrome xuất hiện trên app.example.com thì có thể có một vấn đề đang phát sinh. Đó có thể là một người lập trình đang chạy thử phần mềm của mình, hay có thể là một thiết bị đo fluke (rất hiếm gặp) hoặc rất có thể, ai đó vừa tách rời các giao tiếp ứng dụng và tác động vào chúng.

Tương tự, nếu một ứng dụng web thường được sử dụng thông qua trình duyệt web, thì việc phân tích các loại trình duyệt truy cập vào trang là rất quan trọng. Các tác nhân đe dọa thông thường sẽ cố ẩn mình bằng cách điều chỉnh, xoay vòng thông qua một số lượng lớn UA. Gần đây, một số trình duyệt trông giống như "Ruby" hoặc "HTTP" nhưng chúng không thực sự là những chuỗi UA.

Chú ý tới các trình thu thập thông tin

Các UA cũng là các mục tiêu phổ biến cho các trình thu thập thông tin phổ biến như Facebook (facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)), là một trình thu thập các vị trí khác nhau trên một trang web nhưng hiếm khi bị nhìn thấy trong luồng ứng dụng di động.

Giao tiếp duy nhất nên tác động tới ứng dụng di động người dùng là những ứng dụng được cài đặt trong điện thoại của họ. Nếu những trình thu thập bị thấy trên ứng dụng di động, thì có thể đang có một vấn đề ở đâu đó. Có thể là trình thu thập dữ liệu Facebook đang học các điểm cuối khi nó tìm kiếm và thử các URI không phân biệt. Nếu một hành vi đáng nghi bị phát hiện trên UA, thì nên tìm kiếm những lỗi có thể xảy ra như những nhận xét chứa các URI, các thông tin quảng cáo hoặc kho lưu trữ mã bị hiển thị công khai hoặc trong các đường dẫn ứng dụng.

Kiểm tra các mẫu đáng nghi trong nhật ký ứng dụng

Như đã nói trên, cần phải phân tích các UA xuất hiện nhiều trong nhật ký ứng dụng. Nếu thấy những chuỗi UA lạ hoặc quá cũ, thì có thể có một tác nhân đe dọa đang cố gắng xâm nhập. Bên cạnh đó, việc xem xét nhật ký đăng nhập định kỳ là rất quan trọng trong việc phát hiện những mẫu độc hại tiềm tàng. Ngoài ra cần có một phương pháp hệ thống để xem xét những mục này và đưa ra các cảnh báo nếu cần thiết thì sẽ có thể tối thiểu hóa lưu lượng độc hại trên web và các ứng dụng di động một cách hiệu quả.

Tóm lại, đảm bảo an toàn chính là tập trung vào phân tích các dữ liệu hàng ngày để nhận diện các mẫu và thực hiện các biện pháp giảm thiểu nhằm giữ cho thông tin được an toàn.