Уязвимости веб-сайтов могут быть вызваны как неправильной конфигурацией, так и недостатками программного обеспечения, которые потенциально могут быть использованы злоумышленниками.
Для предотвращения подобных рисков службы по сканированию веб-конфигурации и уязвимостей являются регулярным и экономически эффективным способом выявления распространенных проблем на сайте.
Эти службы служат в качестве проактивной меры, обеспечивая своевременное обнаружение и устранение известных уязвимостей.
Web-Check позволяет выявить распространенные уязвимости и неправильные конфигурации на сайте.
Эти проверки создают небольшую нагрузку на сайт, что позволяет предотвратить его повреждение.
Web-Check сообщит вам, какие именно уязвимости существуют, когда стоит беспокоиться и как устранить проблемы.
Web-Check предоставляет простую в использовании панель, для понимания которой не требуются высокие технические навыки.
Проверяемые вопросы безопасности включают в себчя:
- SSL-сертификаты, действительны ли они и хорошо сконфигурированы
- Настроенное и современное TLS-шифрование
- Перенаправление с HTTP на HTTPS для всех пользователей.
- Заголовки безопасности HTTP и защищенные cookies для сайта.
- Реализация кросс-доменной политики и контроля кросс-оригинального обмена ресурсами (CORS).
- Есть ли раскрытие информации в файле security.txt
- Ограниченный доступ к XML-RPC
- Уязвимость к ряду известных Common Vulnerabilities and Exposures (CVEs)
- Конфигурация CMS и наличие обновлений.
- Открытые порты в системе.
- Общая производительность сайта.
Данное руководство содержит пошаговую демонстрацию скачивания и анализа информации о сайте с помощью Web-Check
1. Установка Web-Check в системе
Для установки Web-Check в систему можно использовать два способа:
- Сборка локально
- Использование Docker
Выберите наиболее подходящий для вас вариант.
Вариант 1: Локальная сборка
Этот шаг требует установки нескольких пакетов.
Это Node.js (V 18.16.1 или более поздняя версия) и git.
Для установки Node.js посмотрите инструкции:
- 📦 Как установить последние версии NodeJS и NPM на Linux
- Как установить Node.js 10 LTS & NPM на FreeBSD 12
- ⚔️ Как установить последние версии Node.js и NPM в Ubuntu / Debian
Затем можно установить git с помощью команды:
##На Debian/Ubuntu
sudo apt update && sudo apt install git -y
##На Rhel/Rocky/Alma Linux
sudo yum install git -y
После установки клонируйте репозиторий, приведенный ниже:
Перейдите в каталог:
Установите все необходимые зависимости:
Теперь можно запустить сервер разработки с помощью команд:
Здесь приложение работает на порту 8888.
Теперь нам необходимо настроить приложение на запуск в фоновом режиме и автоматическую загрузку.
Сначала остановите службу, работающую на порту 8888.
Установите PM2:
Теперь создайте файл конфигурации:
В файле добавьте следующие строки:
module.exports = {
apps: [
{
name: 'web-check', // Replace with your app's name
cwd: '/home/thor/web-check',
script: 'npm',
args: 'run serve',
env: {
CHROME_PATH: '/usr/bin/chromium' // Set the desired CHROME_PATH
}
}
]
};
Замените /home/thor/web-check на правильный путь к вашему приложению.
После сохранения запустите приложение командой:
Просмотреть приложение можно с помощью команды:
Для отслеживания журналов используйте:
Теперь ваше приложение будет запускаться на порту 8888.
Разрешите приложению запускаться при загрузке системы:
Теперь включите автоматический запуск приложения при загрузке, выполнив указанную команду:
Сохраните изменения:
Для систем на базе Rhel настройте SELinux, как показано далее:
🐧 AppArmor и SELinux: Всестороннее сравнение
Вариант 2: Использование Docker
Это еще один более простой вариант запуска Web-Check.
Для этого метода необходимо установить Docker Engine.
Теперь вы можете запустить контейнер с помощью Docker CLI, как показано далее:
Или с использованием Docker-Compose:
Запустите контейнер:
2. Настройка Web-Check
По умолчанию Web-Check не требует никаких настроек.
Однако некоторые конфигурации окружения все же необходимы.
Они могут быть объявлены в файле .env или в контейнере docker:
- GOOGLE_CLOUD_API_KEY – ключ API Google . Он может использоваться для возврата показателей качества сайта
- TORRENT_IP_API_KEY – API-ключ торрента. Показывает торренты, скачанные по IP-адресу
- REACT_APP_SHODAN_API_KEY – API-ключ Shodan Будет показано связанное имя хоста для заданного домена
- REACT_APP_WHO_API_KEY – WhoAPI-ключ. В результате будут показаны более полные WhoIs-записи, чем в задании по умолчанию
- SECURITY_TRAILS_API_KEY – API-ключ Security Trails. Будет показана информация об организации, связанной с IP
- BUILT_WITH_API_KEY – API-ключ BuiltWith. Показывает основные характеристики сайта
3. Доступ и использование Web-Check
После развертывания с помощью любого из вышеперечисленных вариантов убедитесь, что порт 8888 разрешен через межсетевой экран.
##С UFW
sudo ufw allow 8888
##С Firewalld
sudo firewall-cmd --add-port=8888/tcp --permanent
sudo firewall-cmd --reload
Теперь зайдите в веб-интерфейс, используя URL http://IP_address:8888 или http://domain_name:8888.
Теперь в приведенном выше пользовательском интерфейсе можно добавить любой URL-адрес сайта, который необходимо проверить.
После ввода URL-адреса нажмите кнопку Analyze!
Через несколько секунд вы получите информацию.
Здесь представлены такие вопросы безопасности, как местоположение сервера, записи DNS, DNSsec, заголовки, SSL-цертификаты, Traceroute и т.д.
Можно также прокрутить страницу вниз и загрузить, обновить и просмотреть результаты по своему усмотрению.
Заключение
Мы успешно рассмотрели, как можно получить и проанализировать информацию о сайте с помощью Web-Check.
Надеюсь, это поможет вам обеспечить безопасность вашего сайта.
см. также: