Pull to refresh
48
0
Сергей Бронников@estet

Пользователь

Send message

Мой коллега был разработчиком того самого VPN и для стендов часто использовал виртуальные машины QEMU. А чтобы было удобнее разворачивать такие ВМ он написал UI на ncurses - nemu. Можно использовать как локальную альтернативу Proxmox. Картинку из гостевой ОС можно смотреть прямо в терминале с помощью протокола SPICE.

А вы посмотрите на тикеты сами https://github.com/ligurio/lua-c-api-tests/blob/51d08cf572256c9fbec8a23a551a05a901917518/TROPHIES.md

Как я понял, ваш фаззинг можно условно разделить на две части: фаззинг сишных функций и фаззинг путём генерации Lua-кода.

Вы смешали АПИ и входные данные. В LuaJIT есть C API и Lua API, в обоих есть функции для выполнения Lua-кода. Мы тестируем функции функции и того и другого API.

Спасибо!

Я правильно понимаю, что обнаруженные проблемы типа "CWE-617: Reachable Assertion" не требуется исправлять?

Если коротко, то требуется. Это обычно означает, что инвариант, описываемый ассертом, по каким-то причинам нарушен, значит код работает некорректно.

С т.з. безопасности это означает, что можно вызвать отказ в обслуживании, потому что в релизной сборке ассерты отсутствуют и при дальнейшем исполнении это закончится крешем.

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

, в процентах 70% случаев память не освобождается (в начале стоит malloc, в конце free, и при выходе по некоторым ошибкам тоже free, но не по всем).

Пробовали LeakSanitizer?

В комментариях к оригинальной статье в вашем блоге мне так и не ответили, попробую здесь спросить:

Fail: Мы не смогли обеспечить третье важное условие — наблюдаемость. Оказалось, в режиме, когда FIO проигрывает записанные трейсы, утилита не умеет проверять целостность данных. Мы можем запустить сценарий, но не увидим, сломалось ли что-то и, если сломалось, то где и как. Мы теряем одно из этих условий, и поэтому данный подход нам тоже никак не использовать для анализа нашей несчастной проблемы.

Я не знаю, может "наблюдаемость" уже устоявшийся термин в нагрузочном тестировании, но вероятно здесь подходит термин "корректность". То есть СХД должна корректно и полностью записать данные.

Наша команда в свое время остановилась на LTTng. Это довольно интересный инструмент, который позволяет собирать большое количество отладочной информации в единицу времени без существенного влияния на систему.

Почему не ebpf? На SO есть сравнение ebpf vs lttng (https://stackoverflow.com/a/74 114 798/3665613), но интересно ваш ответ услышать.

Все так, да. Спасибо за уточнение.

Спасибо, Александр, за напоминание, что классику надо не забывать читать.

Но перечисленной литературой тоже не надо ограничиваться, почему-то упомянутые книги Савинова и Куликова на слуху, но есть много других полезных книг о тестировании. Я бы порекомендовал обратить внимание на Software Testing: A Craftsman’s Approach - Paul C. Jorgensen и Effective Software Testing, A developer’s guide - Maurício Aniche (есть русскоязычный перевод), The Fuzzing Book: Tools and Techniques for Generating Software Tests.

А вообще после очередной просьбы порекомендовать книги по тестированию я собрал их все в список с краткими описаниями. Думаю любой там найдет для себя что почитать.

Конечно же, используются регрессионные тесты, которые могут выполняться десятки часов, санитайзеры типа ASan (утечки памяти) или UBSan (неопределенное поведение). Для фаззинга нативного кода используется AFL++, а для Java-кода — JQF и Jazzer. В общем, используется полный набор инструментов и подходов, которые позволяют найти даже самые хитрые баги.

А где можно посмотреть код фаззинг-тестов и покрытие кода после фаззинг-тестирования?

В статье по ссылке лишь общая информация про фаззинг.

У меня нет опыта использования FreeBSD, поэтому сравнить не могу.

Я использую. Мне нравится, что ОС минималистична, развивается консистентно (в согласовании между компонентами), хорошо тестируется как сама ОС, так и софт в портах.

У меня был пост про недостатки OpenBSD, большая часть пунктов актуальна и сейчас.

А у вас в Selectel есть поддержка OpenBSD для виртуальных машин? Как хорошо она там работает? В документации ссылка на Панель управления, а чтобы туда попасть нужно иметь аккаунт.

А ещё в этой первой программе, которую написала Ада, был баг из-за неправильного порядка операндов при делении.

https://twobithistory.org/2018/08/18/ada-lovelace-note-g.html

Спасибо за статью. Сам исследовал этот же вопрос для питания роутера и свитча в слаботочном щитке (одно из ограничений - мало места) и так ни на чем не остановился, все варианты не помещались в щиток. Самым интересным вариантом показался OpenUPS (они сейчас блокируют доступ на свой сайт, можно в webarchive посмотреть или в кеше поисковиков) и UPS на DIN-рейку DR-UPS40 от MEAN WELL.

Выглядит так, будто вы изобретаете велосипед. Почему не использовать passwordqc?

Насколько успешен был ваш фаззер для PHP?

Да, это тоже фаззинг, но фаззинг без обратной связи. Если вам тоже интересно тестирование компиляторов с помощью фаззинга, то возможно заинтересует доклад на эту тему:

 Стоит отметить, что Go — это первый из распространённых языков, в котором есть встроенный фаззер. 

LibFuzzer (C/C++) был раньше

Конечно, фаззеры появились задолго до языка Go. Это, например, CrashMeClusterFuzzAFLlibFuzzer и другие.

ClusterFuzz это инфраструктура для фаззинга

Почему не использование библиотеки Hypothesis со стратегией from_regex?

1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity