Компания Google подвела (https://opensource.googleblog.com/2017/05/oss-fuzz-five-mont...) первые итоги работы проекта OSS-Fuzz (https://github.com/google/oss-fuzz/), созданного (https://www.opennet.dev/opennews/art.shtml?num=45602) для организации непрерывного fuzzing-тестирования открытого ПО с целью выявления возможных проблем с безопасностью. За пять месяцев существования проекта было организовано тестирование 47 открытых проектов (https://github.com/google/oss-fuzz/tree/master/projects), в результате которого было выявлено более тысячи (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=-co...) ошибок, из которых 264 (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=-co...) являются потенциальными уязвимостями.
Из подтверждённых уязвимостей отмечается 10 (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=Pro...) проблем во FreeType2, 17 (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=Pro...) в FFmpeg, 33 (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=Pro...) в LibreOffice, 8 (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=Pro...) в SQLite, 10 (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=Pro...) в GnuTLS, 25 (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=Pro...) в PCRE2, 9 (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=Pro...) в gRPC и 7 (https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=Pro...) в Wireshark. Благодаря организации непрерывного тестирования некоторые из ошибок удалось обнаружить спустя лишь несколько часов после внесения регрессивных изменений в кодовую базу. Кроме ошибок, которые непосредственно могут привести к уязвимостям, в ходе применения OSS-Fuzz также выявлено более 300 проблем, приводящих к прекращению обработки из-за истечения таймаута или исчерпания доступной памяти, которые не всегда рассматриваются как ошибки, но могут служить как отправная точка для поиска более серьёзных проблем.Для стимулирования разработки сценариев (http://llvm.org/docs/LibFuzzer.html#fuzz-target) проверки в OSS-Fuzz новых открытых проектов, компания Google объявила о введении в строй программы выплаты вознаграждений за интеграцию значимых и популярных открытых проектов. Компания Google готова заплатить $1000 за начальную интеграцию и до $20,000 за расширенную интеграцию, подразумевающую организацию автоматизированную проверку кода из репозиториев с охватом (code coverage) проверкой более 80% кода и интеграцией с основной инфраструктурой тестирования и обработки ошибок.
Напомним, что при fuzzing-тестировании осуществляется генерация потока всевозможных случайных комбинаций входных данных, приближенных к реальным данным (например, html-страницы с случайными параметрами тегов или изображения с аномальными заголовками), и фиксация возможных сбоев в процессе их обработки. Если какая-то последовательность приводит к краху или не соответствует ожидаемой реакции, то такое поведение с высокой вероятностью свидетельствует об ошибке или уязвимости.
URL: https://opensource.googleblog.com/2017/05/oss-fuzz-five-mont...
Новость: http://www.opennet.dev/opennews/art.shtml?num=46516
Что на это ответит пивас-студия?
Придумает еще более идиотское пользовательское соглашение.
> Придумает еще более идиотское пользовательское соглашение.Платишь деньги - пользуешься. Что с ним не так?
Что и перья в зaдницy <зачеркнуто> комментарии в код вставлять необязательно.
> Что и перья в зaдницy <зачеркнуто> комментарии в код вставлять необязательно.Если что, это был вопрос :)
> Что и перья в зaдницy <зачеркнуто> комментарии в код вставлять необязательно.Тем, кто приобрёл лицензию, естественно никакие комментарии вставлять не надо.
Комментарии в коде для тех, кто не желает или не может приобрести PVS-Studio, но хочет его использовать. Комментарии это своего благодарность/плата за использование анализатора. Точно такая-же плата взымается с тех, кто использует открытый код под какой-то лицензией. За использование открытого кода необходимо вставить иногда весьма длинный комментарий, рассказывающей о лицензии и прочих вещах. Естественно у всех есть выбор: кто не хочет видеть чужой комментарий в начале, может не использовать открытый код или PVS-Studio.
Юный анонимус опеннета считает, что ему все должны и бесплатно до тех пор, пока сам не пойдёт зарабатывать деньги.
В запущенных случаях, уже на своих хлебах, высоковозрастный болван всё так же не в состоянии поставить себя на место других. Он может писать что угодно, но вес его слов как у макаки в зоопарке
По моему опыту о бабле в IT больше всего любят с умным видом поговорить вчерашние школьники с хеловорлдом наперевес, копеечные эникейщики, бродячие одинесники и тому подобные человечьи очистки.
> За использование открытого кода необходимо вставить иногда весьма длинный комментарий, рассказывающей о лицензии и прочих вещах.Кхе-кхе. И где этот комментарий в дистрибутиве PVS-Studio?
>> За использование открытого кода необходимо вставить иногда весьма длинный комментарий, рассказывающей о лицензии и прочих вещах.
> Кхе-кхе. И где этот комментарий в дистрибутиве PVS-Studio?Что? Я совершенно не понял вопрос. При чём вообще тут дистрибутив?
Не обращайте внимание, это бездельники, которым только и дело - чесать языком между последними новостями и последними мини-новостями.
А у них кто-то будет спрашивать?
Коллега,
Андрей Карпов уже ответил на сравнение статического анализа текста (в лице PVS Studio) и динамического обнаружения ошибок (в лице Valgrind). См., например, https://www.viva64.com/ru/b/0248/ и https://www.viva64.com/ru/b/0278/ .авторы PVS Studio осознают, что им не удастся создать единственно-необходимое средство анализа и валидации кода. Но приводят разумные рассуждения почему их продукт находит свою нишу.
Раз уж речь зашла о Valgrind, хочу обратить внимание ещё вот на эту свежую статью "Проверяем код динамического анализатора Valgrind с помощью статического анализатора" - https://www.viva64.com/ru/b/0504/
Блин, как же вы достали. Пользуетесь любым поводом, чтобы просунуть рекламу себя любимых.
> Блин, как же вы достали. Пользуетесь любым поводом, чтобы просунуть рекламу себя
> любимых.А почему Вы не возмущаетесь пиаром, который осуществляет Google, рассказывая о своих достижениях на ниве СПО?
Можно ответить, что они приносят пользу СПО. Так и мы приносим. В чём отличие?
Вот когда в ваши статьи будут лезть гугл-боты и оффтопить рекламой про гуглопроекты, то тогда, возможно, будем возмущаться.
наверно по тому что количество полезного от вас и от google совсем разное.
Кроме того ваш проект не распространяется как opensource - не даже как бесплатное при условии открытости кода проекта.
> Кроме того ваш проект не распространяется как opensourceАнализатор PVS-Studio является программным продуктом, на продаже которого мы зарабатываем деньги. Точно также закрыты Coverity, Klocwork, SonarC++ и т.д. Такие проекты как Clang или OSS-Fuzz, являются проектами, которые удобно делать открытыми и которые затратны для компаний, которые в них вкладываются. Сидят люди на хорошей зарплате, едят печеньки и пишут открытые проекты (и не надо бла-бла про сообщество и что от каждого по способностям... :). А зарабатывают эти компании в других сферах. В общем не путайте модели существования. Если нам кто-то вдруг будет сторонний платить, мы тоже можем open-source делать.
> не даже как бесплатное при условии открытости кода проекта.
Мы ещё более лояльные. Можно использовать PVS-Studio даже В ЗАКРЫТЫХ проектах: https://www.viva64.com/ru/b/0457/
Да зарабатывайте, хоть тресните, только с рекламой во все дыры не лезьте.
> Да зарабатывайте, хоть тресните, только с рекламой во все дыры не лезьте.Вы преувеличиваете. Просто именно Вам на глаза мы попались несколько раз и теперь кажется, что мы везде. Это не так: про нас очень мало кто знает. См. заметку "Ох, опять они со своим PVS-Studio. Везде они...": https://www.viva64.com/ru/b/0428/
Да вами уже весь интернет провонял.
> Но приводят разумные рассуждения почему их продукт находит свою нишуРазумные размышления от коммерсантов? Да не смешите моего кота!
Все их размышления струятся только на предмет более прибыльного разведения лохов ушастых обретающихся в неосвоенных нишах и готовых вестись на их маркетинговые обдурилки.
> Все их размышления струятся только на предмет более прибыльного разведения лохов ушастых
> обретающихся в неосвоенных нишах и готовых вестись на их маркетинговые обдурилки.Список тех, кого Вы называете "лохами ушастыми": https://www.viva64.com/ru/customers/
Вы неправы. Это компании, которые заботятся о качестве своего кода, репутации и умеют считать деньги.
> Это компании, которые заботятся о качестве своего кода, репутации и умеют считать деньгиДа ну! Ух ты, там лаборанты, микрософт и прочие ИТ паразиты известные своим гнилым нутром и гадкими делами, о какой репутации вы ведёте речь? СПО для всех этих компаний враг, лишающий их части прибылей и делающий адекватных пользователей из обдираемых вами лопоухиков. Так что, ну вы поняли...
> Да ну! Ух ты, там лаборанты, микрософт и прочие ИТ паразиты известные
> своим гнилым нутром и гадкими делами, о какой репутации вы ведёте
> речь?Не понимаю, при чём здесь СПО... Вот есть скажем у нас в клиентах компания, занимающаяся в сфере стоматологии. Ей важно находить ошибки в программах, чтобы с меньшей вероятностью вам зуб повредить. Вы хотите надежности такого ПО? Думаю, хотите.
> СПО для всех этих компаний враг, лишающий их части прибылей
Как СПО для них враг? Каких прибылей оно их лишает? Хотя, конкуренты могут что-то утащиться к себе. Ну что-же тогда правильно, что ПО закрытое.
> Так что, ну вы поняли...
Нет не понял.
>Ну что-же тогда правильно, что ПО закрытое.Теряется конкуренция, что в этом хорошего?
> чтобы с меньшей вероятностью вам зуб повредить.
> Вы хотите надежности такого ПО? Думаю, хотите.Не надо смешивать солидол с яблочным джемом!
> Хотя, конкуренты могут что-то утащиться к себе.
> Ну что-же тогда правильно, что ПО закрытое.Или чтобы ни кто не видел что и у кого вы стащили, как криво сделали, каких недокументированных фишек натолкали и прочее, и прочее, и прочее?
> авторы [censored] осознают, что им не удастся создать единственно-необходимое средство анализа и валидации кода. Но приводят разумные рассуждения почему их продукт находит свою нишу.Давно ли их продукт стал синонимом статического анализа? Других анализаторов нет?
P.S. Андрей, не надо, пожалуйста, оставлять под этим сообщением свои сверхценные замечания. Вопрос задан не Вам.
> Что на это ответит пивас-студия?Мы на голом энтузиазме нашли уже более 11000 ошибок в открытых проектах ( https://www.viva64.com/en/examples/ ). Если бы кто-то спонсировал это направление, мы могли бы оказать намного больше пользы открытым проектам. А пока есть, что есть.
P.S. Тот-ж Google знает про нас, но конструктивного общения не складывается. Думаю, немного финансирования нам бы не повредило, чтобы плотнее заняться открытыми проектами. Но надо понимать, что они не ангелы, а просто занимаются пиаром (как и мы :). И им лучше "найти самим и получить одобрение", чем проспонсировать, скажем PVS-Studio. :)
Продайтесь гуглу. Все будут счастливы. Стандартный менталитет (зомбирование): гугель -- анжель, все остальные -- нахлебники.
Потому что даже Гуглу вы не нужны. Что говорит о качестве вашего "изобретения". Вот когда вы будете помогать открытым проектам сами разрабатывая открытое решение - тогда и будете нужны. А пока вы просто жалкие паразиты, всюду сующие свой пивас.
Размечтались, ага. Купит вас гугл, готовьте чемоданы для баксов. Ему выгоднее вкладываться в clang, чем в ваш чёрный ящик.
> Мы на голом энтузиазме нашли уже более 11000 ошибок в открытых проектах<зевая> Число наверняка указано без вычета ложных срабатываний.
>> Мы на голом энтузиазме нашли уже более 11000 ошибок в открытых проектах
> <зевая> Число наверняка указано без вычета ложных срабатываний.11000 это не количество предупреждений. Это именно 11037 ошибок, которые выписаны в базу ошибок: это именно фрагменты кода с багом. Любой желающий может познакомиться с этими ошибками: https://www.viva64.com/ru/examples/
Возможно, среди них и затесался десяток ложных срабатываний, так как сложно изучать чужой код. Но общую картину это не меняет. Ну хорошо, пусть будет не 11037, а 10900.
Что-то я до сих пор не вижу от вас бота, который бы сканировал репозитории по заявкам их владельцев.
А какое отношение фаззинг имеет к статическому анализу?
Никакого. Но вот если бы это был статический анализ, мы могли бы вам попробовать впарить блюющего единорога...
> Что на это ответит пивас-студия?Ну вот кто тебя за язык тянул, а?
Начальник отдела маркетинга. Кто же ещё?
Да уж, накомлал герр Шталь нечистую силу на наши головы...
Кто, если не я? Когда, если не сейчас?
Отличный проект. Я примерно так себе и представляю будущее свободного ПО. Тестирование, безопасность и юзабилити за денежку. Потому что пока о тестировании свободного и открытого ПО можно только мечтать. Сначала вот тестирование безопасности, затем, надеюсь, и до юзабилити дойдут. Главное, что бы оставалось в идеологических рамках. Биржи надо открыть, что бы пользователи донатили целенаправленно, только что бы прозрачность была.
Дошло уже до юзабилити, дошло, набежали г.вноеды.Уже и кнопки Ок и Отмена местами поменяли, настройки выпиливают, иконки в виде бледных поганок везде. Лепотааа...
объясните недалекому - как вообще устроен процесс обнаружения возможных (!!!) уязвимостей в коде "возможно приводящих к потенциальным уязвимостям"?
это там какой то особо прокачаный libastral, или же есть какие то конкретные правила написания кода ?
> объясните недалекому - как вообще устроен процесс обнаружения возможных (!!!) уязвимостей
> в коде "возможно приводящих к потенциальным уязвимостям"?
> это там какой то особо прокачаный libastral, или же есть какие то
> конкретные правила написания кода ?Я понимаю это так. Инструмент находит ошибки. Для начала не важно какие. Важно потом классифицировать их. Считается, что некоторые ошибки могут эксплуатироваться. Так, Амит Йоран (начальник отдела национальной кибербезопасности США) считает, что около 95% всех дефектов программ, относящихся к безопасности, проистекает из 19 типичных ошибок (переполнение буфера, переполнение целых чисел, пренебрежение обработкой ошибок и т.д.).
В общем, ошибки, которые как считается, могут привести к уязвимостям, классифицированы в CWE: https://cwe.mitre.org/
Если вы находите ошибку, которая классифицируется согласно CWE, то значит вы нашли потенциальную уязвимость. Может эта ошибка стать настоящей уязвимостью (CVE - https://cve.mitre.org/) зависит от многих обстоятельств (везения).
Анализатор PVS-Studio кстати тоже находит многие ошибки, перечисленные в CWE: https://www.viva64.com/ru/b/0486/ Т.е. PVS-Studio позволяет выявлять и устранить многие потенциальные уязвимости и не стоит недооценивать эту возможность.
> объясните недалекому - как вообще устроен процесс обнаружения возможных (!!!) уязвимостей
> в коде "возможно приводящих к потенциальным уязвимостям"?
> это там какой то особо прокачаный libastral, или же есть какие то
> конкретные правила написания кода ?Очень просто. Находят ошибки разных типов. Определённые типы ошибок (например переполнения буфера) часто (но не всегда) приводят к уязвимостям. Тратить время на анализ, насколько опасна выявленная ошибка, как правило смысла нет, потому что её в любом случае надо исправлять. Вот и говорят, что нашли "возможную уязвимость".
overflows, overflows, overflows... Какие отмазы только инвалиды не придумывают, только бы rust не использовать.
freetype -1996 год
ffmpeg - 2000 год
libreoffice (тогда ещё staroffice) - 1985 год
sqlite - 2000 год
gnutls - 2003 год
pcre - 1997 год
wireshark -1998 годВдруг в 2015 хипстеры выпускают новый ЯП, и все всё срочно должны переделывать на нём?
> Какие отмазы только инвалиды не придумывают, только
> бы rust не использовать.И да, использование частиц не/ни подучи.
Форум это разговорный язык, gramota.ru в другом месте.
Разговорный язык бывает разный, как грамотный, так и безграмотный.
На форуме письменная речь, с помощью специальных графических знаков (знаков письменности).
>> Какие отмазы только инвалиды не придумывают, только
>> бы rust не использовать.
> И да, использование частиц не/ни подучи.И куда уважаемый Грамотей тут собрался частицу НИ вставлять?
Сможешь угадать с трёх раз?
> Сможешь угадать с трёх раз?Ты не умничай, ты паль^W вставь и покажи. А мы посмеемся.
> инвалиды не придумываютсие не является отрицанием, так что тут "ни"
Сколько комментариев и ни одного нормального. Кому-то не дает покоя один навязчиво маркетируемый статический анализатор. Кому-то все программы надо переписать на раст. Почему нет нормальных комментариев?Ладно я попробую исправить ситуацию.
Я в свое время игрался с фаззером и искал ошибки с gcc и clang. Самая большая проблема с использованием фаззера это не найти ошибки, а заставить разработчиков их починить. Дело в том, что во время фаззинга разные ошибки проявляются с сильно разной частотой. Например вторая по частоте ошибка проявляется в 10 раз реже чем первая, третья в 10 раз реже второй и т.п. Поэтому надо либо нашел ошибку -- починил, либо иметь какой-то механизм автоматического определения дубликатов ошибок, поскольку просматривая руками много разных ошибок не отловишь -- там всё одна и та же ошибка срабатывает.
KUDOS гуглу если они смогли поставить эту штуку на поток. Я считаю, что это сделает наши программы гораздо более безопасными и корректными. Во-первых круто, что они предоставляют вычислительные мощьности для фаззинга. Во-вторых круто, что за счет этого более широкая аудитория знакомится с фаззингом и санитайзерами.
> надо либо нашел ошибку -- починил, либо иметь какой-то механизм автоматического определения дубликатов ошибок, поскольку просматривая руками много разных ошибок не отловишь -- там всё одна и та же ошибка срабатывает.Хороший фаззер отслеживает пути выполнения и умеет отличать разные ошибки от дубликатов одной и той же. К таковым относится и используемый гуглом libFuzzer (а также, например, american fuzzy lop).