Методы безопасного кодирования C

Я ищу исчерпывающую информацию о методах безопасного кодирования на языке C. Поскольку я не нашел такого списка, существующего здесь, мы могли бы также превратить его в вики сообщества для дальнейшего использования. Я ищу решения для проблем безопасности, таких как переполнение и недополнение буфера на основе стека и кучи, целочисленные переполнения и недопустимости, атаки форматной строки, разыменование нулевого указателя, атаки проверки кучи / памяти и т. Д.

NB: Помимо практики кодирования, стоит упомянуть и защищенные библиотеки, защищающие от подобных атак.

Л.Э.: Как видно из этого вопроса, методы кодирования Secure C++, но только для языка Си.

2 ответа

Решение

Стандарт CERT C "de facto" довольно хорошо известен и в некоторой степени решает эти проблемы:

SEI CERT C Стандарт кодирования

На рынке должно быть несколько статических анализаторов, поддерживающих CERT C.

Тот же ответ Безопасная книга программирования для C и C++: рецепты для криптографии, аутентификации, проверки входных данных и многое другое

Из описания:

Читатели узнают:

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

  • Как правильно SSL-включить приложения

  • Как создать безопасные каналы для связи клиент-сервер без SSL

  • Как интегрировать инфраструктуру открытых ключей (PKI) в приложения Лучшие практики для правильного использования криптографии Методы и стратегии для правильной проверки правильности ввода в программы

  • Как безопасно запускать программы

  • Как правильно использовать механизмы доступа к файлам

  • Методы защиты приложений от обратного проектирования
Другие вопросы по тегам