Резюме управления
Команда Centralized Exchange связалась с Sayfer, чтобы провести полное тестирование черного ящика на проникновение в свое веб-приложение и проверку белого ящика для своей криптоархитектуры в декабре 2021 года.
Перед оценкой вышеперечисленных услуг мы провели вводное совещание с технической командой централизованной биржи и получили обзор системы и целей этого исследования.
За период исследования в 4 недели мы обнаружили 10 уязвимостей в системе. Наиболее опасными уязвимостями оказались SQL-инъекции и недостатки в бизнес-логике.
Воздействие на систему имеет решающее значение, поскольку злоумышленник может использовать некоторые из этих уязвимостей, чтобы воспользоваться преимуществами системы, либо изменив свою роль пользователя на «super_user» с помощью SQL-инъекции, либо злоупотребив системой и похитив деньги с централизованной биржи. с помощью механизма обновления системы 30s.
Уязвимости по рискам
High – Прямая угроза ключевым бизнес-процессам.
Medium – Косвенная угроза ключевым бизнес-процессам или частичная угроза бизнес-процессам.
Низкий – Прямых угроз нет. Уязвимость может быть использована с использованием других уязвимостей.
Информационный - Этот вывод не указывает на уязвимость, но содержит комментарий, который уведомляет о недостатках дизайна и неправильной реализации, которые могут вызвать проблему в долгосрочной перспективе.
Подход
Методология оценки безопасности
Сайфер использует ОВАСП ВСТГ в качестве нашего технического стандарта при рассмотрении веб-приложений. Получив полное представление о системе, мы решили, какие тесты OWASP необходимы для ее оценки.
Оценка безопасности
После понимания и определения области действия, моделирования угроз и оценки правильных тестов, необходимых для полной проверки приложения на наличие недостатков безопасности, мы выполнили нашу оценку безопасности.
Сбор информации
Сбор информации | Название теста |
ВСТГ-ИНФО-01 | Проведение поисковой разведки на предмет утечки информации |
ВСТГ-ИНФО-02 | Веб-сервер отпечатков пальцев |
ВСТГ-ИНФО-03 | Проверка метафайлов веб-сервера на предмет утечки информации |
ВСТГ-ИНФО-04 | Перечислить приложения на веб-сервере |
ВСТГ-ИНФО-05 | Проверка содержимого веб-страницы на предмет утечки информации |
ВСТГ-ИНФО-06 | Определите точки входа приложения |
ВСТГ-ИНФО-07 | Сопоставление путей выполнения через приложение |
ВСТГ-ИНФО-08 | Платформа веб-приложений отпечатков пальцев |
ВСТГ-ИНФО-09 | Веб-приложение для отпечатков пальцев |
ВСТГ-ИНФО-10 | Архитектура картографического приложения |
Тестирование управления конфигурацией и развертыванием
Тестирование управления конфигурацией и развертыванием | Название теста |
WSTG-CONF-01 | Конфигурация тестовой сетевой инфраструктуры |
WSTG-CONF-02 | Конфигурация тестовой платформы приложений |
WSTG-CONF-03 | Проверка обработки расширений файлов для конфиденциальной информации |
WSTG-CONF-04 | Просмотрите старые резервные копии и файлы без ссылок на конфиденциальную информацию |
WSTG-CONF-05 | Перечисление интерфейсов администрирования инфраструктуры и приложений |
WSTG-CONF-06 | Тестовые HTTP-методы |
WSTG-CONF-07 | Тестирование строгой транспортной безопасности HTTP |
WSTG-CONF-08 | Проверка междоменной политики RIA |
WSTG-CONF-09 | Разрешение тестового файла |
WSTG-CONF-10 | Тест на захват поддомена |
WSTG-CONF-11 | Протестировать облачное хранилище |
Тестирование управления идентификацией
Тестирование управления идентификацией | Название теста |
ВСТГ-ИДНТ-01 | Определения тестовых ролей |
ВСТГ-ИДНТ-02 | Процесс регистрации тестового пользователя |
ВСТГ-ИДНТ-03 | Процесс создания тестового аккаунта |
ВСТГ-ИДНТ-04 | Тестирование перечисления учетных записей и угадываемой учетной записи пользователя |
ВСТГ-ИДНТ-05 | Тестирование на слабую или несоблюдение политики имени пользователя |
Проверка подлинности
Проверка подлинности | Название теста |
ВСТГ-АТН-01 | Проверка учетных данных, передаваемых по зашифрованному каналу |
ВСТГ-АТН-02 | Проверка учетных данных по умолчанию |
ВСТГ-АТН-03 | Проверка механизма слабой блокировки |
ВСТГ-АТН-04 | Тестирование обхода схемы аутентификации |
ВСТГ-АТН-05 | Тестирование на наличие уязвимого пароля |
ВСТГ-АТН-06 | Тестирование уязвимостей кэша браузера |
ВСТГ-АТН-07 | Проверка политики ненадежных паролей |
ВСТГ-АТН-08 | Тестирование на слабый ответ на контрольный вопрос |
ВСТГ-АТН-09 | Тестирование функций смены или сброса слабого пароля |
ВСТГ-АТН-10 | Тестирование на более слабую аутентификацию в альтернативном канале |
Авторизация Тестирование
Авторизация Тестирование | Название теста |
ВСТГ-АТХЗ-01 | Тестирование файла обхода каталога Include |
ВСТГ-АТХЗ-02 | Тестирование обхода схемы авторизации |
ВСТГ-АТХЗ-03 | Проверка на повышение привилегий |
ВСТГ-АТХЗ-04 | Тестирование небезопасных прямых ссылок на объекты |
Тестирование управления сессиями
Тестирование управления сессиями | Название теста |
ВСТГ-СЭСС-01 | Тестирование схемы управления сеансом |
ВСТГ-СЭСС-02 | Проверка атрибутов файлов cookie |
ВСТГ-СЭСС-03 | Тестирование фиксации сеанса |
ВСТГ-СЭСС-04 | Тестирование открытых переменных сеанса |
ВСТГ-СЭСС-05 | Тестирование на подделку межсайтовых запросов |
ВСТГ-СЭСС-06 | Тестирование функциональности выхода из системы |
ВСТГ-СЭСС-07 | Время ожидания сеанса тестирования |
ВСТГ-СЭСС-08 | Тестирование на загадку сеанса |
ВСТГ-СЭСС-09 | Тестирование на перехват сеанса |
Проверка данных
Проверка данных | Название теста |
ВСТГ-ИНПВ-01 | Тестирование отраженного межсайтового скриптинга |
ВСТГ-ИНПВ-02 | Тестирование сохраненных межсайтовых сценариев |
ВСТГ-ИНПВ-03 | Тестирование на подделку глагола HTTP |
ВСТГ-ИНПВ-04 | Тестирование на загрязнение параметров HTTP |
ВСТГ-ИНПВ-05 | Тестирование на SQL-инъекцию |
ВСТГ-ИНПВ-06 | Проверка внедрения LDAP |
ВСТГ-ИНПВ-07 | Тестирование XML-инъекций |
ВСТГ-ИНПВ-08 | Тестирование на инъекцию SSI |
ВСТГ-ИНПВ-09 | Тестирование XPath Injection |
ВСТГ-ИНПВ-10 | Тестирование IMAP SMTP Injection |
ВСТГ-ИНПВ-11 | Тестирование на внедрение кода |
ВСТГ-ИНПВ-12 | Тестирование на внедрение команд |
ВСТГ-ИНПВ-13 | Тестирование на внедрение строки формата |
ВСТГ-ИНПВ-14 | Тестирование инкубационной уязвимости |
ВСТГ-ИНПВ-15 | Тестирование контрабанды разделения HTTP |
ВСТГ-ИНПВ-16 | Тестирование входящих HTTP-запросов |
ВСТГ-ИНПВ-17 | Тестирование внедрения заголовка хоста |
ВСТГ-ИНПВ-18 | Тестирование внедрения шаблонов на стороне сервера |
ВСТГ-ИНПВ-19 | Тестирование подделки запросов на стороне сервера |
Обработка ошибок
Обработка ошибок | Название теста |
ВСТГ-ЭРРХ-01 | Тестирование на неправильную обработку ошибок |
ВСТГ-ЭРРХ-02 | Тестирование трассировки стека |
Криптография
Криптография | Название теста |
WSTG-CRYP-01 | Тестирование слабой безопасности транспортного уровня |
WSTG-CRYP-02 | Тестирование для заполнения Oracle |
WSTG-CRYP-03 | Тестирование конфиденциальной информации, отправляемой по незашифрованным каналам |
WSTG-CRYP-04 | Тестирование на слабое шифрование |
Тестирование бизнес-логики
Тестирование бизнес-логики | Название теста |
ВСТГ-БУСЛ-01 | Протестируйте проверку данных бизнес-логики |
ВСТГ-БУСЛ-02 | Проверить способность подделывать запросы |
ВСТГ-БУСЛ-03 | Тестовые проверки целостности |
ВСТГ-БУСЛ-04 | Тест на синхронизацию процесса |
ВСТГ-БУСЛ-05 | Проверка количества раз, когда функция может быть использована Ограничения |
ВСТГ-БУСЛ-06 | Тестирование обхода рабочих процессов |
ВСТГ-БУСЛ-07 | Проверка средств защиты от неправильного использования приложений |
ВСТГ-БУСЛ-08 | Тестовая загрузка файлов неожиданных типов |
ВСТГ-БУСЛ-09 | Тестовая загрузка вредоносных файлов |
Тестирование на стороне клиента
Тестирование на стороне клиента | Название теста |
ВСТГ-КЛНТ-01 | Тестирование межсайтового скриптинга на основе DOM |
ВСТГ-КЛНТ-02 | Тестирование выполнения JavaScript |
ВСТГ-КЛНТ-03 | Тестирование HTML-инъекций |
ВСТГ-КЛНТ-04 | Тестирование перенаправления URL на стороне клиента |
ВСТГ-КЛНТ-05 | Тестирование CSS-инъекций |
ВСТГ-КЛНТ-06 | Тестирование манипулирования ресурсами на стороне клиента |
ВСТГ-КЛНТ-07 | Протестируйте совместное использование ресурсов между источниками |
ВСТГ-КЛНТ-08 | Тестирование межсайтовой перепрошивки |
ВСТГ-КЛНТ-09 | Проверка на кликджекинг |
ВСТГ-КЛНТ-10 | Тестирование веб-сокетов |
ВСТГ-КЛНТ-11 | Тестирование веб-сообщений |
ВСТГ-КЛНТ-12 | Тестирование хранилища браузера |
ВСТГ-КЛНТ-13 | Тестирование включения межсайтового скрипта |
Тестирование API
Тестирование API | Название теста |
ВСТГ-АПИТ-01 | Тестирование GraphQL |
Крипто-кошелек Обзор
Крипто-кошелек Обзор | Название теста |
САЙФЕР-ЦРПТВ-01 | Тестовая торговая бизнес-логика |
САЙФЕР-ЦРПТВ-03 | Протестируйте конфигурации узлов криптовалюты на основе UTXO. |
САЙФЕР-ЦРПТВ-04 | Тестовые конфигурации кода криптовалюты на основе учетной записи |
САЙФЕР-ЦРПТВ-05 | Проверка критического кода подтверждения транзакции |
САЙФЕР-ЦРПТВ-06 | Проверка поддержки TAPROOT |
САЙФЕР-ЦРПТВ-07 | Протестируйте хранилище закрытых ключей |
Заказать аудит у Sayfer
Результаты оценки безопасности
Небезопасное сохранение приватных ключей MPC
ID | САЙФЕР-ЦРПТВ-07 |
Снижение | High |
Требуемый навык | High |
OWASP Справка |
– |
Адрес | – |
Инструменты | Аудит конфигурации |
Описание
Централизованные биржи страдают от некачественной практики управления ключами. Есть много примеров таких случаев, когда ключи были утеряны или украдены, что привело к потере сервисом всех средств кошелька или полной блокировке средств.
Во время аудита файлов конфигурации мы просмотрели хранилище управления ключами. Мы обнаружили, что ключи, которые используются для холодного мультиподписного кошелька, хранятся в недостаточно распределенных местах.
Есть 3 ключа, которые используются в рамках подписи ключа MPC. 1 хранится на физически защищенной машине. Остальные 2 хранятся на том же выделенном компьютере в GCP.
Для защиты этих машин предпринято несколько мер безопасности, но проблема связана с распределением: если машина, развернутая на GCP, будет скомпрометирована, злоумышленник может подписать любую транзакцию из холодного кошелька.
Это опасное и чувствительное место, где многие потерпели неудачу в прошлом, поэтому следует строго следовать передовым методам.
риска
Используйте стороннюю службу хранения для управления горячими кошельками и хранилищами. Мы будем рады порекомендовать одного из наших партнеров.
Эти сервисы управляют MPC и управлением ключами за вас, а другие дополнительные уровни безопасности делают использование таких сервисов лучшим выбором для централизованных обменов.
SQL-инъекция
ID | ВСТГ-ИНПВ-05 |
Снижение | High |
Требуемый навык | Medium |
OWASP Справка |
– Ссылка |
Адрес | – ██████████████ |
Инструменты | Повторитель Burp, sqlmap, PayloadAllTheThings |
Описание
Атака с внедрением SQL включает вставку или «внедрение» частичного или полного SQL-запроса во входные данные, которые передаются от клиента в веб-приложение. Успешная атака с внедрением SQL-кода может считывать конфиденциальные данные из базы данных, изменять данные базы данных (вставлять/обновлять/удалять), выполнять операции администрирования базы данных (например, закрытие СУБД), восстанавливать содержимое заданного файла в файловой системе СУБД или записывать файлы в файловую систему и, в некоторых случаях, отдавать команды операционной системе.
Посмотрите на график transaction
конечная точка, мы смогли злоупотребить more
Параметр запроса URL для внедрения вредоносной полезной нагрузки SQL:
/api/transactions?size=10&more=te');INJECTION_PAYLOAD
Полезная нагрузка, которую мы использовали, была:
/api/transactions?size=10&sort=time,DESC&more=te');SELECT+CASE+WHEN+(substring(versio n(),12,2)+%3d+'10')+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END%3b
— Что в данном случае проверяет, является ли работающий экземпляр Postgres версией 10 или нет.
Злоумышленник, который воспользуется этой уязвимостью, может захватить систему. Мы смогли извлечь схемы таблиц, обновить собственную роль пользователя или вывести любую информацию, сохраненную в БД, и даже изменить баланс нашего пользователя в БД.
риска
Уязвимость SQL-инъекций легко исправить, но трудно смягчить. Необходим сильный линтинг или реализация правил компиляции, обеспечивающих будущие изменения.
Устранение уязвимостей SQL-инъекций обычно выполняется в соответствии с выбранной структурой, что означает, что разработчик никогда не должен объединять строки в полный оператор SQL.
Каждый пользовательский ввод должен быть обработан в исполнителе SQL, а не использоваться как простая строка запроса SQL.
Для получения дополнительной информации о совершенстве SQL-инъекций см. SQL IШпаргалка по предотвращению инъекций.
Небезопасные прямые ссылки на объекты
ID | ВСТГ-АТХЗ-04 |
Снижение | High |
Требуемый навык | Medium |
OWASP Справка |
– Ссылка на сайт |
Адрес | – ██████████████████/приборная панель/{DASHBOARD_ID} |
Инструменты | Повторитель отрыжки, DevTools |
Описание
Небезопасные прямые ссылки на объекты (IDOR) — это тип уязвимости управления доступом, который возникает, когда приложение использует введенные пользователем данные для прямого доступа к объектам. В результате этой уязвимости злоумышленники могут обойти авторизацию и получить прямой доступ к ресурсам в системе, например, к записям базы данных или файлам.
Мы обнаружили, что API █████████ позволяет злоумышленнику просматривать информацию панели управления других пользователей, включая все финансовые данные этого пользователя.
Уязвимость основана на параметре идентификатора панели мониторинга, который представляет собой угадываемое целое число. Пример запроса для одной информационной панели (для информационной панели, которая не принадлежит текущему пользователю):
GET ████/dashboard/827371 HTTP/1.1
Host: ██████████████████
api-key: ██████████
…
Это указывает на то, что /dashboard/DASHBOARD_ID
конечная точка не проверяет авторизацию для запрошенного ресурса. Злоумышленник, прошедший проверку подлинности, может очистить каждую панель инструментов, содержащую информацию о средствах пользователей и прошлых транзакциях.
риска
Существует несколько способов смягчить уязвимости IDOR, в этом случае кажется, что решением может быть проверка авторизации для каждого запроса.
Это означает, что каждый ключ запроса сможет получить только информационные панели своей учетной записи.
Более слабая аутентификация в альтернативном канале
ID | ВСТГ-АТН-10 |
Снижение | High |
Требуемый навык | Medium |
OWASP Справка |
– Ссылка |
Адрес | – ██████████████████ |
Инструменты | Google Chrome, DevTools, сбор, флуд |
Описание
Даже если первичные механизмы аутентификации не содержат каких-либо уязвимостей, может случиться так, что уязвимости существуют в альтернативных законных пользовательских каналах аутентификации для тех же учетных записей пользователей.
Эта уязвимость является частью цепочки из двух уязвимостей, которые позволили нам завладеть любой учетной записью, используя только адрес электронной почты.
В рамках нашего этапа разведки, когда мы пытаемся найти более широкий вектор атаки путем перечисления основных целевых подсистем, мы обнаружили интерфейс администратора в субдомене ██████████████████. Можно войти в интерфейс администратора, используя обычного пользователя приложения, но почти для всех сетевых запросов, которые мы проверяли во время загрузки главной страницы, сервер возвращает ошибку 401.
[IMAGE_REDACTED]
Мы перепроектировали файл пакета main.js, который содержит интерфейсный код для приложения, и нашли все потенциальные конечные точки, с которыми может взаимодействовать администратор.
Мы могли использовать только конечную точку api/updateUser
. Конечная точка позволяла нам редактировать электронную почту любого пользователя, тем самым мы могли сбросить пароль жертвы и завладеть учетной записью.
[IMAGE_REDACTED]
риска
Настоятельно рекомендуется создать механизм аутентификации или VPN для отладки или для административных служб системы, чтобы предотвратить наличие незащищенных общедоступных приложений, которые могут быть использованы злоумышленником.
Кроме того, в админке есть механизм авторизации, но это выходит за рамки данного проекта.
Проверка метафайлов веб-сервера на предмет утечки информации
ID | ВСТГ-ИНФО-03 |
Снижение | High |
Требуемый навык | Medium |
OWASP Справка |
– Ссылка |
Адрес | – ████████████████
– █████████████████████████████ – ████████████ |
Инструменты | Хром, иди нахуй |
Описание
В рамках нашего исследования цели и ее поддоменов мы обнаружили некоторые метафайлы, которые не должны быть общедоступными или, по крайней мере, не должны быть без надлежащего механизма аутентификации.
- ████████████████████████.gitignore
- ██████████████████████████████/docker-compose.yml
- ████████████████████████/swagger-ui.html
[IMAGE_REDACTED]
[IMAGE_REDACTED]
[IMAGE_REDACTED]
Мы обнаружили три типа файлов, которые могут нанести вред службам ████████. .gitignore
, swagger-ui
и docker-compose.yml
файл. Эти три файла раскрывают конфиденциальные данные
об архитектуре сервиса. Злоумышленник может использовать эту информацию для увеличения вектора атаки на цель.
риска
Если возможно, удалите эти файлы из общедоступной службы или внедрите механизм авторизации, предоставляющий доступ только привилегированным пользователям.
Отсутствует заголовок Content Security Policy
ID | САЙФЕР-КОНФИГ-008 |
Снижение | Medium |
Требуемый навык | High |
OWASP Справка |
– |
Адрес | – |
Инструменты | Burp, веб-браузер |
Описание
Политика безопасности контента (CSP) — это дополнительный уровень безопасности, который помогает обнаруживать и смягчать определенные типы атак, включая межсайтовые сценарии (XSS) и атаки с внедрением данных.
Мы не нашли заголовка CSP ни в одном из ответов сервера.
[IMAGE_REDACTED]
Используя CSP, администраторы веб-сайтов добавляют еще одну линию защиты от атак XSS или кликджекинга, тем самым система будет в безопасности, даже если в будущем в исходный код будут внесены незащищенные изменения.
Базовая политика CSP должна, по крайней мере, описывать домены из белого списка по умолчанию для статических файлов (таких как скрипты, изображения и CSS). И frame-ancestors
для предотвращения клик-джек-атак.
Дополнительная информация:
риска
Добавление Content-Security-Policy: [policy]
на каждый ответ, где загрузка внешних ресурсов может быть опасной
Мы настоятельно рекомендуем использовать его и протестировать сначала с вариантом «Только для отчетов», чтобы проверить свою политику перед выпуском ее в производство:
Content-Security-Policy-Report-Only: [policy]
Тестирование заголовков безопасности
ID | САЙФЕР-КОНФИГ-009 |
Снижение | Medium |
Требуемый навык | High |
OWASP Справка |
– |
Адрес | – ████████████ |
Инструменты | Burp, веб-браузер |
Описание
- Браузеры поддерживают множество заголовков HTTP, которые могут повысить безопасность приложений для защиты от различных распространенных атак. Заголовки обмениваются между веб-клиентом (обычно браузером) и сервером, чтобы указать связанные с безопасностью детали связи HTTP.
При просмотре заголовков безопасности ████████ отсутствует следующее:
- Параметры X-Content-Type
Установка этого заголовка не позволит браузеру интерпретировать файлы как нечто отличное от того, что объявлено типом содержимого в заголовках HTTP.
- Строгий-Transport-Security
HSTS — это механизм политики веб-безопасности, который помогает защитить веб-сайты от атак с понижением версии протокола и перехвата файлов cookie. Это позволяет веб-серверам объявлять, что веб-браузеры должны взаимодействовать с ним только с использованием безопасных HTTPS-соединений, а не через небезопасный протокол HTTP.
- Реферер-Политика
Заголовок Referer — это заголовок запроса, указывающий сайт, с которого пришел трафик. Если не будет надлежащего предотвращения, сам URL-адрес и даже конфиденциальная информация, содержащаяся в URL-адресе, будут переданы на сайт из другого источника.
- Доступ-Контроль-Разрешить-Происхождение
Заголовок имеет значение «*», которое предоставляет API для каждого веб-сайта, это может быть нежелательным результатом.
риска
Добавление упомянутых выше заголовков ко всем внутренним службам.
Проверка метафайлов веб-сервера на предмет утечки информации
ID | ВСТГ-ИНФО-03 |
Снижение | Низкий |
Требуемый навык | Medium |
OWASP Справка |
– Ссылка |
Адрес | – |
Инструменты | DevTools |
Описание
При исследовании цели с помощью DevTool мы смогли просмотреть исходный код внешнего интерфейса без какой-либо обфускации. Эта уязвимость возникает из-за того, что пакеты JS поставляются с исходными картами для производства, которые позволяют читать исходный код с комментариями, которые могут раскрывать информацию, например следующий файл paths.ts:
██████████████████████/paths.ts [ИЗОБРАЖЕНИЕ_УДАЛЕНО]
Имея исходную карту, злоумышленник может узнать о базе кода, прочитать комментарии и найти устаревшие части кода, которые впоследствии могут быть использованы для поиска уязвимостей.
риска
Не отправляйте исходные карты в производство, большинство систем регистрации и отслеживания ошибок имеют мнение о загрузке исходных карт в систему бэк-офиса. Другим подходом может быть предоставление исходных карт только аутентифицированным пользователям через VPN или другие механизмы.
Веб-сервер отпечатков пальцев
ID | ВСТГ-ИНФО-002 |
Снижение | Низкий |
Требуемый навык | Medium |
OWASP Справка |
– Ссылка на сайт |
Адрес | – ███████████████████████████ |
Инструменты | Отрыжка |
Описание
Хотя открытая информация о сервере сама по себе не обязательно является уязвимостью, это информация, которая может помочь злоумышленникам использовать другие уязвимости, которые могут существовать. Большинство конечных точек не раскрывают никакой информации о сервере через заголовки HTTP или страницы ошибок.
Используя следующий неправильно сформированный HTTP-запрос, мы смогли получить отпечаток сервера Nginx через ответ 400.
GET /v2 HTTPMALFORMED/1.1
Host: ██████████████████
Accept: */*
Тело ответа:
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx 1.14.0</center>
</body>
</html>
риска
Существуют разные способы скрыть заголовки веб-сервера, наиболее часто используемые методы:
- Обратные прокси-серверы, которые стоят между глобальным интернетом и внутренним
- Настройте каждый веб-сервер для удаления этих заголовков.
Приложение A. Исправления оценки безопасности
Будет обновлено командой Sayfer после первой редакции.