Найти в Дзене
Обзор лучших сканеров уязвимостей.

Обзор лучших сканеров уязвимостей.

Лучшие сканеры уязвимостей.
подборка · 11 материалов
QARK ·   Цена: бесплатно Бывает, что нужно протестировать приложения для Android и iOS. И если с проверкой на секретные значения в коде все понятно, да и с анализом данных, сохраняемых в небезопасных местах, тоже, то некоторые баги выявить ой как непросто. Сюда попадает плохо реализованное шифрование (с помощью XOR, к примеру), некорректная обработка внешних ссылок, открытые activity, которые раскрывают приватную информацию, флаг android:debuggable=true и так далее. QARK (Quick App Review Kit) — бесплатный инструмент, созданный в компании LinkedIn, для быстрого анализа APK на некоторые уязвимости. Их список, как говорит разработчик, следующий: ·   некорректно экспортируемые элементы или неправильные права доступа к экспортируемым объектам; ·   уязвимые интенты; ·   неправильная работа с сертификатами X.509; ·   создание файлов, которые доступны другим приложениям, и работа с такими файлами; ·   дырявые activity; ·   использование захардкоженных приватных ключей; ·   слабые шифры; ·   tapjacking; ·   приложение разрешает бэкап своей приватной папки или имеет флаг android:debuggable=true. Утилита написана на Python и способна работать как на Linux, так и в Windows. Установить можно через pip или путем сборки исходников самостоятельно. Первый способ: pip install --user qark Второй способ: git clone https://github.com/linkedin/qark cd qark pgithub.com/...arkip install . --user После установки можно выполнить qark —help, чтобы прочитать справку. А можно и не выполнять, сейчас я кратко перескажу главное. Для анализа целого APK используется аргумент —apk FILE.APK: qark --apk ./my_app.apk Если вы решили тестировать с помощью этого инструмента свой (или декомпилированный чем-то другим) код, то используй аргумент —java: qark --java ./my_app_src Можно прогнать через сканер только какой-то отдельный файл: qark --java ./my_app_src/Main.java Особенность сканера в том, что к некоторым багам он умеет сразу сделать эксплоит, но эта функция слегка нестабильна и работает далеко не для всех багов, так что особенно надеяться на нее не стоит. Burp Suite ·   Цена: бесплатно / 400 долларов Было бы странно, если бы я не упомянул этот швейцарский нож из мира сканеров. Это целый комбайн, который умеет работать как прокси, сканер уязвимостей, паук-краулер, репитер запросов или платформа для множества плагинов. Про полезные плагины для Burp читайте в статье «Лучшие расширения для Burp Suite». Сканер разработала компания PortSwigger и выпустила в двух редакциях: Community (бесплатно) и Professional (400 долларов). Последняя отличается наличием в комплекте большого количества плагинов для Burp Intruder, наличием автоматического сканера и отсутствием ограничений в App Store. Имеется неплохой GUI с удобными вкладками, автоматические модули для подбора паролей, идентификаторов, фаззинга, кодировщики и раскодировщики данных в разных форматах. Вся информация в этой статье предоставлена исключительно в ознакомительных целях. Ни редакция сайта spy-soft.net, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи. Имейте в виду, что доступ к данным без предварительного письменного соглашения с их владельцем преследуется по закону. Источник
Gitleaks ·   Цена: бесплатно Как известно, чем крупнее продукт, тем больше для его разработки привлекается подрядчиков и тем больше рядовых сотрудников взаимодействуют с его кодом. И пока все действия выполняются на виртуальных машинах, не подключенных к сети, а всех входящих и выходящих проверяют на рентгеновском сканере, все выглядит хорошо. Но когда для разработки и тестирования приглашают подрядчиков, которые работают из дома, начинаются проблемы. Часто в коде тестов QA-специалистов попадаются привилегированные ключи для доступа к инфраструктуре, а Security-инженеры забывают приватную информацию в своих публичных репозиториях для бэкапов. Если найти такой ключик, то взлом может закончиться, даже не начавшись, так что нельзя забывать про этот вектор атаки. Подобные данные можно найти по запросам вида compcompany.coms и compcompany.comvate на GitHub, а можно и с помощью автоматических скриптов. Один из таких инструментов — это Gitleaks, который быстро и качественно найдет почти что угодно в любом открытом репозитории. Он умеет следующее: ·   проверять локальные изменения до коммита, чтобы избежать утечек данных еще на стадии разработки; ·   проверять любые репозитории GitHub/GitLab, в том числе приватные репозитории, если есть ключ доступа; ·   проверять все репозитории заданного пользователя или организации; ·   выдавать отчет в JSON, что удобно для последующего автоматического анализа; ·   интегрироваться с Git, чтобы предотвратить непреднамеренную утечку. Установить его можно с помощью Docker. docker pull zricethezav/gitleaks docker run --rm --name=gitleaks zricethezav/gitleaks -v -r [REPO_URL] Использование инструмента и все его ключи запуска описаны в справке к программе, но некоторые из них я продублирую здесь. ·   -v — детальный вывод сообщений; ·   —repo=[REPO] — ссылка на репозиторий для проверки; ·   —disk — клонировать репозиторий локально, чтобы не исчерпать всю память сразу; ·   —usename=[USER] и —password=[PASS] — указывает логин и пароль для доступа к приватному репозиторию; ·   —access-token=[TOKEN] — альтернатива авторизации по логину и паролю; ·   —commit=[COMMIT] — SHA коммита для анализа, если хочется проверить репозиторий в какой-то момент. По умолчанию проверяется текущее состояние; ·   —repo-path=[PATH] — анализировать локальный репозиторий по заданному пути; ·   —branch=[BRANCH] — анализировать только конкретный branch; ·   —depth=[NUM] — анализировать только [NUM] последних коммитов. Альтернатива — —commit-from=[COMMIT] и —commit-to=[COMMIT], проверяющие коммиты между заданными включительно; ·   —threads=[NUM] — сканировать в несколько потоков. Чтобы выпотрошить все репозитории конкретной организации или пользователя, используйте следующие параметры: ·   —org=[ORG] — искать и анализировать все репозитории организации [ORG]; ·   —user=[USER] — то же, но для пользователя; ·   —exclude-forks — исключить из анализа форки репозиториев. В них редко можно найти что-либо полезное, а вот сканирование эта опция ускорит значительно. Для использования этой функции надо указать утилите, какой сервис мы хотим задействовать. Пока поддерживаются GitHub и GitLab. Задать сервис можно опцией —host=[SERVICE], где [SERVICE] — GitHub или GitLab. В целом инструмент очень хороший и часто незаменимый. Рекомендую для использования в bug bounty и при пентестах.
PVS-Studio ·   Цена: ~5250 евро с возможностью получить бесплатно (и легально) Бывает, что в рамках bug bounty для исследования предлагают исходный код продукта. Однако хороших инструментов для автоматизации такой работы очень мало. Вручную же искать баги среди миллионов строк кода — занятие весьма неблагодарное, тем более что кодовая база в активном проекте регулярно обновляется. Исследователь устает, да и в принципе не способен выследить большинство косяков сам. Другое дело — софт! И тут нам помогли наши соотечественники, создав PVS-Studio. Это весьма годный коммерческий статический анализатор. PVS-Studio умеет находить ошибки в коде на C, C++, C# и Java. Для использования его нужно скачать с сайта разработчика и установить. Есть версии для Windows (в виде расширения для Visual Studio), Linux (пакеты deb и rpm) и macOS. Сканер уязвимостей требует регистрации — ввести ключ, полученный от разработчика. И тут я встретил самую быструю и дружелюбную реакцию среди всех производителей коммерческих сканеров. Пользоваться PVS-Studio можно разработчикам открытых проектов, публичным специалистам в ИБ и обладателям статуса Microsoft MVP. Если вы тоже занимаетесь ИБ — попробуйте получить такую лицензию. Если вы используеыр плагин для Visual Studio, то все найденные ошибки будут выведены в лог при компиляции или принудительной проверке. Ниже — пример использования. Я решил проверить код из своей прошлой статьи, и обнаружилась ошибка. В общем, сканер действительно хороший и быстрый, а пользоваться им при определенных обстоятельствах можно и бесплатно. Жаль, для остальных случаев цена кусается. Gitleaks ·   Цена: бесплатно Как известно, чем крупнее продукт, тем больше для его разработки привлекается подрядчиков и тем больше рядовых сотрудников взаимодействуют с его кодом. И пока все действия выполняются на виртуальных машинах, не подключенных к сети, а всех входящих и выходящих проверяют на рентгеновском сканере, все выглядит хорошо. Но когда для разработки и тестирования приглашают подрядчиков, которые работают из дома, начинаются проблемы. Часто в коде тестов QA-специалистов попадаются привилегированные ключи для доступа к инфраструктуре, а Security-инженеры забывают приватную информацию в своих публичных репозиториях для бэкапов. Если найти такой ключик, то взлом может закончиться, даже не начавшись, так что нельзя забывать про этот вектор атаки. Подобные данные можно найти по запросам вида company.ccompany.comompany.ccompany.comна GitHub, а можно и с помощью автоматических скриптов. Один из таких инструментов — это Gitleaks, который быстро и качественно найдет почти что угодно в любом открытом репозитории. Он умеет следующее: ·   проверять локальные изменения до коммита, чтобы избежать утечек данных еще на стадии разработки; ·   проверять любые репозитории GitHub/GitLab, в том числе приватные репозитории, если есть ключ доступа; ·   проверять все репозитории заданного пользователя или организации; ·   выдавать отчет в JSON, что удобно для последующего автоматического анализа; ·   интегрироваться с Git, чтобы предотвратить непреднамеренную утечку. Установить его можно с помощью Docker. docker pull zricethezav/gitleaks docker run --rm --name=gitleaks zricethezav/gitleaks -v -r [REPO_URL] Использование инструмента и все его ключи запуска описаны в справке к программе, но некоторые из них я продублирую здесь. ·   -v — детальный вывод сообщений; ·   —repo=[REPO] — ссылка на репозиторий для проверки; ·   —disk — клонировать репозиторий локально, чтобы не исчерпать всю память сразу; ·   —usename=[USER] и —password=[PASS] — указывает логин и пароль для доступа к приватному репозиторию; ·   —access-token=[TOKEN] — альтернатива авторизации по логину и паролю; ·   —commit=[COMMIT] — SHA коммита для анализа, если хочется проверить репозиторий в какой-то момент. По умолчанию проверяется текущее состояние; ·   —repo-path=[PATH] — анализировать локальный репозиторий по заданному пути; ·   —branch=[BRANCH] — анализировать только конкретный branch; ·   —depth=[NUM] — анализировать
Trivy ·   Цена: бесплатно Еще один сканер безопасности контейнеров того же разработчика (Aquasec). Для bug bounty пригоден куда меньше предыдущего, но довольно точен и быстр. Специализируется конкретно на Docker. Устанавливается чуть сложнее, чем Kube-hunter. Для установки в Debian, Ubuntu и Kali можно использовать следующий скрипт: sudo apt-get install wget apt-transport-https gnupg lsb-release wget -qO - httpsaquasecurity.github.io/...keydo apt-key add - echo deb httpsaquasecurity.github.io/...debb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list sudo apt-get update sudo apt-get install trivy После этого можно сканировать. Для этого просто выполните trivy [IMAGE_NAME]. Например: trivy python:3.4-alpine Результат — ниже. Total: 1 (UNKNOWN: 0, LOW: 0, MEDIUM: 1, HIGH: 0, CRITICAL: 0) +---------+------------------+----------+-------------------+---------------+--------------------------------+ | LIBRARY | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION | TITLE | +---------+------------------+----------+-------------------+---------------+--------------------------------+ | openssl | CVE-2019-1543 | MEDIUM | 1.1.1a-r1 | 1.1.1b-r1 | openssl: ChaCha20-Poly1305 | | | | | | | with long nonces | +---------+------------------+----------+-------------------+---------------+--------------------------------+ Можно сканировать образы в виде файлов: trivy --input image.tar За формат вывода отвечает ключ -f, который можно выставить в json. Есть также поддержка вывода по кастомному шаблону. Чтобы показать только определенные типы найденных уязвимостей, нужно указать ключ —severity и через запятую перечислить категории для отображения (UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL). PVS-Studio ·   Цена: ~5250 евро с возможностью получить бесплатно (и легально) Бывает, что в рамках bug bounty для исследования предлагают исходный код продукта. Однако хороших инструментов для автоматизации такой работы очень мало. Вручную же искать баги среди миллионов строк кода — занятие весьма неблагодарное, тем более что кодовая база в активном проекте регулярно обновляется. Исследователь устает, да и в принципе не способен выследить большинство косяков сам. Другое дело — софт! И тут нам помогли наши соотечественники, создав PVS-Studio. Это весьма годный коммерческий статический анализатор. PVS-Studio умеет находить ошибки в коде на C, C++, C# и Java. Для использования его нужно скачать с сайта разработчика и установить. Есть версии для Windows (в виде расширения для Visual Studio), Linux (пакеты deb и rpm) и macOS. Сканер уязвимостей требует регистрации — ввести ключ, полученный от разработчика. И тут я встретил самую быструю и дружелюбную реакцию среди всех производителей коммерческих сканеров. Пользоваться PVS-Studio можно разработчикам открытых проектов, публичным специалистам в ИБ и обладателям статуса Microsoft MVP. Если вы тоже занимаетесь ИБ — попробуйте получить такую лицензию. Если вы используеыр плагин для Visual Studio, то все найденные ошибки будут выведены в лог при компиляции или принудительной проверке. Ниже — пример использования. Я решил проверить код из своей прошлой статьи, и обнаружилась ошибка. В общем, сканер действительно хороший и быстрый, а пользоваться им при определенных обстоятельствах можно и бесплатно. Жаль, для остальных случаев цена кусается. Вся информация в этой статье предоставлена исключительно в ознакомительных целях. Ни редакция сайта spy-soft.net, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи. Имейте в виду, что доступ к данным без предварительного письменного соглашения с их владельцем преследуется по закону.
Nessus ·   Цена: бесплатно / 3120 долларов Nessus — коммерческий сканер безопасности американской компании Tenable. Также есть облачный сканер Tenable.io, на котором я не буду останавливаться подробно. У сканера три редакции: Essentials (для всех и бесплатно), Professional (3120 долларов в год) и Tenable.io, который, по сути, представляет собой отдельный продукт со своей ценой. При этом разница между редакциями Essentials и Professional лишь в количестве доступных для сканирования адресов и наличии поддержки по email. Сам сканер довольно увесистый (установщик больше 120 Мбайт, а после активации скачивает еще много дополнений), и скачать его можно только после регистрации, во время которой на почту придет код активации. Инициализация весьма продолжительная, у меня заняла порядка двадцати минут. Когда с этим будет покончено, можно начинать пользоваться веб-панелью. Nessus ищет следующие проблемы: ·   раскрытие версий ПО на хостах; ·   активная малварь; ·   уязвимость к брутфорсу; ·   слабые методы авторизации; ·   открытые данные на целях (возможность перечислить учетные записи и группы, удаленный реестр и сетевые папки); ·   некорректные разрешения и политики безопасности. Может работать как краулер. Лично мне не очень понравился, хотя бы жесткими рамками бесплатной версии. Kube-hunter ·   Цена: бесплатно Специализированный сканер уязвимостей для анализа безопасности кластеров Kubernetes. Распространяется по свободной лицензии Apache. Пользоваться им следует с осторожностью, потому что в погоне за добычей он может что-нибудь испортить. Впрочем, об этом можно не беспокоиться, пока вы работаете с ним в «обыкновенном» режиме. В таком режиме он будет находить дыры, но не полезет в них сам. Если же вы решили доверить все в руки Kube-hunter, есть режим «активной» охоты. Скачать сканер можно на GitHub, он написан на Python и нормально работает почти в любой ОС. Впрочем, можно использовать и Docker: docker pull aquasec/kube-hunter docker run --rm aquasec/kube-hunter [ARGUMENTS] После скачивания и установки зависимостей запускаем. Весь набор функций можно увидеть только с помощью дополнительных ключей запуска. Вот они: ·   —remote [ADDRESS] — сканировать кластер по адресу; ·   —cidr [CIDR] — найти и атаковать все кластеры в диапазоне адресов; ·   —active — тот самый режим активной охоты. Используйте, если в разрешении на пентест указано, что вы не несете ответственности за сохранность инфраструктуры заказчика. Короче, я предупредил; ·   —mapping — вывести все найденные узлы Kubernetes. Полезно с опцией —cidr; ·   —log [LEVEL] — выводить сообщения по уровню важности. [LEVEL] может быть DEBUG, INFO (по умолчанию) или WARNING; ·   —report [TYPE] — указывает формат вывода отчета. Может быть json, yaml или plain. Эту опцию можно сочетать со следующей; ·   —dispatch [MODE] — указывает, куда нужно отправить отчет после завершения сканирования. По умолчанию stdout, но можно отправить и по HTTP, тогда параметром нужно передать —dispatch http. А чтобы Kube-hunter знал, куда именно отправлять результаты, объясните ему это в переменных среды: ·   KUBEHUNTER_HTTP_DISPATCH_URL  (по умолчанию — https://localhost) ·   KUBEHUNTER_HTTP_DISPATCH_METHOD (по умолчаниюlocalhost)бная функция, которой нет в других сканерах, — возможность просматривать результаты работы на онлайновом дашборде, даже если сканер работает за NAT или еще как-то отгорожен от сети. Для использования фичи нужно зарегистрироваться на сайте компании. Скажу еще, что Kube-hunter можно использовать не только против удаленной цели. Еще его можно установить как pod и сканировать изнутри. Об этом подробнее расписано в файле readme. Вся информация в этой статье предоставлена исключительно в ознакомительных целях. Ни редакция сайта spy-soft.net, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи. Имейте в виду, что доступ к данным без предварительного письменного соглашения с их владельцем преследуется по закону. Этот охотник ищет косяки в удаленных кластерах, а затем одним метким выстрелом пробивает защиту.
Vega ·   Цена: бесплатно Еще один сканер с открытым исходным кодом, разработан в компании Subgraph. Да, той самой Subgraph, которая сделала клиент Tor на чистой Java. Удивительно, но Vega бесплатный, а по возможностям ничуть не хуже Acunetix. По заверениям производителя и собственным наблюдениям, сканер хорошо ищет следующие баги: ·   SQL-инъекции; ·   XSS; ·   XXE Injection; ·   Integer Overflow/Underflow (кстати, единственный сканер, который их нормально ищет); ·   раскрытие содержимого файла (local file inclusion); ·   внедрение кода; ·   path traversal; ·   внедрение HTTP-заголовков; ·   плохие настройки CORS. Сканер написан на Java, а значит, работает везде, где есть Java VM, включая, конечно, Windows и Linux. Недостатки: нужна та самая JVM, к тому же здесь нет веб-интерфейса. Запуск сканирования тоже тривиален, но, в отличие от других сканеров, у Vega много настроек. А скрыты эти настройки за кнопкой Next. Но и это еще не все! Есть поддержка авторизованного сканирования, причем без необходимости добавлять cookies из консоли. Короче, благодаря удобному GUI, качественной работе и куче возможностей это сейчас лучший выбор для пользователя Windows. Если же чего-то не хватит, всегда можно написать свой модуль на JavaScript. Было бы неправильно не упомянуть в этой подборке Nmap. Сам по себе он на звание сканера уязвимостей не тянет, но у него есть скриптовой движок. Даже «из коробки» он умеет проверять популярные баги, но вы легко можете сделать этот глаз еще зорче с помощью своих (или чужих) скриптов. Как их создавать, мы уже писали, а найти скрипт на любой вкус можно на GitHub.