Программист внедрил логическую бомбу в таблицы Excel

m.habr.com — чтобы гарантировать себе заказы на техподдержку. Программист разработал для компании сложные таблицы Excel с формулами, которые ссылались на другие таблицы, с формами, кнопками и т. д. По идее, после выполнения заказа таблицы должны были нормально функционировать, а его работа была завершена после окончательного расчёта. Но через некоторое время формы по непонятной причине начинали глючить...
Новости, Компьютеры | Soloqub 10:20 30.07.2019
38 комментариев | 63 за, 1 против |
#1 | 10:20 30.07.2019 | Кому: Всем
На прошлой неделе бывший подрядчик Siemens, разработчик из Питтсбурга Дэвид Тинли (David Tinley) признан виновным в «умышленном повреждении защищённого компьютера» и компьютерном саботаже.

Программист разработал для компании сложные таблицы Excel с формулами, которые ссылались на другие таблицы, с формами, кнопками и т. д. По идее, после выполнения заказа таблицы должны были нормально функционировать, а его работа была завершена после окончательного расчёта. Но через некоторое время формы по непонятной причине начинали глючить — и компания обращалась к Тинли за помощью и платной консультацией.

Такие действия Тинли напоминают «запланированное устаревание», которое умышленно планируют производители электроники и компьютеров, чтобы пользователи через несколько лет покупали новый гаджет вместо устаревшего или сломанного. Но если компаниям удаётся выйти сухими из воды, Тинли не сможет избежать наказания: ему грозит до десяти лет лишения свободы.

52-летний Дэвид Тинли признал себя виновным в том, что оставил «логические бомбы» в пользовательских электронных таблицах, которые Siemens использовала для управления заказами на электрогенерирующее оборудование и для медицинской диагностики. После определённой даты этот код создаёт сбои в программе, которые Тинли затем «исправлял» простым переносом даты появления сбоев на более поздний срок, сказали прокуроры.

Ниже выдержка из обвинительного заключения, опубликованного на Scribd.

[censored]

Тинли был независимым подрядчиком подразделения Siemens в Монровилле, штат Пенсильвания, около 15-ти лет, с начала 2000-х годов. Он написал «автоматизированные электронные таблицы, которые рассчитывали рабочий процесс и смету затрат для заказов клиентов в подразделении производства электроэнергии Siemens».

Прокуратура утверждала, что Тинли вставил «логические бомбы» в защищённый паролем код, чтобы после определённой даты электронные таблицы «начали беспорядочно глючить, создавая сообщения об ошибках и изменяя размер экранных кнопок». Затем Siemens звонили своему проверенному подрядчику, чтобы исправить проблему. Он это делал, открыв свой код и просто передвинув дату, когда электронные таблицы снова перестанут работать.

Тинли отказывался дать кому-либо пароль для изучения или редактирования кода, но его уговорили сделать это в 2016 году, когда он был в отпуске, а Siemens пришлось провести важный и срочный заказ через его систему, которая внезапно начала глючить. Тогда-то он и выдал пароль, а сотрудники Siemens обнаружили саботаж.

Детали судебного разбирательства тоже довольно любопытны. Во-первых, логические бомбы не причинили компании особого ущерба, потому что программист быстро всё исправлял. Более того, на него даже не завели бы уголовного дела, потому что сумма ущерба не превысила положенного по законодательству порога в $5000. Однако прокуроры сказали, что порог ущерба в размере $5000 для классификации преступления как уголовного преступления был соблюден, потому что Siemens потратила около $42 тыс. на оплату сотрудников и адвокатов, которые расследовали, не повредили ли глюки компании и её бизнесу каким-либо образом (оказалось, что не повредили, но это не важно для оценки стоимости работ по аудиту). Ответчик обязан компенсировать эти расходы (вдобавок к потенциальному сроку тюремного заключения). Кроме того, суд постановил конфисковать два его ноутбука (вероятно, как «орудия преступления»).

Во-вторых, сам программист долгое время отрицал свою вину. Он утверждал, что не заработал дополнительных денег на выполнении этих заказов, а ставил пароль на свой код исключительно для защиты интеллектуальной собственности. Но представитель прокуратуры заявил, что формулировка о мотиве Тинли «не была частью изложения фактов в поддержку признания вины, но была поднята его адвокатом в качестве возможного смягчающего фактора для будущего приговора». В результате этого своеобразного юридического казуса программиста вынудили признать вину и согласиться со всеми формулировками прокуратуры, в том числе о корыстном мотиве при установке пароля.

Судья вынесет окончательный приговор Тинли 8 ноября. Ему грозит до 10 лет тюрьмы, штраф в размере 250 000 долларов или и то, и другое. Дело «США против Тинли», № 2:19-cr-00156 рассматривается в Окружном суде США по Западному округу Пенсильвании.

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

В похожем процессе 2006 года системный администратор компании UBS PaineWebber Роджер Дуронио (Roger Duronio) получил восемь лет тюрьмы за размещение логической бомбы в корпоративную сеть работодателя и сделав ставку на бирже на падение его акций. Этот сотрудник неоднократно жаловался на плохие условия работы в компании, затем он уволился, но 4 марта 2002 года примерно на 1000 из 1500 корпоративных компьютеров сработала логическая бомба, которая начала удалять файлы с машин. Сам он тем временем купил пут-опционы на падение акций UBS после 4 марта на общую сумму $23 тыс. Вероятно, таким способом системный администратор хотел «компенсировать ущерб», который нанесла ему компания своими плохими условиями работы и недоплачивая ему положенные деньги. Сама фирма заявила об ущербе $3,1 млн, которые ответчик должен компенсировать.

В сентябре 2018 года житель Атланты Миттеш Дас (Mittesh Das) был приговорён к двум годам тюрьмы за размещение логической бомбы в бухгалтерское приложение Regional Level Application Software (RLAS) для выплаты жалования солдатам Армии США, что привело к задержкам выплаты зарплаты в 17 дней. Программист перед этим сам два года обслуживал эту базу данных по договору подряда. Логическая бомба сработала, когда заказчик заключил договор на обслуживание с другим подрядчиком. Армия заявила, что потратила $2,6 млн на расследование инцидента и аудит системы RLAS. В итоге разработчик был приговорён к двум годам тюрьмы и выплате $15 млн штрафов и компенсации издержек.

Несмотря на все эти прецеденты, некоторые фрилансеры и сейчас применяют подобные методы, чтобы более надёжно «привязать» к себе выгодного клиента. Более того, отдельные разработчики считают нормальным, что можно дистанционно отключить какой-то модуль или активировать тайм-бомбу, если заказчик не оплатил работу. Программисты зачастую не подозревают, что за это грозит административная и уголовная ответственность.

С другой стороны, в комментариях высказывают мнение, что тайм-бомбу можно спрятать среди логических функций таким образом, что её никогда не обнаружат, а если обнаружат, то не смогут отличать от случайной ошибки, а ведь за ошибки никто не имеет права наказывать. Другими словами, здесь важен факт, смогут ли они доказать наличие умысла при установке бомбы. В общем, к этому делу нужно подходить с умом и иметь далёкий горизонт планирования, а не как у американского программиста, который забыл о дате и ушёл в отпуск перед тем, когда сработала его логическая бомба в электронных таблицах.
#2 | 10:34 30.07.2019 | Кому: Всем
> Такие действия Тинли напоминают «запланированное устаревание», которое умышленно планируют производители электроники и компьютеров, чтобы пользователи через несколько лет покупали новый гаджет вместо устаревшего или сломанного. Но если компаниям удаётся выйти сухими из воды, Тинли не сможет избежать наказания: ему грозит до десяти лет лишения свободы.

Что позволено Юпитеру, не позволено быку.
#3 | 10:37 30.07.2019 | Кому: Всем
Интересно, а сколько раз он приезжал чинить перед тем как насторожились в сименсе?
pyth2000
не фашист »
#4 | 10:57 30.07.2019 | Кому: Александррр
Написано в статье.
#5 | 11:04 30.07.2019 | Кому: Soloqub
> Более того, отдельные разработчики считают нормальным, что можно дистанционно отключить какой-то модуль или активировать тайм-бомбу, если заказчик не оплатил работу. Программисты зачастую не подозревают, что за это грозит административная и уголовная ответственность.

Закон - это выраженная на бумаге воля правящего класса. Правящий класс у нас - капиталисты
Пролетарию требовать у буржуя зарплату за сделанную работу - это нарушение закона.

[censored]
#6 | 11:05 30.07.2019 | Кому: Александррр
> Интересно, а сколько раз он приезжал чинить перед тем как насторожились в сименсе?

Я думаю, не уговори они его раскрыть исходный код, ездил бы до сих пор. Программа сложная, периодически подглючивает, её чинят, всё норм.
#7 | 11:06 30.07.2019 | Кому: Soloqub
> Несмотря на все эти прецеденты, некоторые фрилансеры и сейчас применяют подобные методы, чтобы более надёжно «привязать» к себе выгодного клиента.

таких и внутри компаний полно. особенно грешат линуксоиды. и далеко не всегда это умышленные "бомбы".
помимо этого можно порой обнаружить работу "агентов влияния": внезапно кто-нибудь начинает яростно внедрять IBM или Amazon.
#8 | 11:09 30.07.2019 | Кому: Всем
Ахренеть. Целый буржуйский Сименс ведет учет на коленке в экселе
#9 | 11:10 30.07.2019 | Кому: Soloqub
> не уговори они его раскрыть исходный код

Эксель открывается на раз. Защита от дурака.
#10 | 11:21 30.07.2019 | Кому: Goman
я тоже офигел
#11 | 11:23 30.07.2019 | Кому: Goman
> Целый буржуйский Сименс ведет учет на коленке в экселе

Работает - не трогай (с)
#12 | 11:23 30.07.2019 | Кому: Goman
> Эксель открывается на раз. Защита от дурака.

А в Сименс и не работают Хокинги. На подсчётах-то всяческой хуерги.
Regal
злостный антипрививочник »
#13 | 11:26 30.07.2019 | Кому: Всем
> Программист внедрил логическую бомбу

Я бы еще у него Коран поискал.
#14 | 11:27 30.07.2019 | Кому: Goman
> Эксель открывается на раз. Защита от дурака.

Это делается официальной программой от Microsoft? Если нет, то законопослушные немцы не могут это сделать :)
#15 | 11:37 30.07.2019 | Кому: Всем
На кол таких хитровыделанных мудаков. Одно дело твое творение и такая кривая лицензия, другое - разработка ПО под заказ или на постоянной работе.
#16 | 12:08 30.07.2019 | Кому: r_s
> На кол таких хитровыделанных мудаков.

В идеальном мире - да.

В реальном мире, особенно в небольших городах (как мне это представляется), заказчики частенько хотят подмухлевать: недоплатить, впарить больше работы, чем оговаривалось и т.д. в стиле "вот всё доделаешь, там и заплачу", а по факту - всё равно что-то скроит. И отдельные гении вставляют такие вот "логические бомбы" в свой код. Они не столько причиняют явный ущерб, сколько "тормозят" работу, делают менее удобной. Зато есть почти 100% гарантия того, что заказчик выплатит оговорённую сумму. И потенциальных заказчиков не так много, чтобы выбирать хороших.
#17 | 12:26 30.07.2019 | Кому: stormlord
> Работает - не трогай (с)

Криповатые решения на коленке как правило жрут человекочасы как не в себя. Нормально сделанный софт очень хорошо и время экономит и ошибки контролит.
#18 | 12:29 30.07.2019 | Кому: r_s
Пытаюсь в противовес буржуазному практиковать пролетарское мышление.
С моей позиции, как пролетария, отмечен момент, что за одинаковую блядскую тактику накажут только пролетария, а капиталисту ничего не будет. И это ключевое.
#19 | 12:38 30.07.2019 | Кому: sergy
> накажут только пролетария, а капиталисту ничего не будет

У пролетария нет возможности оплатить хороших адвокатов, а у капиталиста - есть. Надежнее наехать на пролетария, соответственно.
#20 | 12:58 30.07.2019 | Кому: Goman
Детали могут быть разные кмк. У того же капиталиста намного больше шансов подправить законодательство, если текущее даёт слишком много преимуществ пролетарию.
На пример наши ООО ответственны только в пределах уставного капитала и постоянно пропихиваются всякие декриминализации финансовых преступлений.
Суть в том у кого (класса) власть.
#21 | 13:06 30.07.2019 | Кому: sergy
> Детали могут быть разные кмк

Этта да. Но я по простому, по пролетарски ответил )
#22 | 13:44 30.07.2019 | Кому: Soloqub
>>С другой стороны, в комментариях высказывают мнение, что тайм-бомбу можно спрятать среди логических функций таким образом, что её никогда не обнаружат, а если обнаружат, то не смогут отличать от случайной ошибки, а ведь за ошибки никто не имеет права наказывать.

По моему фраера только лень сгубила. Не внедрял бы очевидный механизм для саботажа с датой-триггером - действительно фиг бы его поймали.

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

Ну да, ну ошибки. С кем не бывает. Он же не может все идеально вылизать. Зато вон вам каждые несколько месяцев новую версию выкатывает с новыми фичами (которых никто может особо и не просил)...
fetisad
надзор »
#23 | 13:46 30.07.2019 | Кому: Goman
> Эксель открывается на раз. Защита от дурака.

Што же ты делаешь??? Ай-йа-йай!
#24 | 13:49 30.07.2019 | Кому: Goman
Спасибо! Мне б научится отличать говно от конфет. А на одних вопросах далеко не уедешь.
#25 | 14:28 30.07.2019 | Кому: Всем
Пока работал на оутсорсе постоянно делал подобное. Один Ехе до оплаты. Второй после.
Очень помогало получить полную стоимость, а не только предоплату.
#26 | 15:26 30.07.2019 | Кому: Всем
Более того, отдельные разработчики считают нормальным, что можно дистанционно отключить какой-то модуль или активировать тайм-бомбу, если заказчик не оплатил работу. Программисты зачастую не подозревают, что за это грозит административная и уголовная ответственность.

не оплатил - значит и программист ничего не должен. собсна на фрилансе сам так все время делал и были пара клиентов которые без оплаты потом мне звонили и предьявляли ваша работа сломалась.
#27 | 16:55 30.07.2019 | Кому: Всем
Вот интересно, если я не оплатил венду, я аццкий пират, недополученная прибыль раз в 5 больше ценника. А в случае прошраммиста и неоплатившего заказчика этот же закон кто пробовал подтянуть? Хотя с доказухой мошут быть проблемы.
#28 | 18:29 30.07.2019 | Кому: Котовод
> Вот интересно, если я не оплатил венду, я аццкий пират, недополученная прибыль раз в 5 больше ценника. А в случае прошраммиста и неоплатившего заказчика этот же закон кто пробовал подтянуть? Хотя с доказухой мошут быть проблемы.

с доказухой вообще почти никак. требования формулируются часто крайне расплывчато. подтягивать закон теоретически можно, но не эффективно - суды могут годами идти. с другой стороны если фрилансишь через площадки, то они могут выступать арбитрами в спорах заказчик-исполнитель.
через это если работаешь по модели Fixed Price - делаешь всё у себя и отдаешь только после оплаты (как выше писали).
если заказчик требует работы в его окружении, то только Time & Material (на пример, срочный контракт).
#29 | 18:46 30.07.2019 | Кому: Котовод
> Вот интересно, если я не оплатил венду, я аццкий пират, недополученная прибыль раз в 5 больше ценника.

ты нафиг никому не нужен. проще тебе винду залочить или диск зашифровать, превратив инфу в кучу мусора, чем судится с тобой. а вот если ты пиратский автокад будешь за денюжку ставить страждущим, то это уже уголовка и подтягивать будет не компания, недополучившая прибыль, а буржуазная полиция.
#30 | 19:46 30.07.2019 | Кому: Котовод
Это может свидетельствовать о том, какой Эксель охуенный? )))
#31 | 20:19 30.07.2019 | Кому: sergy
> требования формулируются часто крайне расплывчато.

Поэтому толковые конторы и отдельные фрилансеры подгоняют заказчику ТЗ на подпись.
#32 | 20:21 30.07.2019 | Кому: Danika
> Это может свидетельствовать о том, какой Эксель охуенный? )))

Эксель он конечно охуенный, но всякий инструмент надо использовать по назначению. А тут все равно что макитовским шуруповертом стены штробить.
#33 | 04:09 31.07.2019 | Кому: Котовод
> Поэтому толковые конторы и отдельные фрилансеры подгоняют заказчику ТЗ на подпись.

это работает примерно в той же степени, что и трудовой договор и ТК РФ. они вроде бы есть, но методов кинуть работника - куча.
существует масса способов не принять работу и если ты работаешь по Fixed Price, то, к примеру, просто будут находить баги и объяснять что они для заказчика критические, растягивая контракт по времени, что его уже просто невыгодно делать.
#34 | 04:20 31.07.2019 | Кому: Котовод
> Эксель он конечно охуенный, но всякий инструмент надо использовать по назначению. А тут все равно что макитовским шуруповертом стены штробить.

в вопросах бабла я малограмотный, какие инструменты сейчас модные для "рассчитывали рабочий процесс и смету затрат для заказов клиентов в подразделении производства электроэнергии Siemens"?
#35 | 05:23 31.07.2019 | Кому: sergy
Программа на шарпе или жабе.
#36 | 05:31 31.07.2019 | Кому: Котовод
ясно. думал есть готовые решения, которые в кастомизированом виде применяют крупные конторы.
#37 | 09:09 31.07.2019 | Кому: Regal
> Я бы еще у него Коран поискал

Лучше vodka, matreshka, и удостоверение ГРУ!!!
#38 | 11:52 31.07.2019 | Кому: sergy
> ясно. думал есть готовые решения, которые в кастомизированом виде применяют крупные конторы.

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