Добавить
Уведомления

Def Con 30 - Адам Забреки - Алекс Терешкин - Эксплуатация в эпоху формальной проверки

На протяжении десятилетий уязвимости в программном обеспечении оставались неразрешимой проблемой безопасности, несмотря на многолетние инвестиции в различные стратегии смягчения, усиления защиты и фаззинга. В последние годы в качестве пути к повышению безопасности были применены формальные методы. Верификация и формальные методы могут привести убедительные аргументы в пользу отсутствия целых классов ошибок безопасности и являются мощным инструментом для создания высокозащищенного программного обеспечения. AdaCore/SPARK - это формально определенный язык программирования, предназначенный для разработки программного обеспечения высокой степени целостности, используемого в системах, где решающее значение имеет предсказуемая и высоконадежная работа. Формальное, недвусмысленное определение SPARK позволяет применять различные методы статического анализа, включая анализ информационных потоков, подтверждение отсутствия исключений во время выполнения, подтверждение завершения, подтверждение функциональной корректности и доказательство надежности и защищенных свойств. В этом докладе мы углубимся в AdaCore/SPARK, рассмотрим слабые места и ограничения, а также покажем реальные уязвимости, с которыми мы столкнулись во время моей работы и которые все еще возможны в официально проверенном программном обеспечении. Мы также покажем эксплойт, нацеленный на одну из ранее описанных уязвимостей.

Иконка канала Сергей Киркоров
804 подписчика
12+
26 просмотров
10 месяцев назад
12+
26 просмотров
10 месяцев назад

На протяжении десятилетий уязвимости в программном обеспечении оставались неразрешимой проблемой безопасности, несмотря на многолетние инвестиции в различные стратегии смягчения, усиления защиты и фаззинга. В последние годы в качестве пути к повышению безопасности были применены формальные методы. Верификация и формальные методы могут привести убедительные аргументы в пользу отсутствия целых классов ошибок безопасности и являются мощным инструментом для создания высокозащищенного программного обеспечения. AdaCore/SPARK - это формально определенный язык программирования, предназначенный для разработки программного обеспечения высокой степени целостности, используемого в системах, где решающее значение имеет предсказуемая и высоконадежная работа. Формальное, недвусмысленное определение SPARK позволяет применять различные методы статического анализа, включая анализ информационных потоков, подтверждение отсутствия исключений во время выполнения, подтверждение завершения, подтверждение функциональной корректности и доказательство надежности и защищенных свойств. В этом докладе мы углубимся в AdaCore/SPARK, рассмотрим слабые места и ограничения, а также покажем реальные уязвимости, с которыми мы столкнулись во время моей работы и которые все еще возможны в официально проверенном программном обеспечении. Мы также покажем эксплойт, нацеленный на одну из ранее описанных уязвимостей.

, чтобы оставлять комментарии