RSS Блог "След бит" Заметка

RSS Блог "След бит"

blog.trailofbits.com - официальный блог компании Trail of Bits, специализирующейся на кибербезопасности и предоставляющей ряд услуг, включая тестирование на проникновение, безопасное кодирование и оценку безопасности программного обеспечения. Блог ориентирован на обмен знаниями и идеями, связанными с кибербезопасностью, а статьи и посты охватывают различные темы, такие как безопасность программного обеспечения, моделирование угроз, анализ уязвимостей и практика безопасного кодирования. Дизайн сайта чистый и простой, с понятной структурой, которая позволяет легко ориентироваться и находить конкретные статьи или интересующие темы. На сайте имеется функция поиска, позволяющая пользователям быстро находить конкретные статьи или темы. Кроме того, статьи разделены на категории по темам, что облегчает просмотр связанного с ними контента. В блоге также публикуются гостевые посты от экспертов в области кибербезопасности, что расширяет разнообразие взглядов и мнений, представленных на сайте. В целом, блог Trail of Bits представляется ценным ресурсом для тех, кто хочет узнать больше о кибербезопасности и быть в курсе последних событий и тенденций в этой области.

Трэд заметок

Trail of Bits, в партнерстве с инициативой Daybreak от OpenAI, запустила Patch the Planet для решения проблем безопасности в программном обеспечении с открытым исходным кодом. Программа использует передовые модели ИИ, такие как GPT-5.5-Cyber, для выявления ошибок, при этом инженеры Trail of Bits классифицируют и исправляют результаты. За первую неделю инициатива изучила 19 проектов в различных критических областях программного обеспечения, включая криптографию и сетевые технологии. Это привело к обнаружению сотен ошибок, с 64 запросами на слияние и 51 зарегистрированными проблемами. Важно отметить, что Trail of Bits сосредоточилась на предоставлении фактических исправлений, а не только отчетов об ошибках, при этом 37 исправлений уже были объединены. Эти объединенные вклады включали исправления ошибок, новые тесты, инструменты для fuzzing-тестирования и улучшения инструментов цепочки поставок. Конкретные проекты, такие как python.org и aiohttp, увидели значительные улучшения и быстрые исправления от своих разработчиков. Инициатива также подчеркнула силу ИИ в быстром создании сложных инструментов безопасности, таких как лаборатории fuzzing-тестирования и конвейеры анализа вариантов. В статье подчеркивается, что, хотя поиск ошибок становится проще с помощью ИИ, настоящая проблема теперь заключается в подтверждении результатов, оценке степени тяжести и реализации эффективных исправлений. Trail of Bits продолжает Patch the Planet, приглашая больше разработчиков программного обеспечения с открытым исходным кодом подать заявку на получение помощи.
CdXz5zHNQW_zplxitPXLL.gif
Исследователи обнаружили, что некоторые частные ключи RSA имеют биты, сильно смещенные в сторону 0, что можно обнаружить и факторизовать быстро. Вместе с Ханно Бёком из проекта badkeys они нашли сотни уникальных ключей с этим свойством и проанализировали исторические данные, чтобы отслеживать проблему во времени. Шаблон битов 0 в этих ключах часто высоко структурирован, что позволяет разработать полиномиальную криптоаналитическую технику для использования этого шаблона. Исследователи выявили два шаблона модулей RSA с повторяющимися блоками битов 0, при этом один шаблон остался необъяснённым, а другой был отслежен до несоответствия типов в коде больших целых чисел в старых версиях программного обеспечения CompleteFTP для передачи файлов. Ошибка CompleteFTP также генерировала уязвимые короткие ключи DSA, и исследователи восстановили 603 уникальных частных ключа RSA и 74 ключа DSA из интернет-сканирований. Проект badkeys - это открытый сервис, который проверяет открытые ключи на наличие известных уязвимостей, и, выполнив поиск в наборе реальных ключей, исследователи обнаружили большое количество ключей в дикой природе с этими шаблонами. Исследователи обратным инжинирингом обнаружили уязвимость CompleteFTP и обнаружили, что она была вызвана несоответствием между размером сегментов и размером вывода генератора случайных чисел. Уязвимость была устранена после того, как команда CompleteFTP выпустила обновление, которое автоматически проверяет уязвимые ключи и оповещает пользователя, если ключ необходимо регенерировать. Исследователи также разработали технику факторизации целых чисел, представляя их как полиномы, которую можно использовать для факторизации общих модулей RSA. Обнаружение этих уязвимостей подчеркивает важность практических исследований и необходимость постоянного мониторинга криптографических реализаций для выявления и устранения потенциальных слабостей.
CdXz5zHNQW_iFKnuRveAb.webp
Публичные рынки навыков полны злонамеренных навыков, предназначенных для кражи учетных данных и данных. Компании по безопасности ввели сканеры навыков для обнаружения этих угроз до установки, но наши тесты показывают, что они неэффективны. Мы успешно обошли механизмы обнаружения в ClawHub, сканере агентских навыков Cisco, и нескольких сканерах, интегрированных в skills.sh. Эти обходы были достигнуты с помощью стандартных методов атаки и относительно небольшого количества усилий. Статический характер этих сканеров позволяет атакующим повторно тестировать и совершенствовать свои методы до тех пор, пока они не добьются успеха. Безопасность цепочек поставок программного обеспечения всегда была предметом беспокойства, и возникновение агентных систем ввело новый вектор: навыки. Злонамеренные навыки могут использовать естественные языковые подсказки в дополнение к коду, расширяя возможности атаки. Каналы распространения навыков, такие как архивы ZIP, курируемые рынки и публичные рынки, часто отдают предпочтение скорости над безопасностью. Публичные рынки, в частности, были наводнены злонамеренными навыками, направленными на компрометацию систем пользователей. Наш анализ сканера ClawHub, который использует VirusTotal и инструмент Gemini 3 Flash, показал, что его можно обойти, просто добавив избыточные новые строки для сокрытия злонамеренного кода. Сканер навыков Cisco и сканеры на skills.sh, которые обрабатывают произвольные репозитории git, также были уязвимы. Мы воспользовались этим, внедрив злонамеренные инструкции в файлы .docx и используя отравленный байт-код .pyc, который обходит как анализ на основе шаблонов, так и анализ на основе LLM. Атака на внедрение подсказки на skills.sh маскировала злонамеренные команды под видом безобидного корпоративного языка конфигурации. Эти результаты подчеркивают значительные уязвимости в текущих мерах безопасности навыков.
CdXz5zHNQW_sN7fPOqey7.webp
Исследование безопасности было направлено на улучшение статического анализатора GitHub Actions, zizmor, для повышения безопасности CI. Исследование рассмотрело уязвимости, где атакующие используют неправильные конфигурации, такие как компрометация Trivy. Команда создала тестовый корпус из 41 253 рабочих процессов из репозиториев с открытым исходным кодом для проверки возможностей zizmor. Этот тест показал, что использование якорей, хотя и редко, присутствует в фундаментальных проектах. Анализ выявил и исправил четыре ошибки обработки якорей внутри zizmor. Кроме того, команда рассмотрела краевые случаи десериализации и ошибки оценщика выражений. Команда синхронизировала оценщик выражений zizmor с тестами GitHub. Подход к тестированию включал в себя скачивание реальных рабочих процессов, запуск zizmor и устранение неисправностей. Работа команды привела к подаче 20 заявок и слиянию 15 запросов на включение. Исследование было направлено на улучшение безопасности для проектов с открытым исходным кодом, использующих GitHub Actions. Улучшения укрепляют безопасность CI и помогают предотвратить атаки на цепочку поставок.
CdXz5zHNQW_7aI8OOG07k.webp
Родная фаззинг Go лишена продвинутых функций, найденных в экосистемах Rust, C и C++, не в состоянии обнаруживать общие ошибки, такие как переполнения целых чисел и утечки горутин. Чтобы устранить эти ограничения, gosentry была разработана как фаззинг-ориентированная ветка инструментария Go. Gosentry интегрирует LibAFL, обеспечивая родную фаззинг структур, грамматическую фаззинг с Nautilus и обнаружение ранее пропущенных классов ошибок. Она сохраняет стандартный поток тестирования testing.F, позволяя использовать существующие фаззинг-оболочки Go с новыми флагами командной строки. Gosentry улучшает качество входных данных за счет фаззинга, осведомленного о структурах, обрабатывая составные типы, такие как структуры, срезы и указатели. Она также поддерживает грамматическую фаззинг, где Nautilus генерирует и мутирует грамматически допустимые входные данные для сложных структур, таких как JSON. Инструмент выявляет различные плохие поведения, которые обычный фаззер Go пропустит, включая переполнения целых чисел, гонки данных, утечки горутин и таймауты выполнения. Захватывая фаззинг-колбэк и запуская его через запускатор LibAFL на основе Rust, gosentry улучшает фаззинг-движок, планирование и детекторы. Она уже обнаружила значительные ошибки в проектах, таких как Optimism и Revm, которые были бы трудно найти с помощью родной фаззинг Go. Проект имеет открытый исходный код на GitHub, предоставляя полную документацию для всех его функций.
Предоставленный текст описывает два проблемы безопасности из руководства по тестированию, программу ping для Linux и обработчик реестра драйверов Windows. Задача для Linux раскрывает уязвимость внедрения команд из-за недостатков в проверке ввода и использования функцией `inet_ntoa` глобального буфера, что позволяет атакующему обойти проверки безопасности. Задача для Windows подчеркивает уязвимость, при которой драйвер читает информацию о версии из реестра с помощью `RtlQueryRegistryValues`, что позволяет атакующему контролировать путь реестра. Это позволяет читать произвольные ключи реестра. Основная уязвимость заключается в отсутствии проверки типа при использовании `RTL_QUERY_REGISTRY_DIRECT`, что позволяет переполнить стек из-за путаницы с типами. Отсутствие флага `RTL_QUERY_REGISTRY_TYPECHECK` в драйвере Windows приводит к сбою безопасности ядра при попытке чтения из недостоверного улья при использовании `RTL_QUERY_REGISTRY_DIRECT`. Эта ошибка, изначально исправленная в MS11-011, позволяет атакующему перезаписать данные в стеке. Затем текст представляет новый навык Claude под названием c-review, предназначенный для поиска ошибок в кодовых базах C/C++ с помощью модели крупномасштабного языкового моделирования. Этот навык использует чек-лист из руководства по тестированию в качестве подсказок для выявления уязвимостей.
CdXz5zHNQW_Mg1wCwp9Lj.webp
В этой публикации подробно описывается процесс интеграции LibAFL в Ruzzy, фаззер для Ruby. Автор начинает с выделения преимуществ LibAFL и намерения заменить libFuzzer. Они собирают библиотеку libFuzzer LibAFL в Dockerfile, внося небольшие изменения в процесс сборки Ruzzy для поддержки использования LibAFL через переменную окружения. Возникает проблема при компоновке, а именно: ".preinit_array section is not allowed in DSO", что требует использования компоновщика LLVM (lld) вместо GNU ld для устранения ошибки. Автор модифицирует Dockerfile и extconf.rb для указания компоновщика. После устранения проблем со сборкой автор пытается запустить фаззер. Однако возникает ошибка "No maps available; cannot fuzz!", указывающая на проблему с инициализацией SanitizerCoverage. Автор планирует изучить и решить эту проблему. Следовательно, автор планирует предложить исправление upstream, предотвратив секцию preinit_array с помощью функции cargo. Наконец, публикация завершается акцентом на запуске фаззера и ожидаемых следующих шагах по устранению проблемы с санитайзером.
Trailmark — это новая библиотека с открытым исходным кодом, которая преобразует исходный код в запрашиваемый граф вызовов. Этот граф представляет функции, классы и их взаимосвязи, а также семантические метаданные. Навыки Claude могут напрямую взаимодействовать с этим графом через Python API. Традиционный анализ безопасности часто опирается на списки результатов, но злоумышленники мыслят графами, что создает преимущество для защитников. Trailmark призван предоставить моделям ИИ, таким как Claude, эту возможность графового мышления. Мутационное тестирование, метод оценки качества тестов путем внесения небольших изменений в код, генерирует множество выживших мутантов. Плоский список этих мутантов не различает эквивалентные, мертвый код или действительно значимые. Trailmark позволяет Claude классифицировать эти мутанты на основе их значимости для безопасности, такой как достижимость из недоверенного ввода. Библиотека обрабатывает код в три этапа: парсинг с помощью tree-sitter для AST, индексация в высокопроизводительный граф и запрос информации, такой как вызывающие, вызываемые и поверхности атаки. Trailmark поддерживает семнадцать языков программирования и предлагает восемь готовых навыков Claude Code. Эти навыки помогают в таких задачах, как классификация мутантов, генерация тестовых векторов и построение диаграмм протоколов. Например, навык "genotoxic" использует графовый анализ для классификации выживших мутантов. Аналогично, "vector-forge" генерирует тестовые векторы для устранения выявленных пробелов в покрытии. Trailmark также интегрирует результаты статических анализаторов и инструментов аудита, отображая их на графе кода. Внутреннее использование в криптографических библиотеках показало, что эквивалентные мутанты часто составляют большинство в хорошо протестированном коде, что упускается из виду плоскими списками. Графовый анализ также выявил архитектурные узкие места, такие как единый примитив перестановки в libhydrogen, который влияет на все криптографические операции. Мутационное тестирование оказывается ценным для новых конструкций, не имеющих стандартизированных тестовых векторов, путем выявления того, где тесты не ограничивают поведение кода. В различных кодовых базах проявились общие закономерности: арифметические модули имеют высокие радиусы поражения, парсеры кодеков являются основными целями для фаззинга, а тестирование на основе свойств часто бывает редким. В конечном итоге Trailmark служит связующим звеном, объединяя различные инструменты анализа и обеспечивая более целенаправленные оценки безопасности.
Группа Quantum AI от Google заявила, что первое поколение квантовых компьютеров может взломать криптографию эллиптических кривых за 9 минут с помощью доказательства с нулевым знанием. Trail of Bits создала фальшивое доказательство с нулевым знанием, которое значительно улучшило метрики Google, используя уязвимости в коде доказателя Rust от Google. Эти уязвимости включали проблемы безопасности памяти и логические ошибки, которые Google с тех пор исправила. Доказательство Trail of Bits снизило общее количество операций до 8,3 миллиона и количество кубитов до 1164, исключив при этом ворота Тоффоли. Фальшивое доказательство все еще прошло верификацию Google без исправления и было неотличимо от законного доказательства. Доказательство Google использовало виртуальную машину с нулевым знанием (zkVM) для расчета затрат квантовых цепей. Симуляция zkVM включает доказательство того, что программа с частными входными данными, такими как квантовая цепь, генерирует определенный публичный выход, который включает ограничения ресурсов. Одна из ключевых уязвимостей заключалась в обходе счетчика ворот Тоффоли путем манипулирования типом операции в сборочном скрипте цепи. Эта манипуляция позволила программе выполнять операции без правильного отчета о их затратах, эффективно подделывая доказательство. Этот инцидент демонстрирует уникальную поверхность атаки, введенную системами доказательств с нулевым знанием.
CdXz5zHNQW_xMS1ou095P.webp
В Руководство по тестированию добавлена новая глава, содержащая контрольный список безопасности для кода на C и C++. В главе подробно описываются распространенные ошибки, подводные камни и проблемы API на нескольких платформах. Она организована по разделам для Linux, Windows и seccomp, с акцентом на ручной обзор кода. Также разрабатывается инструмент на основе LLM, использующий контрольный список для подсказок по поиску ошибок. Включены два задания для проверки навыков обзора читателей, с призами за ранние правильные ответы. Глава охватывает ряд уязвимостей, начиная с проблем на уровне языка и переходя к проблемам, специфичным для платформы. Разделы, посвященные Linux, рассматривают ловушки libc, в то время как разделы, посвященные Windows, фокусируются на внедрении DLL и проблемах обхода пути. Раздел seccomp рассматривает обходы песочницы. Руководство будет постоянно обновляться, и вклад приветствуется. Задачи заключаются в выявлении уязвимостей в простой программе ping и драйвере Windows. Авторы подчеркивают, что обзор на основе контрольного списка является отправной точкой для безопасности, а не заменой опыта.
Новая функция WhatsApp "Private Inference" призвана интегрировать сквозное шифрование с искусственным интеллектом путем обработки сообщений в безопасных аппаратных анклавах, называемых доверенными средами выполнения (TEE). Эти TEE, использующие платформы SEV-SNP от AMD и конфиденциальные графические процессоры от Nvidia, разработаны таким образом, чтобы даже Meta не могла получить доступ к сообщениям в открытом виде. Предварительный аудит выявил многочисленные уязвимости, в том числе восемь проблем высокой степени серьезности, которые могли поставить под угрозу конфиденциальность пользователей. Эти уязвимости возникли из-за недоверенных данных, загруженных после измерения аттестации, и некорректной проверки уровней исправлений безопасности. Например, загрузка переменных среды или таблиц ACPI после измерения аттестации создавала лазейки для внедрения вредоносного кода. Система также изначально доверяла заявленным уровням исправлений прошивки, а не проверяла их по криптографическим сертификатам. Кроме того, отсутствие гарантий свежести в отчетах об аттестации позволяло проводить атаки повторного воспроизведения, давая злоумышленникам возможность бесконечно выдавать себя за безопасные серверы. Meta устранила эти проблемы, внедрив строгую проверку переменных, пользовательские загрузчики, проверку уровней исправлений на основе сертификатов и включив одноразовые числа в отчеты об аттестации. Аудит подчеркивает, что TEE не являются панацеей и требуют тщательного внимания к деталям при реализации и развертывании. Основные выводы включают важность измерения всех критических данных, проверки входных данных и проведения тщательного негативного тестирования. Физическая безопасность и достижение воспроизводимой прозрачности также представляют собой постоянные проблемы при развертывании TEE. В конечном итоге, безопасность систем на основе TEE зависит от тщательного внимания к безопасности на каждом уровне, а не только от основных архитектурных решений.
Обфускация MBA скрывает операции, используя арифметические и побитовые операторы, что затрудняет анализ. CoBRA — это инструмент с открытым исходным кодом, предназначенный для упрощения этих сложных выражений MBA. Он восстанавливает упрощенные эквиваленты из обфусцированного кода, улучшая читаемость. CoBRA устраняет недостатки существующих инструментов, которые испытывают трудности при взаимодействии побитовой и арифметической логики. Он использует оркестратор на основе списка задач с различными методами упрощения в нескольких конвейерах. CoBRA упрощает выражения, классифицируя их и выбирая подходящий метод упрощения, такой как линейный, полулинейный, полиномиальный или смешанный. Инструмент предоставляет CLI, библиотеку C++ и плагин LLVM pass для простоты использования и интеграции. CoBRA проверяет свои результаты на точность, используя случайные входные данные или доказательства Z3. Он имеет высокий процент успеха, упрощая почти все выражения из различных наборов данных. Будущая разработка включает в себя устранение конкретных ограничений и расширение возможностей интеграции с инструментами.
Покрытие кода — опасная метрика, поскольку она измеряет выполнение, а не верификацию, потенциально скрывая непроверенную критически важную функциональность. Мутационное тестирование, которое систематически вносит ошибки, чтобы проверить, обнаруживают ли их тесты, решает эту проблему, отмечая непроверенный код. Исторически инструменты мутационного тестирования были медленными и специфичными для конкретного языка, что препятствовало их внедрению, особенно в блокчейне. Universalmutator, использующий regex, получил распространение, но имел ограничения с многострочными операторами и неэффективной приоритизацией мутантов. Slither-mutate улучшил скорость за счет приоритизации мутантов и более чистого цикла тестирования, но остался специфичным для Solidity. Новые инструменты, MuTON и mewt, нацелены на преодоление этих проблем. MuTON предлагает первоклассную поддержку языков блокчейна TON, используя парсер tree-sitter для лучшего понимания языка и обработки многострочных операторов. Mewt служит языко-независимым ядром, также поддерживающим Solidity, Rust и Go. Оба инструмента хранят результаты в базе данных SQLite, обеспечивая постоянство и гибкую фильтрацию. AI-агенты теперь могут эффективно настраивать кампании и сортировать результаты, используя специализированные навыки. Будущая разработка сосредоточена на генерации тестов, управляемой ИИ, которая кодирует требования, а не только обнаружение ошибок. Цель состоит в том, чтобы наделить AI-агентов скептицизмом и требовать внешней валидации для надежных наборов тестов. Пользователям рекомендуется установить MuTON и mewt, внести свой вклад в проекты с открытым исходным кодом и следить за новыми навыками ИИ, которые упростят мутационное тестирование. Эти достижения обещают превратить мутационное тестирование в более рутинную и эффективную часть разработки программного обеспечения.
Компания начала инициативу в области ИИ, перейдя от первоначального скептицизма к значительной интеграции ИИ в течение года, разработав множество плагинов и агентов. Это контрастирует со многими компаниями, которые с трудом реализуют потенциал ИИ, часто испытывая минимальное влияние на производительность, несмотря на широкое внедрение. Автор определяет различные уровни интеграции ИИ: ИИ-ассистированный, ИИ-дополненный и ИИ-нативный, подчеркивая последний как фундаментальное изменение в организационном дизайне с ИИ в качестве основного элемента. Автор выделяет четыре ключевых психологических барьера для внедрения ИИ: самовозвышающееся предубеждение, угроза идентичности, нетерпимость к несовершенству и непрозрачность. Для преодоления этих барьеров компания внедрила матрицу зрелости, формируя новую идентичность для экспертов путем кодирования их навыков, смягчая ошибки путем тщательного отбора и изоляции, и повышая прозрачность с помощью всеобъемлющего руководства по ИИ. Внедрение было сосредоточено на стандартизированных инструментах, четких политиках использования и измеримом прогрессе для облегчения и ускорения внедрения, с короткими, целенаправленными хакатонами для ускорения разработки. Репозитории повторно используемых навыков и кураторский рынок способствовали обмену знаниями и постоянному совершенствованию системы ИИ, создавая операционное преимущество.
CdXz5zHNQW_50LokEbBRD.webp
Выпущен новый плагин Claude для разработки и аудита кода, использующий размерностный анализ, метод из предыдущей записи в блоге. В отличие от навыков безопасности, которые находят ошибки, этот плагин аннотирует код размерностными типами и отмечает несоответствия. Этот подход достиг 93% полноты при тестировании, превзойдя базовые подсказки с 50% полнотой. Плагин можно загрузить и использовать с помощью предоставленных команд в Claude. Традиционные навыки анализа безопасности часто дают низкокачественные результаты. Плагин размерностного анализа использует LLM для категоризации кодовой базы по размерностным типам, а не полагается исключительно на его суждение. Это приводит к более точному и надежному обнаружению ошибок. Плагин работает в четыре этапа: обнаружение размерности, аннотирование, распространение и проверка. Первый этап идентифицирует базовые и производные единицы, создавая размерностный словарь. Второй этап аннотирует кодовую базу, присваивая размерностные типы различным элементам. Размерности распространяются по файлам на третьем этапе, а несоответствия размерностей выявляются и классифицируются на заключительном этапе. Разработчики должны запустить плагин и зафиксировать аннотации, чтобы улучшить понимание кода и найти ошибки. Разработчики также призывают пользователей сообщать о любых пропущенных размерностных ошибках, чтобы помочь улучшить плагин.
CdXz5zHNQW_2bndNvCXGc.webp
Текст выступает за использование размерного анализа, заимствованного из физики, для повышения безопасности смарт-контрактов DeFi. Подчеркивается, что этот метод может выявлять логические и арифметические ошибки, обеспечивая размерную согласованность формул без необходимости внесения изменений в код. Основная концепция заключается в рассмотрении количественных показателей DeFi, таких как токены, цены и ликвидность, как отдельных измерений, что предотвращает некорректные операции, например, прямое сложение токенов. Автор приводит примеры того, как размерный анализ может выявить недостатки в ценообразовании и других расчетах. Представлены лучшие практики, подчеркивающие важность явных аннотаций измерений в коде, примером чего служит использование комментариев к единицам измерения в Reserve Protocol. В заключение отмечается, что использование аннотаций измерений делает код более удобным для проверки, модификации и аудита.
Абстракция аккаунтов заменяет традиционные аккаунты программируемыми системами, улучшая такие функции, как пакетная обработка и контроль расходов, но при этом вводя новые риски безопасности. Аудиты смарт-аккаунтов ERC-4337 выявляют шесть распространенных шаблонов уязвимостей, которые разработчики должны устранить. Неправильный контроль доступа, предоставляющий несанкционированным сторонам привилегии выполнения, является основной проблемой. Неполная проверка подписи, в частности, игнорирование полей, связанных с газом, открывает двери для злоумышленников, чтобы опустошить средства. Изменение состояния во время проверки, особенно путем кэширования подписантов, создает возможности для непреднамеренного поведения во время выполнения. Атаки повторного воспроизведения, использующие проверку подписи ERC-1271, из-за неспособности привязать подписи к смарт-аккаунту и цепочке, также проблематичны. Откаты во время выполнения не аннулируют плату за газ, уплаченную во время успешной проверки, что позволяет проводить атаки типа «отказ в обслуживании». Разработчики также должны остерегаться плательщиков, которые неправильно обрабатывают логику postOp, потенциально позволяя злоумышленникам использовать уязвимости. Решение этих проблем имеет решающее значение для безопасной реализации ERC-4337.
CdXz5zHNQW_igCZfhbvo6.webp
mquire - это новый инструмент с открытым исходным кодом, предназначенный для проведения криминалистической экспертизы памяти Linux без использования внешних отладочных символов. Он извлекает необходимую информацию непосредственно из дампа памяти, устраняя необходимость соответствия версий ядра. Это позволяет анализировать неизвестные ядра и пользовательские сборки, что является значительным преимуществом для специалистов по реагированию на инциденты. Инструмент использует информацию о типах BTF и адреса символов Kallsyms, найденные в дампе памяти. mquire предоставляет интерактивный SQL-интерфейс, вдохновленный osquery, для удобного изучения данных. Пользователи могут выполнять одноразовые запросы или исследовать данные в интерактивном режиме, получая информацию, например, о запущенных процессах и открытых файлах. Текущие возможности включают доступ к версии системы, задачам, открытым файлам, отображениям памяти и многому другому. mquire также предлагает команду ".dump" для извлечения файлов из файлового кеша ядра, даже если они были удалены. Области применения включают реагирование на инциденты, криминалистический анализ, анализ вредоносных программ и исследования в области безопасности. Ограничения включают недоступность данных пользовательского пространства и зависимость от формата Kallsyms. Дальнейшая разработка включает расширенную поддержку таблиц, улучшенное кэширование и получение данных на основе DMA. mquire доступен на GitHub с предварительно собранными бинарными файлами для Linux. Статья призывает пользователей попробовать mquire и предоставить обратную связь.
Perplexity наняла Trail of Bits для тестирования безопасности функций браузера Comet на базе искусственного интеллекта перед запуском. Они использовали состязательное тестирование с использованием своей модели угроз TRAIL, уделяя особое внимание уязвимостям внедрения запросов. Были обнаружены четыре метода внедрения запросов, которые могли извлекать адреса электронной почты пользователей из Gmail. Эти методы подчеркнули риски, когда агенты ИИ рассматривают внешний контент как доверенный ввод. Trail of Bits изложила пять рекомендаций по безопасности для компаний, разрабатывающих продукты на базе ИИ. Ассистент браузера Comet, взаимодействуя в веб-страницах, получает доступ к информации и взаимодействует с браузером. В отчете были определены две основные зоны доверия: машина пользователя и серверы Perplexity. Выявленные эксплойты были направлены на кражу адресов электронной почты пользователей путем использования функциональности ИИ для обобщения. Эффективность была повышена при комбинировании и использовании различных методов, таких как поддельные меры безопасности. Такой подход к тестированию подчеркивает важность понимания специфичных для ИИ векторов атак.
Две популярные библиотеки AES, aes-js и pyaes, вводят значительную уязвимость, предоставляя IV по умолчанию в своих реализациях режима CTR. Этот недостаток допускает повторное использование ключа/IV, что приводит к потенциальному восстановлению открытого текста и серьезным нарушениям безопасности. Trail of Bits выявила эту проблему и решила публично ее осветить из-за ее широкого воздействия. В статье подчеркиваются контрастные ответы разработчиков программного обеспечения на эту проблему безопасности. Библиотеки широко используются, затрагивая многочисленные проекты JavaScript и Python, поэтому охват ошибки значителен. IV по умолчанию позволяет пользователям непреднамеренно создавать уязвимые схемы шифрования. Этот выбор дизайна значительно увеличивает вероятность того, что пользователи будут реализовывать повторное использование ключа/IV, критическую криптографическую ошибку. Более того, в библиотеках отсутствует поддержка современных, аутентифицированных режимов шифрования, таких как GCM, что усугубляет риски. В статье противопоставляется пренебрежительный ответ сопровождающего эту проблему (ямма ямма ямма) с подробным ответом сопровождающего strongSwan. strongSwan, еще один затронутый проект, был уведомлен в частном порядке, и его сопровождающий быстро устранил уязвимость, заменив существующую библиотеку и режим шифрования более безопасными альтернативами, демонстрируя истинное мастерство. Исправление strongSwan включало подробные изменения для обеспечения безопасности данных в будущем. Контраст между двумя ответами подчеркивает разницу между небрежным кодированием и приверженностью безопасности. В статье подчеркивается важность ответственной разработки программного обеспечения и надлежащей обработки дефектов безопасности, подчеркивая необходимость мастеров, а не небрежных разработчиков.
Trail of Bits делает акцент на обмене полезными разработками с сообществом с открытым исходным кодом, оказывая влияние на широкий спектр проектов. Их инженеры отправили более 375 объединенных pull requests, отражая эту ценность. Эти разработки часто являются результатом работы с клиентами, устраняя ошибки или добавляя функции, отсутствующие в существующих инструментах. Вместо форка проектов, они вносят вклад в основной поток. Они сотрудничают с такими организациями, как OpenSSF и Alpha-Omega, дополнительно поддерживая свою работу. Ключевые разработки включают улучшения rekor-monitor Sigstore, повышающие безопасность и мониторинг. Значительный вклад был внесен в компилятор Rust и Clippy, включая новые линты и исправления ошибок. Они внесли значительный вклад в библиотеку pyca/cryptography, в частности, с новым API ASN.1. Они также улучшили производительность hevm и поддержали PyPI Warehouse с архивированием проектов. Кроме того, они внесли вклад в такие инструменты, как pwndbg, улучшая отладку и разработку эксплойтов. Примечательно, что их вклад выходит за рамки просто отправки кода; они также поддерживают сопровождающих.
У программных подписей есть скрытая дата истечения срока действия, что требует готовности к устареванию криптографических алгоритмов. Sigstore изначально уделял первостепенное внимание безопасности, жестко кодируя определенные алгоритмы, но столкнулся с ограничениями по мере расширения использования и появления разнообразных организационных потребностей. Trail of Bits сотрудничала с сообществом Sigstore для решения этих ограничений посредством контролируемой криптографической гибкости. Это включало централизованный реестр алгоритмов и обновления Rekor, Fulcio и Cosign, позволяющие выбирать алгоритмы. Эти изменения вводят предопределенные наборы алгоритмов для предотвращения атак сигнализации внутри полосы, обеспечивая безопасные комбинации. Реализованное решение обеспечивает контролируемую гибкость, поддерживая такие алгоритмы, как ECDSA, Ed25519 и RSA. Организации могут ограничивать разрешенные алгоритмы для соответствия требованиям или готовности к постквантовой криптографии. Эта новая архитектура поддерживает добавление будущих алгоритмов, обеспечивая долгосрочную проверяемость подписей. Этот подход поддерживает модель безопасности Sigstore, одновременно учитывая развивающиеся криптографические стандарты.
Агентные браузеры со встроенными ИИ-агентами заново вводят уязвимости веб-безопасности из-за неадекватной изоляции. Эти браузеры предоставляют ИИ-агентам доступ к конфиденциальным пользовательским данным, аналогично традиционным уязвимостям браузеров, таким как XSS и CSRF. В исследовании определены четыре зоны доверия: контекст чата, сторонние серверы, источники просмотра и внешняя сеть, а также четыре класса нарушений: INJECTION, CTX_IN, REV_CTX_IN и CTX_OUT. Эксплойты демонстрируются путем объединения этих нарушений, что приводит к утечке данных и путанице сессий. Атаки манипулирования были успешными в управлении поведением и выводом агента, включая распространение ложной информации. Атаки утечки данных также были достигнуты путем кражи пользовательских данных с использованием внедрения подсказок и механизмов утечки. Аналогично отраженному XSS, внедрения подсказок могут использоваться для изменения нормального контента или вывода агента. Исследование подчеркивает потенциал для полного компрометирования браузера из-за отставания обновлений безопасности. Критической рекомендацией является расширение политики одного источника для защиты агентных браузеров. Атаки демонстрируют необходимость надежных мер безопасности в агентных браузерах.
CdXz5zHNQW_0CF0Genhl5.webp
Арифметические операции Go над стандартными целочисленными типами по умолчанию молчаливы, то есть переполнения происходят по кругу без паники, что может привести к скрытым уязвимостям безопасности. Для решения этой проблемы был выпущен модифицированный компилятор Go под названием go-panikint, который превращает молчаливые целочисленные переполнения в явные паники. Go-panikint использовался для обнаружения живого целочисленного переполнения в логике разбиения на страницы RPC Cosmos SDK, демонстрируя его эффективность в устранении основного слепого пятна для фаззинга проектов Go. Инструмент работает путем внедрения дополнительных проверок во время преобразования компилятором кода в форму статического единичного присваивания, которые вызывают панику с подробным сообщением об ошибке, если переполнение происходит во время выполнения. Go-panikint также может обнаруживать проблемы с усечением целых чисел, но эта функция в настоящее время не используется из-за ложных срабатываний. Инструмент прост в использовании и может быть интегрирован в существующие рабочие процессы путем замены официального компилятора Go. Go-panikint имеет два механизма фильтрации для обработки преднамеренных переполнений, включая фильтрацию на основе местоположения источника и комментарии в коде. Инструмент был проверен в ходе кампании фаззинга против Cosmos SDK, в ходе которой была обнаружена уязвимость целочисленного переполнения в логике разбиения на страницы RPC. Go-panikint имеет два основных варианта использования: исследование безопасности и фаззинг, а также непрерывное развертывание и интеграция. Сообщество приглашается попробовать go-panikint на своих собственных проектах и интегрировать его в свои конвейеры CI для выявления скрытых арифметических ошибок. В целом, go-panikint предоставляет ценный инструмент для выявления уязвимостей безопасности в проектах Go, которые ранее были невидимы для динамического анализа.
Автор, размышляя о саммите разработчиков кода на основе ИИ, ставит под сомнение оптимистичное видение замены разработчиков искусственным интеллектом. Они утверждают, что большие языковые модели (LLM), в отличие от компиляторов, не обладают детерминизмом, критическим свойством для корректности программного обеспечения. Компиляторы обеспечивают семантическое сохранение, гарантируя, что смысл кода остается неизменным во время преобразования, в то время как LLM по своей природе недетерминированы. Отсутствие гарантированного вывода создает риски для безопасности и корректности. Автор подчеркивает неоднозначность запросов на естественном языке. Пример показывает, как LLM "исправила" код, но внесла ошибки, неправильно поняв контекст. LLM испытывают трудности с устаревшими кодовыми базами из-за контекстных сложностей, недокументированных API и исторических ограничений, выходящих за рамки их понимания. Они предполагают, что LLM преуспевают в выполнении базовых задач, но испытывают трудности со сложными, устоявшимися системами, что потенциально может привести к неверным и вредоносным результатам. Автор подчеркивает, что понимание детерминированной природы компиляторов и вероятностных результатов LLM очень важно. Это критически важно для оценки достоверности и безопасности сгенерированного кода. Аргумент автора заключается в том, что LLM уверенно предоставляют неверные решения, когда им не хватает адекватной исторической и контекстной информации.
CdXz5zHNQW_HqI6gnKDQs.webp
GWP-ASan — это инструмент обнаружения ошибок в памяти на основе выборки, разработанный для производственных сред, решающий проблемы с производительностью инструментов, таких как ASan. Он обнаруживает критические ошибки, такие как использование после освобождения и переполнение буфера, с минимальным влиянием на производительность. GWP-ASan инструментирует небольшую часть выделений памяти, используя защитные страницы вокруг выборочных выделений для выявления нарушений доступа к памяти. Это позволяет ему выявлять ошибки, связанные с кучей, с почти нулевыми накладными расходами, балансируя обнаружение и производительность. Инструмент реализован в различных проектах, таких как Chromium, Firefox и Android, демонстрируя свою универсальность. Подход GWP-ASan на основе выборки делает его подходящим для крупномасштабных развертываний с незначительными затратами на производительность даже при обнаружении редких ошибок. Программы могут быть собраны с помощью GWP-ASan с использованием компиляторов, таких как Clang, и аллокаторов, которые его поддерживают. Поведение инструмента настраивается с помощью переменных среды, таких как частота выборки и максимальное количество одновременных выделений. GWP-ASan идентифицирует ошибки, вызывая ошибки сегментации, когда программы пытаются получить доступ к памяти в пределах защитных страниц. Инструменты символизации могут улучшить читаемость сообщений об ошибках. Накладные расходы на производительность низкие и могут контролироваться параметрами конфигурации, что делает его пригодным для использования в производстве.
CdXz5zHNQW_Rh4iixZyB8.webp
Проект направлен на улучшение rekor-monitor Sigstore для производственного использования, финансируемый OpenSSF, для обнаружения несанкционированного доступа и использования идентификационных данных в журнале Rekor. Rekor действует как журнал прозрачности, создавая записи, защищенные от несанкционированного доступа, но отдельные записи по своей сути не заслуживают доверия без мониторинга. Цель состоит в том, чтобы упростить разработчикам активный мониторинг журнала на предмет непредвиденных записей, особенно в отношении сопровождающих пакеты. Журналы прозрачности проверяют соответствие дайджестов предполагаемой зависимости, используя деревья Меркла. Мониторинг имеет решающее значение, и rekor-monitor позволяет пользователям проверять записи на предмет несанкционированного доступа и неожиданного использования идентификационных данных в журнале. Например, сопровождающий может отслеживать свою идентификацию, чтобы обнаружить компрометацию во время загрузки пакетов. В рамках этого проекта реализованы новые функции, такие как поддержка журнала Rekor v2, проверка сертификатов и интеграция с The Update Framework (TUF). Это также включает в себя многоразовый рабочий процесс GitHub для упрощения мониторинга для всех, у кого есть репозиторий. Будущие планы включают в себя размещенный сервис для предоставления оповещений о новых записях в журнале на основе идентификационных данных пользователей, аналогичный GopherWatch. Проект, финансируемый OpenSSF, направлен на повышение безопасности программного обеспечения с открытым исходным кодом путем обеспечения безопасности экосистемы Sigstore.
Автор создал `mrva`, альтернативу MRVA (многорепозиторный вариант анализа CodeQL от GitHub), ориентированную на терминал, для пользователей Vim, работающую локально. `mrva` позволяет пользователям загружать предварительно собранные базы данных CodeQL, анализировать их с помощью запросов и просматривать результаты в терминале. Установка проста с использованием менеджера пакетов Python, включающая шаги загрузки, анализа и вывода. `mrva` отличается от расширения VS Code и CLI GitHub, отдавая предпочтение локальному выполнению и настройке. Ключевые особенности включают локальный анализ, упрощенную модификацию параметров и локальный просмотр результатов. Полезные детали реализации включают API базы данных GitHub CodeQL и флаги, такие как `--sarif-add-file-contents`. Текст различает запросы на предупреждения и запросы на пути, а также выделяет запросы на графики для расширенного анализа. Автор ценит `mrva` за его гибкость, позволяющую проводить локальный, запланированный и безголовый анализ. Цель - находить ошибки безопасности в масштабе со всеми преимуществами терминала. Автор с нетерпением ждет будущих исследований CodeQL.
CdXz5zHNQW_c8QLcSNLn3.webp
Trail of Bits внедрила поддержку кода с постоянным временем выполнения в LLVM, стремясь защитить криптографические реализации от атак по времени. Эта новая функция, ожидаемая в LLVM 22, включает встроенную функцию `__builtin_ct_select` и поддерживающую инфраструктуру. Компиляторы, использующие это, будут предотвращать оптимизации кода, которые непреднамеренно создают уязвимости. Современные компиляторы оптимизируют для скорости, но могут нарушать свойства постоянного времени выполнения, критически важные для криптографии. Простая функция поиска, например, может быть оптимизирована с включением ветвлений, создавая побочные каналы времени выполнения, которые могут быть использованы злоумышленниками. Встроенная функция `__builtin_ct_select` гарантирует, что условные выборы остаются с постоянным временем выполнения независимо от уровней оптимизации. Это действует как барьер, сохраняя критически важные для безопасности операции от преобразований. Исследования показали, что существующие компиляторы вносят уязвимости в производственные криптографические библиотеки. Новая встроенная функция позволяет разработчикам писать более безопасный код с постоянным временем выполнения, что демонстрируется на примере пересмотренной функции поиска. Эта работа основана на предыдущих усилиях и вызвала большой интерес со стороны сообществ, таких как Rust Crypto и BearSSL. Реализация обеспечивает поведение с постоянным временем выполнения на различных архитектурах, таких как x86-64, i386 и ARM. Первоначальное тестирование показывает минимальные накладные расходы на производительность и полное сохранение свойств постоянного времени выполнения. Будущие планы включают расширение поддержки на арифметические и строковые операции, а также обеспечение внедрения в другие языки, ориентированные на LLVM.
Trail of Bits разработала поддержку кодирования с постоянным временем для LLVM 21, защищая криптографические реализации от атак по времени, предотвращая внесение компиляторами ветвлений. Эта система вводит семейство интринсиков __builtin_ct_select, гарантируя, что операции с постоянным временем остаются безопасными на протяжении всего процесса компиляции. Оптимизация современных компиляторов может непреднамеренно вводить каналы утечки информации по времени, делая криптографический код уязвимым. Интринсик __builtin_ct_select гарантирует, что операция выбора компилируется в машинный код с постоянным временем, действуя как барьер против нежелательных оптимизаций. Это устраняет уязвимости, обнаруженные в рабочих криптографических библиотеках, где компиляторы нарушают гарантии постоянного времени. Участие сообщества, включая отзывы разработчиков Rust Crypto и LLVM, имело решающее значение для разработки этого проекта. Реализация гарантирует, что __builtin_ct_select компилируется в код с постоянным временем на различных архитектурах, включая x86-64, i386, ARM и AArch64. Бенчмаркинг показывает минимальные накладные расходы на производительность и 100% сохранение свойств постоянного времени, с успешной интеграцией в основные криптографические библиотеки. Планы на будущее включают расширение реализации для арифметических операций, операций со строками и выражений, с потенциальным внедрением в Rust, Swift и WebAssembly. Эта работа была выполнена в сотрудничестве с ETH Zürich и при поддержке DARPA.
Trail of Bits разработала поддержку кодирования с постоянным временем для LLVM 21, предоставляя гарантии на уровне компилятора, защищающие криптографический код от атак с ветвлением, устраняя критическую уязвимость, когда агрессивные современные компиляторы случайно вводят ветки, зависящие от данных, во время оптимизации. Основным решением является __builtin_ct_select intrinsic, который превращается в специальное промежуточное представление LLVM (llvm.ct.select.*), выступающее в роли барьера безопасности, заставляющее компилятора сохранять свойства операции постоянного времени на протяжении всего конвейера компиляции. Без этого тщательно проработанный код постоянного времени, подобный используемым в таблицах поиска, может быть сломлен стандартными оптимизациями компиляторов, которые вводят спекулятивное ветвление, создавая уязвимые тайминговые побочные каналы, обнаруживаемые даже при минимальных колебаниях циклов. Эта работа напрямую затрагивает результаты таких исследований, как «Во все тяжкие», которые документировали систематические сбои гарантий постоянного времени во многих производственных криптографических библиотеках, вызванные компиляторами. Внутренняя __builtin_ct_select обеспечивает постоянное выполнение на различных архитектурах — с использованием cmov на x86-64, CSEL на AArch64 и маскированной арифметики на платформах без инструкций постоянного времени — позволяя разработчикам писать портативный и безопасный код. Обновление этих изменений потребовало широкого взаимодействия с сообществом, что вызвало большой интерес со стороны таких проектов, как Rust Crypto и PuTTY, которые планируют заменить сложные обходные пути сборки на эти новые примитивы. Начальный бенчмаркинг подтверждает минимальные накладные расходы на производительность при 100% сохранении свойств постоянного времени на всех тестируемых уровнях оптимизации, успешно интегрируясь с основными криптографическими библиотеками. В будущих планах предусмотрено расширение поддержки с помощью дополнительных внутренних элементов, таких как __builtin_ct_expr для принудительного вычисления целых выражений без ветвей, а также внедрение в таких языках, как Rust, Swift и WebAssembly, ориентированных на LLVM.
Trail of Bits публично раскрывает две уязвимости в широко используемой JavaScript-библиотеке elliptic. Эти уязвимости, обнаруженные с помощью инструмента тестирования Wycheproof, затрагивают библиотеку, загружаемую миллионы раз в неделю. Одна уязвимость позволяет изменять подписи EdDSA, не проверяя, находится ли компонент подписи в допустимом диапазоне. Это может позволить злоумышленникам подделывать действительные подписи для известных пар сообщений. Вторая уязвимость, CVE-2024-48948, затрагивает проверку подписей ECDSA. Она приводит к тому, что действительные подписи не проходят проверку, если хэш сообщения имеет ведущие нули. Это происходит потому, что библиотека неправильно вычисляет размер хэша после преобразования в объект числа. Этот неверный расчет приводит к неправильному усечению хэша, что препятствует корректной проверке. Одна из этих критических уязвимостей остается неисправленной, несмотря на то, что 90-дневный период раскрытия информации истекает в октябре 2024 года. Trail of Bits подчеркивает важность непрерывного тестирования с помощью таких инструментов, как Wycheproof, для криптографических библиотек. Процесс раскрытия информации включал конфиденциальное уведомление сопровождающих библиотеки через GitHub advisories. Проблема EdDSA была оперативно устранена, в то время как на проблему ECDSA был получен отложенный ответ. Полученные результаты подчеркивают значительные последствия для безопасности проектов, полагающихся на библиотеку elliptic.
CdXz5zHNQW_IE7PHTX85O.png
Slither-MCP — это новый инструмент, который интегрирует движок статического анализа Slither с большими языковыми моделями (LLM). Эта интеграция расширяет возможности LLM в различных сценариях использования, включая более быстрое обнаружение кода и более эффективную навигацию по коду. Slither-MCP действует как сервер MCP, предоставляя API анализа Slither через инструменты, делая сложную информацию о коде доступной. Ранее LLM полагались на менее точные инструменты, такие как grep, что приводило к ошибкам. Slither-MCP предоставляет достоверные данные для анализа LLM, сокращая использование токенов и повышая точность. Например, LLM, которой поручено аудит ERC20.transfer(), теперь может напрямую запрашивать Slither-MCP для поиска исходного кода функции, избегая сложного разрешения файлов. Настройка Slither-MCP проста для таких платформ, как Claude Code и Cursor. Инструмент в настоящее время предлагает такие функции, как извлечение исходного кода, идентификация вызывающих и вызываемых функций, а также запуск детекторов Slither. Slither-MCP лицензирован под AGPLv3, но доступны варианты двойного лицензирования для коммерческих веб-приложений. Это двойное лицензирование позволяет разработчикам использовать Slither и Slither-MCP без публикации всего своего исходного кода.
Trail of Bits выпустила общедоступные реализации криптографических алгоритмов постквантовой криптографии ML-DSA и SLH-DSA на языке Go с постоянным временем выполнения. Реализации ML-DSA потребовали тщательного проектирования для предотвращения атак по времени, подобных KyberSlash, с акцентом на устранение ветвлений и делений. SLH-DSA избегает побочных каналов благодаря своей зависимости от псевдослучайных функций, построенных на основе хеш-функций. Алгоритм Decompose в ML-DSA, требующий деления, был реализован с постоянным временем выполнения с использованием условных обменов с битовым маскированием. Деление было дополнительно оптимизировано с помощью редукции Барретта, предварительно вычислив обратные величины для фиксированных знаменателей. Эти методы повысили скорость, сохраняя при этом безопасность. Эта работа направлена на обеспечение постквантовой безопасности в будущем. Цель — предоставить надежные цифровые подписи. Команда приглашает организации опробовать эти безопасные реализации. Эти алгоритмы стандартизированы NIST и разработаны для защиты от потенциальных угроз.
Checksec, инструмент для анализа средств защиты исполняемых файлов, популярен с момента своего выпуска в 2009 году. Появилась разрозненная экосистема связанных инструментов для различных бинарных форматов, таких как ELF, PE и Mach-O. Для решения этой проблемы была разработана Checksec Anywhere, чтобы объединить эти анализы в единую платформу на основе браузера. Этот инструмент выполняет анализ полностью локально, обеспечивая конфиденциальность пользователей и исключая загрузку файлов. Он поддерживает несколько бинарных форматов, предлагая индивидуальные проверки безопасности для каждого. Производительность является ключевой особенностью, позволяющей быстро анализировать тысячи файлов. Checksec Anywhere повышает доступность благодаря возможности делиться результатами и экспорту в формате SARIF. Его архитектура использует Rust, скомпилированный в WebAssembly, для эффективной обработки в браузере. Платформа разработана с учетом расширяемости для добавления новых форматов и проверок безопасности. Будущая работа включает добавление поддержки мобильных и прошивочных бинарных файлов, а также расширенных проверок свойств безопасности.
CdXz5zHNQW_HWQgbbSblz.gif
Недавняя атака на Balancer v2, приведшая к убыткам более чем на 100 миллионов долларов, была вызвана давней ошибкой округления арифметических операций. Изначально такие проблемы не считались значительными угрозами безопасности блокчейна из-за другого ландшафта угроз. Однако, по мере того как более простые векторы атак становятся редкими, изощренные злоумышленники теперь нацеливаются на тонкие арифметические крайние случаи в протоколах DeFi. Этот инцидент подчеркивает критическую необходимость всестороннего документирования инвариантов и тщательного тестирования для выявления и предотвращения подобных уязвимостей. Эксплуатируемая уязвимость представляла собой ошибку направления округления в Composable Stable Pools Balancer v2. Trail of Bits ранее выявляла аналогичные проблемы округления во время аудитов в 2021 году и рекомендовала усиленное фаззинг-тестирование. В то время полный эксплуатируемый эффект этих проблем потери точности было трудно однозначно оценить. Эволюция экосистемы блокчейна привела к смещению от в основном атак на контроль доступа или компрометацию ключей к более сложным эксплойтам, специфичным для DeFi, таким как манипулирование оракулами и ошибки округления. В 2023 году проблемы округления привели к значительным атакам на такие протоколы, как Hundred Finance и Sonne Finance, что подчеркивает их растущую распространенность. Собственные рейтинги безопасности Trail of Bits теперь классифицируют кодовые базы без надежных стратегий округления как "Слабые" по арифметической зрелости. Для предотвращения будущих эксплойтов протоколы DeFi должны тщательно документировать все инварианты, связанные с потерей точности и направлением округления, выходя за рамки простых правил, таких как "округление должно быть в пользу протокола". Эта документация затем должна лечь в основу комплексных наборов модульного, интеграционного и фаззинг-тестирования для достижения 100% покрытия. Формальная верификация может дополнительно дополнить фаззинг, предоставляя дополнительные гарантии. Инцидент подчеркивает четыре ключевых урока для экосистемы DeFi: критическую важность математической точности, необходимость поддержания и обновления наборов фаззинг-тестирования с учетом текущей информации об угрозах, разработку надежных систем мониторинга и оповещения, а также внедрение вторичных мер контроля для смягчения последствий потенциальных эксплойтов.
CdXz5zHNQW_iUnAPwl9wT.png
Современные паспорта — это встроенные устройства с файловой системой, контролем доступа и криптографией. Эти электронные паспорта содержат чип с персональными данными и используют криптографические меры для предотвращения несанкционированного доступа, подделки и копирования. ICAO определяет стандарты для этих паспортов, уделяя особое внимание структуре данных и безопасности. Файловая система паспорта включает в себя главные файлы, выделенные файлы и элементарные файлы, содержащие двоичные данные. Приложение eMRTD хранит личную информацию и данные безопасности в группах данных, отражая данные, напечатанные в паспорте. Электронные паспорта сталкиваются с такими угрозами, как несанкционированное чтение, прослушивание, подделка и копирование, в зависимости от физического доступа злоумышленника. Криптографические механизмы, включая устаревшие протоколы, такие как BAC, направлены на обеспечение конфиденциальности и предотвращение подделки, однако BAC имеет серьезные недостатки. Пассивная аутентификация предотвращает подделку путем проверки цифровой подписи страны, выдавшей паспорт. Активная аутентификация добавляет уровень для предотвращения копирования с использованием закрытого ключа внутри паспорта. Расширенный контроль доступа (EAC) повышает безопасность с помощью аутентификации чипа и терминала, а PACE заменяет BAC, чтобы устранить его недостатки.
CdXz5zHNQW_FAxcNu2YdF.png
Компания Trail of Bits выявила уязвимости в конфиденциальных вычислительных системах, использующих шифрование дисков Linux LUKS2, позволяющие злоумышленникам получать доступ и изменять конфиденциальные данные. Эти уязвимости связаны с податливыми заголовками метаданных, обманывающими системы и заставляющими их использовать нулевой шифр для шифрования. Проблема затрагивает конфиденциальные виртуальные машины, используемые для таких задач, как приватный ИИ и блокчейны, ставя под угрозу конфиденциальность, целостность и подлинность. Злоумышленники, имеющие доступ к записи на диск, могут использовать это, изменяя заголовок для использования нулевого шифра, фактически отключая шифрование. Cryptsetup v2.8.1 представил частичное смягчение, отклоняя нулевые шифры для слотов ключей с паролями. Для устранения проблемы пользователям следует обновиться до последних версий, а потребителям отчетов об аттестации следует запретить версии до исправления. Крайне важна проверка метаданных LUKS с помощью таких методов, как использование MAC, проверка параметров или измерения аттестации. Затронутые проекты были уведомлены, и патчи были выпущены Oasis Protocol, Phala Network, Flashbots, Secret Network, Fortanix, Edgeless и Cosmian VM. Cryptsetup получил частичное смягчение, а Confidential Containers признали проблему для будущей разработки.
CdXz5zHNQW_n2rQKmFLdC.png