Кто такие хакеры и с чего начать изучение данной сферы?
Итак, как становятся хакерами? В первую очередь потребуется понять, что подразумевается под этим термином. Следует отметить, что хакеры ничего общего не имеют с разного рода злоумышленниками, которые промышляют кражей денег с банковских счетов и атакуют самые разные ресурсы для того, чтобы заблокировать к ним доступ пользователей. Естественно, современные компьютерные умельцы потеряли статус IT-специалиста высшей квалификации. В связи с последними событиями они стали пользоваться плохой репутацией у простых обывателей. А ведь раньше за этим термином скрывались настоящие компьютерные гении, которые были способны исправлять коды в программах, основываясь на собственных нестандартных алгоритмах.
Поэтому, задавшись вопросом о том, как становятся хакерами, следует осознать те цели, которых необходимо будет достигать, овладев этой не совсем простой и редкой профессией. Следует учесть, что на современном этапе имеются разного рода ограничения в законах. И игнорировать их нельзя, так как это повлечет за собой ответственность. К тому же мошенничество в сфере программного обеспечения уже является причиной большого количество скандальных историй. И главными героями в них являются именно хакеры, которые, однако, могут претендовать только на лавры воришек чужих денежных средств и секретов.
Вы хотите еще ответить для себя на вопрос о том, как становятся хакерами? Тогда следует понимать, что без соответствующей подготовки ничего добиться не получится. Карьеру уважаемого эксперта в сфере компьютерных технологий и программ следует начинать с процесса изучения языков программирования. На современном этапе их имеется достаточно много. При этом следует понять, что есть такие языки, которые позволяют общаться непосредственно с персональными компьютерами. С их помощью можно находить решения разного рода задач. Для того чтобы создать автономные программы, применяются современные инструменты. При этом программирование в сети является отдельной отраслью программных кодов с командами, которые позволят структурировать документацию. С их помощью также можно администрировать самые разные процессы в Интернете.
Пытаясь разобраться, кто такой хакер, следует отметить, что имеет место быть еще одна категория языков. Речь идет о механизмах проектирования разнообразных программных платформ в компактных устройствах (мобильных телефонах). В связи с этим, делая выбор в пользу определенной сферы деятельности, требуется осуществить выбор соответствующего языка программирования. Именно на нем и надо сконцентрировать наибольшее внимание.
Естественно, для того чтобы взломать электронную почту, на современном этапе можно воспользоваться пошаговыми инструкциями. Однако они не позволят понять, кто такой хакер. Да и принципы работы разных программ, а также тонкости передачи данных в Интернете все равно потребуется изучить. В связи с этим следует сначала попытаться изучить терминологию, характерную для среды хакеров и программистов. Именно посредством специфических терминов можно общаться с компьютерными специалистами, не опасаясь дилетантов, которые не имеют достаточных знаний для понимания особого «языка».
Уроки, за счет которых можно изучить данную область деятельности, потребуют достаточно много времени, сил и желания. Что еще необходимо, кроме изучения терминологии и языка программирования? Следует научиться читать операционные системы. Хакерским семейством считается Unix/Linux. Достаточно важной особенностью Unixes является открытость кода. Можно читать, каким образом была написана операционная система. Имеется возможность досконального ее изучения. Также можно предпринять попытки относительно изменения чего-либо. Кроме того, Unix/Linux ориентируется на Интернет.
Чтобы стать хакером, необходимо разобраться, каким образом следует использовать Всемирную паутину. Также следует понимать принципы написания HTML. Web – серьезное исключение, большая игрушка для хакеров. Как было сказано политиками, Интернет способен изменить мир. И только по этой причине с ним необходимо научиться работать.
В том случае, если язык программирования изучен еще не был, писание на HTML поможет приобрести некоторые полезные навыки. Они пригодятся в момент освоения программных кодов и принципов их написания. В связи с этим требуется научиться делать хотя бы домашние странички. Следует также попробовать XHTML. Он более аккуратно проработан по сравнению с классическим HTML.
Технически Всемирная паутина представляет собой комплекс компьютерных сетей. Однако на современном этапе это достаточно важная среда коммуникации, которая может быть использована для выполнения самых разных задач. Следует понимать, что российские хакеры обязаны знать английский. Это связано с наличием большого количества информации, которая доступна только на этом языке.
Быть специалистом в области компьютеров, программ и всемирной сети – огромное удовольствие. Однако для этого потребуется приложить максимум усилий. Соответственно, необходима мотивация. Чтобы быть хакером, необходимо получать удовольствие от процесса решения проблем в момент оттачивания навыков и тренировки интеллекта. Специалистам такого уровня никогда не бывает скучно долго и кропотливо изучать массу языков и программ, и работа им не кажется монотонной. Они делают то, что им нравится.
Для кого предназначен этот высер? Для бабушек в бухгалтерии?)
Лень читать, скажите, там очередной школьный кулхацкер или просто школьник?
Тут ведь так и не написано кто такой хакер. Что-то размазано по тексту.
@moderator, канал автора не является источником статьи ( https://www.syl.ru/article/185517/new_kak-stanovyatsya-haker. возможный первоисточник еще от 2015г.)
Т.е. пост просто реклама канала.
Ответ на пост «Похоже наказания из рос-армии добрались по интернету и до обычной жизни»
Главное, чтобы работало.
Похоже наказания из рос-армии добрались по интернету и до обычной жизни
Я работаю в школе программирования. Если студенты нарушают правила, то в наказание им заменяют клавиатуры на это.
Go gopher милая вязаная игрушка
Создавать этого малыша было одно удовольствие, хоть это и на первый взгляд просто «синяя сосиска с ушами» ))))
При создании gopher я использовала различные материалы как: пряжа Пехорка «цветное кружево», крючок для вязания 0,7мм., синтепон, полимерную глину для зубов, немного пластмассы для очков авиаторской шапки, ну и конечно хорошее настроение))))
Экстренный набор
Разработчик с нуля спустя год и сложности дальнейшего развития
Прошел почти год, как я тут создавал пост с вопросом, как стать разработчиком. Год этот был тернист, так как я никогда ранее не занимался программированием и работой с микроконтроллерами, знал совсем немного схемотехнику и единственное что это CAD моделирование.
Как не крути, но для хорошего начала нужна толика везения и я через знакомых смог найти контору, где требовалось делать примитивные вещи, уровня помигать светодиодом, но в основном монтаж, при том навесной. Это мне позволило зарабатывать на хлеб и обучаться. По этому в первую очередь я закупился моим кумиром и кормильцем, китайской паялкой на T12, которая верой и правдой служит мне и сейчас и не поменяю я ее даже на индукционку. Купил фен, ЛБП сам собрал, нормальный мультиметр, кучу ручного инструмента для работы с проводами, в основном мгтф:
Понимаю, что лучший способ, это пойти работать в фирму, где занимаются подобными разработками, но это не путь самурая. Недавно даже приглашали в Московскую фирму, но блин, они тоже используют esp32, а он мне уже не интересен. Я бы даже заплатил кому-нибудь, что бы меня ввели в курс, что где сейчас используют, что мне надо изучить, куда копать и ответили на пару сотен моих вопросов, но что то я ни нашел таких вариантов.
Кстати, я тут пару лет назад делал пост как прожить на МРОТ, сейчас то время вспоминаю с ужасом и непониманием, как я так жил. Даже моих примитивных знаний хватает, что бы зарабатывать в несколько раз больше. И спасибо короне, из-за которой меня сократили и я решил попробовать себя в самозанятых, а то так бы и продолжал работать, думая что это нормально.
Этичный хакинг: как взламывать системы и при этом зарабатывать легально
Кто такой хакер? Большинство людей, которые далеки от программирования, представляют перед собой злостного преступника, взламывающего системы безопасности банков, чтобы украсть деньги. Что-то вроде героя Хью Джекмана из фильма «Пароль — “Рыба-меч”», который взламывает шифр Вернама, чтобы украсть из правительственного фонда 9,5 млрд. долларов. Здесь сосредоточимся на правовой стороне взлома, а если ваши представления навеяны именно фильмами, для вас мы подготовили подробный обзор профессии специалиста по кибербезопасности.
Хакером можно быть и легально. Легальных хакеров называют пентестеры, или «этичные хакеры». Вот только нужно хорошо знать, что можно делать во время тестирования системы на проникновение, а что — нельзя. Иначе можно получить вполне реальные проблемы с законом. Совсем недавно мы запустили курс «Этичный хакер», и в этой статье мы поговорим, как заниматься хакингом, зарабатывать на этом неплохие деньги и при этом не иметь проблем с законом. Поехали.
Что грозит хакеру по закону РФ
Для начала поговорим о проблемах, которые могут свалиться на хакера. Практически все правонарушения, связанные со взломом систем и получения доступа к ним, касаются трех законов:
Согласно ст. 13. КоАП РФ (Административные правонарушения в области связи и информации), за разглашение информации с ограниченным доступом, нарушение порядка хранения, использования и распространения персональных данных может грозить штраф от 300 до 20 000 рублей. Это для физических лиц. Для юридических лиц размер штрафа гораздо больше.
В основном она касается людей, которые имеют доступ к подобной информации, и организаций, которые собирают персональные данные клиентов.
К примеру, интернет-магазин собирает клиентскую базу с именами, номерами телефонов и email-ами. А ушлый менеджер решает собрать базу и скопировать ее для дальнейшей продажи на сторону.
Если подобное действие не стало причиной серьезного ущерба, а на менеджера не поступило жалоб в правоохранительные органы, то правонарушение может быть квалифицировано по ст. 13.11 п. 8 КоАП РФ. Наказание за него — штраф в размере от 30 000 до 60 000 рублей.
Что касается уголовного законодательства, то хакеру-злоумышленнику в большинстве случаев грозят следующие статьи УК РФ:
Небольшое отступление. Пентестеры также используют сторонние программы для взлома систем безопасности и получения доступа к закрытой информации. Легальных программ для взлома не существует, поэтому компания, которая заказывает пентестинг, должна в письменной форме дать добровольное согласие на использование сторонних программ. Также пентестеры обычно подписывают соглашение о неразглашении сведений, полученных в ходе атак.
Пентестер: отличия от хакера
Пентестер — это хакер, который работает полностью легально и в рамках закона. Суть его работы — поиск уязвимостей в системах безопасности.
Но есть несколько серьезных отличий:
Пентестер работает исключительно по программам 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, «Лаборатория Касперского». Но конкуренция на рынке еще довольно невысокая, так что можно вполне комфортно работать и индивидуально.
Некоторые крупные компании вроде «Газпрома» или банковских организаций создают отдельные внутренние подразделения пентестеров, чтобы не раскрывать конфиденциальные данные сторонним организациям.
Поэтому для пентестера есть несколько возможностей:
Чтобы подстраховаться от нечестных компаний, рекомендуем работать через сайты 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-пентестер должен обладать следующими знаниями:
Также нужно научиться использовать программы для пентестинга вроде BurpSuite, SqlMap, Nmap, IP Tools и Acunetix.
Собственно, именно поэтому в пентестинг рекомендуют идти тем специалистам, у которых уже есть определенный бэкграунд в разработке или тестировании. Потому что даже для уровня Junior количество необходимых знаний просто огромно.
Где учиться на пентестера
И напоследок мы собрали несколько популярных ресурсов, на которых можно получить всю необходимую информацию для профессии пентестера:
Если вы хотите стать пентестером — путь открыт. Но вот стать хорошим пентестером, который зарабатывает десятки тысяч долларов в месяц, намного сложнее. Это уже больше похоже на искусство, а не на ремесло. Готовы к такому? Тогда вперед!
А промокод HABR даст вам получить дополнительные 10% к скидке указанной на баннере.
Как стать хакером: гайд по основам для новичков
Чтобы стать хакером, необходимы глубокие знания языков программирования, методов взлома, поиска уязвимостей, устройства сетей, операционных систем и проч. Также у вас должен быть творческий тип мышления. Вы должны быстро адаптироваться под ситуацию, находить нестандартные решения, проявлять креативность.
Если описанные выше навыки можно развить со временем, то чтобы понять, например, устройство MySQL или научиться работать с PGP-шифрованием, придется много учиться. И долго.
Чтобы стать хакером, вам нужно:
Изучить и использовать UNIX-систему, например, Ubuntu или MacOS
Для пользователей Windows
Если вы используете Windows, для вас есть хорошая новость: не надо удалять текущую систему и форматировать диск. Есть несколько вариантов работы с Linux:
Изучить язык разметки HTML
Если вы ещё не знакомы с программированием, тогда я вообще не понимаю, что вы делаете на этом сайте тогда у вас есть отличная возможность начать свой путь с изучения Hyper Text Mark-Up Language. Независимо от того, что вы видите на сайте, знайте, что всё это HTML.
Чтобы сделать форму отправки для этого файла, нужно знать HTML. Отправив файл, который, к примеру, вытаскивает все пароли или даёт доступ к базе данных, вы вольны делать с веб-сервисом всё, что вам угодно.
Итак, знание HTML нужно для того, чтобы:
Изучить несколько языков программирования
Как мы все знаем, чтобы нарушать правила, нужно для начала знать их. Этот же принцип работает для программирования: чтобы взломать чей-то код, вы должны знать, как работают языки программирования, и самому уметь программировать. Некоторые из наиболее рекомендуемых ЯП для изучения:
Изучить устройства сетей
Вы должны чётко понимать устройства сетей и принципы их работы, если хотите стать хакером. Важно понять, как создаются сети, понять различие между протоколами TCP/IP и UDP и проч. Узнайте, какой сетью пользуетесь вы. Научитесь настраивать её. Выясняйте возможные векторы атаки.
Имея глубокие знания о различных сетях, вы сможете использовать их уязвимости. Также вам необходимо понять устройство и принцип работы веб-сервера и веб-сайта.
Изучить криптографию
Это неотъемлемая часть обучения. Необходимо понимать алгоритмы различных шифров, например, SHA-512, алгоритм OpenSSL и проч. Также нужно разобраться с хешированием. Криптография используется везде: пароли, банковские карты, криптовалюты, торговые площадки и проч.
Kali Linux: некоторый полезный софт
Заключение
В этой статье мы разобрались в основах, без которых вы вряд ли сможете стать хакером. К слову о трудоустройстве. Как правило, люди, занимающиеся информационной безопасностью либо работают фрилансерами, выполняя заказы частных лиц, либо работают на компанию, обеспечивая безопасность хранящихся данных, выполняют работу системного администратора, etc.
Как действуют хакеры, воруя ключи и пароли?
Я занимаюсь поиском уязвимостей в различных системах безопасности. В определённый момент мне стало понятно, что мои клиенты недостаточно хорошо знакомы (если вообще знакомы) с базовыми приёмами «хакинга». Ключи к API, пароли, SSH-ключи, сертификаты — всё это отличные механизмы защиты. Но это так до тех пор, пока их держат в секрете. После того, как подобные данные оказываются доступными тем, у кого доступа к ним быть не должно, оказывается, что сложность паролей и продвинутость алгоритмов хеширования уже значения не имеют. В этом материале я хочу рассказать о концепциях, методах и инструментах, применяемых исследователями систем безопасности для нахождения секретных данных. Такие данные используются для взлома систем. Я, кроме того, расскажу тут о простых последовательностях действий, которые помогут снизить риск успешной хакерской атаки.
Важно отметить то, что «игра» в нападение и защиту, в которую играют хакеры и владельцы компьютерных систем, это — нечестная игра. Атакующему достаточно, чтобы проникнуть в систему, выиграть лишь раз. А тому, кто защищается, выиграть можно лишь всегда побеждая. Главная сложность тут — знать о том, на что надо обращать внимание. Но после того, как защитник будет знать о том, через какие именно виртуальные «двери» в его систему может проникнуть хакер, эти «двери» можно защитить с помощью достаточно простых механизмов. Я полагаю, что простота этих механизмов иногда принижает их важность и является причиной того, что многие защитники компьютерных систем упускают эти механизмы из виду.
Как же действуют хакеры, находя пароли и секретные ключи? Какими инструментами они пользуются?
Хакеры находят секретные данные в JavaScript-файлах
Ключи к API разбросаны по всему интернету. Воспользоваться ими может кто угодно. Это — факт. Часто у того, что ключи оказываются в общем доступе, нет каких-то особых причин. Разработчики просто повсюду их забывают. Например, ключи попадают в код по следующим причинам:
Хотя многие хакеры самостоятельно читают код JavaScript-файлов, такие файлы, в основном, ищут с помощью инструментов вроде meg, а потом проверяют то, что нашли, на наличие там соответствующих паттернов.
Нередко у того, что ключи появляются в коде, есть совершенно нормальные причины, но такие ключи не защищены от посторонних. Приведу пример. Один клиент, с которым я работал, пользовался внешним сервисом картографической информации. Так делается во многих проектах. Для того чтобы загружать картографическую информацию и работать с ней, нужно было выполнять обращения к соответствующему API с использованием ключа. Но мой клиент забыл настроить применяемый им сервис так, чтобы ограничить источники, с которых в этот сервис могут поступать запросы, использующие этот конкретный ключ. Несложно представить себе простую атаку, которая заключается в том, чтобы истощить квоту на использование ресурсов картографического сервиса путём отправки к нему множества запросов. Это может стоить пользователю такого сервиса больших денег. Или, что ещё «лучше» (с точки зрения атакующего), такая атака может привести к тому, что те части проекта клиента, которые завязаны на картах, попросту «упадут».
JS-файлы используются хакерами не только для поиска секретных данных. Ведь такие файлы — это код вашего приложения, который может увидеть любой, кому этот код интересен. Хороший хакер может, внимательно прочтя код, разобраться в используемом в нём подходе к именованию сущностей, выяснить пути к API, может обнаружить ценные комментарии. Подобные находки оформляются в виде списка слов, передаваемого автоматическим сканерам. Это — то, что называется «интеллектуальным автоматизированным сканированием» («intelligent automated scan»), когда хакер комбинирует автоматические инструменты и собранную им информацию о конкретном проекте.
Вот реальный комментарий с домашней страницы одного проекта, в котором открытым текстом говорится о незащищённых API, данные из которых может получить кто угодно:
▍Что делать?
Хакеры анализируют информацию из прошлого, пользуясь интернет-архивами
Архив Интернета (известный ещё как «Wayback Machine») хранит периодически создаваемые снимки веб-сайтов. Этот проект позволяет увидеть то, каким был интернет многие годы тому назад. Данные архива представляют немалый интерес для хакеров, которым нужно собрать сведения о некоем проекте. Сканировать файлы старых вариантов веб-сайтов можно с помощью инструментов наподобие waybackurls (он основан на waybackurls.py). Это значит, что даже если вы нашли в коде сайта ключ и убрали его оттуда, но не произвели ротацию ключей, хакеры могут найти этот ключ в старой версии сайта и воспользоваться этим ключом для взлома системы.
Вот что нужно сделать в том случае, если вы нашли ключ там, где его быть не должно:
▍Архив Интернета — это не единственное место, где можно найти ключи
Старый код даёт злоумышленникам самую разную интересующую их информацию.
Хакеры пользуются GitHub
GitHub — это настоящая золотая жила для хакеров. Если знать о том, где искать, то, воспользовавшись простыми инструментами поиска, можно найти много всего интересного. Если учётная запись вашей организации на GitHub не защищена механизмом многофакторной аутентификации, то все без исключения сотрудники организации представляют собой ходячие дыры системы безопасности. Вполне реально то, что некоторые из сотрудников используют везде один и тот же пароль, и то, что этот пароль уже был украден у них через какую-то другую систему. Хакер, которого интересует некая организация, может легко автоматизировать поиск скомпрометированных паролей, да что там говорить, он может найти такие пароли и вручную.
Список сотрудников организации можно создать, воспользовавшись методами разведки, основанной на открытых источниках (Open source intelligence, OSINT). Помочь в этом злоумышленнику может LinkedIn или общедоступный список сотрудников компании с GitHub.
Если, например, кто-то решил взломать компанию Tesla, то он вполне может начать изучение компании с этой страницы:
А даже если компания не использует GitHub в качестве git-платформы, на GitHub, всё равно, можно найти что-то ценное. Достаточно, чтобы этой платформой пользовался хотя бы один из сотрудников компании, например, для домашнего проекта. Если в коде этого проекта (или в истории git) появится что-то секретное, относящееся к компании, этого будет достаточно для того чтобы проникнуть в системы этой компании.
Отслеживание полной истории изменений, вносимых в каждый проект, это — природа git. В свете вопросов безопасности этот факт играет огромную роль. Другими словами, каждое изменение, внесённое в код любым, кто имеет доступ к каким-либо системам некоей организации, подвергает эту организацию опасности.
▍Почему это происходит?
▍Основы использования особых поисковых запросов в GitHub
Существует такое понятие, как «дорки» («dorks») — особые поисковые запросы, использующие различные возможности поисковых систем для нахождения того, что имеет отношение к определённым данным. Вот — интересный список подобных поисковых запросов для Google, подготовленный exploit-db.com.
Если вы хотите углубиться в эту тему, а я рекомендую это сделать, то, прежде чем давать вам краткий список строк, используемых для поиска ключей и паролей на GitHub, предлагаю ознакомиться с этим ценнейшим материалом, написанным талантливым исследователем безопасности систем. Он рассказывает о том, как, что и где искать на GitHub, как пользоваться дорками, детально расписывает ручной процесс поиска секретных данных.
Дорки, применимые на GitHub, не так сложны, как те, которыми можно пользоваться в Google. Дело тут в том, что GitHub просто не предлагает пользователю столь же продвинутых поисковых возможностей, которые предлагает Google. Но, несмотря на это, правильный поиск по GitHub-репозиториям может прямо-таки творить чудеса. Попробуйте поискать в интересующем вас репозитории по следующим строкам:
▍Меры по снижению рисков, связанных с GitHub
Применяйте везде, где используется парольный вход в систему, сложные и уникальные пароли. Но учитывайте то, что сложный пароль — это не обязательно такой, который представляет собой таинственную мешанину из букв, цифр и специальных символов. Сейчас лучшей стратегией считается использование в качестве паролей длинных фраз. Мне хотелось бы сделать одно примечание по поводу менеджеров паролей. Хотя, определённо, такими программами пользоваться стоит, всё равно лучше использовать пароли, представляющие собой фразы, которые пользователи помнят и могут вводить самостоятельно.
Вот что говорит пользователь @corymcdonald:
Там, где я работаю, всем выдают аппаратные средства многофакторной аутентификации. У каждого имеется по 2 устройства YubiKey. Кроме того, каждая команда пользуется менеджером паролей 1Password, для каждой команды создано собственное хранилище паролей. Когда некий сотрудник покидает компанию, команда техподдержки выполняет ротацию паролей в каждом хранилище, к которому был доступ у этого сотрудника. Лично я, например, совершил непростительную ошибку, выложив на GitHub ключи для доступа к AWS. Рекомендовано, перед выполнением коммитов, проверять материалы с использованием git-secrets. Это позволит не дать уйти в общий доступ тому, что напоминает секретные сведения.
Хакеры используют Google
Теперь, когда мы в общих чертах познакомились с дорками, мы можем поговорить о применении особых поисковых запросов в Google. Тут с их помощью можно найти просто невероятные вещи. Google — мощная поисковая система, которая позволяет строить запросы, описывая строки, которые должны и не должны присутствовать в искомых данных. Google, кроме прочего, позволяет искать файлы с определёнными расширениями, умеет выполнять поиск по заданным доменам, по URL. Взгляните на следующую поисковую строку:
Другие интересные поисковые строки могут быть рассчитаны на поиск RSA-ключей или учётных данных AWS. Вот ещё один пример:
Тут перед нами открываются безграничные возможности. Качество поиска зависит лишь от уровня креативности исследователя и от того, насколько хорошо он знаком с различными системами. Вот, если хотите поэкспериментировать, большой список Google-дорков.
Хакеры тщательно изучают интересующие их системы
Когда некая система очень интересует исследователя безопасности (или мотивированного хакера), он приступает к глубокому изучению этой системы. Он близко знакомится с ней. Его интересуют конечные точки API, соглашения по именованию сущностей, особенности взаимодействия внутренних частей систем, наличие доступа к разным версиям системы в том случае, если одновременно используются её разные версии.
Не очень хороший подход к защите API заключается в том, чтобы усложнять пути доступа к ним, скрывать их с использованием чего-то вроде генератора случайных символов. Это не заменяет реальных механизмов обеспечения безопасности. Исследователи безопасности пытаются найти незащищённые пути доступа к системам, конечные точки API, например, пользуясь инструментами для «нечёткого» поиска уязвимостей. Такие инструменты используют списки слов, строят из них пути и проверяют эти пути, анализируя получаемые при попытке обращения к ним ответы. Подобный сканер не найдёт конечную точку, путь к которой представлен совершенно случайным набором символов. Но такие инструменты прекрасно показывают себя в деле идентификации паттернов и в нахождении конечных точек, о которых владельцы системы либо забыли, либо никогда и не знали.
Помните о том, что «безопасность через неясность» («security through obscurity») — это не лучший способ защиты систем (хотя полностью игнорировать его не стоит).
Тут на помощь злоумышленникам и приходят GitHub-дорки, о которых мы говорили выше. Знание о том, какие правила используются при составлении путей к конечным точкам системы (например — нечто вроде api.mydomain.com/v1/payments/. ) может оказать хакеру огромную помощь. Поиск по GitHub-репозиторию компании (и по репозиториям её сотрудников) на предмет строк, связанных с API, часто позволяет находить и пути, включающие в себя случайные символы.
Вот — потрясающий репозиторий SecLists, который содержит множество строк, используемых при именовании сущностей. Им пользуются практически все, имеющие отношение к индустрии защиты данных. Часто эти материалы модифицируют под конкретную систему. Ещё один инструмент, который можно использовать для поиска «зашифрованных» путей, это FFuf — чрезвычайно быстрая программа, основанная на нечёткой логике, написанная на Go.
Итоги
Вопросы безопасности часто обходят вниманием в стартапах. Программисты и менеджеры обычно делают приоритетом скорость разработки и частоту выхода новых версий продукта, жертвуя качеством и безопасностью. Тут встречается включение в код, попадающий в репозитории, секретных сведений, использование в разных местах системы одних и тех же ключей, применение ключей доступа там, где можно воспользоваться чем-то ещё. Иногда может показаться, что нечто подобное позволяет ускорить работу над проектом, но, со временем, это может привести к очень плохим последствиям.
В этом материале я попытался показать вам то, как строки, которые, как кажется, защищены тем, что хранятся в закрытом репозитории, могут легко уйти в общий доступ. То же касается и клона репозитория, сделанного сотрудником из лучших побуждений и не предназначенного для чужих глаз, но оказавшегося общедоступным. Но можно создать базу для безопасной работы, воспользовавшись инструментом для организации безопасного совместного использования паролей, применив централизованное хранилище секретных данных, настроив политики безопасности паролей и многофакторную аутентификацию. Это позволит, не игнорируя безопасность, не замедлить скорость работы над проектом.
Если говорить о защите информации, то тут не очень хорошо работает идея, в соответствии с которой скорость — это самое главное.
Приобретение знаний о том, как работают хакеры, обычно представляет собой очень хороший первый шаг на пути к пониманию того, что такое информационная безопасность. Это — первый шаг к защите систем. Защищая системы, учитывайте вышеперечисленные способы проникновения в них, и то, что хакеры используют достаточно ограниченный набор таких способов. Рекомендуется рассматривать с точки зрения безопасности абсолютно всё, что так или иначе имеет отношение к некоей системе, вне зависимости от того, идёт ли речь о внешних или внутренних механизмах.
Защита систем иногда может восприниматься как дело не особо важное, но трудозатратное и беспокойное. Но будьте уверены: предпринятые вами простые действия по защите ваших систем способны избавить вас от огромных неприятностей.




















