Эта статья для тех, кто устал читать бесконечные новости об этических хакерах и не знает, кто это такие самом деле.
Информация предназначена для людей, которые:
- не имеют никакого опыта работы в сфере кибербезопасности (хакерства)
- имеют малый опыт работы
- никак не могу добиться успеха в IT-отрасли
Пора откинуться на спинку кресла и погрузиться в огромный мир возможностей и советов, которые помогут продвинуться по карьерной лестнице в сфере кибербезопасности.
Многие новички не знают, с чего им начать, хотя уже ставят перед собой определенные цели: например, взломать аккаунт своего друга на Facebook. В этой статье попытаемся понять, как это сделать, и узнаем как можно больше информации о кибербезопасности. Будут даны подробные технические инструкции о том, как начать работу, если являешься новичком, и как развиваться по мере приобретения знаний и опыта в данной области. Хакерство — это навык. И стоит всегда помнить, что если есть желание научиться хакерству исключительно для удовольствия или только взлома аккаунта друга на Facebook или чьей-то электронной почты, то ничего не получится. Надо решить для себя, что изучение хакерства – это центральный процесс жизни, и придется стать экспертом в компьютерных системах. Пришло время все изменить.
«Я был разными хакерами. Начиная с White Hat и заканчивая Black Hat. Чем опаснее и образованнее я становился, тем интереснее мне было двигаться дальше»
MakMan
Введение
Во-первых, нужно понять, что выражение «карьера в кибербезопасности» немного схоже со словосочетанием «карьера в банковской сфере», т.е. это общие термины, которые включают в себя десятки профессий в отрасли. В кибербезопасности можно, например, говорить о работе в цифровой криминалистике как о реальной карьере или обнаружении вредоносного программного обеспечения (программ), аудите, испытании на проникновение, социальной инженерии и многих других профессиональных стезях. Каждая из этих подкатегорий в рамках кибербезопасности заслуживает отдельной статьи, но сейчас необходимо сосредоточиться на некоторых важных общих требованиях, которые выставляются каждому, кто хочет начать успешную карьеру в области IТ-безопасности.
Если у человека нет никакого опыта, то не нужно волноваться. Все должны с чего-то начинать, и всем нужна помощь, чтобы достичь высот в определенной профессии. Никто не является обузой, и никто не рождается со всеми необходимыми навыками. Итак, у будущего программиста нулевой опыт и ограниченные возможности на данный момент. Здесь главный совет заключается в том, чтобы он обучился некоторым основам программистского дела.
1. Что такое хакерство?
Хакерство — это выявление слабых мест и уязвимостей какой-либо системы и получение доступа с их помощью.
Хакер получает несанкционированный доступ к системе, атакуя ее, в то время как этический хакер имеет официальное разрешение для законной оценки состояния безопасности нужной системы.
Есть несколько типов хакеров. Некоторые из них:
- White hat – этический хакер.
- Black hat – классический хакер, который хочет получить несанкционированный доступ.
- Grey hat – человек, который получает несанкционированный доступ, но раскрывает слабые стороны системы компании.
- Script kiddie – это человек без каких-либо технических навыков, просто использующий готовые инструменты.
- Hacktivist – это человек, который взламывает какую-то систему и оставляет сообщения. Например, забастовка против использования авторских прав.
На самом деле, цель этического взлома состоит в том, чтобы выявить слабые уязвимые места системы компании для того, чтобы исправить их. Этический хакер документирует все, что он делает.
2. Навыки, необходимые для того, чтобы стать этичным хакером.
Прежде всего, чтобы быть пентестером, нужно быть готовым постоянно узнавать новые вещи, при чем, быстро и дома. Во-вторых, надо иметь фундаментальное понимание по крайней мере одного языка программирования или скрипта, а также знать основы сетевой и веб-безопасности.
Итак, вот несколько шагов, которые могут помочь:
- Обучение тому, как писать код.
- Понимание основных понятий, связанных с операционной системой.
- Изучение основ сетевого взаимодействия и безопасности.
- Работа как можно с большим количеством различной техники.
3. На каком языке кодить?
Это зависит от того, на какой платформе человек будет работать. Для веб-приложений лучше изучить HTML, PHP, JSP и ASP. Для мобильных приложений стоит обратить внимание на Java (Android), Swift (iOS), C# (Windows Phone). Для настольного программного обеспечения попробовать Java, C#, C++.
Также хочется порекомендовать Python, потому что это язык общего назначения, и он становится все популярнее в настоящее время из-за его портативности.
Но что действительно необходимо для каждого языка программирования, так это изучить основы программирования и такие понятия, как типы данных, манипулирование переменными в программе на уровне операционной системы, использование подпрограмм и их функций. Если человек изучит это, то данные знания подойдут для каждого языка программирования, не беря во внимание некоторые изменения в синтаксисе.
Секреты профессионалов:
- Для того чтобы стать экспертом в любом языке программирования, стоит разобраться в операциях на уровне ОС этого языка (различающихся в разных компиляторах) или изучить язык ассемблера, чтобы получить более обобщенные сведения.
- Не нужно возлагать больших надежд – очень сложно достичь каких-то результатов за короткий промежуток времени. Предпочтителен стиль обучения Miyagi, который постоянно мотивирует двигаться дальше.
- Никогда не стоит недооценивать силу сетевых и системных администраторов. Они могут сделать хакера своим «рабом» в корпоративно-информационной среде.
Полезные ссылки и ресурсы для начинающих:
- Весь список ресурсов здесь: https://github.com/husnainfareed/Resources-for-learning-ethical-hacking
Кроме этого, можно присоединиться к сообществу Join Slack для хакеров:
Для того, чтобы отточить свои навыки и попрактиковаться, подойдут следующие ресурсы:
Публичные отчеты HackerOne
Эти отчеты помогут понять, как проходит охота BugBounty
Некоторые важные моменты, которые следует запомнить:
- Самообучение: дает опыт и необходимые навыки.
- Обучение на ежедневной основе: чтение статей, блогов; просмотр видео для постоянного саморазвития.
- Знание цели. Нужно тратить большую часть своего времени для достижения поставленной цели.
- Приобретение большого количества знаний в области кибербезопасности.
- Нестандартное мышление. Надо думать не так, как думают другие программисты. Найти свой путь.
- Быть словно «ниндзя»: быстрым, точным, веровать в свое предназначение, целиться прямо в жертву.