|
|
|||||
Технологии
Новый язык программирования, по замыслу создателей, должен помочь разработчикам избежать программных ошибок, что предотвратит появление многих "дыр" и "лазеек" в системах защиты. Язык под названием Cyclone разрабатывается группой программистов из Корнельского университета (Cornell University) и лабораторий AT&T Labs в Нью-Йорке. Cyclone - переработанная версия языка программирования C, на котором на сегодняшний день написано огромное количество приложений под разные платформы. Cyclone призван почти полностью исключить вероятность появления основных багов - ошибок в исходном коде, - которые приводят к возникновению "дыр" и "лазеек" в системах защиты программных продуктов и заставляют софтверные компании выпускать все новые "заплатки". "C - очень мощный язык, но эта мощь может обернуться против вас же, - отметил Грэм Хаттон (Graham Hutton), эксперт по компьютерным языкам в Университете Ноттингема, комментируя замыслы разработчиков Cyclone. - Они пытаются использовать возможности C, но с большим количеством проверок, чтобы сделать язык более безопасным для использования". По словам исследователей, код, написанный на C, часто содержит серьезные ошибки, которые проявляются лишь после запуска законченного приложения. Такого рода ошибки трудно предвидеть, зачастую они проявляются не сразу и могут привести к неверному выполнению или зависанию программы. Подобные баги делают приложение уязвимым для хакерских атак, порой из-за нелепого пустяка сводя на нет сложнейшие системы защиты. Компилятор языка Cyclone выявляет участки кода, которые со временем могут послужить причиной уязвимостей, с помощью механизма контроля типов. Cyclone не ищет определенную строку в исходном коде, а анализирует возможный результат его выполнения и выделяет потенциально опасные противоречия. Типичным примером такого рода проблем являются так называемые ошибки переполнения буфера, вызывающие неправильное использование памяти. Переполнение буфера может открыть хакеру доступ к защищенным частям программы. "Идея заключается в том, чтобы взять средства эффективной защиты у языков высокого уровня и внедрить их на низком уровне, - заявил исследователь из Корнельского университета Грег Моррисетт (Morrisett). - Если мы возьмем приложение на C, то с помощью компилятора Cyclone найдем все возможные ошибки типов". Компилятор Cyclone перепишет исходный код или предложит исправления для исключения потенциальных ошибок. Даже если баг еще не исправлен, компилированная система приведет к корректному завершению программы, а не к ее зависанию. Новый язык очень близок к C, что позволяет с минимальными усилиями переносить на него написанные на C приложения. На сегодняшний день создателям Cyclone удалось разработать простой веб-сервер, который, по их словам, совершенно невосприимчив к обычным багам. По словам г-на Моррисетта, основная трудность заключается в написании на Cyclone больших приложений, которые были бы защищены от потенциальных уязвимостей и сохранили бы максимальную функциональность. "Наша основная цель - построить на Cyclone что-нибудь столь же грандиозное, как ОС Linux", - добавил он. Материалы по Cyclone будут представлены г-ном Моррисеттом и его коллегами на Конференции по разработке и реализации языка программирования (Programming Language Design and Implementation Conference), которая пройдет в Германии в июне 2002 года.
Рекомендуем
Обсуждение новости
|
|