Файл: Назначение и структура системы защиты информации коммерческого предприятия (Введение в предметную область).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 20.05.2023

Просмотров: 316

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  1. Инъекции. Данная уязвимость возникает при отсутствии валидации или фильтрации вводимой пользователем информации; вредоносная информация встраивается напрямую в запрос или команду, например, SQL-запрос.

Пример атаки:

Допустим приложение использует следующую функцию:

«Querry = “SELECT * FROM customers WHERE id ='” + request.getParameter(“id”)+” '”)»

Злоумышленник может влиять на запрос. Например, если подставить «' or '1'='1», то это изменит запрос и результат выдачи. Очевидно, что это простейший пример. В худших случаях данная уязвимость может привести к исполнению произвольного кода на сервере, и, как следствие, компрометации всего сервера.

  1. Неправильная настройка аутентификации. Данная уязвиvость возникает если приложение позволяет допускает автоматизированные атаки, например метод грубой силы, когда атакующий перебирает все возможные пароли. Кроме того, отсутствие проверки сложности пароля может привести к этой уязвимости (например, пароли вида «admin/admin»).

Пример атаки:

Допустим у злоумышленника есть список пользователей системы. В больших компаниях это чаще всего сочетание имени и фамилии. Если отсутствует проверка на сложность пароля, количество попыток ввода и нет защиты от автоматического перебора, то имея список самых популярных паролей [12] и мощный компьютер, можно в течение дня получить доступ к аккаунтам всех пользователей системы.

  1. Доступность чувствительной информации. Данная уязвимость возникает при несоблюдении правил хранения персональных данных, утвержденных законами РФ, GDPR. Ярким примером может служить хранение персональных данных, логинов/паролей, бэкапов и их передача в незашифрованном виде по протоколам, которые можно перехватить, например, HTTP, FTP, SMTP.
  2. Внедрение внешней сущности (XXE). Если на сайте предусмотрена возможность загрузки пользователем XML файлов то злоумышленник может встроить внешнюю сущность, которая нарушит работу парсера и позволит совершать действия, не предусмотренные изначально. Неправильные настройки обработки DTD в XML парсере также ведут к этой уязвимости. К уязвимости может привести использование SAML для Single sign on (SSO). Поскольку SAML использует XML для идентификации личности, то он так же может быть уязвим.
  3. Неправильные настройки доступа. Управление доступом обеспечивает политику безопасности, таким образом, что пользователи не могут совершать действия, которые не предусмотрены его роли. При неправильных настройках доступа может произойти доступ к несанкционированному чтению, модификации и удалению данных. Распространенные уязвимости контроля доступа включают в себя:

  • Обход проверок контроля доступа путем изменения URL-адреса, внутреннего состояния приложения или HTML-страницы или простого использования пользовательского средства атаки API.
  • Разрешение изменения первичного ключа на запись другого пользователя, разрешение просмотра или редактирования чужой учетной записи.
  • Повышение привилегий. Злоумышленник действует как пользователь без входа в систему или как администратор при входе в систему как пользователь.
  1. Неправильная конфигурация системы безопасности. Уязвимость возникает при недостаточном количестве внимания безопасности. Обработка ошибок показывает трассировки стека или другие чрезмерно информативные сообщения об ошибках пользователям.

• Для модернизированных систем последние механизмы безопасности отключены или не настроены надежно.

• Параметры настройки безопасности в серверах приложений, среды разработки приложения (например, Django, ASP.NET), библиотеки, базы данных, и т.д. находятся в режиме отладки или выдают избыточную информацию об ошибках.

• Сервер не посылает заголовки безопасности или директивы, или они не собираются обеспечить безопасность данных.

  1. Межсайтовый скриптинг(XSS). Уязвимость возникает при отсутствии фильтрации ввода пользовательских данных, в результате чего пользователь может вставить произвольный javascript код, что позволит влиять на выдачу пользователю, подменяя содержимое сайта, воруя его данные и так далее. Существует 3 типа XSS: stored, reflected и DOM. Stored возникает, если злоумышленник может сохранить вредоносный код на сайте и его активирует другой пользователь. Reflected – возникает, когда злоумышленник дает ссылку на сайт, и в ссылке использует эту XSS уязвимость, то есть она не хранится на сайте и происходит активация только при переходе по вредоносной ссылке. DOM возникает из-за изменения злоумышленником DOM объекта. Такой уязвимости могут быть подвержены JavaScript фреймворки.
  2. Небезопасная десериализация. При такой уязвимости злоумышленник может изменять логику приложения или получить произвольное исполнение кода, если какие-либо классы приложения позволяют это сделать. Она возникает, если у атакующего есть возможность изменять десериализованные объекты. Наиболее часто это встречается в:
  • Remote- and inter-process communication (RPC/IPC)
  • Wire protocols, web services, message brokers
  • Базы данных, кэш серверы, файловые системы
  • HTTP cookies, API authentication tokens
  1. Использование ПО с изместными уязвимостями. Данная проблема в безопасности возникает либо из-за того, что используемое программное обеспечение не обновлялось длительное количество времени и в нем нашли различные уязвимости, либо из-за того, что разработчики не проверили уязвимо ли доступное програмнное обеспечение. Чаще всего проблема касается каких-либо гоотовых решений, например почтовый/ftp сервера, различные CMS.
  2. Недостаточное логирование и мониторинг. Проблема логгирования довольно важна для злоумышленников. Они полагаются на недостаточное логгирование и слабый мониторинг, что позволяет им действовать свободнее. Проблема возникает когда:

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

