Просмотр по

CodePhage исправляет баги подстановкой кода других программ

На состоявшейся в июне конференции ACM PLDI (Programming Language Design and Implementation) команда Массачусетского технологического института (MIT) представила систему, исправляющую серьезные дефекты в программном обеспечении автоматически импортируя требуемые функции из других, более безопасных приложений.

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

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

«Мы располагаем массой исходного кода в репозиториях open-source, в миллионах проектов, многие из которых используют аналогичные спецификации, — утверждает Стелиос Сидироглу-Дускос (Stelios Sidiroglou-Douskos), возглавляющий разработку CodePhage. — Даже если это и не ключевая функциональность программы, они часто имеют субкомпоненты с функциями, общими для множества проектов».

Ученые протестировали CodePhage на семи популярных программах с открытым кодом, в которых были найдены критические дефекты с помощью утилиты DIODE, разработанной этой же группой в марте. В каждом случае, CodePhage удалось устранить недоработку, импортировав «запчасти» от двух-четырех доноров. На ремонт ПО у нее уходило от двух до десяти минут.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *