Як захистити свій сайт від злому. Топ-10 розповсюджених варіантів злому

Усі ми розуміємо, що конфіденційність і безпека важливі для сайту будь-якого розміру. Однак найчастіше від зломів страждає саме малий бізнес. За даними Ponemon Institute, 60% компаній, що зіткнулися з будь-яким інцидентом у кібербезпеці, припиняють свою діяльність протягом 6 місяців.

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

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

Найпопулярніші способи злому

DDoS-атаки

DDoS (Distributed Denial-of-Service) – хакерська техніка, спрямована на виведення з ладу вебсайту, щоб користувач не міг отримати до нього доступ. Зазвичай це відбувається за рахунок перевантаження сервера великою кількістю запитів.

Як ідентифікувати DDoS-атаку? У цьому випадку просто потрібно навчитися відрізняти її від стандартної операційної проблеми. Ось що має викликати занепокоєння:

  • Одна або кілька IP-адрес роблять занадто багато послідовних запитів протягом короткого періоду часу.
  • Сплеск трафіку створений користувачами зі схожими поведінковими характеристиками. Наприклад, якщо багато трафіку надходить від користувачів з однаковими пристроями, географічним розташуванням або браузером.
  • Сервер відповідає помилкою 503 HTTP – вона означає, що сервер або перевантажений, або знаходиться на технічному обслуговуванні.
  • Журнали показують сильний та постійний сплеск пропускної здатності. Для сервера, що нормально функціонує, пропускна здатність повинна залишатися рівномірною.
  • Журнали показують сплески трафіку у незвичайний час або стрибки трафіку на одній і тій самій вебсторінці.

Допомогти впоратися з DDoS може якісний хостинг, який 24/7 промоніторить загрози та надасть захист від цього типу атак у своїх тарифних планах, як-от Hostpro.

SQL-ін’єкція

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

Як захиститися від SQL-ін’єкцій? Увесь захист від SQL-ін’єкцій зводиться до перевірки чисел, рядків і лапок.

  • Числа

Щоб перевірити змінну на числове значення, потрібно використати функцію is_numeric(n);, яка видасть true, якщо параметр n – це число, або ж false – у випадку, якщо параметр не є числом.

  • Рядки

Якщо у рядках є зайві лапки, апострофи та інші спеціальні символи, варто провести екранізацію. Як відбувається цей процес? Для знешкодження зайвих символів використовується функція addslashes($str);, яка повертає рядок $str з уже доданим зворотним слешем (\) перед кожним таким символом.

  • Магічні лапки

Магічними лапками називають ефект, коли лапки автоматично замінюються на зворотний слеш (\) і лапки під час операцій введення-виведення. У деяких конфігураціях PHP цей параметр одразу ввімкнений, у деяких – ні. Щоб заекранізувати дані адекватно через mysql_real_escape_string($str), без подвійного екранізування, треба ліквідувати автоматично проставлені зворотні слеші (це якщо ввімкнені магічні лапки). Перевірити, чи вони таки ввімкнені, можна через функцію get_magic_quotes_gpc();. Повернеться 1, якщо магічні лапки ввімкнені, або ж 0 – якщо вимкнені.

Найчастіше магічні кавички таки ввімкнені (зворотні слеші додаються), але їх можна прибрати через функцію stripslashes($str);. Рядок $str має повернутися без зворотних слешів біля лапок і прямих апострофів.

Міжсайтовий скриптинг (XSS)

Міжсайтовий скриптинг – вид хакерської атаки, при якому через вразливості сайту на нього запускається шкідливий JavaScript-код. У користувачів він буде відображатися просто як частина сайту. Метою може бути крадіжка cookies із подальшим вибором даних і використанням їх із метою атаки чи злому, крадіжка даних із форм на сайті з подальшою передачею їх зловмиснику або ж для вже відомої нам DDoS-атаки.

Як боротися з XSS?