OWASP top 10 является приоритетной методологией, которую используют компании, поэтому и в нашем исследовании мы будем придерживаться её. Несмотря на это, стоит упомянуть о других методологиях классификации веб-уязвимостей.

The Web Application Security Consortium (WASC) является некоммерческой организацией, состоящей из международной группы экспертов, специалистов-практиков в отрасли и представителей организаций, которые производят открытый исходный код и широко согласованные стандарты безопасности на основе передового опыта для Всемирной паутины. Будучи активным сообществом, WASC облегчает обмен идеями и организует несколько отраслевых проектов. WASC постоянно публикует техническую информацию, статьи, руководящие принципы обеспечения безопасности и другую полезную документацию. Предприятия, учебные заведения, правительства, разработчики приложений, специалисты по безопасности и поставщики программного обеспечения во всем мире используют наши материалы для решения проблем, связанных с безопасностью веб-приложений. Данная организация разработала свою классификацию угроз [13]. Она отличается от OWASP тем, что некоторые классы атак расписаны подробнее, например, инъекции разделены на SQL инъекцию, SSL инъекцию и так далее. WASC может быть полезен начинающим специалистам по безопасности, так как он более подробен, чем OWASP и четко разграничивает разные виды уязвимостей. Несмотря на эти плюсы, предпочтение все равно отдают OWASP, поскольку его сообщество шире и в клад в развитие безопасности больше. Кроме того, обновления классификаций выходят чаще, чем в WASC.

Еще одним важным вкладом в развитие безопасности можно считать проект WASC «Distributed Open Proxy Honeypots». Благодаря этому проекту любой исследователь может подключиться к honeypot и посмотреть наиболее частые атаки, применяемые в настоящее время. Honeypot— ресурс, представляющий собой приманку для злоумышленников. Задача Honeypot — подвергнуться атаке или несанкционированному исследованию, что впоследствии позволит изучить стратегию злоумышленника и определить перечень средств, с помощью которых могут быть нанесены удары по реально существующим объектам безопасности. Honeypot собирает небольшое количество информации, после анализа которой строится статистика методов, которыми пользуются взломщики, а также определяется наличие каких-либо новых решений, которые впоследствии будут применяться в борьбе с ними.


ГЛАВА 2. ЭТАПЫ АУДИТА ЗАЩИТЫ ИНФОРМАЦИИ

2.1 Разведка

Перед тем, как проводить тестирование на проникновение, необходимо определить, с чем мы имеем дело. Для этого первым делом собирают всю возможную информацию о компании, аудит которой будет проводиться. Перечень информации в каждом случае уникален, однако есть перечень необходимого минимума. Самая важная информация – диапазон ip-адресов. Чаще всего у компании несколько адресов и важно определить их правильно, поскольку заключается договор именно с данным конкретным предприятием, и атака ip-адресов, не принадлежащих ей, будет уже уголовным преступлением. Кроме ip-адресов атакующего также интересуют поддомены сайта, поскольку могут быть поддомены вида: dev.example.com или beta.example.com, которые показывают, что есть какие-то прототипы. Кроме того, на разных поддоменах могут находиться разные сервисы, например, почтовый клиент, ftp-клиент и так далее. Немаловажным фактором успешного аудита является сбор информации с сайта и поддоменов: электронные адреса и телефоны сотрудников, ссылки на GitHub, headhunter или иные сайты по подбору персонала, различные файлы, в числе которых могут быть важные и секретные, которые остались в открытом доступе из-за неправильных настроек сервера. Не стоит забывать и про структуру HTML кода, поскольку в нем могут содержаться говорящие названия выпускаемых продуктов, могут быть ссылки на другие адреса и так далее. Многое из этой информации может пригодиться для социальной инженерии, которая также часто применяется при проведении аудита. Социальная инженерия – это метод получения необходимого доступа к информации, основанный на особенностях психологии людей. Основной целью социальной инженерии является получение доступа к конфиденциальной информации, паролям, банковским данным и другим защищенным системам. Пентестеры же используют этот метод на этапе разведки, чтобы втереться в доверие к сотрудникам, как действующим, так и бывшим, разузнать побольше о компании, выведать ее проблемные места.

