0.1 Начало пути
Вводная часть и пару слов о себе
Всем доброго времени суток, меня зовут XXX, мне 3X лет и работаю я в XXX по профессии XXX.Так сложилось что на своем рабочем месте имею неограниченное свободное время, компьютер и практически не имею каких-либо обязанностей.
До некоторого времени вопросы о саморазвитии, какой-то самозанятости да и в целом о выходе из сторнирующего состояния мою голову не посещали, т.к. работа не пыльная, платят выше среднего по рынку, если верить статистике по моему региону, знай себе, смотри тик-токи и прочие инстаграмы со смешными котами, да в игры на компьютере играй.
Единственное, что хоть как-то можно было назвать полезным из моих занятий это чтение художественной и исторической литературы, а так же игра в шахматы, чаще всего против компьютерного оппонента.
Еще со студенческих лет я восхищался ребятами которые занимались программированием, радиофизикой и связанной с этим темами. И вот с недавнего времени все на том же ютубе мне стали попадаться видеоматериалы связанные с темой "пентеста".
Такие ролики очень увлекли меня и я стал искать и читать\смотреть\слушать все что хоть как-то связано с "хакерами", информационной защитой, кибератаками, "кибер-полигонами", и вообще всё что касается этой тематики.
Чем больше информации получал об этой нише, тем больше испытывал неподдельный интерес от всего этого, проникался романтикой данного ремесла и у меня загорались глаза.
Как-то читая очередную статью окутанную флером противостояния криминалистов из организации XXX и неких неизвестных хакеров, пришло осознание того, что я сам хочу погрузиться в этот доселе невиданный, но такой интересный мир информационной безопасности.
К чему все эти тирады
Для этого есть несколько причин. Первая по списку причина для меня, это-то, что данная статья будет являться **публичной офертой** перед пользователями данного форума о том, что я решил встать на этот тернистый путь и не намерен с него сворачивать.Если сказать проще: "если я пасану, перед пацанами будет не удобно."
Вторая причина это-то что описав свои задумки, появляется возможность получить советов мудрых от более опытных и прокаченных людей, о выбранных материалах (об этом будет чуть дальше), как правильнее двигаться, и даже может быть на вопрос жизни, вселенной и вообще...
И последняя в данном абзаце причина до боли проста, выливая все эти излияния на ~~бумагу~~ дисплеи устройства читающего, я как бы даю вводную для последующих своих статей, рассуждений и надеюсь будущих знакомств, т.к. обмен реальным опытом это мгновенный рост.
Это релиз нейролингвистической программы XXX ver 0.0 если угодно.
0.2 Что и как изучаю в данный момент
Хотелось бы сказать что на поиски, анализ и структурирование информации у меня ушло достаточно большое количество времени, было перечитано не мало всевозможных дорожных карт, путей развития, программ различных курсов и т.д.
Так как картины куда, зачем и что, совершенно не было.
Но понимание того, что без четкого плана действий, намеченного маршрута и целей, весь этот путь будет просто дрейфом в бескрайнем океане информации. Поэтому в самом начале прокладывался курс, составлялась карта и план действий, загружались припасы в трюм драккара...
Сам принцип обучения у меня вышел достаточно базовым, можно сказать школьным.
Есть график составленный в соответствии с моим режимом дня и ночи а так же рабочим временем, ибо работа XXX не подразумевает ежедневной пахоты на барском поле.
В среднем времени в день которое уделяю на изучение это 8-16 часов.
Сам график выглядит примерно следующим образом:
- ПН: Программирование
- ВТ: Базовая криптография
- СР: Администрирование операционных систем
- ЧТ: Программирование
- ПТ: Администрирование операционных систем и сети
- СБ: Программирование и сети
- ВС: Анализ пройдённого материала, составление Anki карт, структурирование заметок
Как видно из графика что в данный момент я делаю упор на программирование.
В будущем этот график естественным образом измениться и приоритеты будут расставлены по другому, но сейчас так.
У вас может возникнуть вполне логичный вопрос:
Если ты собрался заниматься наступательной безопасностью, то где собственно тут сама безопасность и почему все приоритеты отданы каким-то другим вещам ?
А я вам отвечу:В данный момент, а вернее в момент моего начала изучения компьютерных наук, я совершенно не имел никакого опыта, вот от слова совсем, мой максимум заключался это переустановить себе операционную систему да моды к какой ни будь игре установить. В следующей главе я расскажу с какими проблемами столкнулся и чуть более развернуто отвечу на этот вопрос.
Программирование
Анализируя рынок труда в направлении "пентеста", смотря что и как делают другие люди в интернете, чему учат в профильных институтах и по некоторым другим причинам которые опишу далее, я выбрал для себя следующие языки программирования:
Python
Данный язык программирования как требование к пентестеру я встречал буквально в каждой вакансии, в любом ТОПе языков он занимает лидирующие места, при анализе тем на форумах на нем буквально написано килотонны программ а некоторые утверждают что знать его это просто обязательно.Материалы которые изучаю:
- Книги:
-
Ссылка скрыта от гостей- Люди в интернете очень хорошо о ней отзываются, чаще использую как справочник чем как книгу.
-
- YouTube:
- Питон для сетевых инженеров - Так как я активно изучаю и устройство сети, смотрю этот канал.
- Python с нуля и до мидла Андрей+=Пронин - Мне очень понравился формат в котором сделаны ролики, происходит это в формате вопрос-ответ двух людей, помимо простого объяснения темы. Понравилось тем что у меня иногда возникают вопросы а там даются объяснения в режиме живого общения
- Курсы:
-
Ссылка скрыта от гостей- Есть немного практики, бесплатно.
-
- Дополнительные материалы:
-
Ссылка скрыта от гостей- Сайт с документацией по Python
-
Ссылка скрыта от гостей- Сайт по документации набора библиотек Django для разработки веб приложений
-
Ссылка скрыта от гостей- Сайт с документации по библиотеки Scapy для работы с сетевыми пакетами и протоколами
-
- Практика:
-
Ссылка скрыта от гостей- Сайт на котором просто огромное количество задач по программированию
-
Большую часть времени я провожу на сайте LeetCode или в Vs Code разбираясь в стандартных и двух других (Django, Scapy) библиотеках. На курсы и книги уделяю несравненно меньше времени чем на чтение документаций. Как выяснилось книги и курсы (по крайней мере те что попадались мне) содержат достаточно устаревшую информацию т.к. видно развитие языка и библиотек.
C
К тому что понимание данного языка нужно я пришел не сразу, но его необходимость в своем багаже знаний стала очевидной когда начал читать о разработке вирусов и эксплойтов, о том как находят уязвимости в программах и об обратной разработке все тех же вирусов и эксплойтов.Материалы которые изучаю:
- Книги:
-
Ссылка скрыта от гостей- Если пытался искать информацию по теме изучения данного языка, везде говорилось что эта книга является чуть ли не библией, а может даже и больше для людей работающих с этим языком.
- Си на примерах. Практика, практика и только практика - Данную книгу я выбрал потому что в ней есть практические занятия посвященные с работой сети. Больше аргументов в силу такого выбора у меня нет.
-
- YouTube:
- Begin end - Мне понравилась подача материала, автор достаточно ясно излагает свои мысли а так же дает домашние задания для практики пройдённого материала.
- Айтишник - В принципе это первый канал из IT тематики который начал смотреть, по большей части он представляет из себя сборную солянку по разными темам, но мне интересно только как он пишет свою игру, поэтому оставил в этом разделе.
- Дополнительные материалы:
-
Ссылка скрыта от гостей- Документация по версиям языка т.к. в книгах описываются другие версии и сюда я хожу как в справочник ибо информация там подается достаточно тяжело.
-
- Практика:
- Отдельного места для практики данного языка у меня нет, выполняю задания из видео, книг или переписываю код с питона на Си
SQL
Хоть данный "язык" и был вынесен в отдельную категорию, его изучение всегда проходит параллельно с изучением Python, так как нужно понимание взаимодействие веб приложений для дальнейшего поиска в них уязвимостей а так же поиска уязвимостей в базах данных. Каких-то отдельных материалов по его изучению у меня нет т.к. при работе с разными базами данных или библиотеками синтаксис а иногда и подход отличается, изучаю то что получается найти на просторах интернета по задаче решением которой занимаюсь в данный момент.Администрирование и сети
Данный раздел в моем подходе обучения не менее обширен чем раздел программирования и включает в себя так же множество подразделов, но так как текста написано уже не мало я постараюсь немного сократить повествование об изучении операционных систем и сетей.
- Книги:
- Linux от новичка до профессионала - Объемная книга по использованию Linux от работы с файлами до настройки собственных серверов. Ее одной хватает что бы забирать все выделенное время на чтение литературы по данному направлению.
- YouTube:
- RJ45 - Огромное количество видео-лекций на тему администрирования Windows серверов. Роли сервера, права доступа, организация политик безопасности, организация сети на базе Active Directory и т.д. тут все это есть.
- Ит видео - Огромный сборник видео на тему администрирования серверов, облачной инфраструктуры, организация безопасности в компаниях и т.д.
- Мир IT с Антоном Павленко - Мужик рассказывает о своем опыте и работе с серверами, информация разная от помощника системного администратора до DevOps инженера.
- Kirill Semaev - Канал посвященный обучению администрированию серверов с домашними заданиями.
- Andrey Sozykin - Тут я смотрю обучающие видео о работе с сетью, но чаще по вопросам сети я ищу в интернете документации где описываются принципы работы и взаимодействия разных протоколов и технологий.
- Практика:
- Каких-то специальных ресурсов для отучивания практических навыков администрирования найти мне не удалось кроме яндекс-практикума, но там момент с тем что все в основном завязано конкретно на их облачной инфраструктуре и преподаваемой ими теоретической базы. Поэтому в данном направлении я практикуюсь "создавая" свой виртуальный офис, с рабочими станциями, серверами, виртуальными коммутаторами и маршрутизаторами.
В целом по этим дисциплинам практики отдавать получается на мой взгляд больше в процентном соотношении к теории, из за проблем о которых собственно и будет в следующем абзаце.
Базовая криптография
Этот раздел для меня самый маленький т.к. по нему у меня только одна книга, но и самый сложный. Приходится очень много вспоминать из школьного курса математики, искать непонятные вещи и термины в интернете, да и прочтение ее дается с большим трудом.
- Книги:
- Прикладная криптография. Протоколы, алгоритмы и исходный код на C - Очень тяжелое для меня чтиво, но поскольку практически все современные системы используют разного рода шифрование, а так-же криптография обеспечивает нам защиту как личных данных так и самой личности, знания в этой области просто необходимы как мне кажется.
- Практика:
- Единственная возможная практика это попытки воспроизвести алгоритмы шифрования в собственном коде.
Мои инструменты
Git
Система контроля версий - это просто превосходный инструмент для хранения историй изменений своих фалов, освоить работу с ним на базовом уровне совершенно не сложно а польза проста неоценима, особенно когда переделываешь файл, потом что-то не нравиться и хочется откатиться к предыдущей версии. Пока что я использую его локально ибо мне еще стыдно показывать свой код и скудный набор заметок, но в будущем я создам публичный репозиторий которым обязательно поделюсь с пользователями данного форума.Obsidian
Программа для создания и организации заметок - очень удобный и мощный редактор, поддерживает язык разметки MARKdown что позволяет красиво и читабельно организовывать заметки, связывать их между собой, вставлять блоки кода. А так же в программе можно посмотреть все связи заметок в виде графа.Vs Code
Текстовый редактор для написания кода - имеет в себе встроенный дебагер для кода а так-же можно устанавливать кучу разных плагинов, поддерживает разные языки программирования, очень удобен когда в одном проекте используешь несколько языков для запуска, компиляции и т.д. не нужно мотаться по разным IDE, все в одном месте.VmWare Workstation
Система виртуализации - в данный момент глубоко не погружен в процессы виртуализации и использую VmWare потому что было много проблем с VirtualBox, одна из которых не удалось решить, это "микро-замирания" при виртуализации Linux систем, поэтому VmWareНейросети
Нейронные сети новомодное изобретение, кто-то говорит что они скоро заменят всех IT специалистов, кто-то что это бесполезная технология и очередной пузырь для отмывания денег на грантах и прочие осваивания бюджетов.
Но я считаю что это просто удобный инструмент который помогает немного упростить повседневные задачи. Сам использую следующие: **Bing**, **Yandex GPT2** и **ChatGTP**
Для меня это некий аналог поисковика на несложные вопросы, сильно помогает когда сам вопрос сформулировать для поискового запроса не сразу получается.
P.S.
Картинки для данной статьи рисовала нейросеть Bing
P.S.S.
Если кто-то вдруг дочитал до этого момента и имеет такую возможность, был бы очень благодарен за API ключ или другой доступ к ChatGPT т.к. в данный момент я использую ее из бесплатных телеграмм ботов
0.3 Некоторые мысли и трудности на пути
Так почему же не сразу идти и учиться взламывать системы ? Всяких курсов которые обещают сделать из меня пентестера с нуля за три наносекунды с регистрацией и смс.
Но моя цель состоит не в том что бы просто научиться запускать уже созданные программы, быстро заработать денег или же завтра уже бежать устраиваться на галеру размахивая сертификатом какой-нибудь модной онлайн школы.
У
А когда начинаешь искать информацию по дополнительным источникам, то приходит осознание того, что для разбора этой уязвимости, понимания ее сути, возможности самостоятельно находить подобное, требуется разбираться в программирование, нужно понимать как разработчик писал свой код, почему этот баг там появился.
И как понимаю, это будет работать со всеми направлениями в пентесте.
Хочешь взламывать программы ? Учись программировать.
Хочешь взламывать веб приложения ? Учись писать их, понимать логику создателей этих приложений.
Хочешь взламывать сервера ? Учись их настраивать и понимать где администратор мог допустить ошибку. И как мне думается, после получения вышеописанных навыков, уже будет куда легче разбирать и искать уязвимости.
Но это сугубо мое мнение. Возможно тот кто проходил этот путь, объяснит мне в чем ошибаюсь.
Основная трудность - это желание знать все, информации получаются огромные объемы, начинаешь что-то читать, что-то делать и тут же информация в Лернейскую гидру, начинается разветвляется, отращивать новые головы, завиваться в клубки переплетаясь между другими дисциплинами, темами, источниками и весь твой пошаговый план летит в тартарары.
Я прекрасно осознаю что выучить все и сразу невозможно а в подобных попытках можно просто перегореть.
Но дорогу осилит идущий. Тяжело в учении - легко в бою. Копейка рубль бережет, или это уже не из той степи ?
Быстрый FAQ вместо выводов.
Q: Почему не сразу пентест а такой долгий путь выбрал ?
A: Хочу стать хакером а не Script kiddie
Q: Сколько часов в день уделяешь обучению ?
A: Ежедневно от 8 до 16 часов.
Q: Как отдыхаешь ?
A: Читаю или смотрю истории связанные с великими людьми в индустрии или технологиями.
Q: Что самое сложное в обучении ?
A: Нехватка времени в сутках и потребности организма в сне, еде, набегах...
Q: Какие планы дальше ?
A: Продолжать обучаться, начать писать статьи для форума, даже если тема уже обсуждалась, хочется делать какой-то свой контент, да и метод желтой уточки, все такое.
Q: Чего ожидаешь от статей\\посещения форумов ?
A: Советов мудрых от тех кто уже проходил этот путь.
Если у кого-то есть, советы, замечания, комментарии или иные мысли по поводу простыни выше, буду рад это почитать а так-же ответить на вопросы.