Немного о себе, DOS и терпении
В IT я официально почти 13 лет, из них около 9 работаю Penetration Tester в разных компаниях. Неофициальный путь начался намного раньше. Все базовые компьютерные знания я добывал из библиотечных книг. Google тогда был таким себе помощником, а покупать IT-литературу в то время в Бразилии было непозволительной роскошью. Но однажды на свой день рождения я получил PHP Bible, с помощью которой написал свой первый шелл на PHP для эксплуатации Remote File Inclusion (RFI) уязвимостей.
Также я посещал компьютерные курсы. Чтобы платить за них, работал на своего отца — мыл детали мотоциклов. Кстати, я начал с DOS 6.22. Пишу это и чувствую себя старым.
Профессиональный путь начался с Service Desk, затем в техподдержке. Через несколько лет я перешел в системные администраторы а после наконец перебрался в сферу безопасности.
Самой большой проблемой в начале моей карьеры было найти хорошие материалы и надежные источники информации. Сейчас это уже не так трудно. Главная сложность, как по мне, — сохранять терпение и не сдаваться после нескольких неудач. А они могут быть очень и очень неприятными.
Какой опыт поможет
Иногда меня спрашивают, какой бэкграунд больше подойдет для того, чтобы стать Security или Penetration Tester. Однозначного ответа дать не могу. Все зависит от того, в какую именно сферу безопасности вы переходите. Например, для исследования вредоносных программ хорошим бэкграундом будет знание ассемблера. С другой стороны, для Web Pentester неплохой стартовой площадкой станут Javascript-, HTML-навыки и, конечно же, понимание сетевых технологий. Не думайте, что установка Kali Linux на вашей машине волшебным образом делает вас пентестером. Этот процесс отнимает время, и, по-честному, очень много времени.
Вообще работа в области безопасности требует сочетания различных навыков. Человек не обязан быть мастером в каждом, но должен знать достаточно, чтобы, по крайней мере, иметь представление, с чего начать поиск ответов. И понятный всем, но важный момент: чтобы хакнуть что-либо, вы должны понять, как это «что-либо» работает.
Допустим, кто-то хочет использовать уязвимость SQL Injection. Но знает ли атакующий, что такое SQL? Если нет, как он сможет проэксплуатировать уязвимость? Конечно, есть инструменты, которые могут выполнить эту работу за него — тогда злоумышленник может провести атаку без особых знаний. А если инструмент не сработает? Атакующему останется просто сдаться. А если у него есть какое-то понимание процессов, он сможет найти новые способы использовать инструмент. Если же есть навыки программирования, он может исправить инструмент или написать новый, чтобы все-таки воспользоваться этой уязвимостью.
Ссылки и литература
Базовые знания
Материалы, которые я рекомендую ниже предполагают, что у вас есть, по крайней мере, базовые знания по таким темам:
- администрирование Linux;
- администрирование Windows;
- какие-то навыки в языках программирования (Perl, Python, Ruby, JavaScript), также для веб-пентестов потребуется HTML;
- основные сетевые протоколы (TCP/IP, ICMP) / сетевые службы (Proxy, VPN, Samba, AD);
- протоколы: HTTP, FTP, DNS, SSH;
- базы данных SQL (DDL, DML и т. д.), MySQL, SQL Server, PostgreSQL, Oracle.
Если у вас нет этих навыков, не пытайтесь сразу попасть в мир безопасности. Иначе есть риск разочароваться. На старте придется много чего прочесть.
Если вы хотите изучить Linux, не начинайте с Kali. Причины хорошо описаны в самой документации. Особенно рекомендую прочесть вторую часть, в частности, эти строки: «Дело в том, что Kali — это дистрибутив Linux, специально предназначенный для профессиональных пентестировщиков и специалистов по безопасности, и, учитывая его уникальный характер, он НЕ является рекомендуемым дистрибутивом, если вы не знакомы с Linux или ищете универсальный дистрибутив для настольных компьютеров Linux для разработки, веб-дизайна, игр и т. д.».
Далее самое главное — знать, как все работает.
Я знаю много «хакеров», которые могут удалить целые базы данных, но даже не подозревают, как работает оператор SELECT или CREATE TABLE. Или ребят, которые могут положить сервер, но даже не знают, что такое ICMP type 8. И даже не буду обсуждать тех, кто использует SET для захвата учетных данных Facebook.
И еще один совет: не думайте, что все бесплатно. Вам нужны будут деньги для покупки книг, обучения и/или сертификации.
Ресурсы для изучения
Итак, если вы новичок, то ниже предлагаю книги и ссылки для старта. Ставлю их в том порядке, который, по-моему, является лучшим путем обучения. Но выбор пути — в любом случае за вами.
- Modern_Operating_Systems — Wikipedia;
- Computer Networks, by Andrew S. Tanenbaum, David J. Wetherall;
- HTTP: The Definitive Guide, by David Gourley, Brian Totty, Marjorie Sayer, Sailu Reddy;
- Introduction to Linux — course on edX;
- Linux Academy;
- linux-training.be — books;
- HTML&CSS design and build websites — book;
- Programming_Logic — Wikipedia;
- Python For Beginners;
- Beginning Perl — book;
- SQLCourse.com — online training.
Теперь у вас впереди есть как минимум 6 месяцев обучения, в течение которых вы можете также поискать целевые тренинги.
Ниже я перечислил некоторые потенциальные направления для развития в области информационной безопасности. Список не исчерпывающий. Мой совет: сначала вы должны выбрать одну область и перейти к другой, только когда освоите предыдущую. Но иногда вам приходится миксовать их, чтобы получить лучшие результаты.
- Web Pentesting;
- Network Pentesting;
- Mobile Pentesting;
- SCADA Pentesting;
- Reverse Engineering;
- Malware Analysis;
- Forensics;
- Security Research;
- Hardware Security;
- Exploitation.
Конечно, вы можете изучать и более одной темы одновременно.
Если же необходимые базовые навыки у вас уже есть, ниже несколько хороших ссылок, которые вы можете использовать для дальнейшего погружения в область информационной безопасности.
Если вы планируете использовать Kali для начала учебы, стоит ознакомиться с официальной документацией. Рекомендую сделать это, прежде чем переходить на канал #kali-linux на Freenodeи задавать вопросы. Кроме того, можно использовать Kali Linux Forums. Дополнительно, поскольку Kali основан на Debian, неплохо бы проверять документацию Debian Linux, если вы не знакомы с этим дистрибутивом.
Еще Hacking Exposed series — очень хорошая серия книг, которая охватывает множество разных тем.
Серия книг, которая раскрывает темы по Mobile, Android, Cars и другим, а не только веб-приложениям — Hacker’s Handbook series.
Полезна книга SQL Injection Attacks and Defense, by Justin Clarke.
В целом в Гугле есть большое количество книг, если вбить в поиске «pentest Kali Linux». Выберите одну и начинайте обучение.
Дополнительно
Еще несколько ссылок:
- How to become a pentester — отсюда можно взять кусочки.
- Vulnhub — множество уязвимых машин, чтобы потренироваться.
- securitytube.com — множество видеороликов и руководств по безопасности.
- cybrary.it — еще больше видеороликов о безопасности.
- Pentester Lab — различные упражнения для пентестинга.
- Hacking: The Art of Exploitation — низкоуровневая эксплуатация.
- owasp.org.
- Awesome Penetration Testing — подборка ресурсов на GitHub.
- 22 Hacking Sites, CTFs and Wargames To Practice Your Hacking Skills.
Международные сертификаты:
Два часто задаваемых вопроса
Сколько времени может занять переход в пентестеры?Я бы говорил о годах. При должном стремлении — 4 или 5 лет. Честно говоря, не могу подсчитать, сколько встреч с друзьями мне пришлось отменить, чтобы успеть написать код или проэксплуатировать какой-то сложный кейс. Здесь по классике — под лежачий камень вода не течет.
Что насчет денег? В силу опыта, могу дать информацию по Польше. Насколько я анализировал рынок, в сфере security средняя зарплата находится в диапазоне от
К сожалению, я не говорю на русском или украинском. Перевести статью мне помогли коллеги. Я могу ответить на ваши комментарии или вопросы, если они будут на английском. Если нет, ответить смогут украинские коллеги.