Поиск потенциальных уязвимостей в коде, часть 2: практика

В прошлый раз мы ознакомились с общими подходами в поиске уязвимостей безопасности в приложениях. В этот раз спустимся ближе к земле и посмотрим на то, как мы реализовали эти механизмы в нашем статическом анализаторе для Java. Читать далее...

Все блоги / Про интернет

SAST приложений под Android: делаем код безопаснее

Безопасность мобильных приложений — один из ключевых аспектов разработки, который нельзя оставлять без внимания. Уязвимости в коде могут привести к утечке данных, компрометации системы и другим серьёзным последствиям. Чтобы обнаружить и устранить риски ещё на этапе написания кода, разработчики...

Все блоги / Про интернет

Java, Taint и SAST: что это и зачем, и причём здесь ГОСТ 71207

На Java пишется огромное количество серверного кода. Отсюда следует, что написанные на ней веб-приложения должны быть устойчивы к специальным уязвимостям. И эта небольшая статья как раз про один из способов борьбы с ними — SAST. И ещё про то, что такое taint-анализ и как он во всём этом участвует....

Все блоги / Про интернет

Базовая настройка SAST и DAST для django в gitlab cicd: как быстро внедрить решения по безопасности

Привет, меня зовут Егор и я Tech Lead в компании ИдаПроджект :) Занимаюсь стратегией, процессами и командами в направлении backend разработки. Сегодня расскажу вам о базовой настройке SAST и DAST для django в gitlab cicd. В разработке использование SAST (Static Application Security Testing) и DAST...

Все блоги / Про интернет

Смешивать, но не взбалтывать. Как мы добавили Sec между Dev и Ops

Привет, Хабр! Меня зовут Натали Дуботолкова, я старший инженер по разработке безопасного программного обеспечения в Basis. Хочу рассказать о том, как мы задумались над интеграцией работы безопасников непосредственно в процесс разработки и к чему это привело, а также о том, какие методы и...

Все блоги / Про интернет

Поиск потенциальных уязвимостей в коде, часть 1: теория

Риски наличия уязвимостей безопасности всем известны: нарушение работы приложения, потеря данных или их конфиденциальности. В этой статье мы посмотрим на наглядных примерах фундаментальную сторону подхода, при котором уязвимости можно находить ещё на этапе разработки. Читать далее...

Все блоги / Про интернет

19 ошибок в LLVM 19

Статический анализатор PVS-Studio способен находить ошибки даже в таком качественном и протестированном проекте, как LLVM. Чтобы это не было пустыми словами, мы время от времени перепроверяем проект и публикуем такие заметки, как эта. Читать дальше →...

Все блоги / Про интернет

Безопасная разработка на Python

Язык программирования Python получил широкую популярность среди разработчиков благодаря богатому функционалу и гибкости. Однако, как и у любого другого языка в Python имеются свои недостатки, связанные в том числе с безопасной разработкой. Python является интерпретируемым языком, он не работает...

Все блоги / Про интернет

Поиск ошибок в юнит-тестах

Давно хотелось написать статью, что юнит-тесты — это хорошо, но не стоит забывать, что они тоже могут содержать ошибки. Сейчас встретился проект DPDK, тесты которого хорошо демонстрируют этот нюанс. Давайте посмотрим, как выглядят типичные ошибки в юнит-тестах, и как они выявляются с помощью...

Все блоги / Про интернет

Вы таки внедрили сканеры безопасности в пайплайны — на этом все?

Привет! Я Максим Коровенков, DevSecOps Lead в Купере (ex СберМаркет). Хочу поделиться мыслями по поводу минимально необходимого набора процессов, сопутствующих внедрению сканеров безопасности в пайплайны разработки. В результате попытаюсь ответить на вопрос: «А что, собственно, стоит иметь в виду...

Все блоги / Про интернет

Выявление biderectional unicode троянов

Двое специалистов в своей довольно старой публикации Trojan Source: Invisible Vulnerabilities описали одну из интересных атак, суть которой заключается в следующем: при просмотре исходного кода вы видите одно, но при компиляции в конечном приложении будет реализована совсем другая логика. Суть...

Все блоги / Про интернет

Выявление bidirectional unicode троянов

Двое специалистов в своей довольно старой публикации Trojan Source: Invisible Vulnerabilities описали одну из интересных атак, суть которой заключается в следующем: при просмотре исходного кода вы видите одно, но при компиляции в конечном приложении будет реализована совсем другая логика. Суть...

Все блоги / Про интернет

Внедряем DevSecOps в процесс разработки. Часть 3. Этап Post-build Checks в DevSecOps, обзор инструментов

Привет! На связи Олег Казаков из Spectr. В предыдущей части статьи я говорил о таком этапе DevSecOps как Commit-time Checks. Он отвечает за контроль корректности и безопасности кода в GIT-репозитории. А в этой части материала я расскажу, что же такое Post-build Checks, и как на этом этапе...

Все блоги / Про интернет

Внедряем DevSecOps в процесс разработки. Часть 2. Обзор инструментов, Commit-time Checks

Привет! На связи Олег Казаков из Spectr. Мы продолжаем публикацию цикла статей, где делимся опытом и наработками и рассказываем, из чего состоит DevSecOps и как его внедрить в процесс разработки. В предыдущей части статьи я рассказал о том, что представляет собой процесс DevSecOps в целом, из каких...

Все блоги / Про интернет

Идеальный кейс внедрения DevSecOps. Так бывает?

Привет, на связи отдел безопасной разработки СИГМЫ (ОБР). И хоть наша команда сформировалась относительно недавно, мы уже приобщились к «вечному» — а именно «противостоянию» разработки и безопасников. Если вы читаете эту статью, скорее всего такое знакомо и вам. Но иногда в этом взаимодействии...

Все блоги / Про интернет

Через тернии к звёздам: строим SSDLC на OpenSource-компонентах

Привет! Меня зовут Максим Коровенков, я DevSecOps Lead в СберМаркете. Хочу рассказать о том, как мы строим developer-центричный DevSecOps. Мы набили по ходу этого «строительства» уже достаточное количество шишек, поэтому, дабы поберечь вас, делюсь обретенным опытом. Статья будет полезна тем, кто...

Все блоги / Про интернет

Плагины IDE — простой способ войти в безопасную разработку. Без регистрации и СМС

Разработчики используют плагины каждый день, и их функциональность призвана упростить разработку, например, автоматически проверять проставление всех специальных символов (таких как «;», «:») или соблюдение синтаксиса. Они буквально были созданы для того, чтобы разработчики прямо во время написания...

Все блоги / Про интернет

Загрязненный — значит опасный: про уязвимость Prototype Pollution

Prototype Pollution (CVE-2023-45811, CVE-2023-38894, CVE-2019-10744) — не новая брешь, вы уже наверняка читали про нее и на Хабре, и на PortSwigger, и даже в научных журналах, но есть нюанс. Несмотря на большое количество публикаций, некоторые популярные решения до сих пор остаются уязвимыми для...

Все блоги / Про интернет