Августовский #дайджест: топ постов
* Как оценить возможности ИИ в обнаружении уязвимостей?
* Побег из контейнера: обзор техник
* Платформа разработки: гайдлайны
* Доступ к данным из удаленных и приватных репозиториев GitHub
* ИИ ассистент для security-аналитика
* Подборка исследований с Black Hat 2024
* Запуск security-проекта: шаблоны и чеклисты для быстрого старта
@makrushin
* Как оценить возможности ИИ в обнаружении уязвимостей?
* Побег из контейнера: обзор техник
* Платформа разработки: гайдлайны
* Доступ к данным из удаленных и приватных репозиториев GitHub
* ИИ ассистент для security-аналитика
* Подборка исследований с Black Hat 2024
* Запуск security-проекта: шаблоны и чеклисты для быстрого старта
@makrushin
1👍3🐳1
Моделируем угрозы по-быстрому: STRIDE
Бывают ситуации, когда необходимо быстро подготовить модель угроз. Например, внезапно команда разработки решила самостоятельно провести Security Design Review для новой фичи. Или только что образованной команде безопасности продукта потребовалось определить приоритеты в анализе защищенности. А еще бывает так, что в стартапе, где все занимаются всем, потребовалось выстроить процесс безопасной разработки, и нужно с чего-то начать.
Рецепт быстрой подготовки модели угроз:
1. берем методологию STRIDE;
2. садимся вместе со всеми причастными командами и совместно заполняем шаблон;
3. получаем таблицу угроз и действий для их устранения;
4. опционально: к обнаруженным угрозам добавляем оценку рисков по модели DREAD;
5. опционально: автоматизируем процесс с помощью инструмента STRIDE GPT.
Бывают ситуации, когда необходимо быстро подготовить модель угроз. Например, внезапно команда разработки решила самостоятельно провести Security Design Review для новой фичи. Или только что образованной команде безопасности продукта потребовалось определить приоритеты в анализе защищенности. А еще бывает так, что в стартапе, где все занимаются всем, потребовалось выстроить процесс безопасной разработки, и нужно с чего-то начать.
Рецепт быстрой подготовки модели угроз:
1. берем методологию STRIDE;
2. садимся вместе со всеми причастными командами и совместно заполняем шаблон;
3. получаем таблицу угроз и действий для их устранения;
4. опционально: к обнаруженным угрозам добавляем оценку рисков по модели DREAD;
5. опционально: автоматизируем процесс с помощью инструмента STRIDE GPT.
1👍4🤣2🐳1
GitHub-звезды могут обмануть разработчика
Как мы обычно оцениваем репутацию какого-нибудь GitHub-репозитория? Чаще всего на основе количества звезд и активности в этом репозитории. Для кого-то из разработчиков число звезд напрямую определяет степень доверия к этому репозиторию.
В связи с этим растет количество фейковых звезд на GitHub: их уже насчитывается более 3,7 миллионов. Эти звезды создают ложное впечатление популярности проектов, которые на самом деле скрывают вредоносное ПО или какой-либо мошеннический контент. Злодеи используют их для обмана разработчиков, маскируя опасные репозитории под успешные проекты.
Чтобы защитить себя от этого вида мошенничества анализируем всю активность в проекте. Например, изучаем обсуждения в репозитории и репутацию авторов.
Как мы обычно оцениваем репутацию какого-нибудь GitHub-репозитория? Чаще всего на основе количества звезд и активности в этом репозитории. Для кого-то из разработчиков число звезд напрямую определяет степень доверия к этому репозиторию.
В связи с этим растет количество фейковых звезд на GitHub: их уже насчитывается более 3,7 миллионов. Эти звезды создают ложное впечатление популярности проектов, которые на самом деле скрывают вредоносное ПО или какой-либо мошеннический контент. Злодеи используют их для обмана разработчиков, маскируя опасные репозитории под успешные проекты.
Чтобы защитить себя от этого вида мошенничества анализируем всю активность в проекте. Например, изучаем обсуждения в репозитории и репутацию авторов.
🔥4👍3
Отравление пайплайна разработки
Мы уже изучали, как злоумышленник может навредить разработчику и заразить зависимости в цепочке поставок. А вот сам CI/CD-пайплайн - дирижёр конвейера разработки - мы ещё не рассматривали. При этом GitLab и GitHub всё чаще закрывают уязвимости в своих продуктах, что говорит о внимании злодеев к ключевым технологиям в инфраструктуре.
OWASP давно опубликовал документ CICD Top 10 Risks. Значительная часть рекомендаций по защите отдана на сторону разработчика и владельца репозитория: не доверяй pull request от сторонних контрибьюторов, аккуратнее прописывай правила автоматического слияния веток кода, не запускай сборку недоверенных обновлений кода рядом со сборками основной ветки и так далее. Однако злодей активно использует уязвимости в самих CI/CD-платформах для внедрения имплантов, поэтому одних рекомендаций, требующих внимания разработчика - недостаточно.
Можно изучить подборку актуальных методов эксплуатации GitHub Actions, чтобы понять типичный сценарий атаки на CI-окружение (который также был замечен в дикой природе):
1. Атакующий изменяет конфигурационный файл CI в репозитории, к которому у него есть доступ, и внедряет в этот файл команду «отдай мне переменные окружения с ценными данными».
2. Затем заносит изменения непосредственно в основную ветку репозитория или отправляет pull request с изменениями из ветки или форка.
3. Если у атакующего нет возможности вносить изменения напрямую в файл конфигурации CI, то он может внедрить вредоносный код в файлы, на которые ссылается CI-конфиг.
4. Далее атакующий отправляет pull request, который заставляет CI-платформу запустить процесс сборки на основе вредоносного конфига.
5. Так как процесс сборки практически всегда обращается к чувствительным данным и привилегированным учётным записям, то в итоге атакующий выполняет команду «отдай мне переменные окружения» на хосте, где выполняется сборка.
🤔 Как защищаемся?
Мы уже изучали, как злоумышленник может навредить разработчику и заразить зависимости в цепочке поставок. А вот сам CI/CD-пайплайн - дирижёр конвейера разработки - мы ещё не рассматривали. При этом GitLab и GitHub всё чаще закрывают уязвимости в своих продуктах, что говорит о внимании злодеев к ключевым технологиям в инфраструктуре.
OWASP давно опубликовал документ CICD Top 10 Risks. Значительная часть рекомендаций по защите отдана на сторону разработчика и владельца репозитория: не доверяй pull request от сторонних контрибьюторов, аккуратнее прописывай правила автоматического слияния веток кода, не запускай сборку недоверенных обновлений кода рядом со сборками основной ветки и так далее. Однако злодей активно использует уязвимости в самих CI/CD-платформах для внедрения имплантов, поэтому одних рекомендаций, требующих внимания разработчика - недостаточно.
Можно изучить подборку актуальных методов эксплуатации GitHub Actions, чтобы понять типичный сценарий атаки на CI-окружение (который также был замечен в дикой природе):
1. Атакующий изменяет конфигурационный файл CI в репозитории, к которому у него есть доступ, и внедряет в этот файл команду «отдай мне переменные окружения с ценными данными».
2. Затем заносит изменения непосредственно в основную ветку репозитория или отправляет pull request с изменениями из ветки или форка.
3. Если у атакующего нет возможности вносить изменения напрямую в файл конфигурации CI, то он может внедрить вредоносный код в файлы, на которые ссылается CI-конфиг.
4. Далее атакующий отправляет pull request, который заставляет CI-платформу запустить процесс сборки на основе вредоносного конфига.
5. Так как процесс сборки практически всегда обращается к чувствительным данным и привилегированным учётным записям, то в итоге атакующий выполняет команду «отдай мне переменные окружения» на хосте, где выполняется сборка.
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2
О чем может рассказать тень на фото?
Ответ:о твоем местоположении.
Полезный инструмент в коллекции OSINT-исследователя. Позволяет определить примерные координаты места, где была сделана фотография. Утилита использует параметры высоты объекта, длины его тени, дату и время, и затем проводит оценку мест, где могла появиться тень с такими параметрами.
Те, кто не хочет раскрывать свое местоположение - начинают блюрить тени на фотках. И перестают их постить.
Ответ:
Полезный инструмент в коллекции OSINT-исследователя. Позволяет определить примерные координаты места, где была сделана фотография. Утилита использует параметры высоты объекта, длины его тени, дату и время, и затем проводит оценку мест, где могла появиться тень с такими параметрами.
Те, кто не хочет раскрывать свое местоположение - начинают блюрить тени на фотках. И перестают их постить.
3👍10😁1
Провинциальный OSINT: где я?
Продолжаем отрабатывать навыки определения места по фото.
⭐️ На этот раз задача со звездочкой: определить город, где сделано это фото, и мероприятие по информационной безопасности, которое меня сюда привело.
Фото сделал специально без явных теней. Если среди нас не окажется местных жителей, то в комментариях добавлю больше локаций.
Продолжаем отрабатывать навыки определения места по фото.
⭐️ На этот раз задача со звездочкой: определить город, где сделано это фото, и мероприятие по информационной безопасности, которое меня сюда привело.
Фото сделал специально без явных теней. Если среди нас не окажется местных жителей, то в комментариях добавлю больше локаций.
🤔2❤1
Коллекция уязвимостей в инструментах наступательной безопасности
Кто атакует атакующего? Тот, кто охотится за доступами к зараженной инфраструктуре. Или тот, кто пытается обнаружить злодея. Поэтому идея “hacking back”, старая как мир, по-прежнему актуальна.
Уязвимости в инструментах Red Team, а точнее - в средствах администрирования зараженной инфраструктуры, открывают новые возможности для конкурирующих между собой злодеев.
Нашел коллекцию, в которой для каждой уязвимости есть детальное описание. Это поможет экспертам по наступательной безопасности задуматься и о своей защите. И спросить себя: а не пора ли повысить уровень паранойи от минимума к оптимуму?
⭐️ Добавляем коллекцию в закладки.
Кто атакует атакующего? Тот, кто охотится за доступами к зараженной инфраструктуре. Или тот, кто пытается обнаружить злодея. Поэтому идея “hacking back”, старая как мир, по-прежнему актуальна.
Уязвимости в инструментах Red Team, а точнее - в средствах администрирования зараженной инфраструктуры, открывают новые возможности для конкурирующих между собой злодеев.
Нашел коллекцию, в которой для каждой уязвимости есть детальное описание. Это поможет экспертам по наступательной безопасности задуматься и о своей защите. И спросить себя: а не пора ли повысить уровень паранойи от минимума к оптимуму?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
Опечатки в GitHub Actions запускают вредоносные действия
Про атаки typosquatting в зависимостях при разработке ПО я уже рассказывал, когда проводил исследование вредоносных компонентов, которые ждут, когда разработчик подключит вредоносный код в свой проект. Оказалось, что эта техника атак может применяться и для подключения вредоносных GitHub Actions.
GitHub Actions - это сервис, который позволяет автоматизировать процессы сборки, тестирования, развертывания своего приложения и множество других рутинных действий. Многообразие рутинных задач можно автоматизировать, а подходящие автоматизации можно найти в Маркетплейсе. Только есть проблема: кто угодно может создать произвольный Action и опубликовать его под произвольным именем.
Что если, кто-то создаст организацию «trufllesecurity», затем создаст Action «trufllesecurity/trufflehog» и разместит в нем код, который собирает все секреты из CI/CD? Когда разработчик вместо «uses: trufflesecurity/trufflehog» допустит опечатку и напишет «uses: trufllesecurity/trufflehog» - в его пайплайне запустится вредоносное действие.
Пока злоумышленники собирают с миру по нитке, следуем рекомендациям, чтобы не оказаться в этом клубке:
* перепроверяем названия всех используемых GitHub Actions;
* явно прописываем конкретные версии Actions;
* рассказываем своим коллегам-разработчикам о проблеме.
Про атаки typosquatting в зависимостях при разработке ПО я уже рассказывал, когда проводил исследование вредоносных компонентов, которые ждут, когда разработчик подключит вредоносный код в свой проект. Оказалось, что эта техника атак может применяться и для подключения вредоносных GitHub Actions.
GitHub Actions - это сервис, который позволяет автоматизировать процессы сборки, тестирования, развертывания своего приложения и множество других рутинных действий. Многообразие рутинных задач можно автоматизировать, а подходящие автоматизации можно найти в Маркетплейсе. Только есть проблема: кто угодно может создать произвольный Action и опубликовать его под произвольным именем.
Что если, кто-то создаст организацию «trufllesecurity», затем создаст Action «trufllesecurity/trufflehog» и разместит в нем код, который собирает все секреты из CI/CD? Когда разработчик вместо «uses: trufflesecurity/trufflehog» допустит опечатку и напишет «uses: trufllesecurity/trufflehog» - в его пайплайне запустится вредоносное действие.
Пока злоумышленники собирают с миру по нитке, следуем рекомендациям, чтобы не оказаться в этом клубке:
* перепроверяем названия всех используемых GitHub Actions;
* явно прописываем конкретные версии Actions;
* рассказываем своим коллегам-разработчикам о проблеме.
1👍6❤3⚡1😱1
Как заметили в комментариях к посту про OSINT в Сетке, я не просто так шел по средней дамбе в Перми. Я направлялся на мероприятие «Инфофорум», чтобы в неформальной обстановке обсудить ключевые приоритеты в информационной безопасности.
Уверен, в каждом регионе появится свой центр экспертизы в кибербезопасности, который будет учитывать специфику угроз для предприятий региона. Что-то вроде локальной команды реагирования на инциденты CERT. А подобные мероприятия - это региональная точка притяжения экспертов и технологических инноваций.
Уверен, в каждом регионе появится свой центр экспертизы в кибербезопасности, который будет учитывать специфику угроз для предприятий региона. Что-то вроде локальной команды реагирования на инциденты CERT. А подобные мероприятия - это региональная точка притяжения экспертов и технологических инноваций.
👍4❤3🤝1
Еще больше способов оценить наступательные способности ИИ
Сразу два новых бенчамарка стали доступны для анализа возможностей ИИ в поиске уязвимостей и тестировании на проникновение:
* Cybench - набор из 40 заданий Capture the Flag (CTF), которые содержат подзадачи для более точной оценки способностей языковых модели. Задания разбиты на категории, знакомые CTF-игрокам.
* XBOW Validation Benchmarks. Компания XBOW специализируется на разработке средств автономной симуляции атак. Ее набор состоит из 104 бенчмарков, каждый из которых содержит множество уязвимостей и множество вариантов их обнаружения.
Жду появления в классических CTF-соревнованиях команды, состоящей из LLM-агента и его оператора.
Сразу два новых бенчамарка стали доступны для анализа возможностей ИИ в поиске уязвимостей и тестировании на проникновение:
* Cybench - набор из 40 заданий Capture the Flag (CTF), которые содержат подзадачи для более точной оценки способностей языковых модели. Задания разбиты на категории, знакомые CTF-игрокам.
* XBOW Validation Benchmarks. Компания XBOW специализируется на разработке средств автономной симуляции атак. Ее набор состоит из 104 бенчмарков, каждый из которых содержит множество уязвимостей и множество вариантов их обнаружения.
Жду появления в классических CTF-соревнованиях команды, состоящей из LLM-агента и его оператора.
2🔥4
“Атаки на разработчиков” в Ярославле
Что security-исследователю делать на конференции, посвященной разработке и AI? 🤔
Пугать разработчиков
Делиться опытом в исследовании уязвимостей в цикле разработки и рассказывать о примерах атак, которые может упростить ИИ. А в конце этих историй поговорить о сценариях применения LLM для задач обеспечения безопасности в SDL. Кстати, Уставший техдир рекомендует, потому что уже слышал эти истории в своем пока еще неопубликованном подскате.
Поехали на Yappi Days - познакомимся и сделаем новую задачу для OSINT. Промокод для друзей и коллег: MAKRUSHIN30
Что security-исследователю делать на конференции, посвященной разработке и AI? 🤔
Делиться опытом в исследовании уязвимостей в цикле разработки и рассказывать о примерах атак, которые может упростить ИИ. А в конце этих историй поговорить о сценариях применения LLM для задач обеспечения безопасности в SDL. Кстати, Уставший техдир рекомендует, потому что уже слышал эти истории в своем пока еще неопубликованном подскате.
Поехали на Yappi Days - познакомимся и сделаем новую задачу для OSINT. Промокод для друзей и коллег: MAKRUSHIN30
👍5🔥3❤2😁1
Выбор инструментов для безопасной разработки: важность контекста и интеграции
Когда разработчик попадает в большой корпоративный конвейер, в котором на каждом этапе разработки развернут security-гейт, то от обилия всевозможных утилит и проверок у него может закружиться голова.
SCA, SAST, DAST, IAST, MAST, WAF - эти аббревиатуры уже стали привычными. CSPM, KSPM, ASOC, ASPM, ASPE, CNAPP, DSPM, CWP, RASP, SSPM, CVM, ASM, AST - вот тут уже может поплыть даже начинающий инженер ИБ.
Понимание актуальных инструментов и продуктов пригодится не только для обеспечения безопасности процесса разработки, но и для того чтобы регулярно сверяться с картой и отвечать на вопрос: нужны ли нам новые решения или старые инструменты еще справляются? Каждый отвечает на этот вопрос сам, а я помогаю выделить основные тренды в безопасной разработке:
1. Контекст важнее всего.
Security-инструменты отличаются своим “шумом”: они создают слишком много предупреждений и инсайдов. Новые продукты делают упор на контекст, в котором обнаружилась проблема. При ограниченном ресурсе, это помогает выставить приоритет.
2. ASPM и ИИ - два ключевых “агента изменений” в разработке.
Application Security Posture Management (ASPM) - продукт, который помогает управлять безопасностью приложений на всех этапах разработки, и который пока еще не стал стандартом в SDL. Про потенциал ИИ уже рассказывал.
3. Курс на консолидацию.
Зрелая команда разработки использует примерно 15 инструментов безопасности. Каждый инструмент решает свою задачу и возможно, делает ее хорошо. Но эффективно управлять этим оркестром можно только, если есть “панель управления для дирижера”.
Вернемся к вопросу: нужны ли нам новые решения или старые инструменты еще справляются?
Когда разработчик попадает в большой корпоративный конвейер, в котором на каждом этапе разработки развернут security-гейт, то от обилия всевозможных утилит и проверок у него может закружиться голова.
SCA, SAST, DAST, IAST, MAST, WAF - эти аббревиатуры уже стали привычными. CSPM, KSPM, ASOC, ASPM, ASPE, CNAPP, DSPM, CWP, RASP, SSPM, CVM, ASM, AST - вот тут уже может поплыть даже начинающий инженер ИБ.
Понимание актуальных инструментов и продуктов пригодится не только для обеспечения безопасности процесса разработки, но и для того чтобы регулярно сверяться с картой и отвечать на вопрос: нужны ли нам новые решения или старые инструменты еще справляются? Каждый отвечает на этот вопрос сам, а я помогаю выделить основные тренды в безопасной разработке:
1. Контекст важнее всего.
Security-инструменты отличаются своим “шумом”: они создают слишком много предупреждений и инсайдов. Новые продукты делают упор на контекст, в котором обнаружилась проблема. При ограниченном ресурсе, это помогает выставить приоритет.
2. ASPM и ИИ - два ключевых “агента изменений” в разработке.
Application Security Posture Management (ASPM) - продукт, который помогает управлять безопасностью приложений на всех этапах разработки, и который пока еще не стал стандартом в SDL. Про потенциал ИИ уже рассказывал.
3. Курс на консолидацию.
Зрелая команда разработки использует примерно 15 инструментов безопасности. Каждый инструмент решает свою задачу и возможно, делает ее хорошо. Но эффективно управлять этим оркестром можно только, если есть “панель управления для дирижера”.
Вернемся к вопросу: нужны ли нам новые решения или старые инструменты еще справляются?
1👍3⚡1
За сценой SafeCode: как Программный Комитет делает разработку безопаснее
Безопасность приложений — обязательное требование для любой компании, если она создает качественный продукт. На конференции SafeCode разработчики делятся лайфхаками по безопасной разработке.
В этом году я присоединился к Программному Комитету SafeCode, чтобы вместе с крутой командой сделать программу еще полезнее для всех, кто хочет быть в теме.
В главной студии я расскажу, как прошел мой первый сезон в команде. Разберем, как мы собираем программу: на что обращаем внимание, когда рассматриваем заявки, и что нужно знать тем, кто хочет выступить. Это отличный шанс разобраться, как попасть в ряды спикеров и чем можно удивить на конференции.
Безопасность приложений — обязательное требование для любой компании, если она создает качественный продукт. На конференции SafeCode разработчики делятся лайфхаками по безопасной разработке.
В этом году я присоединился к Программному Комитету SafeCode, чтобы вместе с крутой командой сделать программу еще полезнее для всех, кто хочет быть в теме.
В главной студии я расскажу, как прошел мой первый сезон в команде. Разберем, как мы собираем программу: на что обращаем внимание, когда рассматриваем заявки, и что нужно знать тем, кто хочет выступить. Это отличный шанс разобраться, как попасть в ряды спикеров и чем можно удивить на конференции.
👍4🔥3🍾2🤪2
Вести из Бауманки: новый курс "AppSec-инженер"
В прошлом году мы собирались в НИЯУ МИФИ, чтобы познакомиться с профессией "Специалист по безопасности приложений". А в этом году, мы встретились с коллегами на кафедре ИУ10 в МГТУ им. Баумана, определили требования к навыкам современного разработчика, сформулировали учебную программу, согласовали с Минцифры и на базе цифровой кафедры запустили новый трек: “AppSec-инженер”.
Всем, кто хочет преобразоваться из разработки в AppSec или из DevOps в DevSecOps — добро пожаловать на борт! 🚀
В прошлом году мы собирались в НИЯУ МИФИ, чтобы познакомиться с профессией "Специалист по безопасности приложений". А в этом году, мы встретились с коллегами на кафедре ИУ10 в МГТУ им. Баумана, определили требования к навыкам современного разработчика, сформулировали учебную программу, согласовали с Минцифры и на базе цифровой кафедры запустили новый трек: “AppSec-инженер”.
Всем, кто хочет преобразоваться из разработки в AppSec или из DevOps в DevSecOps — добро пожаловать на борт! 🚀
👏9🔥3🤣2❤1👍1😍1
Опасные архивы: символические ссылки и уязвимости Zip Slip в Golang
Пока обновлял раздел курса про поиск и эксплуатацию уязвимостей directory traversal, наткнулся на интересное развитие старой уязвимости Zip Slip. Атакующий может загрузить специально сформированный архив (tar, jar, war, cpio, apk, rar, 7z), и если модуль, отвечающий за его распаковку, не проверяет имена файлов, атакующий может выйти за пределы каталога, в который производится распаковка.
Об этой проблеме известно с 2018 года, но уязвимых библиотек по-прежнему много. А вот об интересной особенности процесса распаковки в Golang известно совсем недавно. Запакуем в tar-архив два файла с одинаковым именем:
Первый файл является символической ссылкой, а второй — текстовым файлом.
Какое поведение мы ожидаем от распаковки? При распаковке файл с символической ссылкой должен быть заменен текстовым файлом.
На самом деле, оказалось, что если распаковка происходит с помощью Golang-функции os.Create(), то содержимое файла заменяется на содержимое символической ссылки. Это значит, что атакующий может создать произвольный файл в любом месте системы.
Причина такого поведения заключается в некорректной обработке символических ссылок в при распаковке tar-архивов. Поэтому защищаем свои ресурсы от “зараженных” архивов. Инструмент для проверки поможет.
*makrushin
Пока обновлял раздел курса про поиск и эксплуатацию уязвимостей directory traversal, наткнулся на интересное развитие старой уязвимости Zip Slip. Атакующий может загрузить специально сформированный архив (tar, jar, war, cpio, apk, rar, 7z), и если модуль, отвечающий за его распаковку, не проверяет имена файлов, атакующий может выйти за пределы каталога, в который производится распаковка.
Об этой проблеме известно с 2018 года, но уязвимых библиотек по-прежнему много. А вот об интересной особенности процесса распаковки в Golang известно совсем недавно. Запакуем в tar-архив два файла с одинаковым именем:
$ tar -tvf alice.tar
lrw------- 0 0 0 0 1 Jan 1970 rabbit_hole -> /tmp/wonderland
-rw-r--r-- 0 0 0 39 1 Jan 1970 rabbit_hole
Первый файл является символической ссылкой, а второй — текстовым файлом.
Какое поведение мы ожидаем от распаковки? При распаковке файл с символической ссылкой должен быть заменен текстовым файлом.
На самом деле, оказалось, что если распаковка происходит с помощью Golang-функции os.Create(), то содержимое файла заменяется на содержимое символической ссылки. Это значит, что атакующий может создать произвольный файл в любом месте системы.
Причина такого поведения заключается в некорректной обработке символических ссылок в при распаковке tar-архивов. Поэтому защищаем свои ресурсы от “зараженных” архивов. Инструмент для проверки поможет.
*makrushin
1🔥5⚡1
Спринт от идеи к курсу для подготовки security-чемпионов
В начале была проблема. В международной корпорации, где вместе с командой продуктовой безопасности я строил процессы разработки, была нехватка инженеров Application Security. На несколько тысяч разработчиков оказалось всего несколько AppSec-специалистов, и с ростом скорости производства становилось сложнее исправлять обнаруженные дефекты.
В тот период появилась очевидная идея: помимо внедрения автоматизации нужно разрабатывать и внедрять программу подготовки Security Champions - разработчиков внутри компании, которые берут на себя ответственность за продвижение и укрепление культуры безопасности в своей команде. К тому же, мой коллега - Александр Антух уже проходил этот путь в своей компании и подготовил отличный плейбук для OWASP.
Мы разработали внутренний курс, который на примере наших процессов и дефектов рассказывал разработчику и Engineering Manager’у, как правильно работать с обнаруженными проблемами. Сначала мы провели обучение в российском офисе, и потом поехали в Калькуту для того, чтобы обучить наших индийских коллег.
Затем случилось озарение: программа работает и влияет на показатели в разработке (значительно ускоряет процесс обработки дефектов), почему бы не поделиться этим опытом с коллегами? Мы организовали и провели первый двухдневный тренинг для Security Champion на крупной конференции Hack In The Box в Амстердаме. Это был концентрат из практических кейсов использования инструментов поиска дефектов на разных стадиях производства, знакомство с лучшими практиками и определение контекста для их применения, и много практической работы. В этот момент прилетел следующий инстайт.
Безопасности приложений хотят учиться не только разработчики, но и специалисты по информационной безопасности, которые по разным причинам переквалифицируются из смежных направлений ИБ. Тогда этот тренинг стал обрастать контентом, который охватывает два мира: разработка и ИБ. Получился курс размером с полный учебный семестр.
Курс стал частью программы подготовки специалистов в НИЯУ МИФИ, затем частью программы подготовки магистров в МГТУ им. Баумана. Основные разделы курса также вошли в программы дополнительного образования Skillfactory и других коммерческих школ.
Сейчас тот момент, когда программа Security Champion должна обновиться с учетом трендов в области поиска уязвимостей и внедрения ИИ для автоматизации. А еще должна превратиться в интенсив.
И она обновилась и превратилась.
11 ноября вместе с командой МГТУ мы запускаем набор первого потока учеников для курса «Безопасность приложений». Будем интенсивно изучать AppSec, строить DevSecOps и составлять правильные запросы для ИИ.
В начале была проблема. В международной корпорации, где вместе с командой продуктовой безопасности я строил процессы разработки, была нехватка инженеров Application Security. На несколько тысяч разработчиков оказалось всего несколько AppSec-специалистов, и с ростом скорости производства становилось сложнее исправлять обнаруженные дефекты.
В тот период появилась очевидная идея: помимо внедрения автоматизации нужно разрабатывать и внедрять программу подготовки Security Champions - разработчиков внутри компании, которые берут на себя ответственность за продвижение и укрепление культуры безопасности в своей команде. К тому же, мой коллега - Александр Антух уже проходил этот путь в своей компании и подготовил отличный плейбук для OWASP.
Мы разработали внутренний курс, который на примере наших процессов и дефектов рассказывал разработчику и Engineering Manager’у, как правильно работать с обнаруженными проблемами. Сначала мы провели обучение в российском офисе, и потом поехали в Калькуту для того, чтобы обучить наших индийских коллег.
Затем случилось озарение: программа работает и влияет на показатели в разработке (значительно ускоряет процесс обработки дефектов), почему бы не поделиться этим опытом с коллегами? Мы организовали и провели первый двухдневный тренинг для Security Champion на крупной конференции Hack In The Box в Амстердаме. Это был концентрат из практических кейсов использования инструментов поиска дефектов на разных стадиях производства, знакомство с лучшими практиками и определение контекста для их применения, и много практической работы. В этот момент прилетел следующий инстайт.
Безопасности приложений хотят учиться не только разработчики, но и специалисты по информационной безопасности, которые по разным причинам переквалифицируются из смежных направлений ИБ. Тогда этот тренинг стал обрастать контентом, который охватывает два мира: разработка и ИБ. Получился курс размером с полный учебный семестр.
Курс стал частью программы подготовки специалистов в НИЯУ МИФИ, затем частью программы подготовки магистров в МГТУ им. Баумана. Основные разделы курса также вошли в программы дополнительного образования Skillfactory и других коммерческих школ.
Сейчас тот момент, когда программа Security Champion должна обновиться с учетом трендов в области поиска уязвимостей и внедрения ИИ для автоматизации. А еще должна превратиться в интенсив.
И она обновилась и превратилась.
11 ноября вместе с командой МГТУ мы запускаем набор первого потока учеников для курса «Безопасность приложений». Будем интенсивно изучать AppSec, строить DevSecOps и составлять правильные запросы для ИИ.
👍8🤪1
Инструмент для поиска уязвимостей в сторонних пакетах
Продолжаем внедрять в разработку новые идеи для обеспечения безопасности сторонних компонентов. Мы уже рассматривали средство поиска плохих зависимостей PyPI и NPM, которое при помощи статического анализа кода искало вредоносные признаки. А вот недавно опубликованный инструмент DepFuzzer использует другой метод:
* инструмент составляет список всех зависимостей, указанных в файлах проекта (поддерживаются проекты для Node.js, Python, Rust, Golang);
* для каждой зависимости проверяет ее наличие в базе данных deps.dev (это общедоступная база, которая содержит информацию о зависимостях ПО);
* если зависимость не найдена в deps.dev, DepFuzzer предупреждает о потенциальной уязвимости, связанной с подменой зависимости (то есть подсказывает, что для данной зависимости злоумышленник может попытаться опубликовать вредоносный пакет с таким же именем в общедоступном репозитории);
* DepFuzzer также может проверять адреса электронной почты владельцев пакетов, чтобы выявить потенциальные уязвимости, связанные с удаленными учетными записями.
Сам по себе инструмент не гарантирует защиту от проблем Dependency Confusion, но в сочетании с методами статического анализа и внутренними реестрами доверенных пакетов значительно снижает риски. Внедряем.
Продолжаем внедрять в разработку новые идеи для обеспечения безопасности сторонних компонентов. Мы уже рассматривали средство поиска плохих зависимостей PyPI и NPM, которое при помощи статического анализа кода искало вредоносные признаки. А вот недавно опубликованный инструмент DepFuzzer использует другой метод:
* инструмент составляет список всех зависимостей, указанных в файлах проекта (поддерживаются проекты для Node.js, Python, Rust, Golang);
* для каждой зависимости проверяет ее наличие в базе данных deps.dev (это общедоступная база, которая содержит информацию о зависимостях ПО);
* если зависимость не найдена в deps.dev, DepFuzzer предупреждает о потенциальной уязвимости, связанной с подменой зависимости (то есть подсказывает, что для данной зависимости злоумышленник может попытаться опубликовать вредоносный пакет с таким же именем в общедоступном репозитории);
* DepFuzzer также может проверять адреса электронной почты владельцев пакетов, чтобы выявить потенциальные уязвимости, связанные с удаленными учетными записями.
Сам по себе инструмент не гарантирует защиту от проблем Dependency Confusion, но в сочетании с методами статического анализа и внутренними реестрами доверенных пакетов значительно снижает риски. Внедряем.
1🔥4👍2🙏1
Фишинг для пользователей GitHub
Платформа ведет борьбу со спам-ботами, которые эксплуатируют ее репутацию и отправляют пользователям сообщения с вредоносными ссылками.
Особенность этого фишинга: пользователь платформы получает письмо от GitHub. Боты добавляют вредоносные ссылки в комментариях к существующим задачам (issues) открытых проектов. И затем, эти комментарии приземляются в почту в виде нотификации к пользователям этого проекта. Дальше уже все по классике: запуск вредоноса, захват GitHub-аккаунта и публикация аналогичного комментария со ссылкой в репозиториях, которые добавил в закладки этот аккаунт.
Red Team рассматривает эту особенность как дополнительный канал доставки импланта, потому что в комбинации с техникой загрузки вредоносных файлов в GitHub CDN он позволяет уверенно обходить спам-фильтры. А Blue Team теперь внимательнее следит за почтовыми уведомлениями от GitHub.
Платформа ведет борьбу со спам-ботами, которые эксплуатируют ее репутацию и отправляют пользователям сообщения с вредоносными ссылками.
Особенность этого фишинга: пользователь платформы получает письмо от GitHub. Боты добавляют вредоносные ссылки в комментариях к существующим задачам (issues) открытых проектов. И затем, эти комментарии приземляются в почту в виде нотификации к пользователям этого проекта. Дальше уже все по классике: запуск вредоноса, захват GitHub-аккаунта и публикация аналогичного комментария со ссылкой в репозиториях, которые добавил в закладки этот аккаунт.
Red Team рассматривает эту особенность как дополнительный канал доставки импланта, потому что в комбинации с техникой загрузки вредоносных файлов в GitHub CDN он позволяет уверенно обходить спам-фильтры. А Blue Team теперь внимательнее следит за почтовыми уведомлениями от GitHub.
👍3❤1
Отравление пайплайна разработки. Часть 2.
CI/CD-платформы являются приоритетной целью для атакующих, и мы уже рассмотрели типичный сценарий атаки на CI-окружение, связанный с изменением конфигурационного файла. Но пока еще не ответили на вопрос:
А вот исследователи из Open Source Security Foundation ответили. На примере коллекции наиболее распространенных атак на Github Actions, рассмотрены конкретные техники защиты от каждой проблемы. Если коротко и в формате «атака: защита»:
1. Запуск недоверенного кода в привелегированном рабочем процессе (Workflow): разделение процесса на два блока (с привелегиями и без).
2. Внедрение кода через недоверенный ввод данных, недоверенные файлы и файлы окружения: сбор параметров для Actions строку, ограничение прав на GitHub-токен до минимально необходимых.
3. Вредоносные Actions: ограничение прав на GitHub-токен до минимально необходимых, доверять только официальным Actions от GitHub (остальные - проверять на наличие уязвимостей и затем патчить, например, с помощью Dependabot).
4. Вредоносные коммиты: ограничение прав на GitHub-токен до минимально необходимых, сверять хэши Actions при обновлении Workflow.
5. Кража токенов кэша для получения контекста других рабочих процессов, использующих кэширование: не кэшировать ценную информацию, не запускать недоверенный код в контексте основной ветки.
CI/CD-платформы являются приоритетной целью для атакующих, и мы уже рассмотрели типичный сценарий атаки на CI-окружение, связанный с изменением конфигурационного файла. Но пока еще не ответили на вопрос:
Как защищаемся?
А вот исследователи из Open Source Security Foundation ответили. На примере коллекции наиболее распространенных атак на Github Actions, рассмотрены конкретные техники защиты от каждой проблемы. Если коротко и в формате «атака: защита»:
1. Запуск недоверенного кода в привелегированном рабочем процессе (Workflow): разделение процесса на два блока (с привелегиями и без).
2. Внедрение кода через недоверенный ввод данных, недоверенные файлы и файлы окружения: сбор параметров для Actions строку, ограничение прав на GitHub-токен до минимально необходимых.
3. Вредоносные Actions: ограничение прав на GitHub-токен до минимально необходимых, доверять только официальным Actions от GitHub (остальные - проверять на наличие уязвимостей и затем патчить, например, с помощью Dependabot).
4. Вредоносные коммиты: ограничение прав на GitHub-токен до минимально необходимых, сверять хэши Actions при обновлении Workflow.
5. Кража токенов кэша для получения контекста других рабочих процессов, использующих кэширование: не кэшировать ценную информацию, не запускать недоверенный код в контексте основной ветки.
1👍6❤1