Для получения триального ключа
заполните форму ниже
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Бесплатная лицензия PVS-Studio для специалистов Microsoft MVP
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

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

Мне интересно попробовать плагин на:
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
>
Static Application Security Testing (SA…

Static Application Security Testing (SAST)

30 Сен 2022

Определение

Статическое тестирование безопасности приложений (SAST) – это набор технологий, предназначенных для анализа исходного кода ПО в области безопасности. Анализ заключается в поиске участков кода, содержащих потенциальные уязвимости.

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

SAST помогает находить потенциальные уязвимости на ранних этапах разработки ПО. Именно поэтому он является частью цикла безопасной разработки (Secure SDLC) и DevSecOps-пайплайна.

Некоторые уязвимости, которые ищут SAST-инструменты:

  • код, напрямую использующий информацию, введенную пользователем (например: XSS, SQLI, XXE, path traversal);
  • использование устаревших версий криптографических протоколов;
  • хранение паролей в коде;

Наиболее распространённые и опасные дефекты безопасности можно найти в списке OWASP Top 10.

Для понимания принципов функционирования SAST рассмотрим пример обнаружения SQL-инъекции:

void ProcessRequest(HttpRequest request) 
{ 
  string name = request.Form["name"];

  string sql = $"SELECT * FROM Users WHERE name='{name}'";
  using (var command = new SqlCommand(sql,_connection))
  {
    ....
  }
  .... 
}

Здесь SQL-запрос формируется из данных, введенных пользователем. Подобный подход опасен, так как данные, полученные извне, могут быть скомпрометированы. Это значит, что вместо ожидаемых данных (в данном случае - имени) пользователь может передать SQL-команду. В таком случае выполнение SQL-запроса будет небезопасным. В зависимости от SQL-команды это может привести к удалению таблиц или всей базы, извлечению из нее произвольного числа записей и т.п.

Найти дефект безопасности в этом коде можно с помощью taint-анализа. SAST-решение учитывает, что данные от пользователя могут быть скомпрометированы. Анализатор отслеживает распространение зараженных данных и предупреждает о том, что они попадают в конструктор SQL-команды. Значит, такая команда может быть опасной для исполнения, а код содержит дефект безопасности.

Преимущества и недостатки SAST

Преимущества:

  • указывает точное место возникновения потенциальной уязвимости и даже может предложить варианты исправления за счет работы с исходным кодом;
  • не требует исполнения приложения;
  • покрывает всю кодовую базу приложения;
  • помогает реализовать shift-left principle.

Недостатки:

  • выдает ложные срабатывания;
  • не анализирует библиотеки и фреймворки, если не имеет доступа к их исходному коду;
  • зависит от языка программирования.

Дополнительные ссылки

Последние статьи:

Опрос:

Популярные статьи по теме
Как Apple и другие крупные компании настиг программный баг

Дата: 09 Ноя 2022

Автор: Ульяна Гришина

Сегодня мы отобрали свежие случаи программных ошибок, чтобы вы могли немного отвлечься и, возможно, узнать что-то новенькое. Если вам интересно узнать, как программисту удалось сломать Интернет по вс…
Единороги компании PVS-Studio

Дата: 30 Авг 2022

Автор: Андрей Карпов

Скорее всего вы перешли на эту статью, заинтересовавшись одним из наших рисунков единорогов. Приятно видеть ваш интерес. Сейчас мы расскажем, почему рисуем этих единорогов, что они означают и чем воо…
Обрабатывать ли в PVS-Studio вывод других инструментов?

Дата: 26 Май 2022

Автор: Андрей Карпов

Анализатор PVS-Studio умеет "схлопывать" повторяющиеся предупреждения. Предоставляет возможность задать baseline, что позволяет легко внедрять статический анализ в legacy-проекты. Стоит ли предостави…
15000 ошибок в открытых проектах

Дата: 24 Май 2022

Автор: Андрей Карпов

Количество багов в нашей коллекции перевалило за отметку 15000. Именно такое количество ошибок обнаружила команда PVS-Studio в различных открытых проектах. Особенно интересно, что это всего лишь побо…
Комментарии в коде как вид искусства

Дата: 04 Май 2022

Автор: Сергей Хренов

Приветствую всех программистов, а также сочувствующих. Кто из нас хотя бы раз в жизни не оставлял комментарии в коде? Был ли это ваш код, а может, чужой? Что за комментарии вы написали: полезные или …

Комментарии (0)

Следующие комментарии
Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо