Хакер – это тот, кто находит уязвимости в системе, программе или в сети. Иногда это может быть очень выгодно. Например, недавно анонимный хакер нашел уязвимость на криптовалютной платформе Poly Network и смог перевести на свой счет $611 млн. После чего вернул все деньги, получил предложение о работе в компании, которую взломал, и награду $500 тысяч.
Из-за образов хакеров в фильмах, многие думают, что это злоумышленники, которые воруют данные, а потом всех шантажируют. Но часто хакер – это опытный специалист по безопасности данных.
Редакция MC.today разобралась, как стать хакером и какие они бывают.
Содержание:
- Какие бывают хакеры
- Что должен знать и уметь хакер
- Зачем уметь работать с UNIX-системами
- Зачем учить HTML
- Какие языки программирования нужны хакеру
- Зачем понимать, как работают сети
- Зачем изучать криптографию
- Где учиться
- Как взломать систему: 9 общих правил
Какие бывают хакеры
Есть несколько видов хакеров:
- «Белые», или этичные хакеры. Это те, кто ищет уязвимости и взламывает системы ради пользы. После такого взлома приложение или сеть можно улучшить и убрать уязвимость, чтобы данные не попали в руки злоумышленников. Бывает так, что «черный» хакер взламывает систему какой-то компании, а потом получает работу в отделе информационной безопасности этой компании и становится «белым». Иногда компании сами просят хакеров «ломать» их системы – это называется bug bounty. Так, например, делали в «Дія».
- «Черные» хакеры. Они взламывают системы, чтобы получить деньги, украсть конфиденциальные данные или распространить программы-вирусы. Это опасно и незаконно.
- «Серые» хакеры. Они находятся где-то между «белыми» и «черными». Например, они могут найти уязвимость в какой-то системе и предложить компании исправить это за какую-то оплату.
- «Зеленые» хакеры. Так называют неопытных специалистов, которые только учатся искать уязвимости и что-то взламывать.
- «Красные» хакеры. Они похожи на этичных, потому что их цель – остановить атаки «черных» хакеров. Но, в отличие от этичных, «красные» хакеры могут пользоваться незаконными способами взлома.
- «Синие» хакеры. Эти хакеры взламывают что-то из-за мести. Они сливают данные, чтобы испортить репутацию человека или компании.
Что должен знать и уметь хакер
Несанкционированные взломы систем и программ караются Уголовным кодексом Украины, поэтому мы будем говорить только о «белых» хакерах, то есть тех, кто помогает находить и устранять уязвимости сетей и систем.
Чтобы качественно «ломать» системы, хакеру нужно знать, как они работают, как созданы и на каком языке программирования написаны. Чаще всего хакеру нужно:
- уметь работать с UNIX-системами;
- знать язык разметки HTML;
- знать несколько языков программирования;
- понимать, как устроены сети;
- изучить криптографию.
Зачем уметь работать с UNIX-системами
UNIX – это семейство операционных систем (ОС). Самые популярные из них: Linux, Ubuntu и macOS. Главное отличие таких систем в том, что они многопользовательские и многозадачные. Это значит, что в такой системе несколько пользователей могут одновременно запустить много задач, которые будут использовать ресурсы одного компьютера. Другое важное отличие UNIX-систем в том, что они могут работать практически на любом микропроцессоре.
С UNIX-системой часто нужно работать через терминал. Это специальная программа, в которой вы можете прописывать команды для системы. Можно сказать, что терминал связывает пользователя и саму операционную систему.
UNIX-системы очень часто используют для серверов, на которых запускают сайты и приложения. Поэтому, чтобы что-то взламывать, нужно изучить эти системы и научиться работать с терминалом.
Зачем учить HTML
HTML – HyperText Markup Language – это язык гипертекстовой разметки. Его используют, чтобы просматривать документы в браузере. Когда вы открываете какой-то сайт, ваш браузер получает HTML-файл с сервера и превращает код в интерфейс, который вы видите. То есть 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», Элоника Дунин, Клаус Шмех;
- «Практическая криптография», Брюс Шнайер.
Как взломать систему: 9 общих правил
Порядок действий будет зависеть от того, что именно вы взламываете, какой уровень защиты у системы, сколько у вас времени и знаний. Если очень обобщить, взлом будет выглядеть вот так:
- Защитите себя. Если вы просто хотите попрактиковаться, есть шанс получить отпор от того, кого вы будете взламывать. Вы можете попросить разрешение на взлом или практиковаться на специальных виртуальных машинах.
- Соберите информацию. Чтобы что-то взломать, нужно знать, что именно вы взламываете: в какой сети работаете, с каким протоколами и языками программирования, какие данные хотите получить.
- Протестируйте вашу цель. Проверьте, можете ли вы получить доступ к системе удаленно, если, конечно, работаете удаленно.
- Просканируйте порты. Это нужно, чтобы понять, с какой операционной системой вы сейчас будете работать и какие порты открыты для доступа.
- Найдите открытый порт или другой путь доступа к системе. Попробуйте разные порты. FTP (21) и HTTP (80) часто хорошо защищены, поэтому рекомендуют начинать работу с TCP и UDP.
- Взломайте пароль. На этом этапе вы взламываете пароль или другой способ идентификации пользователя.
- Получите права администратора. Доступ для обычного пользователя ограничен. Чтобы сделать с системой что-то серьезное, вам нужны права администратора или root-пользователя.
- Создайте «бэкдор». «Бэкдор», или «задняя дверь», – это способ вернуться к системе, которую вы взломали. Он нужен, чтобы не взламывать все заново, а сразу получить нужные доступы.
- Постарайтесь замести следы. Нужно сделать так, чтобы администратор системы вас не заметил. «Белому» хакеру это пригодится, если он еще хочет вернуться к системе и что-то «доломать» до того, как повышать безопасность.