The OpenNET Project / Index page

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



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

Оглавление

Федеральный Суд США обязал предоставить исходные тексты ПО для анализа ДНК, opennews (??), 01-Мрт-21, (0) [смотреть все]

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


51. "Федеральный Суд США обязал предоставить исходные тексты ПО д..."  +1 +/
Сообщение от KT315 (ok), 01-Мрт-21, 15:35 
После того, как открыли черный ящик (исходный код), можно четко понимать какими будут выходные данные, если скормить определенные входные данные.
И у защиты есть два способа спасения по сути:
1. Найти тест при котором выходные данные будут явно не корректные, того программа имеет ошибки, а значит теряет доверие.
2. Найти расхождение в результатах тех что сделали в лабе и те что они получили у себя, скормив алгоритму одни и те же входные данные.

В целом это забавно) Ведь много зависит от откружения... Билда ОС, версий либ, с которыми она линкуется, а если еще вспомнить всякие возможные флаги и оптимизации при компиляции, из-за которых иногда ПО работает некорректно, из-за ошибок того же компилятора...
Интересный кейс в рамках ПО, на самом деле.

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

88. "Федеральный Суд США обязал предоставить исходные тексты ПО д..."  +/
Сообщение от Ordu (ok), 01-Мрт-21, 23:03 
> Ведь много зависит от откружения... Билда ОС, версий либ, с которыми она линкуется, а если еще вспомнить всякие возможные флаги и оптимизации при компиляции, из-за которых иногда ПО работает некорректно, из-за ошибок того же компилятора...

Если много зависит от окружения, то зачем такая программа нужна вообще? Как ты можешь ей доверять, если она вместо единственно правильного поведения демонстрирует платформо-зависимое?

> Интересный кейс в рамках ПО, на самом деле.

Юридически интересный. Может с какими интересными экономическими реперкуссиями, но по-хорошему, если софтина написана согласно тем стандартам, которым следует писать софтину, результат работы которой может отправить человека на смертную казнь, то она легко пройдёт аудит. Потому что для неё это будет не Аудит, а ещё один аудит, который вряд ли покажет что-то новое.

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

> После того, как открыли черный ящик (исходный код), можно четко понимать какими будут выходные данные, если скормить определенные входные данные.

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

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

94. "Федеральный Суд США обязал предоставить исходные тексты ПО д..."  –3 +/
Сообщение от KT315 (ok), 01-Мрт-21, 23:18 
> Если много зависит от окружения, то зачем такая программа нужна вообще? Как ты можешь ей доверять, если она вместо единственно правильного поведения демонстрирует платформо-зависимое?

Так ведет себя абсолютно весь софт. Дело не в платформе, а в окружении.

> На самом деле не так.

Да все так. Иначе не было бы тестирования как такового, и не было тестов как таковых. И баг, это и есть нарушение когда есть определенные входные данные, и результат, выходные данные, не соответствуют ожиданиям. Что может помощь защите, если таковые найдутся.
Ну и с известной функцией проще работать, чем с неизвестной :)

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

95. "Федеральный Суд США обязал предоставить исходные тексты ПО д..."  +/
Сообщение от Ordu (ok), 02-Мрт-21, 00:16 
>> Если много зависит от окружения, то зачем такая программа нужна вообще? Как ты можешь ей доверять, если она вместо единственно правильного поведения демонстрирует платформо-зависимое?
> Так ведет себя абсолютно весь софт. Дело не в платформе, а в
> окружении.

Нет, не абсолютно. Если софт хочет стабильно парсить ввод, а sscanf на разных платформах ведёт себя по разному, то софт прекращает пользоваться sscanf или таскает с собой свою реализацию sscanf. Если твоя программа считает сумму 2+2 по разному на разных платформах и даёт разные результаты, то твоя программа не нужна.

>> На самом деле не так.
> Да все так. Иначе не было бы тестирования как такового, и не
> было тестов как таковых. И баг, это и есть нарушение когда
> есть определенные входные данные, и результат, выходные данные, не соответствуют ожиданиям.

И что с того? Ну вот ты можешь логику свою изложить? Как ты из своего определения бага делаешь вывод, что реверс чёрного ящика -- это не построение обратной функции? Или ты какой-то иной вывод делаешь? Что для поиска бага не нужна обратная функция? Но если тебе не нужна обратная функция, то зачем тебе вообще нужен реверс: чёрный ящик специально сделан таким образом, чтобы быть максимально эффективной реализацией прямой функции, чтобы ты мог засунуть в него входные данные и посмотреть выходные. Мне неясно, как ты из определения бага вдруг вываливаешься в то, что реверс -- это не построение обратной функции, если ты об этом.

Тестирование -- это лишь одна из методик. И для тестирования тебе не надо разбирать чёрный ящик. Это совершенно не нужно. Более того, я слышал рекомендации писать тесты не зная, как чёрный ящик реализован, потому что знание реализации запросто может привести к тому, что ты будешь делать предположения о том, каких багов нет и быть не может, те же предположения, которые сделал программист, написавший код, который ты пытаешься покрыть тестами. И совершенно все в один голос твердят, что надо по возможности разделять задачи: чтобы код писал один человек, а тестами покрывал другой.

Проверить, приведёт ли x0 в входных данных к y0 в выходных, можно легко засунув x0 в чёрный ящик, и посмотрев, вывалится с другой стороны y0 или y1.

Ты в курсе того, что в gdb добавили "обратную отладку"? То есть возможность проигрывать выполнение процесса назад, шаг за шагом? Как ты думаешь почему? А я скажу тебе: потому что когда ты пытаешься понять, как так в этом месте происходит use-after-free, тебе надо понять кто и когда освободил кусок памяти. Но это произошло когда-то в прошлом, возможно задолго до того момента, когда произошёл use-after-free и твой дебуггер триггернулся.

То есть ты, имея результат работы программы, пытаешься выяснить что привело к такому результату. А для этого тебе нужна обратная функция. То есть обратная отладка.

Я очень рекомендую тебе взять и почитать что-нибудь с большим количеством прямых и обратных функций. Сложно сообразить навскидку что именно, но если будут затруднения выбрать раздел математики, где побольше таких вещей, то ты можешь спросить меня, я подумаю подольше, хотя бы пять минут. Подобные упражнения научат тебя видеть прямые функции и обратные и понимать когда ты работаешь с прямой, а когда с обратной.

> Ну и с известной функцией проще работать, чем с неизвестной :)

Ты хочешь сказать, что с функцией, реализация которой известна, проще работать и искать баги в ней? Да, проще. Потому что ты можешь эту функцию разбить на много функций, и обратить либо её всю, либо вот те более мелкие функцие обращать, и имея обратные строить рассуждения о том, какие аргументы нужны, чтобы получить тот или иной результат. Попробуй хоть раз подумать мозгом: когда ты ищешь аргумент, который приводит к какому-то результату, ты пытаешься высчитать значение обратной функции. Вместо аргумента ты можешь получить множество аргументов, которые приводят к какому-то результату -- обратная функция не обязана быть однозначной (некоторые определения функции вообще требуют от неё однозначности, и... но не суть важно, открой учебник да почитай).

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

128. "Федеральный Суд США обязал предоставить исходные тексты ПО д..."  +/
Сообщение от nobody (??), 02-Мрт-21, 14:11 
Ну да, 2*2 может быть 3 или 5, в зависимости от платформы. А в военное время даже 6!
Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

117. "Федеральный Суд США обязал предоставить исходные тексты ПО д..."  +1 +/
Сообщение от Аноним (116), 02-Мрт-21, 10:09 
> С другой стороны, это если компания разработчик достаточно ответственная, а если нет... Но вот аудит и позволит узнать.

Вспоминается история с софтом рентгеновского аппарата, который из-за race condition переоблучал пациентов до состояния трупа.

Ответить | Правка | К родителю #88 | Наверх | Cообщить модератору

133. "Федеральный Суд США обязал предоставить исходные тексты ПО д..."  +/
Сообщение от Ordu (ok), 02-Мрт-21, 15:28 
>> С другой стороны, это если компания разработчик достаточно ответственная, а если нет... Но вот аудит и позволит узнать.
> Вспоминается история с софтом рентгеновского аппарата, который из-за race condition переоблучал
> пациентов до состояния трупа.

Я слышал эту историю, но не помню. В чём там мякотка была? Вроде в том, что непонятно было кто виноват: программное обеспечение или операторы этих аппаратов. Так?

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

137. "Федеральный Суд США обязал предоставить исходные тексты ПО д..."  +1 +/
Сообщение от Совершенно другой аноним (?), 02-Мрт-21, 15:50 
>>> С другой стороны, это если компания разработчик достаточно ответственная, а если нет... Но вот аудит и позволит узнать.
>> Вспоминается история с софтом рентгеновского аппарата, который из-за race condition переоблучал
>> пациентов до состояния трупа.
> Я слышал эту историю, но не помню. В чём там мякотка была?
> Вроде в том, что непонятно было кто виноват: программное обеспечение или
> операторы этих аппаратов. Так?

Тут нашлось про race condition: https://tech.onliner.by/2019/04/25/therac-25

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

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

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




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

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