Выделяют 2 вида разведки: активная и пассивная. Отличие состоит в том, что в случае пассивной разведки сайт не знает, что пентестер взаимодействует с ним, а в случае активной знает. Пассивную разведку также называют OSINT – разведка по открытым источникам. Как раз в этот вид разведки включат сбор информации в интернете, поиск ссылок на компанию, сотрудников и их github, определение стека технологий по вакансиям, размещенных на различных поисковых сайтах, поиск поддоменов и так далее. Для получения этой информации используется разное программное обеспечение. По словам сами пентестеров, главный инструмент разведки на этом этапе – google. Этот поисковик, как и многие другие имеет Dorks: возможности поиска определенных элементов среди всех сайтов. Рассмотрим самые безобиднее: логические операторы (Где живет Вася OR Петя), фразы в кавычках будут искаться дословно (“именно это я хочу найти”), можно убирать ненужные результаты выдачи при помощи знака минус (Кузьминов –ректор). В последнем случае нам будут выведены все результаты о Кузьминове, но не будет упоминаний ректора Высшей школы экономики. Есть и Dorks, которые помогают искать информацию о сайте, например, «site:example.com» выведет нам все поддомены сайта example.com, filetype: позволяет искать файлы определенных расширений, например pdf, doc и другие важные документы, которые могут быть в открытом доступе, inurl: позволяет нам искать определенные запросы в адресе сайта, например, запрос «inurl:"RootFolder=" Allitems "confidential" | "classified" | "passwords" | username» показывает нам уязвимые директории. Существует база наиболее популярных DORK [14]


Для разведки чаще всего используют Dorks «site:», «filetype:», «email “example.com”». они позволяют извлечь почти всю информацию из сайта: его поддомены, то есть все возможности, откуда можно попробовать атаковать сайт; позволяет получить все документы, электронные адреса компании. Очевидно, что у крупных компаний очень много электронных адресов, документов и поддоменов огромное количество, поэтому для сбора информации используют специальное программное обеспечение. Главным инструментом является FOCA. Это open-source программное обеспечение, которое использует Dorks вместо пользователя и выводит нужную ему информацию в удобном виде. Кроме того, FOCA позволяет скачивать любые документы, находящие в открытом доступе на сайте. У этой программы есть аналоги для поиска доменов, например, searchdns.netcraft.com, virustotal.com/#/home/search, community.riskiq.com/home. Эти сайты, как и FOCA, не позволяют определить ip адрес сайта, для этой цели используются другие аналоги. Наиболее популярным аналогом является сайт dnsdumpster.com. Он не только определяет все поддомены сайта, их расположение, но и определить их ip адрес, страну, где расположены сервера, хосты, карту сайта, его поддоменов. Это все позволяет составить картину о сайте, структуре компании. Стоит отметить, что использование FOCA и других программ переводит разведку из пассивной в активную категорию, поскольку происходит взаимодействие с сайтом. Для пассивной разведки стоит использовать веб-аналоги: google, shodan.io и другие. Активную разведку также называют этапом сканирования.

2.2 Сканирование

Этап сканирования включает в себя активный автоматизированный сбор информации. Пентестеры сканируют весь диапазон ip-сети предприятия, так как в этой сети могут быть домены, отличные от основного сайта, кроме того в ней могу находиться различные устройства интернета вещей, SKADA (программный пакет, предназначенный для разработки или обеспечения работы в реальном времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления), АСУ ТП и другие устройства. Чаще всего главной целью пентестеров является основной сайт. Для сбора информации с сайта используются либо специализированные расширения для браузеров google chrome/firefox, либо программы типа harvester, которые позволяют собирать информацию о всех email-адресах на сайте. Для получения информации о структуре сайта они пытаются понять, какие папки есть в директории сайта, так как при неправильной настройке доступа, у них будет возможность получить доступ к данным, которые там хранятся. Первым делом просматривается файл robots.txt. Этот файл есть у каждого сайта, так как в нем находится список директорий, которые не должны индексироваться поисковиками. То есть, если на сайте example.com в robots.txt прописано «Disallow: /admin.php», это что поисковик не будет выдавать «example.com/admin.php». Часть директорий в этом файле может быть открытой для просмотра, но закрытой для поисковиков. Это может произойти из-за неверного понимания принципа работы этого файла. Исследовав этот файл, пентестеры запускают программу для поиска директорий. Чаще всего это dirb/dirbuster. Принцип работы программы прост: используя заранее созданный словарь наиболее популярных названий директорий, файлов программа делает запрос к ним, если ответ отличается от «404 Not Found», то выводится информация о директории и код доступа к ней. Наиболее ценными являются ответы с кодом 200 – файл доступен, то есть его можно открыть. Наиболее частные же ответы – 403 (необходима авторизация), 302 (перенаправление на другую страницу). Очевидно, что из-за специфики работы программы, можно настроить обработчик страниц, который на все запросы будет выдавать код 200, а при открытии страницы будет писаться, что нет доступа, либо такой адрес не существует. В таком случае, либо пишут свои программы, способные обходить это, либо ищут вручную. Отдельная ценность данных программ в том, что они могут обнаружить .git архив расположенный в директории сайта. Если это произошло, то используя специальную программу (ссылка на двс риппер) можно скачать этот репозиторий и получить исходный код сайта.