# Использование сторонних компонентов с известными уязвимостями ## Описание уязвимостей этого типа Уязвимости, которые возникают с течением времени в программном обеспечении. Так как за время существования приложения находятся недостатки, которые могут быть использованы злоумышленниками для проведения атак. ## Причины возникновения уязвимостей Могут происходить из-за: - отсутствия механизмов проверки версионности используемых компонентов - отсутствия информации о опубликованной уязвимости - недостаточной оценке критичности уязвимости ## Демонстрация общедоступных систем публикации уязвимостей - https://nvd.nist.gov - https://cve.mitre.org - https://www.exploit-db.com - ... ## Последствия эксплуатации уязвимостей Уязвимости, которые попадают в публичные репозитории и исследования сразу могут стать популярными для использования против систем, которые могут работать с внешним миром, однако, важной составляющей уязвимости может стать: - результат (выполнение команд, отказ в обслуживании и т.д.) - распространенность ПО, где обнаружена уязвимость - популярность компании, где была найдена уязвимость ## Примеры эксплуатации уязвимостей, которые привели к большим утечкам данных - Log4Shell - Follina - Spring4Shell - Google Chrome Zero-Day - F5 BIG-IP - Microsoft Office Bug - ProxyNotShell - Zimbra Collaboration Suite Bugs - Atlassian Confluence RCE Flaw - Zyxel RCE Vulnerability ## Основные нашумевшие уязвимости (FREAK, POODLE, ShellShock, EventStream, Zip-Slip) **FREAK** - атака на понижение версии используемого шифрования для TLS. **CVE-2015-0204** - тоесть уязвимы будут все сервера и клиенты, которые используют версии openSSL ниже 1.01k. Так же считается, что данная уязвимость есть вообще во всех пакетах для работы с TLS, которые выходили до 2014 года. [Тут можно посмотреть насколько уязвимость популярна сегодня](https://en.fofa.info/result?qbase64=IkNWRS0yMDE1LTAyMDQi) **POODLE** - вид атаки на понижение версии шифроваиня для TLS через использование MiTM техник **CVE-2014-3566** - уязвимость, которая имеет несколько вариантов, так как после патча, был разработан метод эксплуатации, который использовал режим работы CBC AES для проведения Padding Oracle атаки. **ShellShock** - уязвимость в процессинге запросов на сервер, где для этого применялся Shell. **EventStream** - атака на поставщика, подразумевает, что злоумышленник занимается подменой известных пакетов или библиотек для работы приложения. **Zip-Slip** - уязвимость в ПО, которое использует для своей работы решения для архивации данных. Обычно работает с: - .tar - .jar - .war - .cpio - .apk - .rar - .7z Небольшой список уязвимых приложений и компонентов можно найти [тут](https://github.com/snyk/zip-slip-vulnerability). ## Оценка безопасности компонента Может быть произведена только, если применяются подходы для постоянного обеспечения безопасности приложений и **Patch Management**. Так же можно применить несколько простых правил: - Удалять неиспользуемые зависимости, неиспользуемые функции, компоненты, файлы и т.д. Эта процедура поможет уменьшить `поверхность атаки`. - согласовение версий `frontend` и `backend` и отслеживание известных уязвимостей для ПО - получение компонентов и библиотек из официальных или доверенных источников - мониторинг уязвимостей и проверка патчей - публикация информации об узявимости может не содержать подробностей о применимости патча для старых версий ## Пример эксплуатации веб-приложения с известной уязвимостью Развернуть приложенние можно из [этого](https://github.com/vulhub/vulhub/tree/master/cacti/CVE-2022-46169) репозитория. Для атаки будет использоваться фреймворк Metasploit: - открыть terminal - найти эксплойт - https://github.com/rapid7/metasploit-framework/blob/89378d54c8596aa7896741b12e314391a19b3c95/modules/exploits/linux/http/cacti_unauthenticated_cmd_injection.rb#L20 - создать файл в директории exploits и скопировать содержимое файла из предыдущего пункта - для kali linux это путь - /usr/share/metasploit-framework/exploits/ - запустить команду set PAYLOAD payload/linux/x64/exec - запустить команду set CMD "echo 'Test' >> /tmp/test.txt" - запустить команду set RHOST ip.add.dr - запустить команду exploit ip.add.dr - адрес уязвимого контейнера от cacti.