Оберіть свою мову

Joomla

Featured

Захист Joomla (частина 1). Безпечний пароль

 

На певному етапі деякі власники сайтів та вебмайстри ставлять питання безпеки. Про це ми трохи говорили у попередній статті. Погодьтеся, захист сайту – це важливий етап у його проектуванні та експлуатації.

Якщо вам зручніше сприймати інформацію у відеоформаті, раджу подивитись  відеолекцію «Створення вебсайту» (частина 6). Захист від злому».

Хтось закладає питання безпеки ще на етапі планування та формування технічного завдання, хтось на кінцевій стадії створення сайту, а хтось після злому його ресурсу. Захищати чи не захищати, а також, які заходи застосовувати для захисту сайту і скільки на це можна витратити, кожен вирішує сам для себе. Це залежить від багатьох факторів. Але, я думаю, основне - наскільки великими втрати від злому сайту будуть для власника. Якщо це особистий блог, у якому ви розповідаєте про свій похід на рибалку, то витрачати тисячі гривень на його захист, безперечно, буде зайвим. Якщо це сайт фірми, яка надає послуги з інформаційної безпеки або це сайт, від роботи якого залежить безпосередній прибуток фірми (наприклад, інтернет-магазин), то безпека такого сайту відіграє першочергову роль і на її організацію доцільно витратити досить велику суму грошей. У даному випадку захист сайту – одна з першочергових завдань.

В інтернеті існує велика кількість ресурсів, на яких можна знайти інформацію про те, як захистити свій сайт від злому. При написанні статті керуватимуся цією інформацією, а також особистим досвідом застосування її у практиці. Намагатимусь розглянути це питання з різних позицій. Розділяючи внутрішні, зовнішні, локальні та мережеві загрози (це особисто моя узагальнена «класифікація» загроз для полегшення написання статті). Під внутрішніми загрозами розумію людський фактор (випадково написав пароль доступу до адміністративної зони сайту на папірці на моніторі, випадково забув змінити права доступу до файлів після оновлення компонентів сайту тощо) та несумлінність людей, які працюють над сайтом (спеціально віддав пароль від адміністративної зони сайту конкурентам, спеціально встановив шкідливе розширення і таке інше). Під локальними загрозами розумію небезпеку від зараженого вірусом комп'ютера, з якого ви працюєте з FTP та адміністративною зоною сайту. Під мережевий - SQL, PHP ін'єкції, міжсайтовий скриптинг (XSS), атаки типу «Shell», «Upload File» і так далі.

Зараз багато хто віддає перевагу системам керування контентом як «платформі» для створення сайту. Крім зручності та функціональності це несе масу проблем (база даних, сторонні розширення (компоненти, модулі, плагіни) і так далі) щодо забезпечення безпеки. При створенні статичних сайтів трохи легше забезпечити більш надійний захист. Але відразу зазначимо, що ні статичні, ні динамічні сайти не захищені від злому на 100%. Описані в цій та інших статтях засоби підвищення захищеності сайту від злому не дають 100% гарантії того, що ваш сайт ніхто і ніколи не зламає. Ці способи лише зменшують відсоток ймовірності злому.

Розглянуті мною способи захисту можна реалізувати як безкоштовними, так і платними засобами. Деякі з методів захисту будуть прості в реалізації та подальшій експлуатації, а деякі завдадуть масу клопоту як при реалізації, так і при подальшому використанні та модернізації сайту. Різні методи будуть давати різну ступінь захищеності щодо різних типів небезпек (внутрішні, зовнішні, локальні, мережеві). В основному розглядатиму захист сайтів на прикладі системи управління сайтами з відкритим кодом Joomla 5. Можу сказати, що однозначної відповіді, що краще, платні системи із закритим вихідним кодом або безкоштовні з відкритим, немає.

Багато способів та порад будуть застосовні як для будь-якої системи управління контентом, так і для статичних сайтів.

Під негативними наслідками злому сайту розуміємо модифікацію контенту сайту, впровадження шкідливого коду,чи впровадження посилання, яке перенаправляє на заражений ресурс тощо. Тобто все, що спричиняє шкідливі наслідки для вас та ваших користувачів у результаті модифікації коду сайту збоку.

