122

Скучная история про первый взлом с картинками

Как и было обещан пост про первый взлом. Те, кто ждут эпических событий, и прочие фантазии - здесь вы этого не найдете. На дворе год эдак 2009-й я создал несколько сайтов (занимался бизнесом). Потом случаем наткнулся на описание атак на сайты... Взломанный сайт - угроза репутации, а значит нужно изучить врага, чтобы знать, как с ним бороться.


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


1. Добавление информации. Атаки данного типа добавляют на атакуемый ресурс что-то, чего там не должно быть. Это и спам, и реклама и XSS атаки (с которой я и начал).

2. Изменение информации. Атака вносит изменения в существующий контент или данные сайта.

3. Получение информации. Атака имеет целью получить данные обычно не доступные пользователям.

4. Удаление информации. Атака имеет целью уничтожение информации.

5. Отказ в обслуживании. Атака имеет целью предотвратить доступ пользователей к атакуемому ресурсу.


Способы осуществления атак:

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

2. "Пятая колонна". Атаку производит легальный пользователь, который имеет доступ к оборудованию из-за корысти или из личных побуждений.

3. "Один-к-одному". Атаку на целевую систему проводит один аппаратно-программный комплекс.

4. "Много-к-одному". Атаку на целевую систему проводит множество аппаратно-программных комплексов (ботнет).

5. "Зевок". Атака является следствием нарушений правил информационной безопасности (простые пароли, открытые порты).

6. "Рикошет". Атака на целевую систему производится сторонней системой в результате эксплуатации уязвимости на ней.

7. "Троян". Система атакуется после регистрации путем повышения привилегий от гостевого доступа к администратору.

8. "Человек посередине". Атака идет на прослушивание канала связи.

9. "Спамер". Атака на ресурс путем заваливания его различной информацией. В основном DDoS.

10. "Хамелеон". Атака, когда компьютер ломщика пытается прикинуться легальной машиной.

Вообще их много, так что на этом остановимся.


Итак, перейдем к основным концепциям атаки. Изучив разные типы атак, я решил начать с элементарного - XSS. Если бы не каскадные таблицы стилей она называлась бы CSS - Cros-Site-Scripting - межсайтовый скриптинг. Это атака с целью добавления информации. Сперва немного теории. Сейчас Вы все читаете данный пост просматривая сайт Пикабу. Технически сайт - каталог не сервере (или нескольких серверах) в котором расположены обычные файлы. В результате работы интерпретатора PHP на языке HTML создается веб-страница, которая дополняется сторонней информацией из различных сторонних файлов. В числе прочих там же могут быть и JavaScript, это встраиваемый в браузер интерпретируемый язык программирования, который может делать со страницей все, в т.ч. похищать информацию об авторизации и любые данные видимые пользователю.


Итак, была выбрана самая простая в реализации атака XSS. Если открыть сайт в режиме просмотра кода Ctrl+U, то мы увидим, что начинку сайта представляет собой примерно такую картину:


Для того, чтобы атаковать нам нужна "точка входа", это те данные, которые может принять атакуемая система от нас. Атаковать я решил одну из самых больных тем - имя пользователя. Смысл в том, что атака на имя пользователя будет распространятся по всему сайту т.к. везде, где отображается имя пользователя будет выполнятся вредоносный код.


Эмулируем атаку. Нажимаем Shift+Ctrl+I (я работаю в Firefox) и попадаем в Инструменты разработчика. Вкладка "Инспектор". Нажимаем на значок выбора объекта, выделяем и нажимаем на нужный (атакуемый) элемент.

Как видим имя автора поста заключено в тег "а" содержит параметры class, href и в теле тега содержит имя пользователя. Как браузер определяет окончание тела тега? Он ищет знак обрамляющий открывающий и закрывающий тег - знак меньше. Закроем тег и добавим скрипт.


Это простой скрипт выводит окошко с приветствием. Если нам удалось зарегистрироваться с таким "странным" ником и он заработал (вывел сообщение) - значит сайт уязвим. Проверяем, что данный код работает, для этого сохраняем локально исправленный HTML и открываем его в браузере:

Обратите внимание, что окно появилось сразу после отображения логина. Данный "взлом" (хотя это и не взлом, а демонстрация работы XSS) - "ручной" т.е. мы руками попробовали взломать что-то и это крайне не продуктивный путь. В реале берется атакуемая система, вручную производится атака и пишется приложение, называемое эксплойтом, которое проводит выявленную атаку на заданный список целей.  Поскольку сегодня за реальную атаку можно получить реальный срок, то искать уязвимые сайты мы не будем. А самая первая атака заключалась в том, что я просто пытался зарегистрироваться на сайте используя логин + XSS вставку и на 5 попытке мне это удалось. После успешной регистрации я написал админу сайта о выявленной уязвимости. Уязвимым может быть все к чему имеет доступ пользователь и даже то, доступа к чему он не имеет ;-)


Теперь о том, что я вынес для себя из этой атаки:


1. "Точки входа" == "векторы атак". Код нужно писать исходя из тезиса, что любые запрошенные данные будут использоваться для взлома. Следовательно, архитектура приложения и запрос данных исключительно на основании "белых списков" возможных значений.


2. Невозможно написать идеальный код, обязательно будут ошибки. Как следствие - кода нужно писать как можно меньше, чтобы он оставался читаемым и понимаемым.


3. Фреймворки можно использовать только в самых крайних случаях т.к. используя фреймворк можно самому включить уязвимости в проект. Безусловно, что использование фреймворков ускоряет и облегчает разработку, но и опасность таит немалую.


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


Сам по себе успешный взлом - изучение массы литературы, часы иногда десятки, бывает и сотни часов попыток и только потом результат. Именно поэтому взломщики делятся на две категории: "за деньги", которые атакуют исключительно распространенные приложения и сервисы и "за идею", которые атакуют все подряд. Тем, кто зарабатывает на взломе не интересно сидеть сутками ради взлома сервиса с которого ничего не поиметь или поиметь мало.


В БМ дичь.

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.


Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

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

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества