Возможность SSRF-атаки на Asterisk REST API

18 декабря 2024, 02:36
SSRF - это подделка запросов на стороне сервера, уязвимость в системе веб-безопасности, которая позволяет злоумышленнику заставить серверное приложение отправлять запросы в непредусмотренное назначние. При типичной SSRF-атаке злоумышленник может заставить сервер подключиться только к внутренним службам в инфраструктуре организации. В других случаях они могут принудительно подключать сервер к произвольным внешним системам. Это может привести к утечке конфиденциальных данных, таких как учетные данные для авторизации.
https://issues-archive.asterisk.org/ASTERISK-29476
Если для эндпойнта PJSIP задано значение stir_shaken = yes, сервер Asterisk получит содержимое URL-адреса, указанного в параметре info в заголовке Identity, из пакета INVITE.

 

Каковы последствия SSRF-атак?

Успешная SSRF-атака часто может привести к несанкционированным действиям или доступу к данным внутри организации. Это может произойти в уязвимом приложении или в других серверных системах, с которыми приложение может взаимодействовать. В некоторых ситуациях уязвимость SSRF может позволить злоумышленнику выполнить произвольную команду.


Эксплойт SSRF, который приводит к подключению к внешним системам сторонних производителей, может привести к дальнейшим вредоносным атакам. Может оказаться, что они исходят от системы, в которой размещено уязвимое приложение.

Распрeделённые SSRF-атаки


SSRF-атаки часто используют доверительные отношения для усиления атаки из уязвимого приложения и выполнения несанкционированных действий. Эти доверительные отношения могут существовать в отношении сервера или в отношении других серверных систем в той же организации.


SSRF-атаки на Астериск-сервер


При SSRF-атаке на сервер злоумышленник заставляет приложение отправить HTTP-запрос обратно на сервер, на котором размещено приложение, через его сетевой интерфейс обратной связи. Обычно это включает в себя указание URL-адреса с именем хоста, таким как 127.0.0.1 или localhost. 

Зная стандартный синтаксис запросов, типа 

  curl -v -u asterisk:asterisk -X GET "http://pbx.company.info/ari/endpoints/SIP/321" 

можно попытаться получить расширенный доступ в виде таких запросов злоумышленника к REST API. Его браузер может получить список доступных аппликаций: 

 POST /ari/ HTTP/1.0 Content-Type: application/list
 Content-Length: 118  
 Api=http://localhost:8080/ari/applications 

или попытаться отследить события в АТС, возможно даже изменить:

 Api=http://127.0.0.1:8080/ari/applications/{applicationName}/subscription