Нижче наведено список рекомендацій для підвищення безпеки вашого сайту на Joomla.

  • Оновлюйте Joomla, розширення та шаблони до останніх версій. Іноді це досить складно, наприклад, як у моєму випадку оновлення Joomla 3 до 4, інколи легко, наприклад, як у моєму випадку з оновленням Joomla 4 до 5. Також слід регулярно переходити на найновіші версії серверного програмного забезпечення.
  • Вибирайте надійний хостинг з гарною технічною підтримкою та репутацією. Про це ми більш детально говорили у відеолекції ««Розробка вебсайту» (частина 3). Вибір хостингу».
  • Використовуйте розширення для захисту сайту Joomla від злому.
  • Не встановлюйте непотрібні вам розширення. Користуйтеся «надійними» розширеннями та шаблонами сайту, завантаженими з офіційних ресурсів їх розробників.
  • Обмежте доступ за адресою IP до адміністративної панелі сайту, FTP і панелі управління хостингом та керування базою даних. Обмежте зовнішнє підключення до бази даних.
  • Організуйте надійне та постійне створення резервних копій сайту. Безпосередньо це не захистить сайт від злому, але все одно вважаю ці дії дуже корисними.
  • По максимуму обмежте права доступу до файлів та папок користувачів.
  • Використовуйте налаштування сервера за допомогою .htaccess файлу для підвищення безпеки сайту.
  • Використовуйте безпечні паролі. Зберігайте їх у зашифрованому вигляді.
  • Використовуйте токен або двофакторну аутентифікацію для автентифікації на сайті та хостингу.
  • Використовуйте SSH доступ до сайту (або sFTP, FTPs).
  • Використовуйте SSL-сертифікати.
  • Змініть стандартний шлях доступу до панелі керування сайтом на Joomla.
  • Використовуйте SEF URL.
  • Чітко розмежуйте права доступу для всіх користувачів та груп.
  • Організуйте оповіщення адміністратора сайту на електронну пошту або месенджери про важливі (з точки зору безпеки) події на сайті.
  • Не допускайте зараження вірусами ваших пристроїв, з яких працюєте з сайтом.
  • Проведіть аудит безпеки сайту, що включає аналіз коду.
  • Перевіряйте свій сайт на наявність шкідливого коду.
  • Вирішіть, чи потрібна вам реєстрація користувачів. Якщо ні, відключіть її.

Безпосередньо наведені нижче додаткові рекомендації не захистять сайт від злому. Але все одно будуть корисними:

  • Забезпечте цілодобову підтримку та модерацію сайту.
  • Використовуйте капчі та системи автоматичної фільтрації спаму.
  • Використовуйте виділену IP-адресу для вашого сайту.
  • Постійно тестуйте свій вебсайт.
  • Слідкуйте за рейтингом свого сайту в «репутаційних системах».
  • Налаштуйте ведення логів.
  • Читайте новини з безпеки.
  • Зберігайте в таємниці інформацію про систему керування контентом, її версії та про сторонні розширення.
  • Робіть «дзеркало» сайту на іншому хостингу.

Захист комп'ютера від вірусів

