beldmit: (Программизм)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2015-02-19 12:22 pm

Фуззеры

Сегодня (ну, вчера) я узнал про конкретно этот инструмент для тестирования и вообще про такой класс инструментов для тестирования, как фуззеры. Идея в том, чтобы подсовывать на вход программе чуть-чуть модифицированные данные и смотреть, когда она начнет падать. Памятуя о том, как в своё время в Криптокоме готовили такие вот чуть-чуть порченные мукой и чародейством данные и сколько с их помощью удалось поймать, я такое всецело одобряю.

В документации упоминаются генетические алгоритмы для модификации входных данных. Ну да, что они могут работать, даже если программист туда заложил самые общие направления, я помню еще по "Виккору" - 15 лет назад Андрей Ленский заложил их в AI нашей игрушки, выведя тем самым змею, атакующую боком. Нет, он в ее логику ничего такого не закладывал, просто подождал, пока статистисика накопится. Так что шансов, что софтина удачная, есть много.

Засада конкретно с этим инструментом в бестолковости документации (во всяком случае, я понял, как инструментировать с его помощью собираемый продукт, и больше ничего). То, что для, например, Debian, его нет для stable и есть только для experimental, пережить можно.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2015-02-19 09:54 am (UTC)(link)
"Просто подождав" относится к змее (атакует боком, просто подождав) или к ее автору "вывел, просто подождав")?

[identity profile] freya-victoria.livejournal.com 2015-02-19 09:49 am (UTC)(link)
Экспериментальный продукт для тестирования это, конечно, интересно.
Никогда не знаешь, что именно тестируешь, то ли свой продукт, то ли сам инструмент :)

[identity profile] beldmit.livejournal.com 2015-02-19 10:00 am (UTC)(link)
А почему ты решила, что он экспериментальный?

С самописными test suites ситуация ничуть не лучше в среднем по больнице.

[identity profile] freya-victoria.livejournal.com 2015-02-19 10:03 am (UTC)(link)
Я неправильно прочитала. Думала, что для Debian он experimental, типа бета. А он для Debian Experimental)))
Edited 2015-02-19 10:06 (UTC)
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2015-02-19 11:16 am (UTC)(link)
Это примерно одно и то же.

[identity profile] beldmit.livejournal.com 2015-02-19 12:26 pm (UTC)(link)
Не путай девушку. То, что пока сборку не сделали (или я плохо искал) о том, насколько проект живой, не говорит ничего.

[identity profile] alexott.livejournal.com 2015-02-19 10:05 am (UTC)(link)
брут форс это конечно неплохо, но не всегда возможно применять из-за проблем с производительностью и т.п. Иногда полезно было бы дать какие-то хинты о структуре входных данных...

[identity profile] beldmit.livejournal.com 2015-02-19 11:29 am (UTC)(link)
В общем случае тяжело.

[identity profile] beldmit.livejournal.com 2015-02-19 06:57 pm (UTC)(link)
http://beldmit.livejournal.com/441095.html?thread=4960519#t4960519 - тут по ссылке интересные примеры, что можно сделать с perl-ом. Да, с парсингом XML-я так в среднем не разгуляешься, наверное. А в openssl-ных рассылках чуть-чуть порченные мукой и чародейством данные тут уже принесли 2 сегфолта за 2 недели.

Другой вопрос, что я не понимаю, что там за неонка внутре. Одно дело если тупо меняются входные данные, другое – заявленный кодоанализатор.
ext_605364: geg MOPO4 (geg_MOPO4)

[identity profile] gegmopo4.livejournal.com 2015-02-19 01:01 pm (UTC)(link)
Это всё хорошо, когда продукт уже достаточно покрыт тестами. Иначе не понятно, то ли что-то поломали. то ли просто повезло.

[identity profile] provokatorz.livejournal.com 2015-02-19 01:51 pm (UTC)(link)
На perl вон уже целая армия с фузиками нападает :)

http://pragmaticperl.com/issues/24/pragmaticperl-24-fuzzing-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-perl-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%BE%D1%80%D0%B0-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-afl.html