...
Code Block | ||
---|---|---|
| ||
logs ---- gc-core.log.0 ---- gc-core.log.1 ---- gc-core.log.2.current |
Лог статистики медиасессий
В сборке 5.2.1883 добавлено отображение текущей статистики по медиасессиям. Для того, чтобы эта статистика сохранялась в файл, была добавлена возможность ее логирования по завершении медиасессии.
Статистика записывается в файл /usr/local/FlashphonerWebCallServer/logs/stats/media-session-connection-stats.log
в формате CSV
Code Block | ||
---|---|---|
| ||
#{mediaSessionId}; {channels_not_writable}; {decodable_drops_old}; {incomplete_drops_old}; {decodable_drops_reset}; {incomplete_drops_reset}; {decodable_drops_pli}; {incomplete_drops_pli}; {data_packets_with_empty_payload}; {missed_h264_units}; {dropped_audio_data_packets} |
Здесь
- mediaSessionId - идентификатор медиа сессии
- channels_not_writable - количество событий, в результате которых не удалось записать данные на отправку в TCP сокет
- decodable_drops_old - количество сброшенных H264 фреймов, собранных из пакетов трафика
- incomplete_drops_old - количество сброшенных H264 фреймов, не полностью собранных из пакетов трафика
- decodable_drops_reset - количество сброшенных H264 фреймов до новой точки декодирования, собранных из пакетов трафика
- incomplete_drops_reset - количество сброшенных H264 фреймов до новой точки декодирования, не полностью собранных из пакетов трафика
- decodable_drops_pli - количество сбросов всех H264 фреймов, собранных из пакетов трафика, при приходе ключевого фрейма
- incomplete_drops_pli - количество сбросов всех H264 фреймов, не полностьюсобранных из пакетов трафика, при приходе ключевого фрейма
- data_packets_with_empty_payload - количество пакетов с пустым содержимым, высылаются браузером для оценки канала публикации при включенном TWCC
- missed_h264_units - количество потерянных H264 элементов
- dropped_audio_data_packets - количество аудио пакетов, отброшенных на этапе передачи в движок сервера
Пример записи
Code Block | ||
---|---|---|
| ||
f49f8cb0-dc52-11ee-81df-51ad589334c0; 0; 0; 7; 0; 0; 0; 10; 0; 443; 0 |
Запись статистики в файл настраивается в log4j.properties
следующим образом
Code Block | ||
---|---|---|
| ||
log4j.logger.MediaSessionConnectionStats=error, mediaSessionConnectionStatsAppender
log4j.additivity.MediaSessionConnectionStats=false
log4j.appender.mediaSessionConnectionStatsAppender=com.flashphoner.common.logging.NewLogForEachRunFileAppender
log4j.appender.mediaSessionConnectionStatsAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.mediaSessionConnectionStatsAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.mediaSessionConnectionStatsAppender.layout.ConversionPattern=%m%n
log4j.appender.mediaSessionConnectionStatsAppender.File=${com.flashphoner.fms.AppHome}/logs/stats/media-session-connection-stats.log |
Уязвимость CVE-2021-44228
Уязвимость CVE-2021-44228 в библиотеке Apache log4j не может эксплуатироваться на WCS сервере. Конфигурирование логгера осуществляется только через файл log4j.properties, поэтому злоумышленник должен получить доступ к файловой системе сервера. Через поля ввода уязвимость не может быть проэксплуатирована:
1. Для проверки используем адрес https://log4shell.huntress.com/. По этому адресу генерируется уникальная ссылка, которую необходимо вставить в поля ввода.
2, Открываем пример Two Way Streaming на демо сервере https://demo.flashphoner.com:8888/client2/examples/demo/streaming/two_way_streaming/two_way_streaming.html, нажимаем Connect и вставляем ссылку в поля для имени потока. Публикуем и играем поток:
3. Открываем ссылку для просмотра результатов. В колонках IP address
и Date/Time
должны выводиться обращения от нашего сервера, если уязвимость сработала
Как видно, уязвимость через поля ввода не может быть проэксплуатирована в сборке WCS 5.2.1109
Пояснения: почему WCS не подвержен уязвимости
В составе WCS используется версия библиотеки Apache log4j 1.2.17. В данной версии нет поддержки JDNI, которая была добавлена начиная с log4j 2.0-beta9. Поэтому CVE-2021-44228 не может эксплуатироваться в WCS.