URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 122607
[ Назад ]

Исходное сообщение
"Google открыл Atheris, инструментарий для fuzzing-тестирования кода на языке Python"

Отправлено opennews , 06-Дек-20 11:14 
Компания Google объявила об открытии исходных текстов проекта Atheris, развивающего специализированный инструментарий для fuzzing-тестирования кода на языке Python и расширений для CPython, написанных на C/C++. Проект использует движок на основе libFuzzer и может применяться совместно с инструментами  Address Sanitizer и Undefined Behavior Sanitizer  для выявления дополнительных ошибок. Код открыт под лицензией Apache 2.0...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=54204


Содержание

Сообщения в этом обсуждении
"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 11:14 
Я одного не могу понять, а почему Гугл НЕ создал эту программу открытой изначально?

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 11:20 
наверно потому, что сам он этого не делал, а опять купил, как и ВСЕ остальные проекты? Да-да, даже нынешний поисковик гугла - купленный.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено макаронофикус , 06-Дек-20 12:28 
>> нынешний поисковик гугла - купленный.

Поделись, пжа, источником.


"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено 101 , 06-Дек-20 14:40 
Вот здесь можно посметреть что купил google, в том числе и поисковики
https://en.wikipedia.org/wiki/List_of_mergers_and_acquisitio...

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 17:27 
Если пройтись по ссылкам из таблицы, там написано, что наработки купленных текстовых поисковиков использовались только для вычисления рейтинга для сортировки результатов.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено anonimous , 08-Дек-20 01:08 
>Если пройтись по ссылкам из таблицы, там написано, что наработки купленных текстовых поисковиков использовались только для вычисления рейтинга для сортировки результатов.

Это как-бы в поисковике самое главное. Остальное это робот для выкачки файлов по ссылкам.


"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 08-Дек-20 02:25 
В Гугле главное — это децентрализация. Он смог подняться благодаря тому, что за поиск отвечал не один-единственный супермощный и дорогой сервер, как у той же Альтависты, а скачанные страницы и индексы были с самого начала разбросаны по почти десятку разнородных машин (и интелы, и спарки, и пауэры). Чтобы угнаться за ростом Интернета, ему достаточно тупо докупать новые сервера для датацентров. Их уже миллионы.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 11:23 
А с чего им делиться с конкурентами полезными наработками, в которые они вложили деньги? А вот когда оно стало ненужно или полезность не оправдала ожиданий - выкидываешь в опен сорс - кушайте, не обляпайтесь. Гугл теперь выглядит белым и пушистым - "поделился", а поддерживают пусть кто хочет своими силами. Бонус поинты за рализ только сырцов без документации и инструментов сборки - вроде и открыли, а долбиться никто не захочет.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 19:47 
Вы правы, но это лучше чем ничего. Когда даже уже древнее ПО все еще не хотят открывать это грустно, кому-то да может понадобиться...

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено погроммист , 06-Дек-20 13:03 
В компаниях вроде гугла используется тонна внутренних сервисов и библиотек: от собственной системы сборки и CI, до собственной VCS и диалекта ЯП. Оно сильно интегрировано между собой, что даёт серьезный буст производительности разработчикам, но затрудняет открытие сорцов. Нужно потратить уйму времени на рутинное отвязывание кода от всего этого NIH добра, а также настроить синхронизацию внешнего кода с внутренней монорепой, выделить человека для связи с общественностью (категоризацию багов, внешнего код ревью).

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 13:42 
Дав ваще беспредел! Скрывают от сообщества сырые неюзабельные прототипы без документации!

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено commiethebeastie , 06-Дек-20 14:21 
Потому что код может быть написан так, что годен только для внутреннего использования.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 11:51 
> libFuzzer

Хочу такую же, но для gcc !!!


"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено погроммист , 06-Дек-20 13:11 
Его вроде можно и к GCC >= 9.0 прикрутить (но я не пробовал). См. man gcc /-fsanitize-coverage=

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 13:40 
Тебе не пофиг, чем *тестовую* сборку делать?

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 18:15 
Не пофиг

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 07:15 
Эээ, american fuzzy loop не подойдёт?

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 17:15 
>version = subprocess.check_output(

[current_path + "/setup_utils/check_libfuzzer_version.sh", libfuzzer])

вот у вас питон есть, зачем всякое говно через subprocess вызывать?


