События

Защищенные приложения уязвимы к атакам из-за языков программирования

Согласно результатам исследования , представленным на прошлой неделе на конференции Black Hat Europe 2017, защищенные приложения подвержены атакам из-за уязвимостей в интерпретируемых языках программирования, на которых они написаны.

Автором исследования является старший консультант по безопасности компании IOActive Фернандо Арнаболди (Fernando Arnaboldi). С помощью автоматизированный техники, известной как фаззинг, эксперт протестировал интерпретаторы пяти популярных языков программирования – JavaScript, Perl, PHP, Python и Ruby. Фаззинг позволяет выявить такие проблемы, как аварийное завершение работы, «зависание» и повреждение памяти. Как правило, некоторые из них возникают не потому, что код приложения требует оптимизации, а являются результатом более серьезных проблем с безопасностью в языках программирования.

В ходе исследования Арнаболди использовал созданный им самим «дифференциальный фаззер» XDiFF (Extended Differential Fuzzing Framework), специально адаптированный для тестирования структуры и принципа работы интерпретируемых языков программирования. Как оказалось по результатам исследования:

  • Python содержит незадокументированные методы и переменные локальной среды, позволяющие выполнить команды ОС.

  • Perl содержит функцию typemaps, способную выполнить код, как eval().

  • NodeJS выводит сообщения об ошибке, способные раскрывать частичное содержимое файлов.

  • JRuby загружает и выполняет удаленный код на функции, не предназначенной для удаленного выполнения кода.

  • Константа PHP может использоваться для удаленного выполнения команд.

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

Фаззинг (fuzzing) – техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающая в передаче приложению на вход неправильных, неожиданных или случайных данных.

Источник

Автор: Сергей Куприянов
11.12.2017 (22:07)
Пройди тест и узнай об этом!
Информер новостей
Расширение для Google Chrome

Все права защищены © 2010-2024

"alterprogs.com" - технологии будущего

Контакты  | Карта сайта

Использование любых материалов, размещенных на сайте, разрешается при условии ссылки на alterprogs.com. Для интернет-изданий - обязательна прямая открытая для поисковых систем гиперссылка. Ссылка должна быть размещена в независимости от полного либо частичного использования материалов. Материалы в рубрике "Новости партнеров" публикуются на правах рекламы.