Бесплатные книги и статьи по безопасной разработке

Бесплатные книги и статьи по безопасной разработке

Just code IT

В рейтинге TIOBE небезопасные языки программирования C и C++ традиционно занимают вторую и третью позиции, уступая только Python.

Код на этих языках используется повсеместно: в ядрах операционных систем, авионике, прошивках умных носимых устройств, веб-серверах и базах данных, браузерах и средствах виртуализации.

Просто взять и забыть эти устоявшиеся инструменты не выйдет, хотя Rust и другие системные языки с безопасной моделью памяти становятся все популярнее. Остается одно — научиться минимизировать риски от использования небезопасных инструментов.

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

Разобраться в этих премудростях поможет бесплатная книга Матиаса Пэйера (Mathias Payer) — Software Security.

Полезной будет и статья знаменитого Мэтта Бишопа (Matt Bishop), Robust Programming, которая повествует о подходах, увеличивающих надежность программного кода. Например, в коде на C Мэтт рекомендует не передавать указатели за пределы модуля, который управляет временем жизни соответствующих объектов. Вместо этого автор предлагает генерировать токены специального вида: содержащие ссылку на объект и его эпоху. Такие токены частично решают проблему temporal safety, поскольку отслеживают некорректные повисшие ссылки.

Не менее интересна его статья “Applying Formal Methods Informally”, повествующая о том, как подходы, свойственные для разработки mission critical-систем, преимущественно основанные на применении формальных методов, могут подсказать разработчику хорошие практики, которые тот может использовать в своей повседневной работе, даже не сталкиваясь с инструментами формальной верификации.

Но кроме бинарных уязвимостей существуют и другие проблемы, связанные с окружением, операционной системой, в которой работает наш код. Разобраться в тонкостях безопасной разработки под Unix-системы поможет книга Дэвида Виллера (David A. Wheeler) — Secure Programming HOWTO.

А какие свободно распространяемые книги по кибербезопасности и безопасной разработке можете посоветовать вы?



Report Page