"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 17:49 
Как это ни удивительно, некоторые вещи проще и адекватнее делать на шелле. А главное быстрее. Когда это что-то сложнее запустить 1-2 программы и сравнить полтора значения, тут уже возможны варианты.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 07:19 
В вызываемом там скрипте не делается ничего такого, что на питоне не ложится в сравнимое или меньшее количество строчек. Просто поиск текста в выводе objdump.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 07:24 
Зачем из питона вызывать шел с питоном (ну или без шела)? Нужен более многострочный и менее читаемый вариант? Нормальный, не вызывающий отвращения вариант аналогичного кода, будет значительно больше. И он будет менее удобен для сопровождения.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 18:20 
вы ничего не понимаете.... питон - это для другого....

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Вадик , 06-Дек-20 19:55 
А чего сюда-то писать, можно же прямо к ним с этим придти и с коммитом если считаешь что неправильно.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 21:06 
1. Зачем мне выполнять за Гугл его работу?
2. ... с перспективой получить ответ "и без твоего PR прекрасно жили"?

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено VALERII , 07-Дек-20 09:43 
А мне интересно как можно проверить на Питоне или другом языке следующее:
# libfuzzer = /path/to/libFuzzer*.a
if objdump -t "$libfuzzer" | grep "LLVMFuzzerRunDriver" > /dev/null; then
  echo "up-to-date"
else
  if objdump -t "$libfuzzer" | grep "__sanitizer_cov_8bit_counters_init" > /dev/null; then
    echo "outdated-recoverable"
  else
    echo "outdated-unrecoverable"
  fi
fi

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Ordu , 07-Дек-20 12:50 
Можно попробовать сделать dlopen, и получить адрес символа -- если адреса не нашлось, значит символа нету. Правда это в C, в пайтоне, наверное, всё немного иначе.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 23:05 
from pathlib import Path

libfuzzer = next(Path("/path/to").glob("libFuzzer*.a"))

import sh

odt = sh.Command("objdump").bake(t=True)

ls = odt(libfuzzer).splitlines()

def chk(sym, msg):
    for l in ls:
        if l.find(sym) > -1:
            print(msg)
            sys.exit(0)


chk("LLVMFuzzerRunDriver", "up-to-date")
chk("__sanitizer_cov_8bit_counters_init", "outdated-recoverable")

print("outdated-unrecoverable")


"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено VALERII , 08-Дек-20 21:38 
так это тоже самое + sh это pip пакет, который нужно доставлять

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 08-Дек-20 23:44 
sh не обязательно ставить, можно обойтись subprocess, просто как через subprocess делается я навскидку не скажу.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 08-Дек-20 23:51 
Насчёт "то же самое" - зато извращаться не приходится с грепами. С чуть более сложным скриптом извращаться пришлось бы с седами авками и ксаргами и expr. Плюс можно избавиться от лишних процессов. При желании можно заюзать elfutils, и получать инфу вообще без парсинга вывода консольки в структурированном виде. Или наоборот можно заморочиться и сделать правильный парсер вывода без false-positiveов.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено VALERII , 09-Дек-20 19:33 
> При желании можно заюзать elfutils, и получать инфу вообще без парсинга вывода консольки в структурированном виде. Или наоборот можно заморочиться и сделать правильный парсер вывода без false-positiveов.

Я посмотрел - не так это легко.
Я бы даже согласился бы, что не нужно это делать вообше ;)


"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 06-Дек-20 22:37 
Избавляются от хлама. Пора закопать пистон

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено анонимуслинус , 07-Дек-20 00:23 
я согласен с тем , что можно некоторые скрипты писать на баше или перле, но считаю питон удобным скриптовым языком. если ты относишься к нему как скриптовому языку, а не основному. писать проги надо на компилируемых языках, а мелкие обвязки или скрипты вызова можно и на питоне ( имею ввиду в операционке)

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 08:39 
Любой скриптовый язык в операционке - дыра в безопасности. Если установлены средства разработки, коим, безусловно, питон является, значит при взломе можно воспользоваться всем этим многообразием. На боевых система должны быть только компилируемые программы. Google для этого разработал Go.

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 09:47 
Что теперь, даже sh выкинуть?

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 11:58 
Ты на бою разрабатываешь, Михаил?

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 13:08 
Какая лютая ахинеечка от людей, которые даже близко к безопасности не стояли)
Жги ещё!

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено анонимуслинус , 09-Дек-20 01:17 
компилируемые программы? ты про баш забыл и про сервак с кучей не компилируемых частей. а еще про дыры, которые открываются при работе двух программ совместно. а еще горе создателей сайтов на этих"не компилируемых" поделках. как итогсамая безопасная вариация запуск скомпиленого в машинный код сайта сразу из ядра. но у нас проблемка, а как мы будем админить все это желательно по сети? и прилетаем в докер и прочие? опять неувязочка, докер не дает безопасности, только мнимую. опять приплыли. как вариант создавать каждый раз новый сайт на ядре при каждом изменении настроек. но это же маразм. извини твои доводы граничат с невозможностью. вот так и живем с дырами и криворукими поделками. и кто знает сколько там дыр прячется в сети. так что отключи комп от розетки это безопаснее всего.))

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 04:38 
Скорей закопают тебя

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Rodegast , 06-Дек-20 23:58 
Чем оно лучше hypothesis-а?

"Google открыл Atheris, инструментарий для fuzzing-тестирован..."
Отправлено Аноним , 07-Дек-20 11:37 
тем что оно не hypothesis