SOT

SOT

SOAR
Security Orchestration, Automation and Response

Автоматизация реагирования на инциденты информационной безопасности при помощи динамических плейбуков с применением СЗИ, выстраиванием цепочки атаки и объектно-ориентированным подходом

NG SOAR
Next Generation SOAR

Автоматизация реагирования на инциденты ИБ со встроенной базовой корреляцией, сбором сырых событий непосредственно с СЗИ, динамическими плейбуками, выстраиванием цепочки атаки и объектно-ориентированным подходом

AM
Asset Management

Описание ИТ-ландшафта, обнаружение новых объектов в сети, категорирование активов, инвентаризации и управления жизненным циклом оборудования и ПО на АРМ и серверах организаций

VM
Vulnerability Management

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

ГосСОПКА
Государственная Система Обнаружения Предупреждения и Ликвидации Последствий Компьютерных Атак

Двустороннее взаимодействие с Национальным координационным центром по компьютерным инцидентам (НКЦКИ), а именно передача информации об инцидентах и получение оперативных уведомлений/бюллетеней от регулятора

FinCERT
Financial Computer Emergency Response Team

Двустороннее взаимодействие с Центральным Банком (ЦБ РФ, ЦБ РБ и др.), а именно передача информации об инцидентах и получение оперативных уведомлений/бюллетеней от регулятора

Напишите нам на sales@securityvision.ru или закажите демонстрацию

GRC

GRC

КИИ
Критическая Информационная Инфраструктура

Аудит и исполнение требований ФЗ-187 «О безопасности критической информационной инфраструктуры Российской Федерации» и других нормативных документов

RM
Risk Management

Формирование реестра рисков, угроз, мер защиты и других параметров контроля, оценка по выбранной методике, формирование перечня дополнительных мер для изменения уровня риска, контроль исполнения, периодическая переоценка

ORM
Operational Risk Management

Учёт и фиксация событий операционных рисков (СОР), мониторинг ключевых индикаторов рисков (КИР) и проведение самооценки /контроля согласно положению №716-П ЦБ РФ

CM
Compliance Management

Аудит соответствия и комплаенса различным методологиям и стандартам

BCP
Business Continuity Plan

Автоматизация процесса обеспечения непрерывности и восстановления деятельности (ОНиВД) после наступления чрезвычайных ситуаций

Напишите нам на sales@securityvision.ru или закажите демонстрацию

Статический анализ исходного кода

Статический анализ исходного кода
27.03.2023

  |  Слушать на Google Podcasts  |   Слушать на Mave  |   Слушать на Яндекс Музыке  |  


Роман Душков, Security Vision


Современная разработка стремится к упрощению кода, увеличению его предсказуемости и эффективности. Рассмотрим, как превратить непрерывный процесс DevOps в безопасный и заботящийся о пользователях и их безопасности DevSecOps.


Один из способов – самозащита приложений во время их запуска и работы (Runtime application self-protection, RASP). Она анализирует поведение приложений и определяет, с одной стороны, их возможности, с другой – зоны их работы, поскольку приложения могут выйти за границы ожидаемого поведения, получить доступ к лишней информации и просто оказаться небезопасными для конечных пользователей.


Ещё про один способ заключается в том, что, в отличие от анализа уже работающего приложения, иногда исследуется код, написанный разработчиками. Средства анализа исходного кода приложений (Application Security Testing, AST) мы разберём в этой статье на примере работы статических анализаторов (Static AST, SAST). SAST-анализаторы используются для исследования кода на наличие в нем уязвимых команд, нелогичных взаимосвязей и информации, которой в хорошем коде быть не должно.


Рис. 1 – Механизмы статического анализа кода


Процесс работы SAST-систем можно сравнить с конвейером, на который поступает текст, написанный разработчиками, а на выходе предоставляется отчет со списком ошибок. Такой конвейер будет работать по-разному для текстов, написанных на разных языках, но обычно вендоры предлагают средства анализа для всех популярных языков программирования.


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


Итак, два важных фактора для эффективной работы SAST - понимание языка, на котором написано приложение, и знания о том, как недочеты могут быть устранены. Теперь разберем по этапам, как система обрабатывает текст. Представим, что вместо приложения мы пишем статью – после написания основного текста его передают редакторам, которые 1) исправляют ошибки 2) делают текст более удобочитаемым 3) находят ключевые слова для быстрого поиска и отображения статьи в поисковых системах. Исходный код приложения также анализируется по-разному.


Сначала прибегают к синтаксическому анализу. Синтаксис различается не только в русском, английском, немецком и других человеческих языках, но и для Python, GO и C++ и других языках программирования. Однако в определённой степени все языки похожи: так же, как в человеческих языках можно выделить подлежащее, сказуемое и другие части речи, так и в языках программирования можно выделить операторы, команды и комментарии. Синтаксический анализ позволяет обнаружить отдельные фрагменты и области, как в теореме о 1000 знаков. Работа синтаксического анализатора подобна работе систем Asset Management, когда все IT-активы компании раскладываются по полочкам для построения карты сети и быстрого поиска, например, серверов на стадии ремонта. Или, если вернуться к тексту этой статьи – проверке синтаксиса в Microsoft Word, в результате которой проставляются нужные знаки препинания, сам текст разбивается на абзацы и комфортные для чтения фразы, появляется структура, которую удобнее воспринимать алгоритмам SAST.


После включается семантический анализатор, который ищет соотношение формы сообщения и его смыслового содержания. Так, например, ноль в программировании можно представить в виде целого числа (0), числа с плавающей запятой (0,000000001) или булевой переменной (False). С каждой переменной можно взаимодействовать по-разному: например, к целому числу можно прибавить другое. А с переменной True/False работать по правилам математической логики. При анализе исходного кода на данном этапе система определяет возможности команд и операторов, которые могут быть оптимизированы. С точки зрения анализатора можно не знать точных значений переменных, но видеть, что данные поступили из внешнего источника. Такие данные могут быть скомпрометированы, значит, нужно сообщить разработчику, как избежать, например, SQL-инъекций и переполнения буфера.


Ещё один способ проанализировать уязвимости в коде – изучить транспорты, по которым передается информация. В жизни каждый из вас скорее всего сталкивался с курьерскими службами (доставкой цветов, продуктов из супермаркета и ресторана, хранением ключей в сейфах при использовании Airbnb и т.д.). Каждый из способов доставки имеет свои преимущества: скорость, мобильность курьера, размеры грузовика для транспортировки мебели, надежность и безопасность. При создании приложений также используются разные транспортные протоколы, часть из которых нацелена на обработку файла, поиск данных в СУБД, API-приложений и др. 

                 

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


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


Используя описанные выше технологии, можно провести анализ кода до его компиляции, т.е. до выпуска новой версии продукта, поэтому разработчики могут добавить SAST для обеспечения безопасности в свои процессы ещё на этапе разработки, совместно с общепринятыми методами CI/CD. Сам по себе продукт не исправит слабые и уязвимые участки кода, но подсветит возможные риски. В дальнейшем безопасность можно усилить специальными хранилищами секретов, сканерами уязвимостей или анализаторами кода, которые работают динамически.

Управление ИБ Управление уязвимостями Аудит информационной безопасности Стандарты ИБ Подкасты ИБ

Рекомендуем

SOC (Security Operation Center): что это такое и зачем используется? Центры мониторинга информационной безопасности
SOC (Security Operation Center): что это такое и зачем используется? Центры мониторинга информационной безопасности
КИИ - что это? Безопасность объектов критической информационной инфраструктуры
КИИ - что это? Безопасность объектов критической информационной инфраструктуры
Кейлоггер для кибербезопасности и оптимизации
Кейлоггер для кибербезопасности и оптимизации
Информационная  безопасность (ИБ) - что это такое. Виды защиты информации.
Информационная безопасность (ИБ) - что это такое. Виды защиты информации.
Что такое IRP, где используется и как внедряется
Что такое IRP, где используется и как внедряется
SIEM системы (Security Information and Event Management) - что это и зачем нужно?
SIEM системы (Security Information and Event Management) - что это и зачем нужно?
Управление рисками информационной безопасности. Часть 1. Основные понятия и методология оценки рисков
Управление рисками информационной безопасности. Часть 1. Основные понятия и методология оценки рисков
Федеральный закон № 161-ФЗ «О национальной платежной системе»
Федеральный закон № 161-ФЗ «О национальной платежной системе»
Категорирование объектов критической информационной инфраструктуры в рамках 187-ФЗ. Постановление Правительства РФ № 127
Категорирование объектов критической информационной инфраструктуры в рамках 187-ФЗ. Постановление Правительства РФ № 127
Практика ИБ. Централизованный сбор логов с Windows-устройств
Практика ИБ. Централизованный сбор логов с Windows-устройств
Обеспечение безопасности значимых объектов критической информационной инфраструктуры в рамках 187-ФЗ. Приказы ФСТЭК России №235 и 239
Обеспечение безопасности значимых объектов критической информационной инфраструктуры в рамках 187-ФЗ. Приказы ФСТЭК России №235 и 239
Защита критической информационной инфраструктуры (конспект лекции)
Защита критической информационной инфраструктуры (конспект лекции)

