Этичный хакинг: как взламывать системы и при этом зарабатывать легально
Кто такой хакер? Большинство людей, которые далеки от программирования, представляют перед собой злостного преступника, взламывающего системы безопасности банков, чтобы украсть деньги. Что-то вроде героя Хью Джекмана из фильма «Пароль —«Рыба-меч», который взламывает шифр Вернама, чтобы украсть из правительственного фонда 9,5 млрд. долларов.
Хакером можно быть и легально. Таких специалистов называют пентестеры, или «этичные хакеры». Вот только нужно хорошо знать, что можно делать во время тестирования системы на проникновение, а что — нельзя. Иначе можно получить вполне реальные проблемы с законом. Совсем недавно мы запустили курс «Этичный хакер», и в этой статье мы поговорим, как заниматься хакингом, зарабатывать на этом неплохие деньги и при этом не иметь проблем с законом. Поехали.
Что грозит хакеру по закону РФ
Для начала поговорим о проблемах, которые могут свалиться на хакера. Практически все правонарушения, связанные со взломом систем и получения доступа к ним, касаются трех законов:
- О персональных данных (№ 152-ФЗ).
- Об информации, информационных технологиях и защите информации (№ 149-ФЗ).
- Об авторском праве и смежных правах (№ 5351–1).
За нарушение этих законов может грозить административная и уголовная ответственность.
Согласно ст. 13. КоАП РФ (Административные правонарушения в области связи и информации), за разглашение информации с ограниченным доступом, нарушение порядка хранения, использования и распространения персональных данных может грозить штраф от 300 до 20 000 рублей. Это для физических лиц. Для юридических лиц размер штрафа гораздо больше.
В основном она касается людей, которые имеют доступ к подобной информации, и организаций, которые собирают персональные данные клиентов.
К примеру, интернет-магазин собирает клиентскую базу с именами, номерами телефонов и email-ами. А ушлый менеджер решает собрать базу и скопировать ее для дальнейшей продажи на сторону.Если подобное действие не стало причиной серьезного ущерба, а на менеджера не поступило жалоб в правоохранительные органы, то правонарушение может быть квалифицировано по ст. 13.11 п. 8 КоАП РФ. Наказание за него — штраф в размере от 30 000 до 60 000 рублей.
Что касается уголовного законодательства, то хакеру-злоумышленнику в большинстве случаев грозят следующие статьи УК РФ:
- Ст. 146 УК РФ «Нарушение авторских и смежных прав». Компьютерные программы находятся под защитой авторского права. Поэтому любое изменение кода программ, редактирование функционала, создание или использование крякнутой версии попадают под эту статью в том числе.
- Ст. 272 УК РФ «Неправомерный доступ к компьютерной информации». Основная статья, по которой могут привлечь хакера. Ведь взлом системы безопасности — это и есть неправомерный доступ к компьютерной информации.
- Ст. 273 УК РФ «Создание, использование и распространение вредоносных компьютерных программ». Написал «трояна» — привет, статья 273.
Небольшое отступление. Пентестеры также используют сторонние программы для взлома систем безопасности и получения доступа к закрытой информации. Легальных программ для взлома не существует, поэтому компания, которая заказывает пентестинг, должна в письменной форме дать добровольное согласие на использование сторонних программ. Также пентестеры обычно подписывают соглашение о неразглашении сведений, полученных в ходе атак.
- Ст. 274 УК РФ «Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей». Формально статья есть, но реальной судебной практики по ней почти нет. С 2010 года в России по ней возбуждено не более 20 дел.
- Ст. 274.1 УК РФ «Неправомерное воздействие на критическую информационную инфраструктуру Российской Федерации». Ситуация абсолютно та же, что и со ст. 274. Судебной практики по ней просто нет.
По ст. 272 и 273 можно получить до 500 000 рублей штрафа и реальный срок до 5 лет. А в особых случаях — и до 7 лет. Причем формально для возбуждения дела найти уязвимость и попробовать использовать ее даже без преступного умысла.
Пентестер: отличия от хакера
Пентестер — это хакер, который работает полностью легально и в рамках закона. Суть его работы — поиск уязвимостей в системах безопасности.
Но есть несколько серьезных отличий:
- Разработчики в курсе про действия пентестера. Все действия по поиску уязвимостей ведутся либо по специальному договору, либо с помощью программ Bug Bounty. О них поговорим чуть позже.
- Пентестер только ищет уязвимости, а не собирается использовать их. Тут есть тонкий момент. Обнаружить дыру в системе хранения данных — с этим все оk. А вот попытаться скачать конфиденциальные данные, протестировав эту дыру, — это уже срок. Пентестер должен указать на дыру разработчикам и указать на возможность, как можно ее использовать, но не пробовать делать это самостоятельно.
- Заработок пентестера — полностью белый. Выплаты по Bug Bounty или оплата по договору абсолютно легальны. Так что визитов из налоговой можно не бояться.
По сути пентестера от хакера отличает свод правил, которыми он руководствуется.
Пентестер работает исключительно по программам Bug Bounty или после заключения контракта с компанией. Из-за того, что сам процесс пентестинга связан со взломом защиты, процедура очень формализованная.
Нельзя просто найти уязвимость в системе защиты и указать на нее владельцу. Потому что за это можно получить вполне реальное обвинение.
В 2017 году 18-летний хакер нашел уязвимость в системе безопасности венгерской транспортной компании BKK. Баг был простой — с помощью инструментов для разработчика в браузере парень изменил исходный код страницы, вписав свою цену на билет (20 центов вместо 30 евро). Валидация цены не проводилась ни на сервере, ни на стороне клиента, поэтому хакер смог купить билет за эту цену.После этого он обратился к представителям компании, раскрыв всю информацию об уязвимости. Но получил не благодарность, а уголовное дело. Транспортная компания «обиделась» и подала на него в суд. Парня арестовали.
История закончилась хорошо. Она получила большой резонанс в СМИ, пользователи просто обрушили рейтинг компании в Facebook. А с учетом того, что компания якобы тратила свыше миллиона долларов на защиту данных каждый год, обнаружение такого глупого бага, которым мог воспользоваться любой человек, просто уничтожило ее репутацию.
У парня были благородные намерения — он хотел указать на дыру в системе продаж билетов, наглядно продемонстрировав ее. Но при этом его действия все равно можно квалифицировать как взлом системы безопасности. А это уголовное дело.
Формально компания была полностью права, выдвигая ему обвинения. Какими бы ни были намерения парня, он нарушил закон. И от реального срока его спас только общественный резонанс.
Bug Bounty: как участвовать правильно
Большинство крупных компаний ведут Bug Bounty — специальные программы, в которой компании-разработчики ПО или сайтов предлагают вознаграждение за найденные уязвимости. Компаниям выгоднее платить за найденные ошибки, чем разбираться с последствиями, к которым могут привести эксплойты и уязвимости.
Большинство таких программ размещены на сайтах HackerOne и BugCrowd.
К примеру, вот программы Bug Bounty от Google API, Nginx, PayPal, GitHub, Valve. Средний размер премии за каждый найденный баг в этих программах — 1000 долларов. Есть огромное количество компаний поменьше, которые предлагают 50–100 долларов за ошибку.
Даже Пентагон запускал Bug Bounty! Это же просто мечта для хакера — взломать систему защиты Пентагона, да еще и получить деньги за это от правительства США.
Но даже опубликованная Bug Bounty не означает, что можно ломать и искать дырки где попало. В описании программы владельцы прописывают, какие именно уязвимости будут рассматриваться.
К примеру, Uber дает очень подробное объяснение, что входит в их программу Bug Bounty, а что — нет.
Компания хочет найти уязвимости в системах доступа и хранения данных, возможностей фишинга, оплаты и счетов, несанкционированных действий со стороны пользователя и сотрудников компании. Но в программу не входят общие баги приложения, отчеты о мошенничестве, баги в работе с соцсетями и email-рассылкой.
Впрочем, с чувством юмора у них все нормально. Потому что среди неоплаченных действий есть и следующее:
Entering the Uber offices, throwing crisps everywhere, unleashing a bunch of hungry raccoons, and hijacking an abandoned terminal on an unlocked workstation while staff are distractedВходить в офис Uber, разбрасывая везде чипсы, выпуская кучу голодных енотов и захват свободного терминала или рабочего места, пока сотрудники сбиты с толку.
Чем подробнее описана Bug bounty, тем проще пентестеру понять, что можно «пробовать на зуб», а чего делать не стоит.
При этом есть общие правила, которые нарушать нельзя. К примеру, при обнаружении уязвимостей в базах данных пользователей нельзя пытаться скачать какие-либо личные данные. Даже при участии в программе это может быть расценено как нарушение закона. Потому что здесь нарушаются права именно пользователей, к которым Bug bounty не имеет никакого отношения.
Российский рынок пентестинга тоже активно развивается. На нем уже есть ряд крупных игроков, которые работают с большими корпорациями. К примеру, Digital Security, НТЦ «Вулкан», Group-IB, BI.ZONE, «Лаборатория Касперского». Но конкуренция на рынке еще довольно невысокая, так что можно вполне комфортно работать и индивидуально.
Некоторые крупные компании вроде «Газпрома» или банковских организаций создают отдельные внутренние подразделения пентестеров, чтобы не раскрывать конфиденциальные данные сторонним организациям.
Поэтому для пентестера есть несколько возможностей:
- Присоединиться к одной из таких крупных компаний. Главный плюс — стабильная зарплата и отсутствие даже гипотетических проблем с законом. Но при этом заработать много денег, как стремятся многие пентестеры, не получится.
- Открыть ИП или работать по договору. Главный плюс — специалист сам устанавливает цену. Но при этом придется тесно сотрудничать с юристами в рамках трудовых отношений, чтобы подстраховаться с юридической стороны. Да и конкуренты не дремлют.
- Работать исключительно на Bug Bounty. Главный плюс — свобода графика и возможность заработать много. Но всегда есть риск, что специалисту просто не заплатят за обнаружение бага. Впрочем, никто не запрещает работать и по договору, и в программах Bug Bounty.
Участвовать в Bug Bounty просто. Ведь по сути сообщение о начале программы — это открытая оферта, которую может принять любой пользователь. Вы можете начинать работу сразу же — дополнительного согласия на ваше участие не требуется.
Чтобы подстраховаться от нечестных компаний, рекомендуем работать через сайты HackerOne и BugCrowd. Просто зарегистрируйтесь и подавайте заявки с обнаруженными багами через них.
Единственное правило — очень детально читать описание программы. Если компания пишет, что платит за уязвимости баз данных, то искать нужно только там. Даже если вы найдете баг где-нибудь еще, то за него не заплатят. Даже наоборот — могут начаться проблемы.
Уэсли Вайнберг в 2015 году нашел одну из самых серьезных брешей в защите Instagram. В ходе пентестинга он обнаружил Ruby-уязвимость, которая позволила ему запустить удаленное воспроизведение произвольного кода.Это позволило ему прочитать файлы конфигурации, которые содержали доступы к базе PostgreSQL. Там были 60 аккаунтов сотрудников Instagram и Facebook. Как утверждает Вайнберг, взломать их не составило труда — большинство паролей были крайне слабыми — вроде «password» или «instagram».
Далее он получил доступ к нескольким ключам Amazon Web Services, которые ассоциировались с 82 бакетами S3. И в этих бакетах было настоящее сокровище для хакера: исходные коды Instagram, SSL-сертификаты, API-ключи, данные email-сервера, ключи подписей для приложений iOS и Android. Можно сказать, что пентестер получил полный доступ ко всем секретным материалам Instagram.
Он честно сообщил об этой находке представителям Facebook. За один баг ему действительно выплатили 2500 долларов. Но также он получил обвинение в несанкционированном доступе к аккаунтам сотрудников, бан в программе Bug bounty от Facebook и угрозу уголовного преследования. Хотя уголовное дело не было возбуждено, нервы пентестеру потрепали изрядно.
Так что следование прописанным пунктам Bug bounty — это просто обязательно. Иначе можно получить не премию, а обвинение.
Что должен уметь пентестер
Пентестер — это одновременно «универсальный солдат» и узконаправленный специалист. Ему нужно обладать широкими знаниями во многих отраслях программирования и при этом глубокими навыками в одной или нескольких сферах.
В целом считается, что Junior-пентестер должен обладать следующими знаниями:
- администрирование Windows, Linux;
- знание одного или нескольких программирования: Python, php, Perl, Ruby, JavaScript, Bash;
- знание HTML;
- основные сетевые протоколы (TCP/IP, ICMP) / сетевые службы (Proxy, VPN, Samba, AD);
- протоколы: HTTP, FTP, DNS, SSH;
- базы данных SQL (DDL, DML и т. д.), MySQL, SQL Server, PostgreSQL, Oracle.
Не обязательно знать все идеально, но нужно иметь хотя бы базовые знания по вышеуказанным ЯП, протоколам и БД.
Также нужно научиться использовать программы для пентестинга вроде BurpSuite, SqlMap, Nmap, IP Tools и Acunetix.
Собственно, именно поэтому в пентестинг рекомендуют идти тем специалистам, у которых уже есть определенный бэкграунд в разработке или тестировании. Потому что даже для уровня Junior количество необходимых знаний просто огромно.
Где учиться на пентестера
И напоследок мы собрали несколько популярных ресурсов, на которых можно получить всю необходимую информацию для профессии пентестера:
- Hackaday. Популярный портал с советами по взлому систем, новостями из мира пентестинга, практическими гайдами и просто огромным количеством полезностей. Подойдет как для новичков, так и для опытных пентестеров.
- EC-Council CEH. Комплексные курсы по этичному хакингу, после которых можно получить сертификат CEH. Считаются одними из самых сильных курсов по пентестингу в мире.
- Cybrary. Бесплатная платформа с кучей курсов по информационной безопасности. Хорошо подойдет новичку, который только начинает разбираться в пентестинге.
- Профессия Этичный хакер от Skillfactory. Мы сами недавно запустили масштабный 10-месячный комплексный курс, где обучаем всем премудростям и хитростям пентестинга. Реальные пентестеры передают свой опыт и на практике помогают находить уязвимости в ПО и веб-проектах.
И еще несколько сайтов, где можно совершенствовать практические навыки:
- HackThis! — здесь можно прокачивать умения взлома систем в игровом режиме и одновременно обучаться этому.
- Root me — свыше 380 практических заданий для пентестера: от новичка до профи.
- Try2Hack — один из самых старых ресурсов для практики пентестинга. Для базового уровня — самое оно.
- Webgoat — реалистичная среда с уроками, где можно обучаться основам пентестинга и сразу же использовать знания на практике.
- Google Gruyere — выглядит как обычный сайт, но в нем специально оставлено много дыр в безопасности. Отлично подходит тем, кто начинает изучать пентестинг.
- OverTheWire — один из топовых сайтов для обучения пентестинга в игровом режиме. 50 уровней сложности и активное сообщество, где можно спросить совета.
Согласно данным исследования Inside the mind of a hacker, пентестинг сегодня считается даже более прибыльным, чем злонамеренный взлом. Компании хорошо платят тем, кто находит уязвимости их систем — многим хакерам просто незачем нырять в Даркнет, если официально и вполне легально можно заработать не меньше.
Если вы хотите стать пентестером — путь открыт. Но вот стать хорошим пентестером, который зарабатывает десятки тысяч долларов в месяц, намного сложнее. Это уже больше похоже на искусство, а не на ремесло. Готовы к такому? Тогда вперед!
А промокод HABR даст вам получить дополнительные 10% к скидке указанной на баннере.