На что способны хакеры
Что делают хакеры
Слово хакер произошло от английского «hacker», «to hack», последнее переводится как «рубить», «кромсать».
Раньше хакером называли высокопрофессионального компьютерного специалиста, который необычным, нестандартным образом решал компьютерные проблемы.
Другими словами, это был компьютерный гений, который творчески подходил к решению запутанных, сложных компьютерных задач, быстро мог исправить ошибки в программах нестандартным образом.
Времена меняются. Теперь значение слова «хакер» изменилось, и обычные пользователи Интернета считают хакера компьютерным взломщиком.
Наряду со словом «хакер» есть слово «кракер», что на английском пишется как «cracker», «to crack», переводится как «раскалывать, разламывать». Но среди обычных пользователей распространение получило слово «хакер» как раз в понимании компьютерного взломщика.
Волшебники, а также гении бывают добрые и злые. Так же и хакеры в современном понимании этого слова есть добрые (белые) и злые (черные).
Белые хакеры находят изъяны в компьютерных программах, сообщают о них и способствуют их устранению.
Черные хакеры тоже ищут уязвимости в программах, но найдя их, используют эти уязвимости в корыстных целях.
Есть такое представление, что хакерством является навязчивое программирование, так сказать психическое расстройство, проявляющееся в непреодолимом желании установить на свой персональный компьютер самую последнюю, наиболее современную версию того или иного программного обеспечения.
Подобное поведение можно назвать компьютерной зависимостью, в результате которой человек перестает реагировать на окружающих и становится ко всему равнодушным за исключением компьютера. Как говорит статистика, такое поведение присуще людям, которые работали в сфере программирования около десяти и более лет.
Также имеет право на существование версия о том, что хакерством можно назвать определенную группу людей или общность, увлеченную разработкой, совершенствованием и взломом программ. Такое явление возникло достаточно давно, уже с появлением ранних микрокомпьютеров и пользовательских групп, объединенных общими интересами.
Сейчас хакерами называют людей, которые занимаются сетевыми взломами, созданием различных вирусных программ и другой деятельностью, порой превращающейся в откровенное мошенничество, преследуемое по закону.
Польза от хакеров
Иногда хакерами именуют людей, обладающих большими знаниями в области компьютерных технологий, и которые являются настоящими профессионалами в своем деле. Таким людям хакерство приносит массу удовольствий, однако и требует многого: ответственности, терпения, а иногда и ограничение в свободе для обеспечения личной безопасности (почти как разведчики).
А, например, некоторые крупные фирмы, разрабатывающие программное обеспечение, специально держат в своем штате хакеров, чтобы они искали уязвимости в программах, разрабатываемых такой фирмой. Известен случай, когда компания Google специально устраивала конкурс среди хакеров по взлому своего программного обеспечения с целью последующей доработки и защиты. И это далеко не единственный пример подобного рода.
Хакерами становятся в силу различных причин. Такая деятельность должна приносить моральное удовлетворение и/или материальную выгоду. Быть хакером, как я уже писала выше – это не значит быть только взломщиком и вредителем в сети Интернет. Многие хакеры используют свои знания в таких областях, как музыка, игры и пр.
Считается, что хакер должен быть всегда на виду, но при этом не афишировать своих персональных данных: имени, фамилии, адреса и пр. Именно поэтому настоящих хакеров довольно легко отличить от так называемых «кракеров», которые им стараются подражать.
Кракеры постоянно на виду у пользователей и из-за этого часто имеют проблемы с законом. Хакеры стараются не вести никакого сотрудничества с кракерами. Тем не менее обычные пользователи не различают хакеров и кракеров.
Наказание за хакерство
В соответствии с законодательством за взлом компьютеров, насильственное уничтожение информационных данных, изготовление и распространение вредоносных программ предусмотрено суровое наказание, которое приравнивается чуть ли не к военным преступлениям. На войне как на войне! В РФ за хакерство предусмотрено наказание в виде крупных штрафов, вплоть до лишения свободы по двум основным «хакерским» статьям:
Некоторые хакеры поэтому стараются регистрировать свои IP-адреса, по которым их самих и их вредоносную деятельность можно идентифицировать, найти и пресечь, в странах третьего мира, где отсутствует соответствующая законодательная база, надеясь тем самым избежать ответственности.
Однако, несмотря на все усилия хакеров и противодействующего им законодательства, борьба продолжается с переменным успехом. И мы часто слышим о тех или иных преступлениях в области высоких технологий. Поэтому надо и самим заботиться о сохранности своей информации и персональных данных.
Предлагаю посмотреть видео «Как обезопасить себя от кибермошенников»:
P.S. По интернет-грамотности будет интересно:
Как действуют хакеры, воруя ключи и пароли?
Я занимаюсь поиском уязвимостей в различных системах безопасности. В определённый момент мне стало понятно, что мои клиенты недостаточно хорошо знакомы (если вообще знакомы) с базовыми приёмами «хакинга». Ключи к 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.
Итоги
Вопросы безопасности часто обходят вниманием в стартапах. Программисты и менеджеры обычно делают приоритетом скорость разработки и частоту выхода новых версий продукта, жертвуя качеством и безопасностью. Тут встречается включение в код, попадающий в репозитории, секретных сведений, использование в разных местах системы одних и тех же ключей, применение ключей доступа там, где можно воспользоваться чем-то ещё. Иногда может показаться, что нечто подобное позволяет ускорить работу над проектом, но, со временем, это может привести к очень плохим последствиям.
В этом материале я попытался показать вам то, как строки, которые, как кажется, защищены тем, что хранятся в закрытом репозитории, могут легко уйти в общий доступ. То же касается и клона репозитория, сделанного сотрудником из лучших побуждений и не предназначенного для чужих глаз, но оказавшегося общедоступным. Но можно создать базу для безопасной работы, воспользовавшись инструментом для организации безопасного совместного использования паролей, применив централизованное хранилище секретных данных, настроив политики безопасности паролей и многофакторную аутентификацию. Это позволит, не игнорируя безопасность, не замедлить скорость работы над проектом.
Если говорить о защите информации, то тут не очень хорошо работает идея, в соответствии с которой скорость — это самое главное.
Приобретение знаний о том, как работают хакеры, обычно представляет собой очень хороший первый шаг на пути к пониманию того, что такое информационная безопасность. Это — первый шаг к защите систем. Защищая системы, учитывайте вышеперечисленные способы проникновения в них, и то, что хакеры используют достаточно ограниченный набор таких способов. Рекомендуется рассматривать с точки зрения безопасности абсолютно всё, что так или иначе имеет отношение к некоей системе, вне зависимости от того, идёт ли речь о внешних или внутренних механизмах.
Защита систем иногда может восприниматься как дело не особо важное, но трудозатратное и беспокойное. Но будьте уверены: предпринятые вами простые действия по защите ваших систем способны избавить вас от огромных неприятностей.
Кто такой хакер? Кого и зачем он взламывает? Как стать хакером?
Сегодня слово «хакер» чаще всего применяют именно ко взломщикам. Это люди, которые своими действиями нарушают закон. Они используют уязвимости в программном обеспечении, чтобы обойти защиту.
Зачем хакеры похищают информацию
Хакеры бывают разные
У хакеров, как и у ИТ-специалистов в целом, есть специализации. Например, фишеры собирают данные аккаунтов (в том числе банковских) через формы на фальшивых сайтах или поддельные приложения. Затем они перехватывают контроль над аккаунтом и, к примеру, опустошают банковский счет жертвы.
Хакеры могут устроить катастрофу
Что просят хакеры, когда шантажируют жертву
Плату за возврат данных или восстановление доступа, к слову, всё чаще просят в биткоинах или другой криптовалюте. Такие платежи сложнее отследить.
Добрые белые хакеры
Есть хакеры, которые занимаются взломом систем для повышения их безопасности. Это белые, или этичные хакеры. Они пытаются найти дыры в системе и способы её взлома, а затем передать данные об этом разработчикам.
Как стать хакером?
Для этого нужно иметь глубокие знания. При этом получать их придется самому, потому что на хакера в университетах не учат. Важно владеть разными языками, уметь мыслить нестандартно, быть креативным и уметь быстро находить решения непростых задач.
Что хакер может и должен сделать?
Этот процесс не имеет строго определённого набора действий. Но некоторые общие этапы всё-таки выделить можно:
Самое обычное средство взлома пароля (точнее, его подбор) – это брутфорс. Про брутфорс написано много и не только на моём ресурсе. Программ брутфорс много, но многие из них похожи по своим функциям. Причём основные инструменты (программы) разработаны давно, но это не значит, что они устарели. Основной принцип работы прост. Программа подключается к серверу (ftp или e-mail) и с помощью прикреплённого словаря потихоньку подбирает пароль. Методы противодействия атакам описаны также на моём сайте.
Для этого хакер использует сканер. Если это просто работа на любой из открытых для проникновения компьютеров, то сканер просто проверяет по заданному диапазону IP-адресов находящийся в сети компьютер и проверяет уже конкретную машину на предмет открытых в нём портов. Если машина конкретная (это, впрочем, тоже не обязательно), то проникший в операционную систему троянский конь или троян сам «помогает» хакеру, без ведома жертвы открывая незаметно порт для проникновения в компьютер. Через открытый порт можно получать управление компьютером.
Традиционный способ – спрятать троян, прикрепив его к какому-либо файлу, передаваемому по сети или находящегося на зловредном ресурсе. Это делается с помощью программ-джойнеров. Джойнер позволяет скомпоновать несколько файлов в один. То есть к какому-то на первый взгляд безобидному файлу (фото, аудио или видео) приклеивается троян, который при открытии файла одновременно запускает и троянскую утилиту. Но на сегодняшний день практически все антивирусные программы легко детектируют такой метод проникновения. Но, однажды попав на компьютер, троян позволяет хакеру безнаказанно просматривать любую информацию, которая находится на вашем компьютере, в том числе передавать информацию о паролях, адресах и т.д. и т.п.
Что может узнать хакер, и как он это сделает?
При наличии трояна в системе ответ прост – всё что угодно (зависит от назначения трояна). Открыв доступ по сети, он может посмотреть все установленные и использующиеся пароли к сайтам и почтовым ящикам; с помощью кейлоггеров (перехватчиков клавиатуры) он узнаёт, что жертва печатала, сидя за компьютером.
Можно ли хакера поймать? Можно, но для этого нужны не менее профессиональные навыки. Умелое пользование списком прокси-серверов, программ подмены IP и использование открытых точек доступа (или взлом запароленных) задачу для рядового пользователя делают, однако, неподъёмной.
Классификация хакеров. Да, они тоже делятся на классификации. В полицейских сводках можно услышать о:
Веб-хакерах. Нацелены на веб-ресурсы. Основная боль достаётся владельцам интернет сайтов. Самые распространённые действия злоумышленников – дефейс (поменяли картинку с кактусом на голую женщину в непристойной позе, вместо названия сайта долго будет красоваться слово из трёх букв). Это самое невинное, практически мелкое хулиганство. Сегодня эти ребята – профессионалы с отнюдь не поверхностным знанием программирования веб, которые легко отыскивают и используют по усмотрению уязвимости сайта, которые латать нужно ой как уметь.
Крякеры – ломают программы. Отсрочивают окончание пробного периода или сводят его на нет. Генерируют серийные номера, обманывают части программы, отсылающие регистрационные данные на сервер разработчиков. Это серьёзные ребята-программисты.
Кардеры – считывают введённые в банкомате нами данные с банковских карт или выуживают информацию другим способом, дома изготавливают подделку и снимают по ночам наши кровные. Используется дорогостоящая аппаратура, но работают в основном теперь психологи, нежели программисты.
Фишеры – они же «рыбаки» — активно используют целое преступное направление в интернет-сообществе с вполне казалось бы благопристойным названием социальная инженерия. Активно сотрудничают с кардерами, основная задача – выудить пароль у жертвы, не прибегая к активным программным методам, а используя чисто психологические методы и поведенческий подход, хотя и применяя эти навыки дистанционно (телефонные и интернет сети).
Фрикеры. В первоначальном своём виде почти канули в лету с развитием интернет сетей. Во времена, когда одним из самых распространённых вариантов связи были телефоны, любили бесплатно звонить в Израиль или Албанию с помощью соседской бабушки, которая ничего, естественно, об этом не знала. Звонили не сами, а продавали возможность позвонить во Вьетнам другим. Это профессиональные электронщики, которые создают специальные устройства или «модернизируют» в темноте существующие.
Так или иначе, все эти специалисты нередко соединяются и перемешиваются в группы, создавая именуемые народом шайки (если задумали что-то серьёзное), и это деление становится абсолютно условным. Все лица, которые работают против нас, отбрасывая моральную сторону вопроса, профессионалы, вызывающие уважение. К сожалению, именно моральная сторона (а её и призван защищать закон) и делает их преступниками, основная цель деятельности которых нередко сводится к обычному обогащению, причём за наш с вами счёт.