Практика аудита программ на Си.

В руководстве "Practical Code Auditing" приводятся методы поиска участков кода, которые могут привести к проблемам с безопасностью программы. Рассматриваемые аспекты:

  • переполнение буфера (например, buf[sizeof(buf)] = '\0' вместо buf[sizeof(buf)-1] = '\0'),
  • проблемы с распределеныем памяти,
  • "Format String Vulnerabilities" - когда в функциях подобных printf и syslog забывают явно указать формат аргумента (делают printf (buf) вместо printf("%s", buf)),
  • проблемы вида "Race Conditions",
  • аудит бинарных файлов,
  • жесткое тестирование.

    Документ опубликован в PDF формате.