Ham-радио и по сей день используются для экстренной связи во время войны и стихийных бедствий, а также могут быть использованы в бинарной эксплуатации.
Ключевые моменты:
1. Ветхие радиостанции и сегодня используются для экстренной связи во время войны и катастроф.
2. И по сей день их можно использовать в бинарной эксплуатации
3. Уязвимости старых технологий можно использовать с помощью современных основ хакерства
Хакеры взламывают защиту компьютерных систем уже более полувека, а сети, которые они используют для эксплуатации этих слабостей, существуют гораздо дольше. С появлением Интернета, заменившего большинство проводных линий и длин волн, и ростом сложности киберпреступлений от мелких воришек до организованных национальных государств, за последние 20 лет ландшафт угроз значительно расширился. Тем не менее, один из старейших сетевых протоколов - любительское или "ham" радио - до сих пор используется для экстренной связи во время войны и катастроф, и до сих пор может быть использовано в бинарной эксплуатации.
Ham - радио навевает образ старых парней, крутящих ручки на старинных ламповых радиоприемниках и обсуждающих с другими любителями их конфигурацию. Сегодня радиостанции становятся намного сложнее, а благодаря встроенной способности осуществлять цифровую связь их возможности практически безграничны. Их можно подключать к компьютерам для выполнения любых задач - от обмена текстовыми сообщениями и электронной почтой до обмена изображениями и отслеживания метеорологических аэростатов. Все-таки есть что-то волшебное в том, чтобы подключиться к устройству или связаться с кем-то на другом конце планеты, не будучи подключенным к Интернету или телефонной линии.
Недавно я сдал экзамен на разработчика эксплойтов для наступательной безопасности (OSED) и захотел применить полученные знания для решения реальных проблем безопасности. Я всегда ищу способы улучшить свои навыки моделирования угроз, имитации атак и тестирования на проникновение и подумал, что радиосвязь будет интересной средой для изучения. Радиолюбительское оборудование и частотные спектры доступны по всему миру и являются поучительными для серии блогов, показывающих, как уязвимости старых технологий могут быть использованы с помощью современных основ взлома. Используя ham-радио в качестве испытательного полигона, мы рассмотрим обратную разработку, создание пользовательских эксплойтов и развитие навыков обхода средств защиты. Мы также рассмотрим написание рукотворного шеллкода Windows и применение старых методов в более современных версиях Windows.
Пакетное радио
Я много лет возился с пакетным радио и различными цифровыми режимами, и мне было интересно, существуют ли какие-либо уязвимости, которые могут позволить злоумышленнику получить удаленное выполнение кода через эфир. Я всегда думал, что это забавная идея - иметь возможность взломать компьютер, который даже не подключен к Интернету. Многие ham-программы написаны энтузиастами и являются довольно старыми, поэтому казалось вероятным, что в них могут быть уязвимые места. В своем исследовании я решил сосредоточиться в основном на уязвимостях, которые могут привести к удаленному выполнению кода или команд, хотя, если я находил другие уязвимости, я не оставлял их без внимания. Я также решил начать с программ для Windows, поскольку экзамен OSED был посвящен эксплуатации пользовательского режима Windows, и именно в этой области у меня больше всего опыта. Я начал этот проект с конкретной целью: получить удаленную оболочку по радиосвязи.
Как хакер, я больше всего заинтересован в различных цифровых режимах, которые может предложить радиостанция. Их много, и для своего исследования я решил сосредоточиться на программах, использующих протокол AX.25.
"Пакетное радио" обычно относится к очень специфическому цифровому режиму работы, который использует протокол AX.25. AX.25 - это протокол уровня канала передачи данных (уровень 2 модели OSI). В этом режиме данные разбиваются на пакеты и передаются по воздуху. AX.25 поддерживает различные типы пакетов и включает режимы, аналогичные протоколам Transmission Control Protocol (TCP) и User Datagram Protocol (UDP) в сети Ethernet. В некоторых случаях протокол может выполнять коррекцию ошибок, как TCP. Другой режим просто отправляет пакеты в эфир, не ожидая никакого подтверждения, как UDP. Windows не имеет встроенного способа обработки трафика AX.25, поэтому программное обеспечение конечного пользователя должно делать это самостоятельно или абстрагироваться от него. Ядро Linux имеет встроенную поддержку AX.25, поэтому потенциально вы можете настроить сетевые интерфейсы AX.25, которые имеют позывные адреса вместо IP-адресов. AX.25 широко используется сегодня для систем автоматического пакетного информирования (APRS), электронной почты Winlink по радиосвязи, систем досок объявлений (BBS) и т.д. Похоже, что он чаще всего используется для установления контакта с компьютером, в отличие от живых контактов с другими радиолюбителями. Более подробную информацию о протоколе AX.25 можно найти здесь: http://www.ax25.net/AX25.2.2-Jul 98-2.pdf.
Автоматическая система пакетной передачи сообщений (APRS)
Наиболее часто AX.25 используется в автоматической системе пакетной радиосвязи (APRS). Поэтому я решил сосредоточиться на программном обеспечении APRS для данного исследовательского проекта. APRS позволяет радиолюбителям передавать телеметрические данные, такие как координаты GPS, данные о погоде, небольшие общие сообщения и многое другое. Станция APRS может посылать широковещательное сообщение или сообщение, адресованное другой конкретной станции. Поскольку дальность связи на диапазоне 2 м не так велика, станции APRS могут "дигипировать" пакеты. Это означает, что если одна станция получает пакет, она ретранслирует его, чтобы отправить дальше. Существуют также системы "IGate", которые подключены к Интернету через магистраль APRS Internet Service (APRS-IS) (http://www.aprs-is.net). Это добавляет дополнительные удобства системе APRS и означает, что при желании вы можете передавать данные по всему миру через Интернет. Фактически, вы можете просматривать трафик APRS в любой точке мира по адресу https://aprs.fi, и вам даже не нужна лицензия, чтобы проверить его.
Как станции APRS находят друг друга? Как одна станция находит IGate для подключения к Интернету? Вы можете передавать APRS практически на любой любительской частоте, на которую у вас есть лицензия, но во всем мире у каждого региона обычно есть выделенная частота, на которой используется этот трафик. В США эта частота составляет 144,390 МГц. Почти в любой точке страны вы можете настроить радио на эту частоту и слышать данные, передаваемые по крайней мере каждую минуту или около того.
APRS — это протокол, работающий поверх AX.25, подобно тому, как HTTP работает поверх TCP. Пакеты APRS используют кадры ненумерованной информации (UI) AX.25. Поскольку я собирался реконструировать программное обеспечение APRS, имело смысл изучить кадры данных APRS, чтобы понять их структуру. Фреймы пользовательского интерфейса AX.25 выглядят следующим образом:
Изображение с http://www.aprs.org/doc/APRS101.PDF
Во фрейме пользовательского интерфейса AX.25 все адреса будут позывными радиолюбителей с добавленным к ним необязательным SSID. Если бы ваш позывной был K7HAX, ваш адрес мог бы выглядеть примерно как K7HAX-14. Поле адресов дигипитеров может содержать до восьми адресов дигипитеров, чтобы указать путь, по которому должен идти пакет. Digipeater — это радиостанция, которая прослушивает пакеты, а затем ретранслирует эти пакеты для расширения диапазона. Информационное поле содержит указанные пользователем данные. APRS интенсивно использует это поле, и это, вероятно, самое интересное поле для экспериментов.
Спецификация APRS допускает различные типы данных, форматы и кодировки. Большая часть этой информации хранится в информационном поле пакета AX.25. Общая структура информационного поля APRS выглядит следующим образом:
Изображение с http://www.aprs.org/doc/APRS101.PDF
Тип данных указывает, какие данные APRS следуют. Опции включают положение GPS, пеленгацию, информацию о погоде, сообщения и многое другое. Вот реальное сообщение APRS, которое я вытащил с https://aprs.fi :
:Ты работаешь сегодня?
Двоеточие означает, что данные APRS содержат сообщение. Остальные данные представляют собой просто текстовое сообщение. В этом случае расширение данных APRS и поля комментариев не используются. Вот еще один пример:
=3319,44S/06012,46W# 144,930 МГц. SNDigi
Знак равенства означает, что данные содержат данные о положении без метки времени. Сразу после этого следуют фактические данные о местоположении. Между двумя координатами находится косая черта, а сразу после данных — символ решетки. Вместе эти символы образуют «/#». Эти данные сообщают принимающей станции, какой тип станции отправил сообщение и какой символ или значок следует использовать для отображения станции на карте.
В APRS есть две таблицы с разными символами (автомобиль, грузовик, велосипед, воздушный шар и т. д.). Косая черта указывает, какую таблицу использовать. Хэш сообщает, какой символ использовать в этой таблице. После символа решетки идут дополнительные данные сообщения, в которых указывается частота передачи и, возможно, программное обеспечение или устройство, используемое для передачи (SNDigi). В APRS есть гораздо больше, чем просто это, но это дает приблизительное представление о том, как выглядят пакеты и что мы можем ожидать от программного обеспечения APRS при декодировании сообщений. Дополнительную информацию о протоколе APRS можно найти здесь: http://www.aprs.org/doc/APRS101.PDF
Поскольку APRS, вероятно, является наиболее распространенным пакетным протоколом, используемым сегодня, и нет недостатка в выборе программного обеспечения APRS, я решил начать свое исследование здесь. Я сосредоточился на программном обеспечении APRS для Windows, написанном на C или C++, чтобы я мог продолжать оттачивать свои навыки реверсирования IDA и WinDbg.
Оборудование для пакетного радио
Существует огромное количество комбинаций оборудования для выхода в эфир с пакетной передачей, но в целом вам понадобятся три основных компонента: приемопередатчик, контроллер терминального узла (TNC) и компьютер. Вы используете компьютер для взаимодействия с различным программным обеспечением пакетной радиосвязи, которое вы хотите использовать. Приемопередатчик отправляет и принимает сообщения по радио. TNC — это в основном модем пакетной радиосвязи, который находится между ними и преобразует данные в звук. Он работает аналогично коммутируемому модему, но для радио вместо телефонных линий. TNC обычно представляет собой небольшую коробку, подключенную к компьютеру и радио. TNC часто имеет встроенный микрокомпьютер с собственной операционной системой, так что вы можете открыть терминал и отправлять и получать сообщения прямо из TNC. У моего TNC есть встроенный почтовый ящик, куда другие радиолюбители могут оставлять сообщения. Он может декодировать сообщения APRS с помощью собственного программного обеспечения и отображать их в удобочитаемом формате через последовательную консоль. Вот фотография оборудования, которое я использую для своей приемной станции:
Просто в хранении! (KISS)
Каждая марка и модель TNC имеет собственный набор команд, которые вы должны использовать для отправки пакетов, и они могут по-разному отображать пакеты для пользователя. Поэтому компьютерное программное обеспечение должно понимать, как взаимодействовать с каждой маркой и моделью, что является громоздким. Чтобы исправить это, большинство TNC поддерживают режим под названием KISS (Keep It Simple, Stupid). Этот режим отключает все «умные» функции TNC и превращает его в тупой модем. TNC просто демодулирует сигналы от радио и передает необработанные данные обратно на ваш ПК и наоборот. Чтобы упростить задачу, я переведу свой TNC в режим KISS для тестирования и буду использовать его везде, где это возможно.
Важно знать о протоколе KISS то, что TNC добавит управляющий символ 0xC0 в начало и конец каждого пакета и будет ожидать, что эти символы будут там для любых исходящих передач. Есть также несколько других специальных управляющих символов, за которыми будет следить TNC, о которых важно помнить при написании шелл-кода позже. Эти символы будут считаться «плохими символами» при написании шелл-кода, и их следует избегать. Полное описание протокола KISS можно найти здесь: http://www.ax25.net/kiss.aspx
Выбор программы APRS
На aprs-is.net есть список некоторых известных клиентских программ APRS.
Просматривая список, я пришел к выводу, что более старый клиент, скорее всего, будет содержать уязвимости, связанные с повреждением памяти. Просмотрев различные варианты, я обнаружил, что на странице загрузки WinAPRS указано, что он не обновлялся с 14 января 2013 года. Я решил, что это хороший признак того, что программное обеспечение, вероятно, не поддерживается и, следовательно, содержит уязвимости. Я скачал последнюю версию (2.9.0) и приступил к работе.
В следующем посте этой серии мы обсудим процесс обратного проектирования с использованием WinDbg. Мы углубимся в мельчайшие технические детали эксплуатируемой уязвимости, приводящей к повреждению памяти в WinAPRS, в том числе о том, как она была обнаружена и почему ее можно использовать.
Перевод вот ЭТОЙ статьи.
Ключевые моменты:
1. Ветхие радиостанции и сегодня используются для экстренной связи во время войны и катастроф.
2. И по сей день их можно использовать в бинарной эксплуатации
3. Уязвимости старых технологий можно использовать с помощью современных основ хакерства
Хакеры взламывают защиту компьютерных систем уже более полувека, а сети, которые они используют для эксплуатации этих слабостей, существуют гораздо дольше. С появлением Интернета, заменившего большинство проводных линий и длин волн, и ростом сложности киберпреступлений от мелких воришек до организованных национальных государств, за последние 20 лет ландшафт угроз значительно расширился. Тем не менее, один из старейших сетевых протоколов - любительское или "ham" радио - до сих пор используется для экстренной связи во время войны и катастроф, и до сих пор может быть использовано в бинарной эксплуатации.
Ham - радио навевает образ старых парней, крутящих ручки на старинных ламповых радиоприемниках и обсуждающих с другими любителями их конфигурацию. Сегодня радиостанции становятся намного сложнее, а благодаря встроенной способности осуществлять цифровую связь их возможности практически безграничны. Их можно подключать к компьютерам для выполнения любых задач - от обмена текстовыми сообщениями и электронной почтой до обмена изображениями и отслеживания метеорологических аэростатов. Все-таки есть что-то волшебное в том, чтобы подключиться к устройству или связаться с кем-то на другом конце планеты, не будучи подключенным к Интернету или телефонной линии.
Недавно я сдал экзамен на разработчика эксплойтов для наступательной безопасности (OSED) и захотел применить полученные знания для решения реальных проблем безопасности. Я всегда ищу способы улучшить свои навыки моделирования угроз, имитации атак и тестирования на проникновение и подумал, что радиосвязь будет интересной средой для изучения. Радиолюбительское оборудование и частотные спектры доступны по всему миру и являются поучительными для серии блогов, показывающих, как уязвимости старых технологий могут быть использованы с помощью современных основ взлома. Используя ham-радио в качестве испытательного полигона, мы рассмотрим обратную разработку, создание пользовательских эксплойтов и развитие навыков обхода средств защиты. Мы также рассмотрим написание рукотворного шеллкода Windows и применение старых методов в более современных версиях Windows.
Пакетное радио
Я много лет возился с пакетным радио и различными цифровыми режимами, и мне было интересно, существуют ли какие-либо уязвимости, которые могут позволить злоумышленнику получить удаленное выполнение кода через эфир. Я всегда думал, что это забавная идея - иметь возможность взломать компьютер, который даже не подключен к Интернету. Многие ham-программы написаны энтузиастами и являются довольно старыми, поэтому казалось вероятным, что в них могут быть уязвимые места. В своем исследовании я решил сосредоточиться в основном на уязвимостях, которые могут привести к удаленному выполнению кода или команд, хотя, если я находил другие уязвимости, я не оставлял их без внимания. Я также решил начать с программ для Windows, поскольку экзамен OSED был посвящен эксплуатации пользовательского режима Windows, и именно в этой области у меня больше всего опыта. Я начал этот проект с конкретной целью: получить удаленную оболочку по радиосвязи.
Как хакер, я больше всего заинтересован в различных цифровых режимах, которые может предложить радиостанция. Их много, и для своего исследования я решил сосредоточиться на программах, использующих протокол AX.25.
"Пакетное радио" обычно относится к очень специфическому цифровому режиму работы, который использует протокол AX.25. AX.25 - это протокол уровня канала передачи данных (уровень 2 модели OSI). В этом режиме данные разбиваются на пакеты и передаются по воздуху. AX.25 поддерживает различные типы пакетов и включает режимы, аналогичные протоколам Transmission Control Protocol (TCP) и User Datagram Protocol (UDP) в сети Ethernet. В некоторых случаях протокол может выполнять коррекцию ошибок, как TCP. Другой режим просто отправляет пакеты в эфир, не ожидая никакого подтверждения, как UDP. Windows не имеет встроенного способа обработки трафика AX.25, поэтому программное обеспечение конечного пользователя должно делать это самостоятельно или абстрагироваться от него. Ядро Linux имеет встроенную поддержку AX.25, поэтому потенциально вы можете настроить сетевые интерфейсы AX.25, которые имеют позывные адреса вместо IP-адресов. AX.25 широко используется сегодня для систем автоматического пакетного информирования (APRS), электронной почты Winlink по радиосвязи, систем досок объявлений (BBS) и т.д. Похоже, что он чаще всего используется для установления контакта с компьютером, в отличие от живых контактов с другими радиолюбителями. Более подробную информацию о протоколе AX.25 можно найти здесь: http://www.ax25.net/AX25.2.2-Jul 98-2.pdf.
Автоматическая система пакетной передачи сообщений (APRS)
Наиболее часто AX.25 используется в автоматической системе пакетной радиосвязи (APRS). Поэтому я решил сосредоточиться на программном обеспечении APRS для данного исследовательского проекта. APRS позволяет радиолюбителям передавать телеметрические данные, такие как координаты GPS, данные о погоде, небольшие общие сообщения и многое другое. Станция APRS может посылать широковещательное сообщение или сообщение, адресованное другой конкретной станции. Поскольку дальность связи на диапазоне 2 м не так велика, станции APRS могут "дигипировать" пакеты. Это означает, что если одна станция получает пакет, она ретранслирует его, чтобы отправить дальше. Существуют также системы "IGate", которые подключены к Интернету через магистраль APRS Internet Service (APRS-IS) (http://www.aprs-is.net). Это добавляет дополнительные удобства системе APRS и означает, что при желании вы можете передавать данные по всему миру через Интернет. Фактически, вы можете просматривать трафик APRS в любой точке мира по адресу https://aprs.fi, и вам даже не нужна лицензия, чтобы проверить его.
Как станции APRS находят друг друга? Как одна станция находит IGate для подключения к Интернету? Вы можете передавать APRS практически на любой любительской частоте, на которую у вас есть лицензия, но во всем мире у каждого региона обычно есть выделенная частота, на которой используется этот трафик. В США эта частота составляет 144,390 МГц. Почти в любой точке страны вы можете настроить радио на эту частоту и слышать данные, передаваемые по крайней мере каждую минуту или около того.
APRS — это протокол, работающий поверх AX.25, подобно тому, как HTTP работает поверх TCP. Пакеты APRS используют кадры ненумерованной информации (UI) AX.25. Поскольку я собирался реконструировать программное обеспечение APRS, имело смысл изучить кадры данных APRS, чтобы понять их структуру. Фреймы пользовательского интерфейса AX.25 выглядят следующим образом:
Изображение с http://www.aprs.org/doc/APRS101.PDF
Во фрейме пользовательского интерфейса AX.25 все адреса будут позывными радиолюбителей с добавленным к ним необязательным SSID. Если бы ваш позывной был K7HAX, ваш адрес мог бы выглядеть примерно как K7HAX-14. Поле адресов дигипитеров может содержать до восьми адресов дигипитеров, чтобы указать путь, по которому должен идти пакет. Digipeater — это радиостанция, которая прослушивает пакеты, а затем ретранслирует эти пакеты для расширения диапазона. Информационное поле содержит указанные пользователем данные. APRS интенсивно использует это поле, и это, вероятно, самое интересное поле для экспериментов.
Спецификация APRS допускает различные типы данных, форматы и кодировки. Большая часть этой информации хранится в информационном поле пакета AX.25. Общая структура информационного поля APRS выглядит следующим образом:
Изображение с http://www.aprs.org/doc/APRS101.PDF
Тип данных указывает, какие данные APRS следуют. Опции включают положение GPS, пеленгацию, информацию о погоде, сообщения и многое другое. Вот реальное сообщение APRS, которое я вытащил с https://aprs.fi :
:Ты работаешь сегодня?
Двоеточие означает, что данные APRS содержат сообщение. Остальные данные представляют собой просто текстовое сообщение. В этом случае расширение данных APRS и поля комментариев не используются. Вот еще один пример:
=3319,44S/06012,46W# 144,930 МГц. SNDigi
Знак равенства означает, что данные содержат данные о положении без метки времени. Сразу после этого следуют фактические данные о местоположении. Между двумя координатами находится косая черта, а сразу после данных — символ решетки. Вместе эти символы образуют «/#». Эти данные сообщают принимающей станции, какой тип станции отправил сообщение и какой символ или значок следует использовать для отображения станции на карте.
В APRS есть две таблицы с разными символами (автомобиль, грузовик, велосипед, воздушный шар и т. д.). Косая черта указывает, какую таблицу использовать. Хэш сообщает, какой символ использовать в этой таблице. После символа решетки идут дополнительные данные сообщения, в которых указывается частота передачи и, возможно, программное обеспечение или устройство, используемое для передачи (SNDigi). В APRS есть гораздо больше, чем просто это, но это дает приблизительное представление о том, как выглядят пакеты и что мы можем ожидать от программного обеспечения APRS при декодировании сообщений. Дополнительную информацию о протоколе APRS можно найти здесь: http://www.aprs.org/doc/APRS101.PDF
Поскольку APRS, вероятно, является наиболее распространенным пакетным протоколом, используемым сегодня, и нет недостатка в выборе программного обеспечения APRS, я решил начать свое исследование здесь. Я сосредоточился на программном обеспечении APRS для Windows, написанном на C или C++, чтобы я мог продолжать оттачивать свои навыки реверсирования IDA и WinDbg.
Оборудование для пакетного радио
Существует огромное количество комбинаций оборудования для выхода в эфир с пакетной передачей, но в целом вам понадобятся три основных компонента: приемопередатчик, контроллер терминального узла (TNC) и компьютер. Вы используете компьютер для взаимодействия с различным программным обеспечением пакетной радиосвязи, которое вы хотите использовать. Приемопередатчик отправляет и принимает сообщения по радио. TNC — это в основном модем пакетной радиосвязи, который находится между ними и преобразует данные в звук. Он работает аналогично коммутируемому модему, но для радио вместо телефонных линий. TNC обычно представляет собой небольшую коробку, подключенную к компьютеру и радио. TNC часто имеет встроенный микрокомпьютер с собственной операционной системой, так что вы можете открыть терминал и отправлять и получать сообщения прямо из TNC. У моего TNC есть встроенный почтовый ящик, куда другие радиолюбители могут оставлять сообщения. Он может декодировать сообщения APRS с помощью собственного программного обеспечения и отображать их в удобочитаемом формате через последовательную консоль. Вот фотография оборудования, которое я использую для своей приемной станции:
Просто в хранении! (KISS)
Каждая марка и модель TNC имеет собственный набор команд, которые вы должны использовать для отправки пакетов, и они могут по-разному отображать пакеты для пользователя. Поэтому компьютерное программное обеспечение должно понимать, как взаимодействовать с каждой маркой и моделью, что является громоздким. Чтобы исправить это, большинство TNC поддерживают режим под названием KISS (Keep It Simple, Stupid). Этот режим отключает все «умные» функции TNC и превращает его в тупой модем. TNC просто демодулирует сигналы от радио и передает необработанные данные обратно на ваш ПК и наоборот. Чтобы упростить задачу, я переведу свой TNC в режим KISS для тестирования и буду использовать его везде, где это возможно.
Важно знать о протоколе KISS то, что TNC добавит управляющий символ 0xC0 в начало и конец каждого пакета и будет ожидать, что эти символы будут там для любых исходящих передач. Есть также несколько других специальных управляющих символов, за которыми будет следить TNC, о которых важно помнить при написании шелл-кода позже. Эти символы будут считаться «плохими символами» при написании шелл-кода, и их следует избегать. Полное описание протокола KISS можно найти здесь: http://www.ax25.net/kiss.aspx
Выбор программы APRS
На aprs-is.net есть список некоторых известных клиентских программ APRS.
Просматривая список, я пришел к выводу, что более старый клиент, скорее всего, будет содержать уязвимости, связанные с повреждением памяти. Просмотрев различные варианты, я обнаружил, что на странице загрузки WinAPRS указано, что он не обновлялся с 14 января 2013 года. Я решил, что это хороший признак того, что программное обеспечение, вероятно, не поддерживается и, следовательно, содержит уязвимости. Я скачал последнюю версию (2.9.0) и приступил к работе.
В следующем посте этой серии мы обсудим процесс обратного проектирования с использованием WinDbg. Мы углубимся в мельчайшие технические детали эксплуатируемой уязвимости, приводящей к повреждению памяти в WinAPRS, в том числе о том, как она была обнаружена и почему ее можно использовать.
Перевод вот ЭТОЙ статьи.