На главную страницу AlgoNet В сотрудничестве с ZDNet
АРХИВ СТАТЕЙ 2003-11-27 на главную / новости от 2003-11-27
AlgoNet.ru
поиск

 

Место для Вашей рекламы!

 

Все новости от 27 ноября 2003 г.

Обязательное чтение для разработчиков

Ховард М., Лебланк Д. Защищенный код/Пер. с англ. -- М.: ИТД "Русская Редакция", 2003. -- 704 с.

Одна из ключевых проблем современных информационных систем -- безопасность. Причины тому очевидны: растет сложность систем одновременно с повышением их критичности для обеспечения основной деятельности человека.

До недавнего времени вопросы защиты в вычислительных системах трактовались достаточно узко, применительно лишь к данным, упрощенно говоря -- к файловой системе, СУБД и т. д.

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

При этом тут можно выделить нанесение ущерба, с одной стороны, путем несанкционированного доступа к данным через приложение, а с другой -- изменение функциональности самой программы.

Здесь нужно отметить спорность определения "защищенное ПО", сформулированного в руководящих документах Microsoft как "программа, которая обеспечивает конфиденциальность, целостность и доступность информации клиента".

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

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

При этом очевидно, что четко разделить подобные проблемы на внешние и внутренние очень сложно, а потому вопросы защищенности и надежности желательно рассматривать в комплексе.

Из всего букета проблем безопасности в рецензируемой книге разбираются именно вопросы разработки защищенного от внешних угроз ПО на всех этапах его создания -- от проектирования до тестирования для выявления брешей в готовой программе и составления документации. Книга состоит из 24 глав и пяти приложений, объединенных в пять разделов.

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

Далее описываются активные подходы к безопасности на различных этапах создания приложений, говорится о ключевых принципах реализации систем и возможных вариантах моделирования опасностей.

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

Следующие четыре главы посвящены дополнительным методам создания защищенного кода, связанным с обеспечением безопасности сокетов, защитой автономных компонентов (RPC, элементы управления ActiveX, объекты COM/ DCOM), противодействием атакам типа "отказ в обслуживании". Отдельно обсуждаются вопросы безопасного кода в архитектуре .NET.

Четвертая часть "Особые вопросы" состоит из шести глав. Тут рассматриваются темы, затрагиваемые не очень часто: тестирование, анализ исходного кода на предмет безопасности, конфиденциальности и безопасной установки ПО, а также подготовка документации с учетом обеспечения безопасности.

Здесь же в отдельной главе собраны общие рекомендации, которым не нашлось места в других разделах книги ("Влезьте в шкуру пользователя!", "Никаких внутрикорпоративных имен в приложении!", "Не включайте ничего лишнего!" и т. д.).

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

Мы в безопасности, так как применяем криптографию, списки ACL, брандмауэр. Но мы же выбьемся из графика! Эх, были бы у нас инструментальные средства получше!" и т. д.

Еще одно приложение содержит описание наиболее опасных API-функций, три других -- контрольные списки по безопасности для архитекторов, программистов и тестировщиков (описание тем и номера глав, где они рассматриваются). Завершает книгу представительный библиографический список с аннотациями.

Хотя в качестве примера авторы используют в основном технологии Microsoft, но методические подходы, описанные ими, носят вполне универсальный характер.

Поэтому рекомендацию Билла Гейтса: "Мы считаем, что каждый сотрудник Microsoft должен прочесть эту книгу" -- вполне можно распространить на более широкий круг разработчиков, использующих самые разнообразные инструменты и платформы.

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

В этой связи нужно привести важную мысль авторов: "Давно уже прошли те дни, когда защита была искусством избранных, теперь это удел каждого, кто на своем месте отвечает за создание безопасного ПО".

Майклу Ховарду и Дэвиду Лебланку удалось изложить сложные технические проблемы хорошим, живым языком в стиле доверительной беседы с читателем, с использованием простых, но выразительных примеров, в том числе и аналогий из повседневной жизни. Эта книга из тех, читать которые не просто полезно, но и интересно.

В заключение хотелось бы отметить оперативность "Русской Редакции": в конце октября на конференции Microsoft PDC’2003 английское оригинальное издание как новинка книжного рынка было выдано каждому участнику мероприятия, и почти в это же время его перевод появился в Москве.

 

← октябрь 2003 21  22  23  24  25  26  27  28  29 декабрь 2003 →
Реклама!
 

 

Место для Вашей рекламы!