✔️ Використовувати комерційний SSL-сертифікат, який забезпечить шифрування користувацьких даних.

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

✔️ Безпечну обробку даних варто забезпечити не лише з боку вебсервера, а й з боку клієнта.

✔️ Обов’язково використовуйте Content-Security-Policy, а також інструменти для динамічного і статичного аналізу (ESLint).

Brute force-атаки

Brute force-атаки (так звані атаки грубої сили) – один із найпопулярніших методів злому, за деякими даними 5% усіх підтверджених випадків порушення безпеки припадає саме на брутфорс. Полягає він у «вгадуванні» логінів та паролів із метою отримання доступу до системи.

Деякі зловмисники використовують спеціальні додатки і скрипти в ролі інструментів перебору. Ці інструменти перебирають численні комбінації паролів, щоб обійти процеси аутентифікації.

Як захистити свої паролі від брутфорсу?

✔️ Ніколи не використовувати інформацію, яку можна знайти в мережі, наприклад імена членів родини.

✔️ Що більше символів різного типу (букви верхнього і нижнього регістру, цифри, спеціальні символи), то краще.

✔️ Для кожного облікового засобу краще використовувати свій пароль.

✔️ Не юзайте шаблонні паролі, як-от «admin», «12345» і т. п.

Що ви можете зробити як адміністратор сайту:

  • Заблоковувати облікові записи після кількох невдалих спроб входу, а потім розблокувати їх від імені адміністратора.
  • Блокувати облікові записи на певний час після невдалих спроб входу, а потім розблокувати їх від імені адміністратора.
  • Використовувати сaptcha-інструменти, які вимагають від користувачів виконання простих завдань для входу в систему (це звичне для всіх «оберіть усі зображення зі світлофором»).
  • Вимагати надійних паролів від користувачів, а також забезпечити їх періодичну зміну.
  • Двофакторна аутентифікація – ви можете використовувати кілька факторів для підтвердження особистості та надання доступу до облікових записів.

Метод підбору паролів «за словником»

Цей метод, по суті, є різновидом брутфорс-атаки. Головна відмінність полягає у тому, що коли зловмисник не знає, яким може бути пароль, то підбирає усі можливі: 1-символьні, 2-символьні і т. д. А от коли відомо, що пароль – існуюче слово, відбувається перебір усіх наявних у словнику слів, доки не виникне збіг. У словнику зазвичай міститься близько 100 000 слів, тож перевірка зазвичай займає всього кілька секунд.

Попередити атаку «за словником» можна сильним паролем. Що повинен містити у собі сильний пароль і чого в ньому бути не повинно, детально описуємо нижче.

Атака «по складах»

Цей метод хакерської атаки поєднує у собі два попередні: brute force та метод підбору паролів «за словником». Використовується атака «по складах» тоді, коли зловмисник знає про те, що пароль – певне неіснуюче слово. І підбирає всі можливі варіанти та їхні комбінації по складах до першого збігу.

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

Атака «за правилом»

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

Або, наприклад, зловмисник знає, що перша літера приголосна, друга у верхньому регістрі, а весь пароль не довший за 5 символів. Подібний набір даних уже скорочує кількість можливих паролів як мінімум у 20, а то й у 30 разів. Атака «за правилом» включає в себе усі три зазначені вище методи: brute force, «за словником» та «по складах».

І в цьому випадку найкращим захистом слугує правильно підібраний пароль. Детальніше про такий розповідаємо у другій частині нашої статті.

Метод зміни одного байта

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

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

Фішинг

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

  • Email-фішинг

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

  • Цільовий фішинг

Цільовий фішинг (spear phishing) – особливий вид фішингу, направлений на конкретну особу чи компанію. Здійснити подібну атаку набагато важче за звичайний email-фішинг, оскільки він потребує особливих знань про цю компанію або особу. Наприклад, видаючи себе за маркетолога, зловмисник може надіслати електронного листа з темою «Оновлений рахунок за послуги компанії Х». При цьому може дублюватися стандартний шаблон електронного листа організації.

