
OWASP ASST (Automated Software Security Toolkit) | Новый сканер безопасности веб-приложений с открытым исходным кодом.
OWASP ASST (Automated Software Security Toolkit) | Новый открытый веб-сканер безопасности.
Примечание: AWSS — это старое название ASST

Веб-приложения стали неотъемлемой частью повседневной жизни, однако многие из них развертываются с критическими уязвимостями, которые могут быть фатально использованы. По мере того как технологии, используемые для разработки этих приложений, становятся сложнее, совершенствуются и методы атакующих. Злоумышленникам больше не нужен физический доступ к жертвам, они могут атаковать нескольких одновременно, а вероятность быть пойманными и привлеченными к ответственности минимальна. Автоматизированные сканеры уязвимостей веб-приложений активно используются для оценки безопасности веб-приложений. Они могут повысить эффективность сканирования уязвимостей по сравнению с традиционным ручным обнаружением, которое требует много времени, труда и неэффективно. В интернете существует множество сканеров веб-уязвимостей, однако они не объясняют возможную атаку и способы защиты от нее. Мы разработали и реализовали новый автоматизированный сканер уязвимостей под названием Automated Software Security Toolkit (ASST), который сканирует исходный код веб-проекта и генерирует отчет с подробным объяснением каждой возможной уязвимости и способов защиты от нее. Мы протестировали производительность ASST и сравнили его результаты с другими основными открытыми сканерами уязвимостей. Наши результаты показывают, что ASST может выявлять уязвимости безопасности веб-программного обеспечения более полно и точно.
ПРИМЕЧАНИЕ: Инструмент все еще находится в разработке. Пожалуйста, сообщайте о любых найденных ошибках.
ASST — это открытый инструмент сканирования исходного кода, приложение CLI (Command Line Interface), разработанное на JavaScript (фреймворк Node.js).
В настоящее время он ориентирован на языки программирования PHP и MySQL, но поскольку его основные функции готовы и доступны для всех, программисты могут внести свой вклад и добавить плагины или расширения для добавления функций и сканирования других языков, таких как Java, C#, Python и т.д., а также их фреймворков. Его инфраструктура разработана таким образом, чтобы другие программисты могли вносить вклад, делая его лучше и инновационнее.
Насколько нам известно, ASST — единственный инструмент, который сканирует язык PHP в соответствии с OWASP Top 10 рисков безопасности веб-приложений.
Когда ASST сканирует проект, он проверяет каждый файл построчно на наличие уязвимостей безопасности. Если обнаружена уязвимость, в отчете будет указано, в какой строке какого файла она обнаружена, а также будет ссылка "Click Here", объясняющая атаку и способы защиты от нее.
Результаты ASST выводятся в виде HTML-отчета, связанного с PDF-файлами, в которых объясняется каждая атака и механизм ее защиты.
ASST можно легко расширить для поддержки других языков программирования, которые можно сканировать на уязвимости. Проект с открытым исходным кодом, поэтому программисты с опытом в кибербезопасности могут внести свой вклад или сделать форк инструментария и добавить функции. Другие языки программирования, такие как Python, C#, Java или сам Node.js, могут быть добавлены для сканирования на уязвимости в качестве серверного кода.
Если вы опытный разработчик в области безопасности, вы можете внести вклад в улучшение текущей версии или добавить новые языки программирования для сканирования. Но при улучшении необходимо соблюдать следующие правила:
Чтобы ASST работал на 100%, вам потребуется установить:
Полное видео по запуску ASST на Windows: https://youtu.be/FKxDa3zYz1E
Вы можете скачать XAMPP для Windows здесь: https://www.apachefriends.org/download.html выберите версию PHP, подходящую для вашего проекта. Если не знаете, какую версию выбрать, просто выберите первую для Windows.
После загрузки и установки XAMPP (Далее, Далее, Далее, Готово) запустите XAMPP Control Panel. Вы можете ввести XAMPP в поле поиска меню «Пуск», затем увидите его. Запустите, рядом с метками Apache и MySQL нажмите «Start» (две кнопки).
Убедитесь, что на вашем ПК не установлена программа виртуальной машины, так как XAMPP и виртуальные машины конфликтуют по портам. Вам придется принудительно закрыть фоновые службы VM через Диспетчер задач (поищите в Google, если не знаете, о чем я говорю).
Убедитесь, что программа Skype закрыта (даже из панели задач), так как они также конфликтуют по портам. Вы можете запустить Skype после запуска XAMPP.
Поместите папку вашего проекта в htdocs: по умолчанию «C:\xampp\htdocs\YourProjectFolderName»
Откройте браузер, введите localhost/phpmyadmin, создайте пустую базу данных, импортируйте в нее файл project_database.sql, откройте папку вашего проекта и измените файл конфигурации для подключения к localhost MySQL: стандартные настройки: host: «localhost» или «127.0.0.1», username: «root», password: «» (пустая строка), database name: «dbname_you_chose_in_phpmyadmin»
Вы должны загрузить определенную версию Node.js для Windows отсюда: https://nodejs.org/en/blog/release/v12.13.0/ выберите (Windows 64-bit Installer), затем загрузите, Далее, Далее, Далее и Готово.
Мы не обновляемся до новых версий nodejs каждый месяц, поэтому, если вы хотите протестировать самостоятельно, вы можете загрузить последнюю версию node.js отсюда: https://nodejs.org/en/download/ выберите (Windows Installer (.msi)), загрузите и запустите, Далее, Далее, Далее и Готово.
Загрузите и распакуйте проект ASST с этой страницы GitHub, переименуйте папку в «ASST», а не «ASST-main», переместите папку ASST рядом с вашим веб-проектом для сканирования, по умолчанию: «C:\xampp\htdocs\ASST»
Откройте config.js внутри папки ASST и задайте имя папки вашего веб-проекта для сканирования в переменной DEFAULT_PROJECT_PATH_TO_SCAN.
Откройте config_php_lang.js внутри папки ASST: если вы используете MySQL, задайте переменные, как описано в файле; если вы не используете MySQL, просто установите переменную IS_DBMS_USED в false и игнорируйте остальное. Обратите внимание, что PHP_EXE_BIN_PATH установлен по умолчанию для XAMPP, поэтому измените его, если используете другой бинарный файл PHP или другое расположение XAMPP.
Дважды щелкните ASST.bat для запуска. Если он блокируется Windows Defender Smart Screen, разрешите, нажав «More Info», затем «Run Anyway», или просто запустите через командную строку CMD.
Выполните эту команду один раз для установки node_modules для этого проекта:
$ cd C:\xampp\htdocs\ASST && npm install
Стандартная команда CMD для запуска ASST:
$ node C:\xampp\htdocs\ASST\main.js
Полное видео по запуску ASST на Ubuntu: https://youtu.be/XrAB8_BHxfo
С помощью веб-браузера откройте эту ссылку: https://www.apachefriends.org/download.html и найдите раздел «XAMPP for Linux», выберите версию PHP, подходящую для вашего проекта, и загрузите ее. Если не знаете, какую версию выбрать, просто выберите первую. Или вы можете загрузить XAMPP через терминал с помощью команды (инструмента) «wget», но вам понадобится правильный URL версии для загрузки.
Теперь работаем в терминале:
$ cd Downloads
$ ls
Вы должны увидеть загруженный установочный файл XAMPP.
$ sudo chmod +x xampp-linux-*
$ sudo ./xampp-linux-*
Подождите секунду, пока запустится установка, затем следуйте инструкциям. После загрузки и установки XAMPP запустите его.
$ sudo /opt/lampp/lampp start
Поместите папку вашего проекта в htdocs: по умолчанию «/opt/lampp/htdocs/YourProjectFolderName»
Откройте браузер, введите localhost/phpmyadmin, создайте пустую базу данных, импортируйте в нее файл project_database.sql, откройте папку вашего проекта и измените файл конфигурации для подключения к localhost MySQL: стандартные настройки: host: «localhost» или «127.0.0.1», username: «root», password: «» (пустая строка), database name: «dbname_you_chose_in_phpmyadmin»
$ sudo apt-get install nodejs -y
$ sudo apt-get install npm -y
Вы должны установить определенную версию Node.js, чтобы ASST работал без проблем.
$ sudo npm install n -g
$ sudo n 12.13.0
Мы не обновляемся до новых версий nodejs каждый месяц, поэтому, если вы хотите протестировать самостоятельно, вы можете пропустить последние две команды установки «n» с помощью npm.
Загрузите и распакуйте проект ASST с этой страницы GitHub, используя браузер, wget или git, переименуйте папку в «ASST», а не «ASST-main», переместите папку ASST рядом с вашим веб-проектом для сканирования, по умолчанию: «/opt/lampp/htdocs/ASST»
Откройте config.js внутри папки ASST с помощью nano, vim или текстового редактора и задайте имя папки вашего веб-проекта для сканирования в переменной DEFAULT_PROJECT_PATH_TO_SCAN.
Откройте config_php_lang.js внутри папки ASST: если вы используете MySQL, задайте переменные, как описано в файле; если вы не используете MySQL, просто установите переменную IS_DBMS_USED в false и игнорируйте остальное. Обратите внимание, что PHP_EXE_BIN_PATH установлен по умолчанию для XAMPP, поэтому измените его, если используете другой бинарный файл PHP или другое расположение XAMPP.
Выполните эту команду один раз для установки node_modules для этого проекта:
$ cd /opt/lampp/htdocs/ASST && sudo npm install
Для запуска ASST стандартная команда:
$ sudo node /opt/lampp/htdocs/ASST/main.js
Полное видео по запуску ASST на MacOSX: https://youtu.be/IThRZEQVa7M
С помощью веб-браузера откройте эту ссылку: https://www.apachefriends.org/download.html и найдите раздел «XAMPP for OSX», выберите версию PHP, подходящую для вашего проекта, и загрузите ее. Если не знаете, какую версию выбрать, просто выберите первую.
Откройте папку Downloads и дважды щелкните загруженный файл xampp-osx-.dmg. Затем установите: Далее, Далее, Далее, Готово.
После установки откройте папку Applications с помощью Finder, затем откройте папку XAMPP, щелкните manager-osx.app, чтобы открыть панель управления XAMPP, перейдите на вкладку Manage Servers и нажмите кнопку Start All.
Поместите папку вашего проекта в htdocs:
Откройте браузер, введите localhost/phpmyadmin, создайте пустую базу данных, импортируйте в нее файл project_database.sql, откройте папку вашего проекта и измените файл конфигурации для подключения к localhost MySQL: стандартные настройки: host: «localhost» или «127.0.0.1», username: «root», password: «» (пустая строка), database name: «dbname_you_chose_in_phpmyadmin»
Существует несколько способов загрузки и установки Node.js на MacOSX, указанных здесь: https://nodejs.org/en/download/package-manager/#macos
Мы использовали: brew (пакетная система), откройте Терминал:
$ sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ sudo brew install node
Вы должны установить определенную версию Node.js, чтобы ASST работал без проблем.
$ sudo npm install n -g
$ sudo n 12.13.0
Мы не обновляемся до новых версий nodejs каждый месяц, поэтому, если вы хотите протестировать самостоятельно, вы можете пропустить последние две команды установки «n» с помощью npm.
Загрузите и распакуйте проект ASST с этой страницы GitHub, используя браузер или git, переименуйте папку в «ASST», а не «ASST-main», переместите папку ASST рядом с вашим веб-проектом для сканирования, по умолчанию: «/Applications/XAMPP/htdocs/ASST»
Откройте config.js внутри папки ASST с помощью текстового редактора, укажите имя папки вашего веб-проекта для сканирования в переменной DEFAULT_PROJECT_PATH_TO_SCAN.
Откройте config_php_lang.js внутри папки ASST: если вы используете MySQL, задайте переменные, как описано в файле; если вы не используете MySQL, просто установите переменную IS_DBMS_USED в false и игнорируйте остальное. Обратите внимание, что PHP_EXE_BIN_PATH установлен по умолчанию для XAMPP, поэтому измените его, если используете другой бинарный файл PHP или другое расположение XAMPP.
Выполните эту команду один раз для установки node_modules для этого проекта:
$ cd /Applications/XAMPP/htdocs/ASST && sudo npm install
Для запуска ASST стандартная команда:
$ sudo node /Applications/XAMPP/htdocs/ASST/main.js
Особая благодарность:
За то, что сделали этот инструмент возможным, предоставив свои рекомендации и помощь.