Безумовно, захищеність пристрою, з якого ви працюєте з сайтом (отримуєте доступ до FTP, бази даних, адміністративної зони сайту) не впливає безпосередньо на безпеку Joomla. Але не варто забувати, що деякі віруси націлені спеціально на крадіжку паролів від FTP, бази даних та адміністративної зони сайту (або взагалі на крадіжку будь-якої зв'язки логін/пароль). Також зловмисник може отримати можливість віддаленого керування вашим пристроєм і в цьому випадку ні безпечні паролі, ні обмеження IP, ні сертифікати шифрування, не завадять йому зробити з вашим сайтом абсолютно будь-які дії.

Якщо ваш персональний комп'ютер заражений не описаним вище вірусом, а наприклад , вірусом, який заражає *.EXE файли, то він може заразити файл, який ви викладаєте на сайт для завантаження користувачами. А це удар по репутації сайту і, можливо, непряме «зараження» ресурсу. Адже користувач, який завантажив файл, може легко заразити свій комп'ютер. Більше того! Сучасні антивірусні засоби мають дуже ефективні засоби виявлення вразливостей нульового дня (0day) і засоби блокування шкідливих сайтів. Наприклад, ваш комп'ютер заражений вірусом. Ви викладаєте на свій сайт, не підозрюючи ні про що, заражений файл. Користувачі розпочинають завантаження файлу. Якщо їх антивірусні засоби виявляють заражений об'єкт, вони виявляють і джерело, з якого було отримано цей об'єкт, тобто адресу вашого сайту. Антивірусні засоби моментально передають ці відомості до репутаційних антивірусних баз своїх розробників. При цьому не лише про безпосередньо виявлений об'єкт, а й про джерело. Тобто адресу сайту. А з цих баз дані надходять на сотні тисяч інших комп'ютерів із встановленим антивірусним програмним забезпеченням. У кінцевому підсумку ваш сайт у чорному списку. Репутація підірвана. Незважаючи на те, що факту безпосереднього злому не було, – негативні наслідки в наявності.

Не варто залишати паролі до сайтів у FTP клієнтах, браузерах та не захищених документах (наприклад, *.DOCX). Якщо для доступу до FTP сайту використовуєте, наприклад FileZilla FTP Client або Total Commander, переконайтеся, що хоча б пароль зберігається в зашифрованому вигляді. Краще не залишати параметри доступу, логін і пароль збереженими в подібних програмах. Так як є віруси, які можуть знаходити та отримувати облікові дані та налаштування доступу до сайту та передавати їх зловмиснику. Те саме стосується збереження паролів доступу до бази даних, панелі управління хостингом та адміністративної зони сайту. Не варто зберігати їх у браузерах. Або хоча б подбайте про їх захист.

Безпечний пароль та довірені люди

Як би добре, в «програмно-апаратному сенсі», ваш пристрій не був захищений від вірусів, які крадуть паролі, завжди є ймовірність того, що хтось з адміністраторів (якщо їх кілька) або модераторів із підвищеними правами доступу до адміністративної панелі просто віддасть облікові відомості конкурентам. Або ж один із співробітників, що займається адмініструванням сайту використовує ту саму зв'язку логін\пароль на всіх сайтах. У цьому випадку існує можливість з'ясувати логін\пароль на одному з сайтів і застосувати для доступу до вашого (до адміністративної зони). Від цього також можна вжити деяких заходів, про які поговоримо далі. Слід максимально чітко розмежовувати права доступу кожного модератора та адміністратора до адміністративної зони сайту, FTP, бази даних тощо. Тим більше що Joomla дозволяє це робити штатними засобами. Не варто давати людям прав більше, ніж це їм потрібно для нормальної роботи із сайтом. Якщо ви власник сайту і над ним працює ціла команда, бажано мати довірену особу, якій можна довірити всі логіни та паролі від усіх облікових записів (адміністративній зоні сайту, FTP, базі даних тощо), а всім іншим видати мінімальні права. Бажано, щоб ця людина була основним розробником сайту. Але це складне кадрове питання.

Наголошу, що захист сайту Joomla та безпечний пароль – це нероздільні поняття. Оскільки потрапивши до адміністративної зони сайту, зловмисник може зробити дуже багато.

Прочитавши досить велику кількість статей на тему безпеки пароля, хочу запропонувати основний перелік правил, дотримуючись яких зможете створити безпечний пароль.

  • Пароль має бути довгий. Бажано від 8 символів та більше. Найкраще від 16.
  • Для кожного облікового запису пароль має бути унікальним. Не використовуйте один і той же пароль кілька разів.
  • Використовуйте малі та великі літери.
  • Використовуйте цифри.
  • Використовуйте символи.
  • Не використовуйте словникові слова. Наприклад: «сайт», «книга», «монітор».
  • Не використовуйте пусті паролі.
  • Особливо важливі паролі періодично змінюйте. Наприклад, раз на місяць.
  • Під час створення нового пароля слідкуйте за тим, щоб він відрізнявся від усіх інших. При чому ця відмінність має бути суттєвою.
  • Не використовуйте як пароль будь-які дані (або їх поєднання), які легко зіставити з вами. Наприклад: ваше ім'я, прізвище, дата народження, адреса електронної пошти і так далі.

Приклад безпечного пароля: GG-67/ej4*j4b%d2vH_yq8.

Якщо у вас на одному хостинг-акаунті розташовано кілька сайтів, тоді застосовуйте різні паролі до їх баз даних та адміністративної зони.

При тому пам'ятайте, що найбезпечніший пароль – це не тільки найскладніший пароль, а той, про який знаєте тільки ви.

Упевнений, що надійність паролів (їхня «таємність») і сумлінність усіх людей, які відповідають за проект, дуже важливий контур у захисті будь-якого сайту.

Чим кваліфікованіший і досвідченіший кожен учасник проекту, тим краще. Однак, навіть дуже досвідчений програміст може не знати (або забути) деяких банальних речей щодо безпеки. Тому не зайвим буде провести якийсь «урок з безпеки», на якому досвідчена і знаюча людина, попередньо підготувавшись, розповість іншим про заходи щодо підвищення безпеки сайту. Особливо це стосується тих, хто має доступ як мінімум до адміністративної зони сайту. Не варто забувати, що якщо проект великий і серйозний, якщо він приносить гроші та над ним працюють кілька людей, то кожен має займатися своєю частиною роботи.

Не викладайте в загальний доступ файли з паролями, конфігурацією та резервними копіями сайту! Це може вкрай згубно позначитися на його захисті.

Захист сайту – складне та важливе питання. Захист сайту Joomla має свої особливості, як у іншому випадку з будь-якою іншою системою управління вмістом. Запам’ятаємо, що безпечний пароль є найпростішим (у плані реалізації) засобом підвищення безпеки. Але навіть найбезпечніший пароль не гарантує найвищий рівень захисту.

Завантаження коментаря... Коментар буде оновлено через 00:00.
Напишіть коментар...
- символів залишилося.
або залишити коментар як гість