Рекомендуем

SOC (Security Operation Center): что это такое и зачем используется? Центры мониторинга информационной безопасности
SOC (Security Operation Center): что это такое и зачем используется? Центры мониторинга информационной безопасности
КИИ - что это? Безопасность объектов критической информационной инфраструктуры
КИИ - что это? Безопасность объектов критической информационной инфраструктуры
Кейлоггер для кибербезопасности и оптимизации
Кейлоггер для кибербезопасности и оптимизации
Информационная безопасность (ИБ) - что это такое. Виды защиты информации.
Информационная  безопасность (ИБ) - что это такое. Виды защиты информации.
Что такое IRP, где используется и как внедряется
Что такое IRP, где используется и как внедряется
SIEM системы (Security Information and Event Management) - что это и зачем нужно?
SIEM системы (Security Information and Event Management) - что это и зачем нужно?
Управление рисками информационной безопасности. Часть 1. Основные понятия и методология оценки рисков
Управление рисками информационной безопасности. Часть 1. Основные понятия и методология оценки рисков
Федеральный закон № 161-ФЗ «О национальной платежной системе»
Федеральный закон № 161-ФЗ «О национальной платежной системе»
Категорирование объектов критической информационной инфраструктуры в рамках 187-ФЗ. Постановление Правительства РФ № 127
Категорирование объектов критической информационной инфраструктуры в рамках 187-ФЗ. Постановление Правительства РФ № 127
Практика ИБ. Централизованный сбор логов с Windows-устройств
Практика ИБ. Централизованный сбор логов с Windows-устройств
Обеспечение безопасности значимых объектов критической информационной инфраструктуры в рамках 187-ФЗ. Приказы ФСТЭК России №235 и 239
Обеспечение безопасности значимых объектов критической информационной инфраструктуры в рамках 187-ФЗ. Приказы ФСТЭК России №235 и 239
Защита критической информационной инфраструктуры (конспект лекции)
Защита критической информационной инфраструктуры (конспект лекции)

Похожие статьи

Технология SOAR и ее место в SOC
Технология SOAR и ее место в SOC
Живее всех живых: непрерывность бизнеса
Живее всех живых: непрерывность бизнеса
Что такое системы анализа трафика (Network Traffic Analysis, NTA), их отличие от NDR и IDS
Что такое системы анализа трафика (Network Traffic Analysis, NTA), их отличие от NDR и IDS
Анатомия визуализации. Часть первая: от задачи к исполнению
Анатомия визуализации. Часть первая: от задачи к исполнению
Что такое аутентификация Kerberos (Керберос), что такое NTLM и как они работают
Что такое аутентификация Kerberos (Керберос), что такое NTLM и как они работают
Open software supply chain attack reference (OSC&R)
Open software supply chain attack reference (OSC&R)
Применение утилиты Sysmon для повышения уровня кибербезопасности
Применение утилиты Sysmon для повышения уровня кибербезопасности
Фантастический TI и где он обитает
Фантастический TI и где он обитает
Что такое шлюзы безопасности и какие функции они выполняют
Что такое шлюзы безопасности и какие функции они выполняют

Похожие статьи

Технология SOAR и ее место в SOC
Технология SOAR и ее место в SOC
Живее всех живых: непрерывность бизнеса
Живее всех живых: непрерывность бизнеса
Что такое системы анализа трафика (Network Traffic Analysis, NTA), их отличие от NDR и IDS
Что такое системы анализа трафика (Network Traffic Analysis, NTA), их отличие от NDR и IDS
Анатомия визуализации. Часть первая: от задачи к исполнению
Анатомия визуализации. Часть первая: от задачи к исполнению
Что такое аутентификация Kerberos (Керберос), что такое NTLM и как они работают
Что такое аутентификация Kerberos (Керберос), что такое NTLM и как они работают
Open software supply chain attack reference (OSC&R)
Open software supply chain attack reference (OSC&R)
Применение утилиты Sysmon для повышения уровня кибербезопасности
Применение утилиты Sysmon для повышения уровня кибербезопасности
Фантастический TI и где он обитает
Фантастический TI и где он обитает
Что такое шлюзы безопасности и какие функции они выполняют
Что такое шлюзы безопасности и какие функции они выполняют