TechNews.bg
Водещи новиниНовиниТоп новини

Софтуерен бъг направил програмист богат за часове

Понякога неволна грешка в кода може да доведе до… натрупване на богатство
(снимка: CC0 Public Domain)

Програмист, случайно сбъркал само няколко знака в кода на вътрешния софтуер на телекомуникационен оператор, за няколко часа станал много богат – по сметката му постъпила внушителна сума. Но в крайна сметка той трябвало да върне парите под зоркия поглед на службата за сигурност и да коригира грешката в кода.

Софтуерният специалист в малък мобилен оператор прехвърлил неволно огромна сума по сметката си, като допуснал грешка в програмния код. За тази любопитна случка от началото на 21 век разказва The Register. В публикацията програмистът е наричан Трей.


100 вместо 0,01

Трей работил в малка телекомуникационна компания, чието име не се разкрива. Фирмата активно изграждала клетъчни мрежи от трето поколение (3G) и се нуждаела от специализиран вътрешен софтуер за обработка на данни – нещо като система за таксуване на базово ниво.

Трей бил част от екипа, разработил софтуера. Един ден той забелязал, че шлюзът за плащане не се държи правилно и затова написал малка програма, която да изпраща тестови транзакции към акаунта му на интервали от пет минути, докато шлюзът се възстанови. Но планирайки да зададе размера на една транзакция на $0,01, той грешно написал $100.

Преди внедряването Трей показал програмата за тестване на шлюза на своя мениджър и той я харесал толкова много, че настоял за незабавното ѝ интегриране в системата на оператора. Шефът на Трей не се притеснил от факта, че това е “домашно” написан софтуер, разработен без инструкции, нито от факта, че е само ранна нестабилна версия, за което бил предупреден от разработчика.

Три сериозни грешки

Всъщност в програмния код на Трей са допуснати три сериозни грешки, две от които той не успял да открие по време на тестването, а третата нямал време да поправи. Първата грешка била в стойността на тестовите транзакции, която трябвало да бъде цяло число, последвано от модификатор.

Идеята на Трей била, че цялото число в стойността ще бъде 1, а модификаторът ще бъде -2, което ще създаде тестова транзакция от $0,01. Но експонентата била случайно зададена на 2 вместо на -2, в резултат на което всяка транзакция струвала $100.


Втората грешка била липсата на така наречената „проверка на жизнеспособността” (liveness check). Когато един от шлюзовете за плащане падне, програмата не заспива за пет минути след всяка неуспешна транзакция, а просто веднага се опитва да обработи транзакцията отново, което води до безкраен брой транзакции.

Третата грешка, за която Трей знаел, но смятал да я коригира по-късно, била, че изборът на кредит или дебит в тестовите транзакции трябвало да бъде случаен, но по някаква причина винаги се появявал като кредит. Трей решил, че това няма да е чак толкова голям проблем, като се има предвид, че транзакциите трябвало да бъдат само $0,01 на всеки пет минути, но не взел предвид наличието на предишните две грешки.

По-добре не спорете с охраната

Когато тестовата програма вече работила в инфраструктурата на оператора, един от шлюзовете за плащане спрял да функционира. Било късно вечерта, след края на работното време. Малката помощна програма на Трей реагирала незабавно и започнала да захранва тестовата му сметка със $100 почти без прекъсване през следващите няколко часа.

Пристигайки на работа на следващата сутрин, Трей бил посрещнат от служителите по сигурността на оператора с много сериозни изражения на лицата. След като го поздравили, те попитали какви измамни схеми се опитва да завърти зад гърба на работодателя си. До този момент Трей натрупал цяло състояние в тестовата си сметка, пише The Register, без да разкрива сумата.

Неговият пряк ръководител успял да спаси Трей от цяла поредица от проблеми. Обяснил ситуацията на служителите по сигурността и описал как самият той е разрешил внедряването на нетествана програма. Не е известно какви санкции в крайна сметка са били приложени срещу Трей и неговия шеф, но тестовата сметка на програмиста била принудително изпразнена.


още от категорията

Кодът, генериран от AI, съдържа 1,7 пъти повече грешки от човешкия

TechNews.bg

AI агент Kiro разработва самостоятелно софтуер

TechNews.bg

ИТ гигант дава до $5 млн. награда за открита уязвимост

TechNews.bg

Бъдещите разработчици няма да кодират, а ще управляват AI

TechNews.bg

Не ви се пише код? Opal ще го направи вместо вас

TechNews.bg

GPT-5 обещава значителен напредък в програмирането

TechNews.bg

1 коментар

Idioti 21/12/2024 at 01:40

Maloumnici

Отговор

Коментари