После охоты на ошибки безопасности я реализовал клиентов, с которыми я работаю, не достаточно знакомы (или вообще) с основными методами «взлома». API Ключи, пароли, шифрованные ключи SSH и сертификаты являются отличными механизмами защиты, как долго Они держатся в секрете Отказ Как только они выходят в дикой природе, не имеет значения, насколько сложна пароль или какой хеш-алгоритм использовался для шифрования его где-то еще. В этом посте я собираюсь делиться концепциями, методами и инструментами, используемыми исследователями как для поиска секретов, так и их эксплуатации. Я также перечислю элементы действий по смягчению последствий, которые просты для реализации.
Важно отметить, что атака и защита «игра» не является даже одной; Атакующий нужна только одна успешная попытка попасть, тогда как защитник должен преуспеть в 100% времени. Тяжелая часть знает, где смотреть. Как только вы можете перечислить ваши виртуальные «ворота», через которые хакеры могут найти их путь, вы можете защитить их довольно простыми механизмами. Я считаю, что их простота иногда теняет их важность и имеет смысл упускать из виду многих команд.
Итак, вот быстрый и простой, но не один упущенный TL; DR:
- Осуществлять MFA повсюду — Google, Github, облачные провайдеры, VPNS, в любом месте возможно. Если это не необязательно, пересмотреть систему в использовании
- Поверните клавиши и пароли постоянно, используйте и обеспечить соблюдение политики вращения
- Регулярно сканируйте свой код. Желательно как часть процесса выпуска
- Делегировать профили входа в систему и управление доступом в одну центральную систему, где вы контролируете и контролируете
Это 20% Действия на 80% эффект, чтобы предотвратить утечки и отверстия для контроля доступа
Атакующая и защита «игра» не является даже одной; Атакующий нужна только одна успешная попытка попасть, тогда как защитник должен преуспеть в 100% времени.
Итак, какие хакеры делают и используют для поиска паролей и секретов приложений?
API Ключи по всему интернету, подвергаемым миру. Это факт. Часто без веской причины. Разработчики забывают их все вокруг:
- Для отладки
- Для местного развития
- Для будущих сопровождающих в качестве комментариев
Блоки, такие как этот все в Интернете:
// DEBUG ONLY // TODO: remove --> API_KEY=t0psecr3tkey00237948
Хотя многие хакеры на самом деле сидят и прочитают через файлы JavaScript, подавляющее большинство из них автоматически сканирует с помощью таких инструментов Мэг а затем сканировать их для шаблонов. Как они это делают? После использования сканера, такого как «MEG», они сканируют свои результаты для строки, соответствующей разным шаблонам. Пример другого великого инструмента того же автора, который имеет именно то есть GF который просто лучше овладеть
. В этом случае, используя Trufflhog или Trufflhog
вариант в GF
Инструмент может найти строку высокой энтропии, с которой идентифицируются большинство клавиш API. То же самое касается поиска API_KEY
как строка, которая дает результаты (тоже) много раз.
Часто ключевые ключи имеют веские основания появляться там, где они есть, но они не защищены от использования внешней. Одним из примеров является клиент, который я работал в последнее время, кто, как и многие другие платформы, используют карты в качестве стороннего обслуживания. Для того, чтобы привлечь карты и манипулировать им, они будут вызывать API ключом и использовать его, чтобы получить соответствующую карту. Что они забыли сделать, это настроить их поставщик карт, чтобы ограничить происхождение от того, где появляется входящие запросы с этим конкретным ключом. Не усердно подумать о простую атаку, которая будет стоить их лицензию квоты, эффективно стоила их много денег, или «лучше» (с точки зрения атаки), приносящую их ориентированную на карту обслуживание.
Файлы JS используются не только для поиска секретов хакеров. Это ваш код приложения открыт для любых посторонних глаз Отказ Интеллектуальный хакер может тщательно прочитать код, чтобы понять соглашения о именовании, пути API и найти информационные комментарии. Позже они экстраполированы в список слов и путей и загружены в автоматизированные сканеры. Это то, что называется Интеллектуальное автоматизированное сканирование ; Тот, где злоумышленник сочетает в себе автоматизированные процессы и собрал специальную информацию.
Настоящий комментарий, оставленный на первой странице цели, выявив набор незащитных данных конечных точек API.
/* Debug -> domain.com/api/v3 not yet in production and therefore not using auth guards yet use only for debugging purposes until approved */
Что вы должны сделать тогда?
- Minify/Uglify — добавляет слой запутывания и использования. Хотя обычно обратимо, это может помочь летать под радаром многих автоматических сканеров, уменьшая поверхность атаки
- Сохраняйте только голые минимальные ключи и разрешения — хотя некоторые необходимы, большинство не являются. Оставьте только ключевые ключи, которые должны быть частью кода
- Уменьшите ключевые разрешения на голые необходимые минимальные — как с примером сервиса MAPS, убедитесь, что ключ может делать только то, что он предназначен, и где он предназначен для работы от Отказ Убедитесь, что вы не оставите место для эксплуатации
- Используйте те же атакующие инструменты, которые будут использовать для автоматического сканирования кода на CI Contrains. Особенно со стандартными инструментами сопоставления строки, которые быстро запущены. Используйте простые
овладеть
s илиGF
Скачать для шаблонов. Подобные тесты, они могут помочь гарантировать, что разработчики не оставляют дыры, которые могут быть использованы или использованы для нарушения системы - ОБЗОР ПРАКТИЧЕСКОГО КОДА, чтобы иметь еще один глаз на коде — все сканеры в мире не могут сканировать и обнаружить 100% случаев использования. Еще один человеческий глаз — отличная практика, как для качества, так и для безопасности
Интернет-архив , Также известный как «Wayback Machine», проводит периодические сканы веб-сайтов по всему Интернету в течение нескольких лет и лет назад. Это горнодобывающее поле для хакеров с целью. С такими инструментами, как waybackcurls (Основываясь на waybackcurls.py ) можно сканировать любую цель старых файлов. Это означает, что даже если вы нашли и удалили ключ, но не повернули его, хакер все еще может найти его в старой версии вашего сайта и использовать его против вас.
Нашел ключ, прокладывая вокруг, где он не должен?
- Создать замену ключа
- Отпустите версию, которая использует новый ключ и удаляет четкое упоминание текста
- Удалить старый или деактивировать его
Путь Пунсмачин не только хорош для поиска ключей
Старый код раскрывает всю интересную информацию для эксплуататоров:
- Секретные пути API — незащищенные API конечные точки, которые вы думали, никогда не будут найдены. Хотя те, которые найдены, могут быть невыразительными, что они все еще помогают атакующим сопоставить структуру API и конвенции в системе. Когда ваш код отсутствует в дикой природе, нет контроля над ним, это ключ, чтобы запомнить и положить в заднюю часть ума любого разработчика
- Панели веб-администрирования, очень похожие на конечные точки API, остаются вокруг разных целей и служат одной из общих векторов атаки хакеров и эксплуатации. Они в основном встречаются в крупных организациях и установлены ИТ-командами. Хорошая идея состоит в том, чтобы периодически рассмотреть все административные панели в использовании и их управление доступом. Недавний автомобильный производитель нарушение произошедшего через такую панель, которая была обойдена путем удаления
S
отhttps
префикс адреса. Да: 🤦.
GitHub — золотая для хакеров Отказ С простым поиском, зная, где посмотреть, может дать интересные результаты. Если ваша учетная запись не является обеспечением MFA, каждый и каждый пользователь в организации является прогулочной безопасности. Недоступно предположить, что один из сотрудников в организации не использует уникальный пароль и что его пароль когда-то был просочился через другую систему. Хакер, который нацелен на организацию, может легко автоматизировать такое сканирование или даже пройти вручную через него. Список сотрудников может быть сгенерирован с Osint Как искать сотрудников на LinkedIn, или в списке публичных пользователей GitHub.
Например, вот хорошая отправная точка, если вы пытаетесь пробнуть Тесла:
https://api.github.com/orgs/teslamotors/members
Даже если компания не использует GitHub в качестве своего поставщика Git, часто утечки там не будут пойманы там. Достаточно иметь один сотрудник, который использует GitHub для своих личных проектов и имеет небольшую утечку в одном из них (или их история Git), чтобы превратить его в нарушение.
Природа Git состоит в том, чтобы отслеживать всю историю изменений в каждом проекте. В контексте безопасности вещей этот факт становится значительным. Другими словами, каждая линия кода каждый написана (или удалена) любым пользователем с текущим доступом к любой организационной системе, поставлена под угрозу организационную систему.
Почему это происходит?
- Компании не сканируют себя за утечки
- Те, которые делают, обычно не считают прохождение своих сотрудников Personal (но публично доступно) учетные записи
- Те, которые сканируют сотрудников (догадательство менее 1%) много раз, возможно, не зависит от опоры на автоматизацию и пропустить историю фиксации (не сканирование всего дерева Git, но просто поверхность, которая является текущим моментальным снимком кода)
- Наконец, компании не вращают ключи или часто используют 2FA достаточно часто. Эти два могут устранить большинство отверстий выше
ДЕРЧ 101.
«Придурки» — это поисковые линии, которые используют поисковые системы разных функций, с целевыми поисковыми строками для выяснения результатов. Вот веселый список поисков Google от эксплуатации БД.
Перед тем, как дать сутью его, если вы хотите пойти здесь глубоко, и я лично рекомендую вам сделать, Вот бесценный урок от талантливого исследователя. . Он обсуждает, как сканировать, как использовать придурку, что искать и где при прохождении ручного процесса.
Гитуб придурок менее сложна, чем Google просто потому, что ему не хватает сложности функций, предлагаемых Google. Тем не менее, в поисках правильных строк в нужных местах могут сделать чудеса. Просто пойдейте вперед и ищите одну строку следующего списка на GitHub, вы находитесь для удовольствия:
password dbpassword dbuser access_key secret_access_key bucket_password redis_password root_password
Если вы попробуете нацелиться на поиск интересных файлов, таких как Имя файла: .NPMRC _AUTH
или Имя файла: .htpasswd
Вы можете отфильтровать тип утечки, которую вы ищете. Читайте дальнейшие Security Trails ‘Great Post Отказ
Смягчение последствий
- Сканирование для утечек как часть любого процесса CI, Гитроб отличный инструмент
- Сканирование учетных записей сотрудников; Gitrob делает это для вас, если не отключено
-Но-расширение-оргс
флаг - Идите глубоко в историю, по умолчанию Гитроб 500 коммит, вы можете пойти дальше с
- Глубина <#Number>
- Поддерживать двухфакторную аутентификацию Github!
- Поворот ключей доступа, секреты и пароль каждой системы. Хорошей практикой будет использование федеративного доступа через одну систему, такую как Gsuite или Activeedirectory, и убедиться, что они используют политику вращения пароля и сложности.
Пост-публикация важных замечаний там читателей @ codemouse92. а также @corymcdonald. О сложности пароля, вращения и физические приспособления:
Используйте уникальный сложный пароль для каждого входа в систему, который требует одного … но понять, что комплекс не подразумевает эзотерики. Длинные фразы в настоящее время считаются лучшей стратегией… Я бы добавил одну вещь к теме менеджеров паролей: хотя вы обязательно используете один, лучше всего использовать пароли на основе фразой, которые могут быть введены в систему человеком. — Джейсон C.mcdonald.
—
В моей линии работы … Все выпускают аппаратную MFA. Каждый получает 2 юбеши … Кроме того, у нас есть 1Password и отдельные хранилища для каждой команды. Когда сотрудник покидает компанию, команда поддержки идет и вращает все пароли в каждом хранилище, к которому у человека был доступ. Лично я сделал проклятую ошибку толкать AWS Secrets к Github. Рекомендуется все добавлять Git-Secrets к своему досудному рабочему процессу, чтобы предотвратить точку зрения, что напоминает секрет. — Кори Макдональд
Теперь, когда мы обычно знакомы с придурками, принимая их в Google, выявляет совершенно новое поле функций. Будучи мощной поисковой системой, Google предлагает включение и исключение строк, формата файла, доменов, путей URL и т. Д. Рассмотрим эту линию поиска:
"MySQL_ROOT_PASSWORD:" "docker-compose" ext:yml
Это нацеливается на определенный формат файла ( YML
) и уязвимый файл ( docker-compose
), где разработчики, как правило, хранят их не так уникально пароли. Продолжай и запустите эту поисковую линию, вы будете удивлены, увидев, что придет.
Другие интересные строки могут включать ключи RSA или учетные данные AWS, вот еще один пример:
"-----BEGIN RSA PRIVATE KEY-----" ext:key
Варианты бесконечны, а уровень творчества и ширина знакомства с различными системами определят качество выводов. Вот большой список придурок, если вы хотите играть немного Отказ
Когда исследователь (или мотивированный хакер) становится «вовлеченным» системой, он идет глубоко. Он узнает это; Конечные точки API, обозначения, взаимодействия, взаимодействия, разные версии систем, если они выставлены.
Не очень хороший подход к защищенным системам является введение сложности и случайности к своим путям доступа вместо реальных механизмов безопасности. Исследователи безопасности пытаются придумать уязвимых путей и конечными точками, используют инструменты «Fuzzing». Эти инструменты используют списки слов, сочетая их в системных путях и вызывают их видеть, возвращаются ли действительные ответы. Эти сканеры никогда не найдут совершенно случайное набор символов, но они превосходны при идентификации шаблонов и извлекивая конечные точки, которые вы либо забыли, либо не знали, что существуют.
Помните, безопасность посредством неясности — не Хорошая практика (хотя не игнорировать его полностью)
Вот в том, где придумывает Доркус Гитбеб, который мы обсуждали ранее; Знание конвенции конечной точки системы, например, api.mydomain.com/v1/payments/...
может быть очень полезным. Поиск REPOS Github (и их сотрудников) для базовой строки API может много раз находить эти случайные имена конечных точек.
Однако случайные строки по-прежнему имеют место при строительных системах; Они всегда являются лучшим вариантом, чем дополнительные идентификаторы ресурсов, такие как пользователи, или заказы.
Вот невероятные строковые списки Reppo под названием «TexLists» Отказ Он используется почти всем в отрасли. Часто с личным поворотом и касанием в контексте цели, это массивный источник. Еще один мощный инструмент для кредитных списков — FFUF Ultra-Fast Fuzz инструмент написан в Go.
Безопасность часто воспринимается легко в стартапах. Разработчики и менеджеры имеют тенденцию приоритетировать скорость и время доставки по качеству и безопасности. Нажатие четких текстовых секретных строк в Code Repos, используя одни и те же клавиши снова и снова в системах, используя доступ к ключам доступа, когда другие варианты доступны, могут иногда казаться быстрее, но они могут быть вредными по дороге. Я пытался показать, как эти строки, которые вы думаете, защищены тем, что находились в частном репо, могут легко найти свой путь к общедоступному цику. Или непреднамеренный герметичный клон работника, который был обнародован. Если вы устанавливаете землю для безопасной работы, как использовать Соблюдение паролей , Центральный секретный магазин Политики для паролей и многофакторной аутентификации, вы сможете продолжать быстро прогрессировать, не жертвуя безопасностью полностью.
«Переместить быстро и сломать вещи», не лучшая мантра в контексте защиты информации
Зная, как работают хакеры, обычно является очень хорошим первым шагом в понимании безопасности и применения его к системам в качестве защитника. Рассмотрим подходы выше и тот факт, что это очень ограниченный список дорожек хакеров при проникающих системах. Хорошо, что нужно сделать, это иметь в виду аспекты безопасности чего-либо развернутого в систему, независимо от его обращенного с клиентами/внутренней природой.
Управляющая безопасность иногда может быть болью в заднице, но отдых уверены, что хаос, который вы избегаете, просто заботясь о самых основных элементах, сохранит вас безопасным и вменяемым.
Спасибо …| Для чтения этого далеко! Я надеюсь, что я помог открыть некоторый умы к риску, которые есть там, и мы все пропустили или пропущены.
Не стесняйтесь Добраться до С любой обратной связью или вопросами ץ Любая форма или форма или обсуждение приветствуются!
Оригинал: «https://dev.to/omerxx/how-hackers-steal-your-keys-and-secrets-45g2»