![]() |
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
![]() | |
![]() |
Рассылки:
![]() Новости-почтой TV-Программа Гороскопы Job Offers Концерты Coupons Discounts Иммиграция Business News Анекдоты Многое другое...
|
| ||||||||||||||
Компьюлента. 28 ноября 2003 года, 17:20
"Компьюлента" продолжает публиковать материалы о конференции Microsoft "Платформа 2004". В этой статье приведены основные тезисы доклада Дэвида Лебланка, посвященного написанию безопасного программного кода. Лебланк занимается в Microsoft вопросами безопасности и является одним из авторов книги "Защищенный код", которая используется в процессе обучения программистов компании. Главным тезисом доклада Лебланка стало доказательство необходимости создания программного обеспечения, изначально безопасного для использования. Это утверждение также является и частью стратегии Microsoft в рамках инициативы Trustworthy Computing ("Надежный компьютинг"), направленной на пересмотр кода существующего ПО компании и написание нового с упором на безопасность. По словам Лебланка, дыры в ПО зачастую появляются именно из-за ошибок на стадии проектирования и программирования. До 50% всех уязвимостей возникают именно на этой стадии.
![]() Дэвид Лебланк Что необходимо сделать, чтобы обеспечить безопасность кода при его написании? Во-первых, считает Дэвид Лебланк, необходимо соответствующим образом обучать сотрудников. Если программисты не знают, где может скрываться уязвимость, они не смогут обеспечить безопасность продукта. Необходимо проверять работоспособность систем безопасности после написания программы - испытывать ПО на наличие наиболее распространенных уязвимостей. Кроме того, требуется то, что Лебланк назвал security push - придание импульса всей команде разработчиков в целях исследования кода на предмет безопасности. Основные три правила безопасного ПО: оно должно разрабатываться с учетом вопросов безопасности, оно должно быть безопасным по умолчанию (неиспользуемые функции должны быть отключены в "заводских установках" ПО, что и было применено в Windows Server 2003 и сервис-паке для Windows XP), и оно должно внедряться с учетом вопросов безопасности. Последнее, опять-таки, означает обучение персонала клиентов Microsoft с целью недопущения злополучных ошибок при внедрении ПО, которые могут повлиять на уровень безопасности программного продукта. Далее Лебланк перешел к конкретным вопросам "безопасного программирования", представив соответствущие тезисы, один из которых справедлив и сходен с вездесущими "законами Мерфи": "Все беды от неведомого". Далее последовали два уже не столь очевидных утверждения: "Увеличение числа тестировщиков ПО не гарантирует повышения безопасности" и "Наличие средств безопасности автоматически не повышает безопасность". Все три тезиса можно объединить в одно: попытка укрепить безопасность ПО простым увеличением объемов тестирования и средств контроля не сможет радикально снизить число уязвимостей, так как уязвимость может скрываться и в совершенно "невинном" фрагменте кода. Примеры подобных "невинных" фрагментов были приведены далее в ходе доклада Лебланка. По мнению Лебланка, средства защиты от взлома должны быть многоступенчатыми, чтобы обеспечить защиту "на глубинном уровне". Программное обеспечение должно быть безопасным сразу после установки из-за того, что "никто и никогда не обращается к встроенной системе помощи" (это верно и для пользователей, и для администраторов систем). Меры по защите ПО должны опираться на уже существующий опыт. "Те, кто не знает истории, обречены на ее повторение", - говорит Лебланк.
![]() Дэвид Лебланк в Москве По словам Лебланка, врагом программистов номер один является ошибка переполнения буфера, то есть "попытка передачи большего объема данных, чем положено". По мнению Дэвида, те, кто считают, что некоторые ошибки переполнения буфера нельзя использовать, глубоко ошибаются. В этой, заключительной части доклада Лебланк привел примеры составления запроса на сайте, который приводит к выполнению команд пользователя, интегрированных в запрос. Простейшие примеры с соответствующим кодом демонстрировали, как можно с помощью модификации отправляемых на сервер данных получать над ним контроль. Кроме того, Дэвид продемонстрировал работу некоторых уязвимостей, которые ранее были обнаружены в браузере Internet Explorer. Например, раньше в этом браузере можно было загрузить сайт с "локальными" настройками безопасности, если точки в URL заменить на соответствующие шестнадцатеричные коды: программа отличала локальный ресурс от удаленного именно по наличию точек. После доклада состоялась пресс-конференция с участием Дэвида Лебланка и представителей издательства "Русская редакция", которое выпустило русский вариант книги "Защищенный код", написанной Лебланком в соавторстве с Майклом Говардом. Стоит отметить, что тезисы доклада Лебланка на конференции "Платформа 2004" соответствуют содержанию книги, хотя в совместном труде Говарда и Лебланка проблема безопасности рассматривается намного глубже, с анализом реального кода на различных языках программирования. В ходе пресс-конференции Лебланк ответил на некоторые вопросы корреспондента "Компьюленты". В частности, была затронута тема "пасхальных яиц" в программных продуктах, которым, кстати, в книге "Защищенный код" посвящена отдельная глава. Во время доклада Лебланк упомянул фразу Netscape engineers are weenies ("Разработчики Netscape - салаги"), которая использовалась как код шифрования в одном из модулей Internet Explorer. Отвечая на вопрос "Компьюленты" о наличии других подобных "бомбочек" в коде приложений Microsoft, в том числе "пасхальных яиц", Дэвид отметил, что теперь подобная самодеятельность программистов (известно, что в предыдуших версиях программ для Windows можно было отыскать то фото создателей, то трехмерную игрушку, как было в случае с Excel 97) строго запрещена и такие "шуточки" караются в Microsoft увольнением. В книге "Защищенный код" один из авторов пишет: "Должен сознаться, что в "предыдущей жизни" сам занимался этим, но только не в готовом приложении. Это была программа-прототип. Теперь я бы не стал писать "пасхальное яйцо", потому что знаю, что пользователям оно не нужно, да и откровенно говоря, у меня нет времени на это". На вопрос о том, "ухудшились" ли условия работы программистов с началом воплощения в жизнь инициативы "Надежного компьютинга", Лебланк ответил, что, скорее, наоборот, улучшились. По словам Дэвида, одним из основных качеств программиста считается лень, и при работе с учетом вопросов безопасности он может это качество "реализовать", написав код один раз безопасным, не переписывая и дополняя всякий раз при обнаружении очередной дыры. Кроме того, Лебланк пояснил, что при обнаружении уязвимости в ПО Microsoft сторонними компаниями страдает, в первую очередь, не программист, который допустил ошибку в коде. Проводится расследование, с целью выяснить, почему ошибка не была обнаружена внутри компании, или если она была обнаружена, то почему ее не исправили. Впрочем, "если сотрудник постоянно допускает грубые ошибки в коде, это может послужить поводом расстаться с ним", - заметил Лебланк. Высказал свое мнение Лебланк и по поводу модели разработки ПО в сообществе open source. Он привел в пример открытый проект, разработкой которого никто не интересуется, из-за чего идея остается нереализованной. В Microsoft, говорит Лебланк, программистам платят деньги, и не они решают, что им делать, а что - нет. Из-за этого модель разработки коммерческих программ эффективнее. Но в то же время, Лебланк отметил, что с точки зрения собственно разработки, а не организации, разница между коммерческим и свободным ПО не так уж и велика.
|
|
||||||||||||||
|
![]() |
|
|
© 2025 RussianAMERICA Holding All Rights Reserved Contact |