Як відрізнити фішинг? Зазвичай зловмисники намагаються спонукати користувачів до дії, створюючи відчуття терміновості. Наприклад, електронний лист може загрожувати закінченням терміну дії облікового запису та використовувати таймер.

Ще одна ознака фішингу – посилання в повідомленнях: вони зазвичай схожі на свої законні аналоги, але мають помилки у написанні доменного імені або додаткові піддомени.

Вразливості в ядрі вашої CMS

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

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

Як передбачити факти злому та захистити свій сайт?

1. Використовуйте SSL-сертифікат

Завдяки HTTPS-з’єднанню, яке забезпечує SSL-сертифікат, усі дані, які передаються через ваш сервер, шифруються і не можуть бути перехоплені хакерами. SSL-сертифікат наразі є стандартом безпеки, особливо для e-commerce-сайтів, на яких відбуваються транзакції. До того ж сам Google настійливо рекомендує сайтам використовувати шифрування HTTPS і вище ранжує такі ресурси у пошуковій видачі. Якщо ви ще не перейшли на HTTPS, настав час зробити це. SSL від найвідоміших центрів сертифікації з безкоштовним підключенням та підтримкою надає хостинг-провайдер Hostpro.

2. Оберіть безпечний хостинг

Якісний хостинг-провайдер завжди надасть належний рівень безпеки сайтам своїх клієнтів. Як мінімум це резервне копіювання, завдяки якому можна відновити усі дані сайту, якщо раптом щось піде не так. Як максимум – захист від DDoS та антивірус у тарифі. Hostpro, до прикладу, щоночі робить резервні копії сайтів своїх клієнтів на серверах, що розміщуються в українських та закордонних (Франція, Нідерланди) датацентрах. До того ж із тарифами хостингу надається антивірус ImunifyAV+ і захист від DDoS-атак.

3. Посильте контроль доступу та захистіть паролі

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

Використовуйте сильний пароль для адмінки сайту, адже вона – по суті, найлегший спосіб для хакерів отримати доступ до всіх важливих даних – і ваших, і клієнтських. Ідеальний пароль:

✔️ Складається зі щонайменше 12 цифр, спеціальних символів і літер верхнього та нижнього регістрів.

✔️ Не містить особисту інформацію, наприклад ім’я/день народження, яку можна дізнатися з мережі.

✔️ Кожний акаунт має свій пароль.

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

4. Завжди оновлюйте програмне забезпечення

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

Крім того, переконайтеся, що ваші операційні системи оновлені та підтримуються виробником. Використання застарілої або непідтримуваної ОС зробить ваш сайт вразливим до шкідливих програм, витоку даних і, зрештою, втрати функціональності.

5. Забезпечте резервне копіювання свого сайту

Резервне копіювання даних має вирішальне значення для забезпечення безперервності вашого бізнесу. Бекапи дадуть вам змогу швидко відновитись після кібератаки або інших небажаних інцидентів, таких як поломка обладнання, приміром.

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

6. Приховуйте директорії адміністраторів

Хакери можуть отримати доступ до даних вашого сайту, зайшовши прямо до каталогів адміністраторів. Вони використовують скрипти, які сканують всі каталоги на вашому вебсервері в пошуках назв директорій, таких як «admin», «login» і «administrator». Більшість систем керування контентом (CMS) дозволяють перейменовувати папки, тож обирайте назви директорій адміністратора, які відомі лише вашому вебмайстру, щоб уникнути можливості витоку даних.

Ви також можете захистити директорії адміністраторів від індексації пошуковими системами, використовуючи файл robots.txt.

На цьому, власне, і все. Бережіть себе, а заразом і свої сайти.

© Матеріали надані: hostpro.ua

Сподобалася публікація – підписуйтесь

Отримуйте ще більше корисної інформації про онлайн-платежі та бізнес