Telegram Web Link
Testing Graph Database Systems via Graph-Aware Metamorphic Relations

Authors: Zeyang Zhuang, Penghui Li, Pingchuan Ma, Wei Meng, Shuai Wang

Пример бага (RedisGraph#2929) из статьи:

MATCH path =(a) -[*]-(b) WHERE ID(a)=0 AND ID(b)=1
RETURN COUNT(path) // -> 0
MATCH path =(a) -[*]-(b) WHERE ID(a)=1 AND ID(b)=2
RETURN COUNT(path) // -> 4
MATCH path =(a) -[*]-(b) -[*]-(c) WHERE ID(a)=0 AND ID(b)=1 AND ID(c)=2
RETURN COUNT(path) // -> Error 4 != 0*4


Статья: https://www.vldb.org/pvldb/vol17/p836-zhuang.pdf
Код: https://github.com/cuhk-seclab/Gamera
Ахах, это про меня.
Компания Trail of Bits публикует главы своей книги-руководства по тестированию:

> Руководство по тестированию — это ресурс, который помогает разработчикам и специалистам по безопасности в настройке, оптимизации и автоматизации многих инструментов статического и динамического анализа, которые мы используем в Trail of Bits.

Сейчас там есть советы по стат анализу с помощью CodeQL и фаззингу.

Если The Fuzzing Book больше ориентирована на теорию, то эта книга чисто практическая. Один из советов: какой использовать промпт для LLM, чтобы сгенерировать словарь для фаззинга.

https://appsec.guide/
VerifyThis это серия соревнования по верификации программ, которые проходят ежегодно с 2011 года. Сейчас проходит отбор задач для соревнования этого года, которое пройдет в рамках конференции ETAPS 6 и 7 апреля в Люксембурге. Как я понял нет никакого ограничения по инструментам для верификации и команда сама выбирает наиболее удобный, за прошлые года на сайте указаны инструменты, которые использовали победившие команды: Why3, mCRL2, Dafny, VeriFast. На скриншоте типичная задача с соревнования.

https://www.pm.inf.ethz.ch/research/verifythis.html
Выложили слайды и видеозапись докладов с конференции ТБ Форум 2024.

Из докладов, которые мне больше всего "зашли":

Основные направления совершенствования сертификации средств защиты информации, Дмитрий Шевцов, начальник управления ФСТЭК России

Этот доклад перевернул в моей голове представление о людях, которые пишут стандарты для нашей индустрии разработки ПО. Я представлял себе этот доклад самым скучным из сетки докладов, а вышло совершенно наоборот. Из интересного: во ФСТЭК собрали статистику, чтобы профилировать процесс сертификации ПО на разных стадиях перед получением сертификата ФСТЭК. Выяснилось, что больше всего времени уходит на проведение испытаний (38% времени), а на втором месте стадия предоставления заявителем образцов СЗИ в испытательную лабораторию (25% времени). Как следствие, ФСТЭК сократил сроки рассмотрения документов и проведения отдельных видов работ (суммарно на 105 календарных дней). Этой весной вступают в силу приказы о введении "Требования по безопасности информации к системам управления базами данных", по данным ФСТЭК в настоящее время в системе сертификации ФСТЭК России сертифицировано 15 СУБД, из них Требованиям соответствуют 4 СУБД.

Центр исследования безопасности системного программного обеспечения, Алексей Хорошилов, ведущий научный сотрудник, ФГБУН "ИСП РАН"

Традиционный отчет о работе "Центра исследования безопасности ядра", который объединяет усилия отечественных компаний-разработчиков ПО в Linux в стат. анализе и фаззинге Linux-ядра.
Для самых интересных слайдов сделал скриншоты.

Унифицированная среда безопасной разработки программного обеспечения, Вартан Падарян, ведущий научный сотрудник ФГБУН "ИСП РАН"

ИСП РАН продолжает работать над средствами для безопасной разработки и их автоматизацией. На слайдах приведен план работ и отмечено, что планируют портирование технологий анализа кода на отечественные процессоры (Байкал, Эльбрус, что-то на RISC-V) и запустить облако, чтобы предоставлять инструменты для безопасной разработки как сервис. На одном из слайдов приводится сравнение статистики срабатываний в Svace и cppcheck, ожидаемо Svace показал лучшие результаты. Вот бы кто сравнил PVS Studio и Svace, результаты были бы любопытными.

Postgres Professional: путь от SDL к сертификации РБПО, Шаплов Николай Николаевич

В PostgresPro есть отдельная команда, которая целенаправленно занимается фаззингом PostgreSQL. На слайдах явно не указано, но насколько помню устно ребята говорили, что исправления для найденных проблем они возвращают в апстрим. Ребята тестируют сетевой протокол (libpq), функции-обработчики типов данных (28 типов: jsonb, int, line, varchar etc), функции для выполнения операций над данными (128 операций, используется структурированный фаззинг). Для libpq используют FUTAG для автоматической генерации целей. Отдельно докладчик отметил проблему с исправлением найденных проблем:

> Найденный баг должен быть праздником для фаззингиста. Если приходится биться за то, чтобы найденный баг взяли в работу, если багу никто не рад, фаззингист не захочет ничего находить.

Хех, игнорирование найденных проблем демотивирует не только фаззингистов. :-/

https://www.tbforum.ru/2024/program/information-security
Этот год високосный - в нем есть 29 февраля. И хотя каждый четвертый год високосный это не мешает разработчикам ошибаться вновь и вновь.

Внушительный список проблем, возникших из-за дополнительного дня в 2024 году https://codeofmatt.com/list-of-2024-leap-day-bugs/
Гугл окончательно одолела полувековая проблема небезопасных ЯП, поэтому они постепенно будут отказываться от C++ в пользу Perl, Java, Go, Rust.

Secure by Design: Google’s Perspective on Memory Safety

https://security.googleblog.com/2024/03/secure-by-design-googles-perspective-on.html
19 марта в Питере пройдёт митап по функциональному программированию и один из докладов посвящен практике совместного использования завтипов с тестированием с помощью свойств (property-based).

Регистрация по ссылке.
Расширение для визуализации тестирования кода на Python с помощью Hypothesis в VScode.

https://marketplace.visualstudio.com/items?itemName=HarrisonGoldstein.tyche
Из интересного в результатах ежегодного опроса среди разработчиков от JetBrains за 2023 год:

8% респондентов используют мутационное тестирование как одну из техник тест-дизайна,
а техникой "угадывание ошибок" пользуются 16%.

Больше половины опрашиваемых так или иначе использовали искусственный интеллект для генерирования тестов.
Более 80% хотели бы использовать AI для написания тестов, а 18% хотели бы продолжить это самостоятельно.

via Developer Ecosystem и Developer Ecosystem (Testing)

См. результаты опросов за прошлые года: 2019, 2020, 2021.
ChatGPT использует материалы из моей вики про тестирование.
Видео доклада How Badly Do We Want Correct Compilers? (NDC TechTown 2023)

Доклад известного исследователя Джона Регира (John Regehr). Докладчик, насколько можно заметить, ни разу не произносит слово "CompCert" и сомневается в успешности проектов формально верифицированных компиляторов для популярных ЯП, что, конечно, интригует. Рассматриваются инструменты, в разработке которых принял участие автор доклада: YARPGen, Souper и другие проекты.

via
2025/07/04 07:16:28
Back to Top
HTML Embed Code: