The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Google открыл Atheris, инструментарий для fuzzing-тестирования кода на языке Python"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"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.ru/opennews/art.shtml?num=54204

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 06-Дек-20, 11:14   +1 +/
Я одного не могу понять, а почему Гугл НЕ создал эту программу открытой изначально?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #5, #12, #15, #16

3. Сообщение от Аноним (3), 06-Дек-20, 11:20   +2 +/
наверно потому, что сам он этого не делал, а опять купил, как и ВСЕ остальные проекты? Да-да, даже нынешний поисковик гугла - купленный.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #9

5. Сообщение от Аноним (5), 06-Дек-20, 11:23   +10 +/
А с чего им делиться с конкурентами полезными наработками, в которые они вложили деньги? А вот когда оно стало ненужно или полезность не оправдала ожиданий - выкидываешь в опен сорс - кушайте, не обляпайтесь. Гугл теперь выглядит белым и пушистым - "поделился", а поддерживают пусть кто хочет своими силами. Бонус поинты за рализ только сырцов без документации и инструментов сборки - вроде и открыли, а долбиться никто не захочет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #24

7. Сообщение от Аноним (-), 06-Дек-20, 11:51   –2 +/
> libFuzzer

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #13, #14, #31

9. Сообщение от макаронофикус (?), 06-Дек-20, 12:28   +/
>> нынешний поисковик гугла - купленный.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #18

12. Сообщение от погроммист (?), 06-Дек-20, 13:03   +9 +/
В компаниях вроде гугла используется тонна внутренних сервисов и библиотек: от собственной системы сборки и CI, до собственной VCS и диалекта ЯП. Оно сильно интегрировано между собой, что даёт серьезный буст производительности разработчикам, но затрудняет открытие сорцов. Нужно потратить уйму времени на рутинное отвязывание кода от всего этого NIH добра, а также настроить синхронизацию внешнего кода с внутренней монорепой, выделить человека для связи с общественностью (категоризацию багов, внешнего код ревью).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

13. Сообщение от погроммист (?), 06-Дек-20, 13:11   +/
Его вроде можно и к GCC >= 9.0 прикрутить (но я не пробовал). См. man gcc /-fsanitize-coverage=
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

14. Сообщение от Аноним (15), 06-Дек-20, 13:40   +1 +/
Тебе не пофиг, чем *тестовую* сборку делать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #22

15. Сообщение от Аноним (15), 06-Дек-20, 13:42   +3 +/
Дав ваще беспредел! Скрывают от сообщества сырые неюзабельные прототипы без документации!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

16. Сообщение от commiethebeastie (ok), 06-Дек-20, 14:21   +3 +/
Потому что код может быть написан так, что годен только для внутреннего использования.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

18. Сообщение от 101 (??), 06-Дек-20, 14:40   +8 +/
Вот здесь можно посметреть что купил google, в том числе и поисковики
https://en.wikipedia.org/wiki/List_of_mergers_and_acquisitio...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #45

20. Сообщение от Аноним (20), 06-Дек-20, 17:15   +2 +/
>version = subprocess.check_output(

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #21, #23, #25

21. Сообщение от Аноним (21), 06-Дек-20, 17:49   –4 +/
Как это ни удивительно, некоторые вещи проще и адекватнее делать на шелле. А главное быстрее. Когда это что-то сложнее запустить 1-2 программы и сравнить полтора значения, тут уже возможны варианты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #32

22. Сообщение от Аноним (-), 06-Дек-20, 18:15   +/
Не пофиг
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

23. Сообщение от Аноним (-), 06-Дек-20, 18:20   –3 +/
вы ничего не понимаете.... питон - это для другого....
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

24. Сообщение от Аноним (24), 06-Дек-20, 19:47   +1 +/
Вы правы, но это лучше чем ничего. Когда даже уже древнее ПО все еще не хотят открывать это грустно, кому-то да может понадобиться...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

25. Сообщение от Вадик (??), 06-Дек-20, 19:55   +/
А чего сюда-то писать, можно же прямо к ним с этим придти и с коммитом если считаешь что неправильно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #26

26. Сообщение от Аноним (20), 06-Дек-20, 21:06   +/
1. Зачем мне выполнять за Гугл его работу?
2. ... с перспективой получить ответ "и без твоего PR прекрасно жили"?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #35

27. Сообщение от Аноним (27), 06-Дек-20, 22:37   +1 +/
Избавляются от хлама. Пора закопать пистон
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29, #30

28. Сообщение от Rodegast (ok), 06-Дек-20, 23:58   +/
Чем оно лучше hypothesis-а?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #37

29. Сообщение от анонимуслинус (?), 07-Дек-20, 00:23   +/
я согласен с тем , что можно некоторые скрипты писать на баше или перле, но считаю питон удобным скриптовым языком. если ты относишься к нему как скриптовому языку, а не основному. писать проги надо на компилируемых языках, а мелкие обвязки или скрипты вызова можно и на питоне ( имею ввиду в операционке)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #34

30. Сообщение от Аноним (30), 07-Дек-20, 04:38   +/
Скорей закопают тебя
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

31. Сообщение от Аноним (31), 07-Дек-20, 07:15   +/
Эээ, american fuzzy loop не подойдёт?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

32. Сообщение от Аноним (31), 07-Дек-20, 07:19   –1 +/
В вызываемом там скрипте не делается ничего такого, что на питоне не ложится в сравнимое или меньшее количество строчек. Просто поиск текста в выводе objdump.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #33

33. Сообщение от Аноним (21), 07-Дек-20, 07:24   –1 +/
Зачем из питона вызывать шел с питоном (ну или без шела)? Нужен более многострочный и менее читаемый вариант? Нормальный, не вызывающий отвращения вариант аналогичного кода, будет значительно больше. И он будет менее удобен для сопровождения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

34. Сообщение от Аноним (34), 07-Дек-20, 08:39   –1 +/
Любой скриптовый язык в операционке - дыра в безопасности. Если установлены средства разработки, коим, безусловно, питон является, значит при взломе можно воспользоваться всем этим многообразием. На боевых система должны быть только компилируемые программы. Google для этого разработал Go.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #36, #38, #43, #52

35. Сообщение от VALERIIemail (?), 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
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #42, #46

36. Сообщение от Аноним (36), 07-Дек-20, 09:47   +/
Что теперь, даже sh выкинуть?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

37. Сообщение от Аноним (37), 07-Дек-20, 11:37   +/
тем что оно не hypothesis
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

38. Сообщение от Аноним (27), 07-Дек-20, 11:58   +/
Ты на бою разрабатываешь, Михаил?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

42. Сообщение от Ordu (ok), 07-Дек-20, 12:50   +/
Можно попробовать сделать dlopen, и получить адрес символа -- если адреса не нашлось, значит символа нету. Правда это в C, в пайтоне, наверное, всё немного иначе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

43. Сообщение от Аноним (43), 07-Дек-20, 13:08   +2 +/
Какая лютая ахинеечка от людей, которые даже близко к безопасности не стояли)
Жги ещё!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

45. Сообщение от Аноним (45), 07-Дек-20, 17:27   +/
Если пройтись по ссылкам из таблицы, там написано, что наработки купленных текстовых поисковиков использовались только для вычисления рейтинга для сортировки результатов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #47

46. Сообщение от Аноним (20), 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")

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #49

47. Сообщение от anonimous (?), 08-Дек-20, 01:08   +1 +/
>Если пройтись по ссылкам из таблицы, там написано, что наработки купленных текстовых поисковиков использовались только для вычисления рейтинга для сортировки результатов.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #48

48. Сообщение от Аноним (48), 08-Дек-20, 02:25   +/
В Гугле главное — это децентрализация. Он смог подняться благодаря тому, что за поиск отвечал не один-единственный супермощный и дорогой сервер, как у той же Альтависты, а скачанные страницы и индексы были с самого начала разбросаны по почти десятку разнородных машин (и интелы, и спарки, и пауэры). Чтобы угнаться за ростом Интернета, ему достаточно тупо докупать новые сервера для датацентров. Их уже миллионы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

49. Сообщение от VALERIIemail (?), 08-Дек-20, 21:38   +/
так это тоже самое + sh это pip пакет, который нужно доставлять
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #50, #51

50. Сообщение от Аноним (50), 08-Дек-20, 23:44   +/
sh не обязательно ставить, можно обойтись subprocess, просто как через subprocess делается я навскидку не скажу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49

51. Сообщение от Аноним (50), 08-Дек-20, 23:51   +/
Насчёт "то же самое" - зато извращаться не приходится с грепами. С чуть более сложным скриптом извращаться пришлось бы с седами авками и ксаргами и expr. Плюс можно избавиться от лишних процессов. При желании можно заюзать elfutils, и получать инфу вообще без парсинга вывода консольки в структурированном виде. Или наоборот можно заморочиться и сделать правильный парсер вывода без false-positiveов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #53

52. Сообщение от анонимуслинус (?), 09-Дек-20, 01:17   +/
компилируемые программы? ты про баш забыл и про сервак с кучей не компилируемых частей. а еще про дыры, которые открываются при работе двух программ совместно. а еще горе создателей сайтов на этих"не компилируемых" поделках. как итогсамая безопасная вариация запуск скомпиленого в машинный код сайта сразу из ядра. но у нас проблемка, а как мы будем админить все это желательно по сети? и прилетаем в докер и прочие? опять неувязочка, докер не дает безопасности, только мнимую. опять приплыли. как вариант создавать каждый раз новый сайт на ядре при каждом изменении настроек. но это же маразм. извини твои доводы граничат с невозможностью. вот так и живем с дырами и криворукими поделками. и кто знает сколько там дыр прячется в сети. так что отключи комп от розетки это безопаснее всего.))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

53. Сообщение от VALERIIemail (?), 09-Дек-20, 19:33   +/
> При желании можно заюзать elfutils, и получать инфу вообще без парсинга вывода консольки в структурированном виде. Или наоборот можно заморочиться и сделать правильный парсер вывода без false-positiveов.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру