Новый системный отладчик находит уязвимости кода за секунды

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

3 866
Выбор редакции

Как пишет TechXplore, в основе системного отладчика лежит метод статического анализа, туманно описанный разработчиками, как «поток информации, проходящий через программу». «Классическим примером этого является процесс абстрактного анализа программы, манипулирующей целыми числами. Вы можете делить целые числа на целые положительные числа, целые отрицательные числа и ноль», – рассказал профессор кафедры электротехники и информатики Массачусетского технологического института (MIT) Дэниел Джексон. Статический анализ позволит оценить каждую операцию программы с точки зрения влияния на признаки целых чисел. «Минус на минус дает плюс и так далее», – пояснил профессор.

 

Главной проблемой статического анализа является потеря данных в его процессе. Однако, когда речь идет о веб-приложениях, эта проблема становится критической. В качестве площадки для тестирования защитной системы разработчики использовали язык программирования Ruby on Rails. Это открытое программное обеспечение, как раз распространяемое под лицензией MIT. «Все дело в масштабах. Даже если ты написал небольшую программу, она «сидит» наверху здания, построенного из разных библиотек, плагинов и фреймворков. Поэтому, если вы пытаетесь сделать обычный статический анализ в среде, допустим Rails, вы вязнете в этом болоте. В итоге на практике анализ оказывается неосуществим», – сказал Дэниел Джексон.

 

В тестировании 50 популярных веб-приложений, написанных с использованием Ruby on Rails, отладчик обнаружил 23 ранее невыявленные уязвимости безопасности. На анализ каждой из программ потребовалось не более 64 секунд – то есть на аудит 23 программ ушло не более часа.

 

В своей работе Дэниел Джексон и его ученик Джозеф Ниар, занимающийся разработкой библиотек для Rails, выделили семь разных способов, с помощью которых веб-приложения контролируют доступ к данным. Одни из них доступны всем пользователям, другие – вошедшим в систему, третьи – администраторам и так далее. На основе этих шаблонов была разработана логическая модель, описывающая выполняемые пользователем операции и условия их выполнения. Space автоматически определяет, следует ли программа этой модели. Если нет, то речь идет, скорее всего, об уязвимости.

 

Системный отладчик будет представлен на Международной конференции по программной инженерии, которая пройдет с 14 по 22 мая в городе Остин, штат Техас.

3 866

Комментарии

Ну хотел бы немного поправить редакцию. Начнем с заголовка:
"Новая система безопасности находит уязвимости кода за секунды" - сильное заявление, но давайте проверим что в оригинале. "New debugging method found 23 undetected security flaws in 50 popular Web applications in less than an hour" - "Новый метод отладки нашел 23 0-day уязвимости в 50 популярных веб-приложений менее чем за час". Все таки смысл кардинально другой, система безопасности это та система которая обеспечивает безопасность периметра (антивирусы, песочницы, проактивки и т.д.) в данном же случае это даже не близко "система безопасности", эту программу можно назвать по разному, например, статический анализатор, динамический анализатор (как я понял из оригинала статьи там как раз используются оба подхода).
Ну так же штука эта не является какой то сверх уникальной, просто в один софт свели несколько подходов и заточили под поиск уязвимостей определенных типов программ. Заметьте это не универсальный комбайн для всех и вся. Подобные аналоги (возможно слабее по функционалу), есть и у российских разработчиков.
В общем неточностей еще много, если буду их описывать текста будет больше чем в переведенной статье :). Так что, добра Вам, грамотных редакторов и компетентных консультантов.

Быстрый вход

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