Если вы выросли в США, вам, скорее всего, пришлось посещать летний лагерь. Если вы сами там не были, опыт лагеря, когда дети уезжают от дома, учится всевозможного искусства и ремесел, встречают новых лучших друзей и проводят незабываемые приключения, вшит в популярную культуру и СМИ. Каждый август в жарке Лас-Вегаса проходит крупнейший лагерь для хакеров на свете. Этого года DEF CON отметил свой тридцать второй сезон.
Объяснить DEF CON без опыта может быть сложно. Да, есть траектории выступлений, официальные мастер-классы и многочисленные игры Capture The Flag (CTF), но это всего лишь начало. Никакая другая конференция не содержит так много подконференций и мероприятий, организованных сообществом. Е даже те, кто участвует в ней уже многие годы, говорят, что еще не все они испытали все, что предложено.
Официальной статистики от организаторов нет, но на прошлых мероприятиях количество участников fluctuated между 25 000 и 30 000. Каждый и каждая участница приносит с собой любовь к технологиям и множество знаний, которые хотят разделить. Corridors заполнены людьми, которые хакают на оборудовании, пишут программное обеспечение, делают музыку, делятся stickers и делают всё, что делает DEF CON так замечательным.
Деревни
В DEF CON 32 включалось 33 сельских поселения. Эти поселения охватывают широкий спектр интересов, от взлома аэрокосмической промышленности, социального инженеринга и дезинформации до красных команд и безопасности приложений. Каждое поселение организуется независимо и предлагает уникальный набор лекций, мастер-классов и практических мероприятий для участников, чтобы взаимодействовать с конкретной областью их интересов.
Вилла Безопасности Программ является ценным пространством в более крупной сообщести хакеров и безопасности, сфокусированным на защите приложений, которые двигают нашу жизнь. Автор этого материала был среди удачливых людей, которые помогали организовывать и проводить Виллу Безопасности Программ 2024.
ИщитеSecrets
Вернувшись в Виллу Безопасности Программ на RSA Conference 2024, GitGuardian представил нам игру Find the Secrets, карточную игру, имитирующую опыт ручного code review для поиска текстовых учетных записей. Игроки должны соревноваться, чтобы найти все скрытые ключи API, пароли и другие текстовые секреты, которые атакующие могли бы использовать, чтобы получить доступ к набору примерных кода, заявок Jira, лог-файлов и сообщений Slack.

Игра Find the Secrets на Вилле Безопасности Программ, изменено для соблюдения политики фотографирования DEF CON
На DEF CON за 2 дня более чем 120 человек посетили нашу выставку в AppSec Village и самолично провели это упражнение. У нас даже была доска почета, где игроки, сделавшие Fewest errors, занявшие первое место, получили специальные призы.
最常见的安全性问题
当人们开始研究包含代码的卡片时,我们收到了各种各样的疑问。我们认为分享这些问题是有益的,以防您还没有听到这些问题的答案。
以下是我们听到的最常问的11个问题和我们的回答。
1. 提交(Commit)到底是什么呢?
提交是Git中工作的单位,Git是全球超过97%的开发人员使用的版本控制系统。它是文件系统在特定时间点的快照,包括自上次提交以来开发者所做的所有工作。如果您将提交一个接一个地排列起来,您将得到Git历史,它让您逐个检查代码库生命周期中所做的每次更改。使用Git的一个秘密安全挑战是历史记录是共享的永久记录。如果一个秘密在某个提交中添加,然后在下一个提交中删除,带有秘密的提交仍然会被保留。
2. 你怎么知道某样东西是不是秘密呢?
Секрет – это любая учетная запись, дающая прямой доступ к системе или данным. Это могут быть ключи API, пароли, сертификаты, токены и т. д. Отчасти их трудно обнаружить потому, что они используются множеством способов в коде и командной строке. Например, в конфигурационном файле для ключа API может быть задана определенная переменная. Но в таких системах, как Slack, API-токен встроен в сам URL, то есть вам нужно быть знакомым с этой системой, чтобы понять, что это секрет.
Многие системы используют длинные уникальные числа в URL пользовательского интерфейса, которые могут очень сильно напоминать встроенные токены. URL-адреса Figma, например, могутказаться содержащими в пути строку в кодировке base64. Однако если вы перейдете по случайной ссылке Figma, вас встретит экран входа в систему, поскольку для подключения к этой странице необходимо быть аутентифицированным пользователем. Поскольку ссылка не предоставляет автоматического доступа к системе, а лишь идентифицирует местоположение страницы, злоумышленник, не имеющий опыта работы с Figma, вернет ошибку “Нет доступа” и пойдет дальше. Это еще одна причина использовать инструментарий для определения секретов, поскольку существуют платформы, которые могут быстро отличить URL, содержащий маркер авторизации, от того, который только кажется таковым.
3. Что означает Valid?
“Вalid,” в нашем контексте, означает, что определенные свидетельства еще работают, чтобы предоставлять доступ к связанной системе или данным. Если найдены атакующим, действительные секреты могут быть немедленно использованы.尽管非有效的秘密可以为攻击者提供对整体架构和互连系统的洞见,但只有有效的秘密才能为他们提供进入这些资源的直接路径。这种横向移动可能很难被检测到。
4. Как я должен знать, какие секреты искать?
лучший ответ – это найти и удалить любые действительные секреты. Однако, как показывает Spot the Secrets, это сложно решить без правильных инструментов.ручные code reviews или инструменты, которые полагаются исключительно на простое сопоставление моделей, могут заставить вас потратить время на исправление уже недействительных секретов, а не на концентрацию на действительных. Expired keys are not much of a threat, so efforts to eliminate them should take a lower priority to any valid credentials you discover.
5. Что различие между секретом и просто плохо написанным кодом?
Атаки не скорее всего будут читать ваш код большую часть времени; они будут искать особые способы быстро получить широкий доступ. Плохо написанный код может содержать множество уязвимостей, которые атакующий может использовать, особенно в конфигурации Infastructure as Code. Однако использовать эти недостатки требует, чтобы атакующий потратил время на понимание ошибки и проведение специфической атаки против таких проблем, а не просто использование текстовых учетных данных.
Переменные и имена пользователей могут быть использованы в качестве части более сложного нападения. Например, имён пользователей и электронных почт, найденных в коде, можно использовать в атаках проверки паролей или спама, но эти атаки легче обнаружить, чем прямое использование секретов, и они требуют много времени от нападающего.
6. Но что делать с ним, когда я нашел секрет?
Сначала замедлитесь и вздохните. Это происходит с лучшими из нас, поэтому не слишком расстраивайтесь, если нашли раскрытый секрет. Лучше действовать срочно, но не паниковать и не аннулировать найденный секрет, не зная, что произойдет дальше. Это может вызвать множество других проблем.
Мы рекомендуем следовать следующим шагам:
- Узнайте, что открывает этот секрет.
- Определите, как важны любые связанные данные или системы.
- Проверьте ваши логи на использование секрета неаuthorized.
- Определите, был ли проискраден доступ к данным или службам.
- Узнайте, что будет breaking, когда вы будете rotatting секрет.
- Поверните секрет и сохраните новый кредит безопасно.
- Исправьте любые поврежденные рабочие потоки или производственные деployments.
- Просмотрите инцидент и создайте план действий, чтобы избегать дальнейшего утечения секретов.
Читайте больше о процессе восстановления в статье “Что делать, если вы раскрываете секрет: Как保持calm и отвечать на инцидент.”
7. Моя команда всегда перезаписывает историю Git, когда находит секрет. все, что нам нужно делать?
К сожалению, нет. Хотя мы любим уборку Git, которая является последней стадией процесса исправления, на самом деле многие организации считают ее не обязательной. Мы рекомендуем обновлять любые секреты, которые когда-либо были露出 как текст (см. ссылку выше для советов по процессу исправления).
8. Я просто удаляю репозиторий из публичного. Это не достаточно?
На самом деле мы бы хотели, чтобы это было так, но к сожалению для нас, как только они были expose на GitHub publicly, их всегда следует считать заcompromised. GitGuardian просматривает каждый новый commit
и событие isPublic
, которые происходят в across GitHub public API.
Это то, как мы создаем наш ежегодный отчет State of Secrets Sprawl и forms the basis for the GitGuardian Public Monitoring offering. хотя наши намерения – это alert committers, что они сделали что-то potentially dangerous, мы не the only actors monitoring this public API. вы всегда должны считать, что есть копия любого кода или файлов, которые вы когда-либо pushed publicly, сделана кого-то другим, и сохранена где-то else you don’t know about. мы всегда рекомендуем обновлять любые potentially exposed secrets.
9. Почему проблема с ложными позитивами?
В нашей игре Spot the Secrets мы просят пользователей найти все секреты, помещенные inside 100 possible commits, Jira, Slack, and Log cards, enforcing a time penalty for each false positive. любой карточки, где игрок false thought a card contained a secret when it did not would incur a 10-second penalty per mistake.
В ограниченном контексте упражнения может показаться хорошо быть особенно осторожным и помечать вещи, которые не содержат секретов, но на самом деле это тратит ценное время, как для вас, отчетчика, так и для людей, которым поручено работать над решением.
любое средство или процесс, который сообщает слишком много ложных позитивных сведений, приводит к потере чувствительности к alert-у. Пользователи затапливаются алертами и начинают их игнорировать. Это приводит к недоверию к инструментам и непоследовательному их использованию. Это также может замедлить процесс исправления вообще и означает, что некоторые подтвержденные секреты могут не быть устранены вовремя.
10. Что делает имя файла связанным с идентификацией секрета?
Просто: контекст. Generic secrets can be especially hard to find through pattern matching alone. If there is a long string in a markdown file, our findings point to a high likelihood that it is an example password, so you would unlikely need to deal with it. If, on the other hand, that same string appears after the string password=
in a file named project.env
, then there is a much higher chance you have a real secret on your hands.
Имя файла – это только один из элементов, которые мы учитываем в Pre- and Post Validation in the GitGuardian Secrets Detection Engine и является одним из факторов, помогающих нам устранять ложные позитивные сведения с помощью внутреннего для платформы FP remover.
11. Люди действительно выполняют ручные code-ревью, чтобы найти секреты?
Да. Полностью 27% руководителей, принимающих решения в сфере ИТ, опрошенных нами, сообщили, что они полагаются на ручные code-ревью, чтобы исправить раскрасей секретов, хотя 75% сообщили, что им уже пострадало от утечки секретов.
Секреты Spot the Secrets были направлены на показание проблем с упором на людей для обнаружения этих проблем. Машины гораздо лучше матчей по принципу во многих тысячах или миллионах строк кода.
Обучение вместе – это то, для чего DEF CON создан
Мы leaned plenty of other lessons at DEF CON, including staying hydrated, getting at least a few hours of sleep a night, and keeping ourselves indoors when it is over 110°F/43°C outside.
There were so many excellent talks on the schedule; we can’t wait for the videos to become available to catch up on the content we missed while helping people learn about Secrets Sprawl. Along the way, we learned a lot about how security folks, developers, and people in general see this problem and think about solutions. We at GitGuardian hope to incorporate those lessons to make solving this problem more accessible and easier for us all.
If you have never considered going to DEF CON, we highly recommend it, if for no other reasons than to take part in AppSec Village and to find your tribe at hacker summer camp.
Source:
https://dzone.com/articles/secrets-security-at-appsec-village-at-def-con-32