Эксплуатация уязвимости – скрытые от администратора «зловреды»


19.04.2012

Данная статья ни в коем случае не является инструкцией по эксплуатации уязвимости. Так же в статье не приводится информации о том, как найти уязвимость, поскольку подразумевается, что оная существует. Все приведённые в статье материалы – пища для размышлений опытных web администраторов, которые работают с крупным проектом и вполне могут столкнуться с подобной или иной проблемой.

Сразу хочется отметить тот факт, что ни одна из существующих на рынке систем управления сайтом не позволяет свести к нулю возможность эксплуатации данной уязвимости, однако грамотное использование возможностей модуля проактивной защиты 1С-Битрикс позволяет значительно усложнить жизнь злоумышленники, предотвратив или обнаружив многие из сценариев эксплуатации.


Первоначальная посылка – на сайте есть уязвимость, известная злоумышленнику. Это может быть похищенные реквизиты доступа к FTP, административному разделу или залитый shell – принципиально лишь то, что потенциальный злоумышленник обладает как минимум доступом к файловой системе сайта (а значит скорее всего и к БД, поскольку реквизиты указаны в файловой системе в явном виде и найти их зная архитектуру не сложно).

Метод можно условно разделить на 3 этапа:

  • Определение параметров скрытия ущерба;
  • Определение метода нанесения ущерба;
  • Эксплуатация.

Определение параметров скрытия ущерба

На данном этапе предлагается выделить сегмент посетителей сайта, которые будут видеть нормальную версию и «вредоносную версию».

Для этого можно предложить 2 основных варианта выбора пользователя:

  • по IP
  • по User Agent

Наши задачи:

  • Выделить администраторов и не показать им «вредоносную» версию 100% (например локализовать IP и/или User Agent)
  • Выделить НЕадминистраторов (поисковые роботы и/или посетители сайта) и показать им «вредоносную версию»

Мы остановимся более подробно на том что такое «вредоносная версия во втором разделе и это сделает более понятным по каким правилам злоумышленник должен выбирать сегмент. Естественно, что расширение выборки на этом этапе увеличивает как величину урона, так и риск быть обнаруженным администратором или лояльным пользователем сайта. После обнаружения эксплуатация уязвимости возможно неопределённый срок – от месяцев и лет, если администраторы так и не сумеют закрыть уязвимость до нескольких минут, если причина проблемы станет понятна сразу и её легко будет исправить. Так же это подвергает злоумышленника риску быть идентифицированным правоохранительными органами.

Определение метода нанесения ущерба

Во-первых, необходимо сказать, что можно просто вредить, а можно ещё и зарабатывать на этом.

К первому относится размещение на сайте разного контента для пользователей и роботов поисковых систем (клоакинг) за что налагаются серьёзные штрафы в ПС, выдава порнографического или иного нелегального контента, а так же размещение вирусного кода.

Второе может сочетаться с первым за счёт размещение рекламы (конечно, если уязвимость эксплуатирует конкурент, то странно ожидать увидеть его рекламу, но всё бывает) как правило навязчивой (несколько сплывающих, труднозакрывающихся окон поверх содержимого сайта, как вариант) в этом случае злоумышленник ещё и может заработать.

Эксплуатация

По сути вариантов 2:

  • База данных
  • Файлы

А вот особенности могут быть очень различными (начиная с намеренной порчи файлов кеша и заканчивая добавлением каких-нибудь хитрых редиректов). Естественно конкретная эксплуатация очень зависит от движка, однако есть ряд общих уязвимых мест.

Так же не следует забывать о том, что злоумышленник может не только вредить уже имеющиеся ресурсы, но и создавать свои собственные (например целый раздел с дорвем в папке для хранения бекапов вряд ли хорошо скажется на позициях вашего сайта в поиске), а главное выявить подобные проблемы как правило очень сложно!

Полностью процесс изображён на схеме внизу:

уязвимость web проекта

Во второй части мы разберём некоторые конкретные «узкие» моменты, способы борьбы с ними средствами 1С-Битрикс и сделаем небольшую экстраполяцию на другие платформы.


Историческая справка. К тому, что описывается в данной статье, мы пришли в несколько итераций поочерёдно ставя себя на место потенциального злоумышленника и администратора веб проекта. Изначально нашей целью было исследование эксплуатации уязвимости с полным доступом злоумышленником, пытающимся нанести неидентифицируемый вред, т.е. когда источник, причина и суть вреда, наносимого ресурса невозможно (или очень трудно) определить на протяжении длительного времени.


Эксплуатация уязвимости – скрытые от администратора «зловреды»

