Хакер – це той, хто знаходить уразливості у системі, програмі чи мережі. Іноді це може бути дуже вигідним. Наприклад, нещодавно анонімний хакер знайшов уразливість на криптовалютній платформі Poly Network і зміг переказати на свій рахунок $611 млн. Після чого повернув усі гроші, отримав пропозицію про роботу в компанії, яку зламав, та нагороду $500 тисяч.
Через образи хакерів у фільмах багато хто думає, що це зловмисники, які крадуть дані, а потім усіх шантажують. Але часто хакер – це досвідчений фахівець із безпеки даних.
Які бувають хакери
Є кілька видів хакерів :
- «Білі», або етичні хакери . Це ті, хто шукає вразливості та зламує системи заради користі. Після такого злому додаток або мережу можна покращити та прибрати вразливість, щоб дані не потрапили до рук зловмисників. Буває так, що «чорний» хакер зламує систему якоїсь компанії, а потім отримує роботу у відділі інформаційної безпеки цієї компанії та стає «білим». Іноді компанії самі просять хакерів «ламати» їхні системи – це називається bug bounty. Так, наприклад, робили у « Дія ».
- «Чорні» хакери . Вони зламують системи, щоб отримати гроші, вкрасти конфіденційні дані або розповсюдити програми віруси. Це небезпечно та незаконно.
- «Сірі» хакери . Вони знаходяться десь між «білими» та «чорними». Наприклад, вони можуть знайти вразливість у якійсь системі та запропонувати компанії виправити це за якусь оплату.
- «Зелені» хакери . Так називають недосвідчених фахівців, які лише вчаться шукати вразливості та щось зламувати.
- «Червоні» хакери . Вони схожі на етичні, тому що їхня мета – зупинити атаки «чорних» хакерів. Але, на відміну від етичних, «червоні» хакери можуть скористатися незаконними способами злому.
- “Сині” хакери . Ці хакери зламують щось із-за помсти. Вони зливають дані, щоб зіпсувати репутацію людини чи компанії.
Що повинен знати та вміти хакер
Несанкціоновані зломи систем та програм караються Кримінальним кодексом України , тому ми говоритимемо лише про «білих» хакерів, тобто тих, хто допомагає знаходити та усувати вразливості мереж та систем.
Щоб якісно «ламати» системи, хакеру потрібно знати, як вони працюють, як створені та якою мовою програмування написані. Найчастіше хакеру потрібно:
- вміти працювати з UNIX-системами;
- знати мову розмітки HTML;
- знати кілька мов програмування;
- розуміти, як улаштовані мережі;
- вивчити криптографію.
Навіщо вміти працювати з UNIX-системами
UNIX – це сімейство операційних систем (ОС). Найпопулярніші з них: Linux, Ubuntu та macOS. Головна відмінність таких систем у тому, що вони розраховані на багато користувачів і багатозадачні. Це означає, що кілька користувачів можуть одночасно запустити багато завдань, які будуть використовувати ресурси одного комп’ютера. Інша важлива відмінність UNIX-систем у тому, що вони можуть працювати практично на будь-якому мікропроцесорі.
З UNIX-системою часто потрібно працювати через термінал. Це спеціальна програма, де ви можете прописувати команди для системи. Можна сміливо сказати, що термінал пов’язує користувача і саму операційну систему.
UNIX-системи дуже часто використовують для серверів, на яких запускають сайти та програми. Тому, щоб щось зламувати, потрібно вивчити ці системи та навчитися працювати з терміналом.
Навіщо вчити HTML
HTML – HyperText Markup Language – це мова гіпертекстової розмітки. Його використовують, щоб переглядати документи у браузері. Коли ви відкриваєте якийсь сайт, ваш браузер отримує HTML-файл із сервера та перетворює код на інтерфейс, який ви бачите. Тобто HTML стане вам у нагоді для роботи з будь-якими веб-сервісами.
Які мови програмування потрібні хакеру
Насправді, чим більше мов програмування ви знатимете, тим краще. Хакеру потрібно розуміти, як працює система або додаток і які помилки міг припуститися програмістом при їх написанні.
Для початку ви можете вивчити такі мови:
- C і C++ . Це об’єктно орієнтовані мови програмування. З них зазвичай починають вивчати об’єктно орієнтоване програмування (ООП). C++ часто пишуть сервери, тому хакеру буде корисно знати таку мову. Якщо ви освоїте C і С++, вивчати решту об’єктно орієнтованих мов буде набагато простіше.
- Python . Це високорівнева мова програмування. На ньому часто пишуть бекенд-частину проектів . Python використовують для роботи зі штучним інтелектом та великими даними. Ще на ньому написані два великі фреймворки ( програмні платформи. – Прим. ред. ), які використовують багато веб-сайтів та програм: Django і Flask.
- Java . Ще одна об’єктно орієнтована мова. На ньому зазвичай пишуть великі та масштабні проекти, такі як Amazon, eBay чи LinkedIn.
- JavaScript . Цю мову використовують для багатьох веб-сайтів, тому вона стане в нагоді, щоб шукати вразливості та перевіряти безпеку різних інтернет-сторінок.
- SQL . Ця мова програмування використовують для роботи з базами даних (БД). А в БД сайту чи проекту зберігаються паролі та особисті дані, які і потрібно зламувати хакеру.
Навіщо розуміти, як працюють мережі
Щоб сайт, програма чи якась система працювала в інтернеті, їх потрібно «помістити» до мережі. А для цього потрібно знати, що таке протоколи TCP/IP, HTTP/HTTPS, FTP та інші.
Хакеру потрібно вміти відрізняти одну мережу від іншої, розуміти особливості кожної, визначати, в якій мережі він знаходиться, і знати, які у неї можуть бути вразливі. Хороший хакер – це не тільки програміст, але і трохи DevOps-інженер .
Навіщо вивчати криптографію
Криптографія – це наука про шифрування, цілісність та безпеку даних. Завдання хакера – порушувати цілісність та безпеку даних, а отже, без знань з криптографії не обійтися.
Наразі криптографію використовують, щоб шифрувати паролі, банківські дані та іншу інформацію користувачів. Для цього користуються різними інструментами. Наприклад, алгоритмами хешування SHA-256 , SHA-512 та іншими.
Де вчитись
Назар Тимошик, виконавчий директор UnderDefence Cyber Security, рекомендує тим, хто планує стати фахівцем з інформаційної безпеки, тобто «білим» хакером:
- шукати курси з інформаційної безпеки та читати тематичні статті;
- проходити стажування у компаніях, які дають таку можливість;
- використовувати HackTheBox – сервіс, у якому можна практикуватися зламувати різні системи.
Курси з інформаційної безпеки:
- ” Введення в інформаційну безпеку ” – Університет Нью-Йорка;
- ” Python для інформаційної безпеки ” – Infosec;
- ” IT Fundamentals for Cybersecurity ” – IBM;
- ” Аналітик кібербезпеки ” – IBM;
- ” Secure Coding Practices ” – Каліфорнійський університет.
Книги для хакерів:
- “Linux очима хакера “, Михайло Фленов;
- «Інформаційна безпека » , Євгенія Яковенко, Ігор Журавель та ін.;
- “Криптографія і злом шифрів на Python “ , Ел Свейгарт;
- «Codebreakings. A Practical Guide » , Елоніка Дунін, Клаус Шмех;
- «Практична криптографія » , Брюс Шнайєр.
Цей матеріал – носить лише інформативний характер і не закликає нікого до дій злочинного характеру!