Циферкой ошиблись! как мелкий баг в софте поставил подножку всему миру

Если не опасаться метафизических аналогий, ПО возможно представить как долгий-долгий рычаг: маленькая команда способна свернуть горы. К сожалению, ровно с той же холодной эффективностью рычаг трудится и против собственного создателя. Как это не редкость, прекрасно иллюстрирует совсем свежая история, случившаяся с немцем Дэвидом Криселем. Уцепившись за случайную и помой-му ерундовую неточность в софте (да не неточность кроме того, а так, недосмотр!), он вышел на потенциальные последствия, на фоне которых меркнет и пресловутый Stuxnet. И хоть производитель дал обещание патч, точку ставить рано.

А началось всё 24 июля, в то время, когда Крисель — никому не узнаваемый докторант, увлечённый самоорганизующимися компьютерными совокупностями, а на судьбу получающий в американском консалтинговом и проектном гиганте WorleyParsons, — столкнулся со необычным поведением многофункциональных устройств Xerox. Изучая копию квартирного замысла, сделанную на МФУ серии WorkCentre, Дэвид (либо кто-то из его сотрудников) понял, что жилая площадь указана неверно. Потому, что на оригинале стояла верная цифра, было разумеется, что неточность закралась в документ на протяжении копирования. Дабы убедиться, что им не померещилось, они изучили другие ранее откопированные документы, и совершили испытания на нескольких ксероксовских МФУ разных модификаций — с тем же результатом: цифры как словно кто-то подменял. Вот для примера отрывок из произвольной бухгалтерской ведомости, где прекрасно заметно, как это происходило.

По окончании первых опытов стало возмможно утверждать две вещи. В первую очередь обращение не идёт о случайном шуме, появившемся благодаря некачественного сканирования: понимаете, как если бы пятёрка, снятая при нехорошем освещении, начала казаться шестёркой. Знаки как раз подменялись: обратите внимание, как характерно проработана нижняя часть восьмёрки в фотографии выше — это очевидно восьмёрка, а не шестёрка с дорисованной дужкой! Во-вторых, это была не неточность OCR-движка. В противном случае говоря, подмена произошла не в ходе распознавания текста — по причине того, что Крисель отключил распознавание для чистоты опыта!

Тут парни в первый раз схватились за голову. Не требуется быть дотошным немцем, чтобы выяснить, из-за чего: последствия таковой «мелочи» могут быть катастрофическими! Xerox WorkCentre — весьма популярная марка: это офисные трудяги ценой под тысячу американских долларов, трудящиеся в мире. Мне не удалось найти статистики, но, думаю, не будет преувеличением высказать предположение, что реализованы миллионы таких устройств. Через них проходят счета, строительные замыслы, рецепты на лекарства, проектная документация на всевозможное оборудование — меньше, документы, неточности в которых смогут стоить компаниям существования, а пользователям – судьбы. И Дэвид (ох уж эти логичные немцы!), думается, до сих пор не оправился от удивления: как же так Xerox, уже какое-то время знавшая о существовании неточности, не пошевелила и пальцем, дабы её устранить?

Сделав собственное открытие, Крисель в первую очередь поставил в известность производителя. семь дней спустя, в то время, когда стало ясно, что научно-техническая поддержка Xerox, как говорится, ничего, и ответом кроме того не пахнет, он — подталкиваемый страхом, что для кого-то неточность может аукнуться громадными проблемами, — детально изложил всё на личном сайте. Сейчас Дэвид уже совершил настоящее изучение и узнал кое-какие новые подробности. Так, стало ясно, что неточности подвержены как самые ветхие модели WorkCentre, так и новейшие. И самое серьёзное: удалось максимально сузить круг «подозреваемых». На протяжении дискуссии с подключившимися к дискуссии энтузиастами Крисель заключил , что винить направляться метод компрессии графики JBIG2, применённый в ксероксовских автомобилях.

JBIG2 — несложная и страно действенная вещь. Могущий сжимать графические файлы как с утратами, так и без, он особенно оптимален (да и рекомендован) для сканирования текстовых документов. Приступая к сжатию очередного файла, JBIG2 создаёт собственного рода картотеку чаще всего видящихся графических образов, другими словами, скажем, запоминает, как выглядит буква «A», буква «Б» и без того потом. И любой раз, встретив что-то похожее на «A», готовый образ из словаря. Таковой подход не только разрешает сжимать сырые графические файлы в десятки раз, но и даёт поразительный эффект: с увеличением качества исходного документа размер сжатого файла значительно уменьшается! К сожалению, как выяснилось сейчас, это может выйти боком.

Скажем, шестёрка на скане среднего качества похожа на восьмёрку — и в случае если видимая отличие между ними не через чур громадна, то JBIG2 может её восьмёркой и заменить. А удастся, так и двойку поменяет на семёрку, а также единичку – на тройку.

Xerox упиралась до последнего. В первую очередь, в то время, когда Крисель таки достучался до управления компании, его постарались убедить, что он имеет дело не с багом, а с «фичей» (воистину канонический ответ, так что простите за картину, не удержался). Только по окончании 14 дней препирательств компания выпустила первый пресс-релиз, в котором предотвратила пользователей об опасности и внесла предложение обходной путь (выставить в особенностях компрессии «higher» вместо «normal», и сканировать документы с качеством выше 200 DPI). Увы, Крисель срочно воспроизвёл неточность и при таких параметрах — и только 12 августа отпраздновал полную победу: Xerox признала баг и дала обещание патч в скором времени.

Что ж, осталось немного: достучаться до всех клиентов WorkCentre (и WorkCentrePro, ColorQube, BookMark) и вынудить их инсталлировать апгрейд. Учитывая, что, треть компьютерного мира всё ещё трудится под Windows XP, реально ли это?

Но аппараты Xerox — это кроме того не полбеды. JBIG2, стандартизованный тринадцать лет назад, запатентован (IBM, Mitsubishi), но условия лицензирования легки, так что метод распространён очень обширно. Практически он употребляется сейчас в аппаратных и тысячах программ продуктов в мире и всем платформам, от MS Windows до Linux. Несложный поиск по термину «JBIG2» в “Гугле” даёт много тысяч упоминаний, в основном в связи со спецификациями либо девелоперскими качествами, потому что конечного пользователя такие подробности не интересуют, да и не должны интересовать. Наряду с этим один из читателей Криселя уже сказал о воспроизведении неточности с подменой цифр на МФУ компании Brother (популярная в Российской Федерации марка). А кто проверит продукты Adobe, а отечественной ABBYY (и в том месте и в том месте JBIG2 используется)?

В случае если кроме того Xerox столь безответственна, что, зная о проблеме очевидно не первый год, только мельком помянула её в мануалах, но так и не потрудилась исправить, возможно ли рассчитывать на познание вторых разработчиков и производителей?

Ангел хранитель подставил подножку


Похожие статьи: