Сайт на Joomla може раптово перестати працювати через вразливість. Або ви збираєтеся запустити проект і хочете переконатися, що він захищений від злому? Joomla — одна з найпопулярніших CMS, але її розширення та кастомні компоненти часто містять вразливості. За даними OWASP, близько 70% вразливостей припадає на сторонні розширення. Нещодавно клієнт звернувся зі скаргою на повільну роботу сайту — виявилося, що кастомний компонент мав SQL-ін'єкцію, через яку зловмисники вивантажували базу даних. Після аудиту ми закрили 12 вразливостей, і сайт почав працювати в 3 рази швидше. Наш аудит безпеки виявляє проблеми до того, як ними скористаються зловмисники. За роки роботи ми перевірили понад 50 проектів, і типові проблеми повторюються: SQL-ін'єкції в кастомних запитах, XSS у формах, застарілі версії PHP (наприклад, 5.x), права доступу 777 і відсутність заголовків безпеки. Ми поєднуємо автоматичні сканери та ручний аналіз коду, щоб не пропустити жодної вразливості. У середньому кожен проект містить 5–10 вразливостей, половина з яких критичного рівня. Запобігання одному витоку даних може заощадити мільйони гривень на відновленні репутації та штрафах.
Типові вразливості
Найчастіше ми знаходимо SQL-ін'єкції в кастомних компонентах, XSS у розширеннях, застарілі версії ядра, неправильні права доступу, слабку конфігурацію сервера та відсутність двофакторної аутентифікації. Кожна з цих проблем може призвести до повної компрометації сайту. Наприклад, в одному проекті ми виявили вразливість, яка дозволяла зловмисникам отримати доступ до бази даних користувачів всього за 2 години. Після закриття ризику клієнт уникнув витоку персональних даних.
Як ми проводимо аудит?
Ми поєднуємо інструментальну перевірку та експертний аналіз. Автоматичні сканери дають базу, а ручна перевірка коду знаходить логічні помилки, які не ловить жоден сканер.
Автоматизоване сканування
# Joomscan — спеціалізований сканер perl joomscan.pl -u https://target.example # OWASP ZAP пасивне сканування zap-cli quick-scan --self-contained --spider https://target.example Ці інструменти перевіряють відомі вразливості ядра та популярних розширень, тестують заголовки безпеки та виявляють слабкі місця в конфігурації.
Перевірка конфігурації
// configuration.php — обов'язкові параметри public $debug = '0'; public $error_reporting = 'none'; public $force_ssl = '2'; public $cookie_httponly = '1'; public $cookie_secure = '1'; public $lifetime = '15'; public $session_handler = 'database'; Також перевіряємо права доступу:
find /var/www/html -type f -name "*.php" -perm /o+w find /var/www/html/images -name "*.php" Наявність PHP-файлів у папці завантажень — явна ознака злому.
Аналіз HTTP-заголовків
add_header X-Content-Type-Options "nosniff"; add_header X-Frame-Options "SAMEORIGIN"; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'"; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; Ці заголовки обов'язкові для захисту від XSS, клікджекінгу та перехоплення трафіку.
Перевірка кастомного коду
# SQL Injection у кастомних компонентах grep -r "\$_GET\|\$_POST\|\$_REQUEST" administrator/components/com_custom/ grep -r "->query\|->loadResult" administrator/components/com_custom/ | grep -v "quoteName\|quote(" Чому важливий ручний аналіз коду?
Автоматичні сканери чудово знаходять відомі вразливості, але часто пропускають бізнес-логічні помилки. Наприклад, недостатню перевірку прав доступу в кастомних компонентах або некоректну обробку сесій. Ручний аналіз коду дозволяє виявити в 2–3 рази більше проблем, що робить наш аудит значно глибшим за стандартне сканування. Тільки так можна гарантувати, що ваш сайт захищений від усіх сучасних загроз.
Як часто потрібно проводити аудит безпеки?
Рекомендуємо проводити повний аудит не рідше одного разу на півроку, а також після кожного великого оновлення ядра або встановлення нового розширення. Якщо сайт обробляє чутливі дані (наприклад, платіжну інформацію), частота може збільшуватися до щоквартальної перевірки. Регулярний аудит дозволяє виявити вразливості на ранній стадії та уникнути дорогих інцидентів.
Що робити після отримання звіту?
Після завершення аудиту ви отримуєте детальний документ з описом кожної вразливості, її критичністю та покроковими інструкціями з усунення. Ми також пропонуємо послугу «під ключ» — наші інженери виправлять усі проблеми протягом 1–3 днів. Після усунення ми проводимо повторне сканування для підтвердження безпеки.
Процес роботи
- Аналіз — збір інформації про сайт, версії, розширення.
- Сканування — автоматичні інструменти та ручна перевірка.
- Перевірка коду — пошук вразливостей у кастомних компонентах і шаблонах.
- Конфігурація сервера — перевірка PHP, веб-сервера, бази даних.
- Звіт — опис вразливостей та рекомендації.
- Усунення — ми можемо виправити знайдені проблеми під ключ.
Зведення перевірок
| Етап | Дії | Результат |
|---|---|---|
| Сканування | Joomscan, ZAP, Nikto | Список відомих вразливостей |
| Конфігурація | Перевірка PHP, Nginx, прав доступу | Рекомендації з посилення |
| Код | Аналіз кастомних компонентів | SQL-ін'єкції, XSS |
| Розширення | Звірка з VEL Joomla | Застарілі або вразливі плагіни |
| Мережа | HTTP-заголовки, SSL | Звіт про захист даних |
Порівняння методів
| Метод | Час | Глибина покриття |
|---|---|---|
| Автоматичне сканування | 1–2 години | 30% |
| Ручний аналіз коду | 4–8 годин | 90% |
Терміни та вартість
Аудит займає від 1 до 3 днів залежно від складності проекту. Вартість розраховується індивідуально. Ви отримуєте детальний звіт з покроковими інструкціями з усунення кожної вразливості.
Що ви отримуєте
- Гарантію якості: ми впевнені у своїх методах, тому даємо гарантію на виправлення всіх критичних вразливостей.
- Оперативну підтримку після аудиту.
- Рекомендації щодо постійного моніторингу безпеки.
Зв'яжіться з нами, щоб замовити аудит та захистити ваш проект. Отримайте консультацію експерта вже сьогодні.