<p style="text-align: justify; ">Данная статья ни в коем случае не является инструкцией по эксплуатации уязвимости. Так же в статье не приводится информации о том, как найти уязвимость, поскольку подразумевается, что оная существует. Все приведённые в статье материалы – пища для размышлений опытных web администраторов, которые работают с крупным проектом и вполне могут столкнуться с подобной или иной проблемой.</p> <p style="text-align: justify; ">Сразу хочется отметить тот факт, что ни одна из существующих на рынке систем управления сайтом не позволяет свести к нулю возможность эксплуатации данной уязвимости, однако грамотное использование возможностей модуля проактивной защиты 1С-Битрикс позволяет значительно усложнить жизнь злоумышленники, предотвратив или обнаружив многие из сценариев эксплуатации.</p> <p style="text-align: justify; "> <br /> </p> <p> </p> <p style="text-align: justify; "><b>Первоначальная посылка</b> – на сайте есть уязвимость, известная злоумышленнику. Это может быть похищенные реквизиты доступа к FTP, административному разделу или залитый shell – принципиально лишь то, что потенциальный злоумышленник обладает как минимум доступом к файловой системе сайта (а значит скорее всего и к БД, поскольку реквизиты указаны в файловой системе в явном виде и найти их зная архитектуру не сложно).</p> <p style="text-align: justify; ">Метод можно условно разделить на 3 этапа:</p> <p> </p> <ul> <li style="text-align: justify; ">Определение параметров скрытия ущерба;</li> <li style="text-align: justify; ">Определение метода нанесения ущерба;</li> <li style="text-align: justify; ">Эксплуатация.</li> </ul> <p></p> <h2 style="text-align: justify; ">Определение параметров скрытия ущерба</h2> <p style="text-align: justify; ">На данном этапе предлагается выделить сегмент посетителей сайта, которые будут видеть нормальную версию и «вредоносную версию».</p> <p style="text-align: justify; ">Для этого можно предложить 2 основных варианта выбора пользователя:</p> <p> </p> <ul> <li style="text-align: justify; ">по IP</li> <li style="text-align: justify; ">по User Agent</li> </ul> <p></p> <p style="text-align: justify; ">Наши задачи:</p> <p> </p> <ul> <li style="text-align: justify; ">Выделить администраторов и не показать им «вредоносную» версию 100% (например локализовать IP и/или User Agent)</li> <li style="text-align: justify; ">Выделить НЕадминистраторов (поисковые роботы и/или посетители сайта) и показать им «вредоносную версию»</li> </ul> <p></p> <p style="text-align: justify; ">Мы остановимся более подробно на том что такое «вредоносная версия во втором разделе и это сделает более понятным по каким правилам злоумышленник должен выбирать сегмент. Естественно, что расширение выборки на этом этапе увеличивает как величину урона, так и риск быть обнаруженным администратором или лояльным пользователем сайта. После обнаружения эксплуатация уязвимости возможно неопределённый срок – от месяцев и лет, если администраторы так и не сумеют закрыть уязвимость до нескольких минут, если причина проблемы станет понятна сразу и её легко будет исправить. Так же это подвергает злоумышленника риску быть идентифицированным правоохранительными органами.</p> <h2 style="text-align: justify; ">Определение метода нанесения ущерба</h2> <p style="text-align: justify; ">Во-первых, необходимо сказать, что можно просто вредить, а можно ещё и зарабатывать на этом.</p> <p style="text-align: justify; ">К первому относится размещение на сайте разного контента для пользователей и роботов поисковых систем (клоакинг) за что налагаются серьёзные штрафы в ПС, выдава порнографического или иного нелегального контента, а так же размещение вирусного кода.</p> <p style="text-align: justify; ">Второе может сочетаться с первым за счёт размещение рекламы (конечно, если уязвимость эксплуатирует конкурент, то странно ожидать увидеть его рекламу, но всё бывает) как правило навязчивой (несколько сплывающих, труднозакрывающихся окон поверх содержимого сайта, как вариант) в этом случае злоумышленник ещё и может заработать.</p> <h2 style="text-align: justify; ">Эксплуатация</h2> <p style="text-align: justify; ">По сути вариантов 2:</p> <p> </p> <ul> <li style="text-align: justify; ">База данных</li> <li style="text-align: justify; ">Файлы</li> </ul> <p></p> <p style="text-align: justify; ">А вот особенности могут быть очень различными (начиная с намеренной порчи файлов кеша и заканчивая добавлением каких-нибудь хитрых редиректов). Естественно конкретная эксплуатация очень зависит от движка, однако есть ряд общих уязвимых мест.</p> <p style="text-align: justify; ">Так же не следует забывать о том, что злоумышленник может не только вредить уже имеющиеся ресурсы, но и создавать свои собственные (например целый раздел с дорвем в папке для хранения бекапов вряд ли хорошо скажется на позициях вашего сайта в поиске), а главное выявить подобные проблемы как правило очень сложно!</p> <p style="text-align: justify; ">Полностью процесс изображён на схеме внизу:</p> <p style="text-align: justify; "><img src="/upload/medialibrary/8d4/8d4710cee8254bf2f751dd8df37d7b12.png" title="уязвимость web проекта" hspace="5" vspace="5" border="0" alt="уязвимость web проекта" width="700" height="942" /></p> <p style="text-align: justify; ">Во <a href="/information/ekspluatatsiya_uyazvimosti_protivostoim_modulem_proaktivnaya_zashchita_1s_bitriks/" title="Эксплуатация уязвимости – противостоим модулем «Проактивная Защита» 1С-Битрикс" >второй части</a> мы разберём некоторые конкретные «узкие» моменты, способы борьбы с ними средствами 1С-Битрикс и сделаем небольшую экстраполяцию на другие платформы.</p> <p style="text-align: justify; "> <br /> </p> <p> </p> <p> </p> <p style="text-align: justify; "><b>Историческая справка.</b> К тому, что описывается в данной статье, мы пришли в несколько итераций поочерёдно ставя себя на место потенциального злоумышленника и администратора веб проекта. Изначально нашей целью было исследование эксплуатации уязвимости с полным доступом злоумышленником, пытающимся нанести неидентифицируемый вред, т.е. когда источник, причина и суть вреда, наносимого ресурса невозможно (или очень трудно) определить на протяжении длительного времени.</p>

Возврат к списку

Яндекс.Метрика