Рецензия на книгу «Уязвимости в программном коде и борьба с ними». Ховард М., Лебланк Д., Виега Д./ — М.: ДМК Пресс, 2011.

Целевая аудитория данной книги — разработчики программного обеспечения, что неудивительно, так как Майкл Ховард и Дэвид Лебланк являются авторами нашумевшей книги издательства Microsoft Press «Защищенный код». Кроме того, авторы активно участвовали в Windows Security Push — инициативы по укреплению защиты продуктов Microsoft. Однако они не останавливаются на языках и средствах разработки, популярных на платформе Windows, но и затрагивают специфику разработки на С/С++ и Perl в UNIX-системах. Спектр операционных систем, уязвимости которых освещаются, также разнообразен: Windows, коммерческие UNIX, Linux, Mac OS X и Novell Netware.

Книга рассматривает типы ошибок (грехов — в терминологии авторов) в программном коде, которые потенциально можно эксплуатировать как уязвимости в таких языках как: C/C++, C#, Java, Visual Basic, Visual Basic .Net, Perl и Python. Причем, по каждому типу грехов (ошибок) рассматриваются следующие аспекты:

  • В чем состоит грех

  • Подверженные греху языки

  • Как происходит грехопадение

  • Греховность С/С++

  • Родственные грехи

  • Где искать ошибку

  • Выявление ошибки на этапе анализа кода

  • Примеры ошибок из реальной жизни (CVE-…,CAN-…)

  • Искупление греха (исправление ошибки)

  • Дополнительные защитные меры

Особенное внимание уделено небезопасным системным и библиотечным вызовам каждого из указанных выше языков и операционных систем.

Web-уязвимости рассматриваются в контексте SQL-инъекций и кросс-сайтовых сценариев. Применительно к Web-серверу IIS делается обзор типовых ошибок в ISAPI-расширениях на C/C++ и форм на ASP .Net.

Учитывая, что материалы книги могут задеть тех, кто склонен идеализировать любимые ими программные продукты и платформы, с юмором используемые авторами религиозные аллюзии (грех и грехопадение) облегчают задачу донесения изложенных идей даже до предвзятой аудитории.

Многие издания для программистов, продвигая новейшие возможности средств разработки и делая упор на технических аспектах, забывают о том, что необходимо также «ставить почерк» — то есть заботиться об обучении хорошему стилю программирования — включающему в себя заботу о качестве и безопасности кода. Было бы отлично, если бы начинающие разработчики и выпускники курсов по разработке прочитали эту книгу — ведь каждый из них сможет в новом измерении увидеть, как применять изученные технические приемы.

 

Запись опубликована в рубрике Без рубрики, Публикации. Добавьте в закладки постоянную ссылку.

Комментарии запрещены.