Узнайте об основных причинах уязвимостей программного обеспечения и научитесь их избегать! Распространенные уязвимости программного обеспечения обычно вызываются дефектами программирования, которых можно было бы избежать. Проанализировав десятки тысяч сообщений об уязвимостях, начиная с 1988 года, CERT выявила, что подавляющее количество уязвимостей вызывается относительно небольшим количеством первопричин. Во втором издании книги Безопасное программирование на C и C++ выявляются и поясняются эти первопричины и указываются шаги, которые могут быть предприняты для устранения уязвимостей в разрабатываемом программном обеспечении. Кроме того, книга призывает программистов принять на вооружение наилучшие методы обеспечения безопасности и выработать образ мышления, который может помочь защитить программное обеспечение не только от известных на сегодня, но и от будущих атак. Опираясь на доклады и выводы CERT, Роберт С. Сикорд систематически указывает программные ошибки, которые скорее всего приведут к нарушениям безопасности, показывает, как они могут быть использованы злоумышленниками, рассматривает потенциальные следствия такого использования и предоставляет безопасные альтернативы.
В книге подробно рассмотрены следующие темы:
Повышение безопасности и защищенности любого приложения на C/C++.
Описание атак с использованием переполнения буфера и разрушения стека, использующих небезопасную логику работы со строками.
Как избежать уязвимостей и дефектов безопасности при использовании функций управления динамической памятью.
Как устранить проблемы целочисленной арифметики, вытекающие из переполнения знаковых целых чисел, циклического возврата беззнаковых целых чисел и ошибок усечения.
Безопасный ввод-вывод и устранение уязвимостей, связанных с файловой системой.
Корректное применение функций форматированного вывода без внесения уязвимостей форматных строк.
Устранение конфликтов при доступе к ресурсам и прочих уязвимостей при разработке параллельно выполняемого кода.
Author(s): Сикорд Р.
Edition: 2
Publisher: Вильямс
Year: 2015
Language: Russian
Commentary: увеличил контрастность, подчистил мусор
Pages: 498
Введение 17
Предисловие 19
Об авторе 25
Глава 1. Бег с ножницами 27
Глaвa 2. Строки 51
Глaвa 3. Уловки с указателями 131
Глaвa 4. Управление динамической памятью 151
Глaвa 5. Целочисленная безопасность 221
Глaвa 6. Форматированный вывод 293
Глaвa 7. Параллельное выполнение 329
Глaвa 8. Файловый ввод-вывод 373
Глaвa 9. Рекомендованные практики 435
Список литературы 475
Аббревиатуры 488
Предметный указатель 494