Понял что имеется ввиду. В последней версии исходника уже исправлено. Я там правда другую штуку реализовывал: выяснилось что у разных пользователей разные предпочтения по чувствительности энкодера, сделал эту часть настраиваемой (параметр encoderSpeedDiv)
Тут важно что hwCounter получает значение из аппаратного счётчика, он работает как работает, и там нет никаких минимальных\максимальных значений (кроме ограничений HW)
С учётом этого нюанса пока не понял как написать лучше, и главное - чего мы этим исправлением достигнем.
По юридической части вопроса ничего ответить не могу - компетенций нет. По технической\организационной видится что CrowdStrike могла бы избежать катастрофической ситуации если бы было реализовано хотя бы одно из:
Исходный код не содержал ошибки. Понятно что весь софт с багами, однако есть практики значительно минимизирующие шанс подобных ошибок.Например, статические и динамические анализаторы, secure coding guideline, secure code review и т.п
Было проведено тщательное тестирование, обнаружившее данную ошибку ДО выкладывания на сервера обновлений
Пусть даже сбойная версия выложена на сервера обновления. Но ведь раскатку можно делать поэтапно и мониторить ситуацию, тогда это затронуло бы на порядки меньше устройств
Все 3 описанные митигации реализованы в продуктах Лаборатории Касперского.
Что ещё хочется отметить: антивирус и операционная система - продукты, полноценно протестировать совместимость которых - задача нетривиальная ввиду бесконечного количества возможных окружений/сценариев/API. Было бы интересно иметь защиту от подобных ситуаций в архитектуре решения, делающей изначально невозможной подобные ситуации. И тут мы плавно подходим к операционным системам с микроядром. В таких ОС антивирус был бы обычным приложением, работающим в юзер-моде. При падении чего-то в антивирусе, есть хорошие шансы что микроядерная ОС сможет это пережить.
Понял что имеется ввиду. В последней версии исходника уже исправлено. Я там правда другую штуку реализовывал: выяснилось что у разных пользователей разные предпочтения по чувствительности энкодера, сделал эту часть настраиваемой (параметр encoderSpeedDiv)
Тут важно что hwCounter получает значение из аппаратного счётчика, он работает как работает, и там нет никаких минимальных\максимальных значений (кроме ограничений HW)
С учётом этого нюанса пока не понял как написать лучше, и главное - чего мы этим исправлением достигнем.
По юридической части вопроса ничего ответить не могу - компетенций нет.
По технической\организационной видится что CrowdStrike могла бы избежать катастрофической ситуации если бы было реализовано хотя бы одно из:
Исходный код не содержал ошибки. Понятно что весь софт с багами, однако есть практики значительно минимизирующие шанс подобных ошибок.Например, статические и динамические анализаторы, secure coding guideline, secure code review и т.п
Было проведено тщательное тестирование, обнаружившее данную ошибку ДО выкладывания на сервера обновлений
Пусть даже сбойная версия выложена на сервера обновления. Но ведь раскатку можно делать поэтапно и мониторить ситуацию, тогда это затронуло бы на порядки меньше устройств
Все 3 описанные митигации реализованы в продуктах Лаборатории Касперского.
Что ещё хочется отметить: антивирус и операционная система - продукты, полноценно протестировать совместимость которых - задача нетривиальная ввиду бесконечного количества возможных окружений/сценариев/API. Было бы интересно иметь защиту от подобных ситуаций в архитектуре решения, делающей изначально невозможной подобные ситуации.
И тут мы плавно подходим к операционным системам с микроядром. В таких ОС антивирус был бы обычным приложением, работающим в юзер-моде. При падении чего-то в антивирусе, есть хорошие шансы что микроядерная ОС сможет это пережить.
Кстати, в Kaspersky OS микроядро :)