ТОП–35 БЕЗУМНЫХ багов в истории

*https://www.youtube.com/watch?v=2XCXHCv0Glw
**https://300.ya.ru/v_01LxxUZl

таймкоды

00:00:00 Введение в тему багов

  • Обсуждение первых багов в истории IT.
  • Термин «бак» появился в XIX веке среди инженеров и механиков.
  • Первый реальный случай бага: моль между реле в компьютере Harvard Mark II в 1947 году.

00:00:57 Первые программные баги

  • Ошибки из-за неправильного подключения проводов и последовательности инструкций.
  • Пример бага на компьютерах PDP: деление на ноль, которое могло «уронить» компьютер. 00:01:52 Баги в космических программах
  • Ошибка с дефисом в математической формуле, приведшая к аварии ракеты «Маринер» в 1962 году.
  • Взрыв ракеты Ariane 5 в 1996 году из-за переполнения переменной.
  • Авария спутника Mars Climate Orbiter в 1999 году из-за несоответствия единиц измерения.

00:03:38 Баги в играх

  • Легенда о «ядерном Ганди» в игре Civilization, которая на самом деле не была багом.
  • Баг в игре Space Invaders, делающий последние враги более опасными.

00:05:41 Баги в программах

  • Баг в Steam для Linux, который мог удалить все файлы на компьютере.
  • Ошибка в обновлении ПО на телефонных коммутаторах от IBM в 1990 году, заблокировавшая 50 миллионов звонков.

00:06:36 Баги в финансовых системах

  • Обвал индекса на Ванкуверской фондовой бирже в 1982 году из-за неправильного округления цен акций.

00:07:32 Баги в процессорах Intel

  • Баг в процессорах Pentium в 1994 году, приводящий к неправильным результатам в математических вычислениях.
  • Проблема с зависанием процессоров в 1998 году из-за взаимной блокировки микроконтроллеров.

00:08:28 Решение проблем с багами

  • Разработчики операционных систем создали патчи для предотвращения зависания процессоров.

00:08:41 Проблема тысячелетия

  • В 1999 году программисты экономили память, записывая год только двумя последними цифрами.
  • Это могло привести к сбоям в банковских системах, навигации самолётов и системах безопасности ядерных станций.
  • Компании потратили миллиарды на подготовку, но 1 января 2000 года всё прошло относительно гладко.

00:09:40 Високосный год и Zune

  • В 2008 году плеер Zune от Microsoft завис из-за ошибки в високосном году.
  • Проблема была решена одной строчкой кода, но к тому времени Zune уже стал мемом.

00:10:39 Високосная секунда

  • В 2012 году добавление високосной секунды вызвало сбои на серверах Linux.
  • После этого программисты научились обрабатывать дополнительную секунду.

00:11:36 Баг в FaceTime

  • В 2019 году в программе FaceTime на iPhone нашли баг, позволяющий подслушивать разговоры.
  • При добавлении своего номера в группу система глючила, позволяя слышать собеседника до того, как он поднял трубку.

00:11:36 Эмодзи и обои

  • В 2020 году комбинация эмодзи превращала iPhone в «кирпич» из-за ошибки в рендеринге текста.
  • На Android определённое изображение обоев вызывало бесконечную перезагрузку из-за неправильной обработки цветовой модели.

00:12:32 Папка «CON»

  • В Windows нельзя создать папку с названием «CON», так как это зарезервированное имя устройства.
  • Создание такой папки вызывало зависание компьютера.

00:12:32 Первый компьютерный червь

  • В 1988 году Роберт Моррис создал первый компьютерный червь, который заражал компьютеры несколько раз.
  • Червь перегружал компьютеры процессами и вызывал сбои.

00:13:29 Алгоритм Flash Crash

  • В 2010 году алгоритм Flash Crash обвалил американский фондовый рынок на триллион долларов.
  • Программы автоматически вели торги по заранее прописанным алгоритмам, что привело к цепной реакции продаж.

00:13:52 Баг в Night Capital

  • В 2012 году Night Capital потеряла 440 миллионов долларов из-за бага в обновлении системы торговли.
  • Часть серверов работала с новым кодом, а часть — со старым, что вызывало неправильную интерпретацию команд.

00:14:51 Ошибка в Ситибанке

  • В 2020 году Ситибанк перевел 900 миллионов долларов из-за запутанного интерфейса.
  • Сотрудники не поняли, какие галочки ставить, что привело к ошибке.

00:15:51 Уязвимость Heartbleed

  • В 2014 году уязвимость Heartbleed в библиотеке OpenSSL поставила под угрозу весь интернет.
  • Хакеры могли красть пароли и приватные ключи, отправляя запросы с неверной длиной данных.
  • Две трети серверов в интернете были уязвимы.

00:16:49 Уязвимость Shellshock

  • В 2014 году уязвимость Shellshock в Bash позволила хакерам исполнять произвольный код.
  • Проблема существовала с 1989 года, но была найдена только в 2014 году.

00:17:50 Баг в Cloudflare

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

00:18:43 Крушение Boeing 737 Max

  • В 2018 и 2019 годах система MC привела к крушению двух самолётов Boeing 737 Max.
  • Новые двигатели изменили аэродинамику самолёта, что привело к задиранию носа вверх.
  • Система MC автоматически опускала нос самолёта, но полагалась только на один из двух датчиков, и при его поломке опускала нос без остановки.
  • Пилоты не знали о существовании MC, так как Boeing скрыл информацию, чтобы не переобучать экипажи.

00:19:38 Гипоксия у пилотов F-35

  • В 2012 году пилоты истребителей F-35 Lightning II начали сообщать о симптомах гипоксии из-за бага в системе подачи кислорода.
  • Система неправильно интерпретировала данные датчиков, что приводило к нехватке кислорода.
  • Софт переписали, а датчики добавили.

00:19:38 Хаос в аэропорту Хитроу

  • В 2008 году система автоматической сортировки багажа в новом терминале аэропорта Хитроу вызвала хаос: сотни рейсов были отменены, тысячи пассажиров застряли, десятки тысяч чемоданов потерялись или были отправлены не туда.
  • Проблемы были связаны с задержкой в обмене данными, недостаточным обучением персонала и отсутствием тестирования системы под нагрузкой.

00:20:34 Проблемы с Toyota Prius

  • В 2010 году Toyota столкнулась с проблемой: машины сами ускорялись без реакции на торможение, что привело к тысячам аварий.
  • Программное обеспечение в электронном блоке управления дросселем было ненадёжным и плохо спроектированным.
  • 9 миллионов автомобилей были отозваны, а Toyota заплатила рекордный штраф в 1,2 миллиарда долларов.

00:21:39 Галлюцинации Tesla

  • Система предотвращения столкновений Tesla может «видеть призраков» на кладбище, показывая на дисплее силуэты людей.

00:22:36 Инциденты с медицинским ускорителем TRK-25

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

00:23:35 Ошибка в антивирусе Falcon Sensor

  • В 2024 году обновление системы безопасности вызвало «синий экран смерти» на миллионах Windows-машин с антивирусом Falcon Sensor.
  • Драйвер пытался обратиться к некорректной области памяти, что привело к остановке работы госучреждений, больниц и отмене рейсов.
  • Компания извинилась и пообещала компенсировать убытки, но ограничилась подарочным купоном на 10 долларов.

00:24:30 Ремонт марсохода Spirit

  • В 2003 году марсоход Spirit перестал отвечать на команды из-за переполнения памяти логами.
  • Инженеры удаленно очистили старые файлы логов, перезагрузили систему и включили логику заново.
  • Spirit проработал ещё шесть лет вместо запланированных трёх месяцев.

In this video

Search transcript
Chapter 1: Айсберг багов
0:00
0 seconds
Знаешь ли ты, какой баг был первым в истории? Какой оказался самым разрушительным? А какой нанёс ущерб на миллиарды? Мы часто рассказываем о всяких языках
0:09
9 seconds
программирования, протоколах, приложениях, как писать код или что-то настраивать, но иногда нужно поговорить о том, как делать не стоит. Помнишь наш видосик про то как не
0:18
18 seconds
надо писать код? В этот раз разберём самые крупные и известные ошибки в истории айти. Вообще термин баг, что переводится как жук, начали использовать аж в 19 веке инженеры и
Chapter 2: Откуда пошло название баг?
0:28
28 seconds
механики когда у них что-то не работало. Они говорили что-то в духе “В системе завёлся жук“. Даже Томас Эдисон, тот который придумал лампочку, в своих письмах использовал слово “баг”
0:38
38 seconds
Офигеть у него красивый поччерк, да? Потом, в 1947 году во время работы одного из первых компьюстеров Harvard Mark II программа стала выдавать ошибки.
Chapter 3: Самый первый баг: моль в Harvard Mark II
0:47
47 seconds
Инженеры начали искать причину и нашли… настоящую моль, застрявшую между реле. Насекомое приклеили в журнал и подписали: первый реальный случай нахождения бага.
0:57
57 seconds
Этот случай можно назвать именно первым программным багом, когда код работал не так, как задумывалось. До этого ошибки часто случались из-за неправильного подключения проводов или
1:07
1 minute, 7 seconds
неверной последовательности введенных инструкций. Да, тогда компьютеры были размерами с комнату и программирование заключалось в перевтыкании проводов. У нас есть отдельный видос про
1:16
1 minute, 16 seconds
историю программирования, зацени его если хочешь узнать как все зарождалось . Чуть позже на компьютерах PDP был баг когда любой пользователь мог написать программу,
Chapter 4: PDP деление на 0
1:25
1 minute, 25 seconds
в которой было деление на ноль, и уронить компьютер для всех остальных юзеров. Компы тогда не имели защиты от этой операции. Этот баг считается первым случаем
1:33
1 minute, 33 seconds
эксплуатации уязвимостей. Правда тогда все было безобидно — студенты запускали такие программы, чтобы потроллить остальных пользователей. Тем временем компьютеры развивались и учёные
1:42
1 minute, 42 seconds
активно применяли их в своих исследованиях. И вот в 1962 году, NASA запускает ракету Mariner
Chapter 5: Mariner 1: опечатка на $80 млн
1:49
1 minute, 49 seconds
1 к Венере за 80 миллионов дораров. Что же могло пойти не так? Ну, короче это…дефис. Да, обычный дефис в математической формуле. Программист
1:58
1 minute, 58 seconds
написал код на фортрАне так. А надо было так . Компьютер ничего не понял, ракета полетела не туда
2:05
2 minutes, 5 seconds
и её в итоге пришлось взорвать. Получается, что это самый дорогой символ в истории человечества. Правда, поскольку все это дело сильно засекречено, то информация какой там был
2:15
2 minutes, 15 seconds
символ отличается. Иногда говорят что это был не дефис а запятая, а иногда — что точка над буквой. В любом случае это один из первых случаев, когда баг привёл к катастрофе такого масштаба.
2:25
2 minutes, 25 seconds
Офигеть! 80 мультов из-за какого символа! Наверное после этого случая в программах для управления космическими штуками больше багов не было.. не было же?
Chapter 6: Ariane 5: переполнение переменной
2:34
2 minutes, 34 seconds
В 1996 году ракета Ariane 5 взорвалась через 37 секунд после старта,
2:40
2 minutes, 40 seconds
потому что в системе управления полётом использовался повторно код от Ariane 4. Программа пыталась засунуть 64-битное число в 16-битную переменную. Произошло переполнение
2:50
2 minutes, 50 seconds
и записались неправильные данные. Система решила, что ракета отклонилась на 90 градусов, попыталась исправить курс на высокой скорости и развалилась.
Chapter 7: Mars Climate Orbiter: фунты против ньютонов
2:58
2 minutes, 58 seconds
Похожая ситуация случилась со спутником Mars Climate Orbiter в 1999 году. Ты когда-нибудь задавался вопросом, почему во всём мире используют одни единицы измерения,
3:08
3 minutes, 8 seconds
а в нескольких странах свои? Типа, это ж неудобно пипец. Ровно это и произошло в данном случае. Дело в том, что управляющие команды с Земли на него
3:15
3 minutes, 15 seconds
поступали в британской системе счисления, а само ПО спутника оперировало метрическими ньютонами. Программа подумала, что всё это одно и то же… и, ну, скажем так, спутник
3:25
3 minutes, 25 seconds
буквально не понял, в каких он координатах. Результат — минус 125 миллионов дораров и один промахнувшийся мимо орбиты, сгоревший “Марс Климат Орбитер”.
Chapter 8: Ядерный Ганди
3:35
3 minutes, 35 seconds
Ладно, давай вернемся из космоса на землю и чутка снимем напряжение, поговорим про что нибудь спокойное, например про игры и про Ганди… Ядерного Ганди!
3:44
3 minutes, 44 seconds
Короче, в игре Civilization Ганди был самым мирным лидером и в коде его агрессия равнялась единице. Когда цивилизации принимали демократию, агрессия всех лидеров уменьшалась на
3:54
3 minutes, 54 seconds
два. Один минус два равно минусодин. Поскольку в переменной могли хранится значения от 0 до 255, то компьютер интерпретировал это как 255, то есть
4:04
4 minutes, 4 seconds
максимальное значение для переменной, потому что по логике нельзя было уйти в отрицательное значение и итоге мирный Ганди превращался в ядерного маньяка, который бомбил весь мир.
4:14
4 minutes, 14 seconds
Это один из самых известных игровых багов, но самое интересное в нем это то, что его на самом деле не было! Да, разработчики рассказали такого
4:22
4 minutes, 22 seconds
бага не существовало, да и переменные могли спокойно принимать отрицательные значения. Вероятно легенда сложилась из-за того что обычно Индия открывала
4:29
4 minutes, 29 seconds
ядерные технологии раньше других цивилизаций. Но популярность этой легенды была настолько большая, что в пятой части разработчики все таки установили параметры «Создать
4:39
4 minutes, 39 seconds
ядерное оружие» и «Использовать ядерное оружие» на максимальное значение, чтобы порадовать игроков.
4:45
4 minutes, 45 seconds
Вот так несуществующий баг стал фичей. Но кстати был вполне себе настоящий баг, который в итоге стал особенностью и он тебе, скорее всего, встречался.
Chapter 9: Space Invaders: ускоряющиеся пришельцы
4:53
4 minutes, 53 seconds
В игре Space Invaders 1978 года нужно было защищаться от подбирающихся все ближе и ближе инопланетян. Однако процессоры в те годы были не самые шустрые,
5:03
5 minutes, 3 seconds
и чем больше врагов было на экране, тем больше вычислений приходилось делать, и тем медленнее была игра. А когда инопланетян становилось меньше, вычислений становилось тоже
5:12
5 minutes, 12 seconds
меньше и игра работала быстрее. В результате оставшиеся несколько врагов в конце уровня начинали летать с бешеной скоростью. Но баг неожиданно сделал геймплей гораздо
5:21
5 minutes, 21 seconds
напряжённее: последние враги стали серьезным испытанием. Игрокам понравилось, а баг превратился
5:27
5 minutes, 27 seconds
в фичу. Кстати пиши в комментах какие баги в играх тебе запомнились. Нам например запомнился багги из
5:32
5 minutes, 32 seconds
Half-Life 2, на нем даже покататься можно было. Еще один интересный баг был в программе Steam для Linux, когда она могла удалять всё на компьютере у пользователя. Довольно неприятно — хотел поиграть,
Chapter 10: Steam для Linux: rm -rf
5:43
5 minutes, 43 seconds
а остался без всего. Оказалось, дело было в скрипте запуска — там нашли такую строчку Этот код должен был удалить временные файлы в
5:51
5 minutes, 51 seconds
директории Steam, чтобы клиент мог запуститься чисто. Но если переменная STEAMROOT не подставлялась, например это могло быть при ручной установке клиента, или перемещении файлов, то
6:00
6 minutes
строчка превращалась просто в rm -rf, что значит — удалить все с корня диска, линуксойды поймут.
6:06
6 minutes, 6 seconds
В итоге Valve пришлось быстро выпускать патч, который имел дополнительную проверку Но все мы конечно же знаем главный баг от компании валв..
Chapter 11: AT&T: массовый сбой телефонных коммутаторов
6:14
6 minutes, 14 seconds
В 1990 году, компания AT&T допустила оплошность посерьёзнее. Там решили обновить ПО на телефонных коммутаторах. После очередного обновления софта один
6:24
6 minutes, 24 seconds
коммутатор завис и перезагрузился, а когда включился — отправил соседям сигнал готовности. Но из-за бага этот сигнал воспринимался как ошибка и соседние коммутаторы тоже начинали
6:34
6 minutes, 34 seconds
перезагружаться — получился эффект домино. За несколько часов 50 миллионов звонков по всему миру были заблокированы, в том числе авиадиспетчерские линии
6:42
6 minutes, 42 seconds
и международные переговоры. А всё это из-за неправильного оператора break в коде на си. Ситуации когда одна маленькая
6:49
6 minutes, 49 seconds
ошибка стоит миллионы долларов не редкость В 1982 году на Ванкуверской фондовой бирже индекс
Chapter 12: Ванкуверская биржа: ошибка округления
6:56
6 minutes, 56 seconds
медленно падал. Это можно было бы списать на… волнение.. но за два года он отрицательно вырос с
7:02
7 minutes, 2 seconds
1000 пунктов до 520, и никто не понимал почему. А дело было в том, что программа неправильно
7:07
7 minutes, 7 seconds
округляла цены акций. Вместо округления — просто отрезала лишние цифры после запятой. Каждый расчёт терял крошечную долю, буквально пылинку. Для одной акции это мелочь,
7:17
7 minutes, 17 seconds
но накопившись, ошибка обвалила весь индекс. Кстати про числа с плавающей точкой. В 1994
Chapter 13: Intel Pentium FDIV Bug
7:23
7 minutes, 23 seconds
году Intel выпустила процессоры pentium с багом в математических вычислениях. Там при делении чисел с плавающей точкой иногда выдавался неправильный результат.
7:32
7 minutes, 32 seconds
Это было из-за того что в модуле деления использовалась таблица для быстрого вычисления знаков после запятой. В этой таблице 5 значений оказались заполнены неправильно и при делении
7:41
7 minutes, 41 seconds
определённых чисел результат немного уезжал Ошибка случалась один раз на 9 миллиардов операций, для обычных юзеров это было не критично, но для ученых и
7:50
7 minutes, 50 seconds
финансовых систем это очень очень не хорошо. Интел сначала отмахивались, мол да забейте, это не критично, но когда IBM остановила поставки этих процессоров для своих компьютеров,
8:00
8 minutes
им всё-таки пришлось заменить миллионы чипов. Но этот баг был для них не последним. В 1998 году
Chapter 14: Intel F00F Bug
8:06
8 minutes, 6 seconds
в их процессорах обнаружилась проблема, что просто выполнив одну инструкцию на машинном уровне можно повесить всю систему. Если программа выполняла эту последовательность
8:16
8 minutes, 16 seconds
байт, то происходила взаимная блокировка между внутренними микроконтроллерами ядра процессора. Ни операционная система, ни BIOS не могли перехватить ситуацию — зависал весь процессор,
8:26
8 minutes, 26 seconds
помогала только перезагрузка. Особый прикол был в том что любая программа, даже из-под обычного пользователя, могла выполнить этот код. Intel не могла исправить уже проданные процессоры,
8:36
8 minutes, 36 seconds
поэтому разработчики операционных систем придумали специальные патчи, которые предотвращали зависание. А теперь расскажем про самую
Chapter 15: Y2K: баг тысячелетия
8:42
8 minutes, 42 seconds
раздутую проблему в истории айти. Она называется Y2K или баг тысячелетия. В те времена память была дорогая как золото, поэтому программисты экономили каждый байт.
8:52
8 minutes, 52 seconds
Вместо того чтобы хранить год как 1999, они записывали только две последние цифры,
8:58
8 minutes, 58 seconds
то есть 99. Логика на самом деле простая. Зачем тратить четыре символа, если можно обойтись двумя?
9:04
9 minutes, 4 seconds
Все же понимают, что речь про двадцатый век. Но когда приближался 2000 год, все поняли, что может произойти кошмар. Компьютер увидит 00 и подумает, что наступил 1900 год.
9:14
9 minutes, 14 seconds
Банковские системы решат, что твой депозит открыт сто лет назад и начислят проценты за век. Или наоборот могут сделать все кредиты просроченными на столетие. Самолёты могут упасть,
9:23
9 minutes, 23 seconds
потому что навигация сойдёт с ума. Ядерные станции взорвутся из-за сбоя в системах безопасности.
9:28
9 minutes, 28 seconds
Началась всемирная паника. Компании потратили миллиарды на подготовку и обновление систем. А
9:34
9 minutes, 34 seconds
1 января 2000 года включили компьютеры и… почти ничего не произошло. Пару мелких глюков, и всё.
9:40
9 minutes, 40 seconds
Но кстати нечто похоже нас ждет в будущем, так называемая “проблема 2038 года”. Пиши в комментариях если знаешь что это такое, и как её планируют решать.
Chapter 16: Zune: учёт високосного года
9:49
9 minutes, 49 seconds
А еще похожую ситуацию майкрософт устроили сами себе в 2008 году. У них был плеер Zune, который был конкурентом iPod . Всё было хорошо, ну кроме продаж,
9:58
9 minutes, 58 seconds
и устройства работали нормально до 31 декабря. В новогоднюю ночь каждый зун на планете завис. Экран показывал
10:05
10 minutes, 5 seconds
загрузку до 100% и останавливался навсегда. Помогало только извлечение батарейки. Возможно, ты уже догадался в чём было дело. Программисты просто забыли учесть високосный год.
10:15
10 minutes, 15 seconds
На 366-й день софт этой штуки впадал в бесконечный цикл. Исправить это можно было одной строчкой кода, но к тому времени зун уже стал мемом про провал майкрософт.
10:24
10 minutes, 24 seconds
А знаешь, где ещё много мемов, анонсы крутых айтишных мероприятий и куча других полезностей?
10:30
10 minutes, 30 seconds
В нашей уютной тележке конечно же — залетай по ссылочке в описании или вот — по куар коду!
Chapter 17: Високосная секунда
10:36
10 minutes, 36 seconds
Високосный год это неплохо, а как насчет високосной секунды? Да, есть и такое. Из-за того что земля вращается не идеально стабильно, и со временем астрономическое
10:45
10 minutes, 45 seconds
время начинает отставать от атомного. Чтобы это компенсировать ученые раз в несколько лет добавляют лишнюю секунду. Изменение маленькое, но не все компьютеры
10:53
10 minutes, 53 seconds
были к этому готовы когда в 2012 году високосная секунда повалила тысячи серверов на Linux и заставила системы синхронизации времени зависать в бесконечных циклах.
11:03
11 minutes, 3 seconds
После этого программисты научились обрабатывать дополнительную секунду, и следующие добавления прошли уже спокойно. Apple часто рассказывает в своих рекламных
Chapter 18: FaceTime: баг подслушивания
11:11
11 minutes, 11 seconds
роликах, что их техника супер защищенно хранит персональные данные и ни за кем не следит. Но в 2019 году на iPhone у программы FaceTime нашли баг, с помощью которого можно было…
11:22
11 minutes, 22 seconds
подслушивать людей. Начинаешь звонок, добавляешь в группу свой же номер, система глючит, а потом ты
11:27
11 minutes, 27 seconds
слышишь собеседника до того, как он поднял трубку. Это не всё. Если человек жмёт кнопку выключения,
11:33
11 minutes, 33 seconds
то активируется камера. Неприятная ситуация. Еще в 2020 году была история про эмОдзи,
Chapter 19: Краш iPhone из-за эмодзи
11:39
11 minutes, 39 seconds
которые буквально ломали телефоны. Юзеры нашли комбинацию смайликов, которая превращала любой айфон в кирпич. Из-за ошибки в рЕндеринге текста приложение
11:49
11 minutes, 49 seconds
крашилось, а за ним и вся система. Но и на андроиде тоже были свои приколы. Пользователи заметили, что если поставить определённое изображение обоев,
Chapter 20: Краш Android из-за обоев
11:57
11 minutes, 57 seconds
телефон уходит в бесконечную перезагрузку, причем починить это можно было только если сбросить телефон к заводским настройкам. Проблема была в цветовой модели изображения.
12:07
12 minutes, 7 seconds
Картинка была сохранена в широком цветовом пространстве, которое операционная система неправильно обрабатывала. И снова вернемся к мАйкам. Помнишь тот мем что в
Chapter 21: Папка CON в Windows
12:15
12 minutes, 15 seconds
винде нельзя создать папку с названием con Еще была байка что Билла Гейтса в школе так называли и поэтому он запретил так делать. А на самом деле раньше так можно было делать,
12:24
12 minutes, 24 seconds
но это вызывало зависание комплюктера, Дело в том что это зарезервированное имя устройства для DOS и Windows, унаследованное ещё с 80-х. CON — это консоль, PRN — это принтер,
12:35
12 minutes, 35 seconds
AUX — это вспомогательное устройство. И если система видела папку с таким названием, она пыталась работать не с папкой, а с виртуальным устройством и крАшилась.
12:44
12 minutes, 44 seconds
Есть еще один забавный случай. В 1988 году студент Роберт Моррис захотел измерить размер
Chapter 22: Morris Worm: первый интернет-червь
12:50
12 minutes, 50 seconds
интернета и написал программу которая автоматически распространялась через интернет и копировала себя между компьютерами. Ну как программу, это так то по сути был первый
12:59
12 minutes, 59 seconds
компьютерный червь, который использовал различные уязвимости, и слабые пароли для распространения. И помимо того что это был червь, там еще был баг — он заражал одни машины по несколько
13:09
13 minutes, 9 seconds
раз. Заражённые компьютеры перегружались процессами, начинали тормозить и падать 6 тысяч компьютеров было вырублено, а это было 10% всего интернета на то время. Пострадали
13:20
13 minutes, 20 seconds
университеты, военные и исследовательские центры, а Моррис стал первым осуждённым по закону о компьютерном мошенничестве. В итоге ему дали 3 года условно. Позже он
13:30
13 minutes, 30 seconds
станет профессором в MIT, выпустит свой язык программирования Arc и станет сооснователем инкубатора старапов Y Combinator, который кстати даст старт карьере создателя чат джи пи ти, о
13:40
13 minutes, 40 seconds
чем мы рассказывали в отдельном ролике. Продолжим про финансовые катастрофы. В 2010 году алгоритм Flash Crash за 36 минут обвалил американский фондовый рынок.
Chapter 23: Flash Crash: обвал рынка за 36 минут
13:50
13 minutes, 50 seconds
Просто испарился триллион долларов — все из-за программ которые автоматически вели торги по заранее прописанным алгоритмам. Один алгоритм начал массово продавать акции, другие решили,
14:00
14 minutes
что начинается кризис, и тоже начали продавать, цепная реакция превратила рынок в хаос, акции крупных компаний стоили как жвачка. Причём, проблема с этими алгоритмами не
14:09
14 minutes, 9 seconds
разовая. В 2012 году Knight Capital за 45 минут потеряла 440 миллионов долларов.
Chapter 24: Knight Capital: $440 млн за 45 минут
14:16
14 minutes, 16 seconds
Компания выкатила обновление своей системы для торговли но из-за бага часть серверов работала с
14:21
14 minutes, 21 seconds
новым кодом, а часть со старым. В результате при торговле одни сервера отправляли новые команды,
14:27
14 minutes, 27 seconds
другие их неправильно интерпретировали. Баг активировал старый фрагмент кода, который случайно запускал тестовый алгоритмкоторый покупал дорого и продавал дешёво.
14:37
14 minutes, 37 seconds
А вроде как надо наоборот. Покупаем на ямках, продаем на горках, ну ты помнишь базу. Не является финансовым советом. Короче в итоге, тот итоге алгоритм
14:45
14 minutes, 45 seconds
сделал 4 миллиона сделок и разорил компанию. Кстати, думаешь что если ты фронтЭндер то тебя
Chapter 25: Citibank: кривой UI стоил $900 млн
14:50
14 minutes, 50 seconds
это всё не касается? Как бы не так. В 2020 году ситибанк хотел перевести 8 миллионов процентов по
14:56
14 minutes, 56 seconds
кредиту, но из-за кривого интерфейса перевели весь кредит. Это было 900 миллионов долларов. Интерфейс был настолько запутанным, что сотрудники не поняли, какие галочки ставить.
15:06
15 minutes, 6 seconds
Банк попросил вернуть деньги, кредиторы сказали «не-а», а суд встал на сторону кредиторов. Ты сейчас наверное смотришь и думаешь, неужели все кругом делают ошибки? Неужели нельзя научиться
Chapter 26: Можно ли писать код без багов?
15:17
15 minutes, 17 seconds
писать код без багов? И ответ тут да — все делают ошибки, и нет — избавиться от багов не получится.
15:23
15 minutes, 23 seconds
Но это вовсе не значит, что не стоит учиться и стараться минимизировать их появление. И у нас есть специальное предложение — целых два курса по пайтон. Первый — для
15:32
15 minutes, 32 seconds
новичков. Ты будешь писать код, совершать ошибки и ловить баги — потому что именно так рождаются настоящие программисты. А второй — продвинутый, для ребят которые
15:41
15 minutes, 41 seconds
уже не раз валили прод и хотят подтянуть знания чтобы это происходило пореже. Учиться можно с наставником или самостоятельно с помощью ИИ-ассистента, который всегда подскажет и
15:51
15 minutes, 51 seconds
направит. А по ссылкам в описании можно записаться на бесплатный вводный урок чтобы посмотреть что
15:56
15 minutes, 56 seconds
тебя ждет, да и дополнительную скидку получишь. Возвращаемся к нашему топу. В 2014 году уязвимость
Chapter 27: Heartbleed
16:02
16 minutes, 2 seconds
Heartbleed поставила под угрозу весь интернет. Она была в библиотеке OpenSSL, которая обеспечивает шифрование HTTPS-соединений, это замочек
16:11
16 minutes, 11 seconds
такой у тебя в браузере, рядом с адресом сайта. В протоколе TLS есть функция heartbeat — когда сервер отзывается, мол, я жив, отправляя обратно кусок данных который пришел в запросе.
16:22
16 minutes, 22 seconds
Код в OpenSSL не проверял корректность длины запроса, и хакер мог отправить такой запрос, где говорил что кусок данных одной длинны, хотя на самом деле был другой. Сервер в
16:32
16 minutes, 32 seconds
ответ возвращал несуществующие байты, а фактически это был кусок его памяти. Это означало что из памяти сервера могли утекать, пароли, приватные ключи SSL-сертификатов,
16:42
16 minutes, 42 seconds
куки и другая секретная информация. Две трети серверов в интернете были уязвимы, хакеры могли красть что угодно незаметно. В итоге всем пришлось
16:50
16 minutes, 50 seconds
обновлять либУ и перевыпускать сертификаты. Самое интересное в этой истории то что OpenSSL
16:56
16 minutes, 56 seconds
поддерживала маленькая команда из пары человек, при том что весь мир зависел от этой библиотеки. Многие впервые на массовом уровне осознали что интернет держится на open source,
17:05
17 minutes, 5 seconds
который пишут несколько энтузиастов. Еще был баг Shellshock, который появился почти одновременно с Heartbleed и тоже потряс интернет. Только если Heartbleed ломал HTTPS,
Chapter 28: Shellshock
17:15
17 minutes, 15 seconds
то Shellshock ударил по Unix и Linux-серверам. Есть такая штука Bash — стандартный коммандый интерпретатор в Unix и Linux, используемые повсюду.
17:24
17 minutes, 24 seconds
Корень проблемы лежал в том, как Bash обрабатывал переменные окружения. Он некорректно обрабатывал их и мог исполнять произвольный код, записанный в переменной, а не только само значение.
17:34
17 minutes, 34 seconds
То есть хакер мог отправить вредоносный заголовок HTTP и сервер выполнил бы его как команду.
17:40
17 minutes, 40 seconds
При этом баг существовал аж с 1989 года, но нашли его только в 2014.
Chapter 29: CloudBleed
17:46
17 minutes, 46 seconds
Был еще один неприятный баг с bleed в названии — CloudBleed. Он был у большого облачного провайдера
17:52
17 minutes, 52 seconds
Cloudflare, который предоставляет различные сервисы по обеспечению безопасности сайтов. Пользователи заметили что при обычных запросах к сайтам, использующим Cloudflare,
18:02
18 minutes, 2 seconds
в ответах иногда приходили странные куски данных, которые не имели отношения к странице. Причем это не просто какие-то служебные данные, это были чужие приватные данные — токены,
18:12
18 minutes, 12 seconds
пароли, личные сообщения случайных пользователей. Из-за бага системы, Cloudflare вставляли случайные фрагменты оперативной памяти
18:19
18 minutes, 19 seconds
своего сервера в содержимое веб-страниц, которые выдавались всем пользователям. В одном месте в коде происходил выход за границы буффера, и из-за этого
18:27
18 minutes, 27 seconds
захватывались лишние чужие данные. Cloudflare сражу же пофиксила баг, но как говорится — осадочек остался. В отличии от Heartbleed где было нужно
18:36
18 minutes, 36 seconds
целенаправленно ломать систему, тут личные данные отдавались просто так всем подряд.
Chapter 30: Boeing 737 MAX: сбой MCAS
18:41
18 minutes, 41 seconds
Теперь аэрофобам пора отойти от экранов. В 2018 и 2019 годах система MCAS привела к крушению
18:49
18 minutes, 49 seconds
двух самолетов боинг семьсот тридцать семь макс. Дело в том, что эта версия самолета получила новые
18:54
18 minutes, 54 seconds
более крупные двигатели, и это меняло аэродинамику — самолет начинал задирать нос вверх. Чтобы пилоты не замечали этой разницы, как раз добавили эту систему которая автоматически
19:04
19 minutes, 4 seconds
опускала нос, но она полагалась только на один датчик из двух. И если он ломался, эм си эй эс опускала нос без остановки.
19:12
19 minutes, 12 seconds
Пилоты пытались поднять штурвал, компьютер опускал. Борьба человека с машиной, где машина сильнее. Многие пилоты даже не знали о существовании эм си эй эс, потому что боинг скрыл
19:21
19 minutes, 21 seconds
информацию, чтобы не переобучать экипажи, мол эта модель не отличается от предыдущих, не парьтесь. Баги были проблемой не только у гражданских, но и у военных самолетов.
Chapter 31: F-35: баг в системе подачи кислорода
19:31
19 minutes, 31 seconds
Так в 2012 году пилоты истребителей F-35 Lightning II начали сообщать о симптомах
19:37
19 minutes, 37 seconds
гипоксИи, это когда у тебе не хватает кислорода и начинает кружится голова, ухудшается реакция, можно даже сознание потерять. Это определенно не то что тебе нужно если
19:47
19 minutes, 47 seconds
ты управляешь многомиллионным воздушным оружием. А происходило это из-за того что в системе подачи кислорода был баг который неправильно интерпретировал данные датчиков.
19:56
19 minutes, 56 seconds
Система не всегда корректно обрабатывала быстро меняющиеся в реальном времени данные, такие как скорость и высота. В итоге софт переписали, а датчиков докинули.
Chapter 32: Heathrow Terminal 5: провальный запуск
20:05
20 minutes, 5 seconds
Теперь спускаемся на землю и попадаем в аэропорт Heathrow в 2008 году. В день открытия нового терминала, который должен был стать самым технологичным в мире, начался хаос
20:15
20 minutes, 15 seconds

сотни рейсов были отменены, тысячи пассажиров застряли, десятки тысяч чемоданов потерялись или
20:21
20 minutes, 21 seconds
были отправлены не туда. Произошло это из-за системы автоматической сортировки багажа.
20:26
20 minutes, 26 seconds
Там было 50 километров конвейеров, RFID метки, обработка 12 тысяч чемоданов в час. Когда её
20:32
20 minutes, 32 seconds
запустили в прод, всё сломалось. Сотрудники не могли залогИниться, метки не отслеживали багаж, чемоданы терялись между модулями системы. Тут собралось несколько проблем: из-за задержки
20:42
20 minutes, 42 seconds
в обмене данными система не понимала куда отправлять багаж, персонал не был достаточно обучен работе с новым оборудованием, а перед запуском тестах всё работало по отдельности,
20:53
20 minutes, 53 seconds
но никто не тестировал всё вместе под нагрузкой. И вот очередной пример насколько важно тестирование и почему на него не стоит забивать. Вот мы вышли из аэропорта и время заказывать
Chapter 33: Toyota Prius: неконтролируемое ускорение
21:03
21 minutes, 3 seconds
такси. Кто там едет? О нет, только не Toyota Prius. В 2010 году Toyota столкнулась с кошмаром: машины сами ускорялись без реакции на торможение — типа
21:12
21 minutes, 12 seconds
жмёшь тормоз, а машина едет быстрее, что привело к тысячам аварий. Это было из-за того что программное обеспечение в электронном блоке управления дросселем было ненадёжным
21:20
21 minutes, 20 seconds
и плохо спроектированным. Там был сложный спагетти-код, использовались рекурсивные функции без защиты, не было аппаратных изоляций между задачами.
21:29
21 minutes, 29 seconds
Одна ошибка могла повесить процессор и оставить дроссель открытым. Также система не регистрировала все ошибки, поэтому бортовой компьютер не всегда включал аварийный режим.
21:39
21 minutes, 39 seconds
Позже в суде инженер-эксперт Майкл Барр показал исходный код и назвал его “самым опасным кодом, который я когда-либо анализировал”. В результате 9 миллионов автомобилей
21:49
21 minutes, 49 seconds
было отозвано, а тойота заплатила рекордный на тот момент штраф в 1.2 миллиарда долларов.
Chapter 34: Tesla видит призраков
21:54
21 minutes, 54 seconds
Не такая опасная, но не менее криповая особенность есть у Тэслы… Она видит призраков… на кладбище…
22:00
22 minutes
Даа, иногда система предотвращения столкновений, которая работает тут на базе ИИ, может галлюцинировать и показывать на дисплее силуэты людей когда водитель проезжает по пустому
22:09
22 minutes, 9 seconds
кладбищу. Случай не единичный и интернете полно видосов, где владельцы теслы это проверяют. Чтож, вот мы и подобрались к самому жуткому багу в нашей подброке.
Chapter 35: Therac-25: смертельная ошибка в медицинском софте
22:19
22 minutes, 19 seconds
Был такой аппарат Therac-25 — медицинский ускоритель частиц который использовался для лучевой терапии.⁠ ⁠
22:25
22 minutes, 25 seconds
Между 1985 и 1987 годами было зафиксировано не менее 6 инцидентов,
22:32
22 minutes, 32 seconds
в которых пациенты получили чудовищные дозы радиации — в сотни раз выше нормы. Программа управления аппаратом, написанная на языке Assembler имела так называемое состояние
22:41
22 minutes, 41 seconds
гонки. Это когда работа системы зависит от того, в каком порядке выполняются части кода. Если оператор очень быстро вводил команды, система переходила в «неправильное» состояние: устройство
22:52
22 minutes, 52 seconds
думало, что оно работает в безопасном режиме электронного пучка, но на самом деле включался рентгеновский режим без защиты и пациенты получали дозу в 100 раз выше допустимой.
23:02
23 minutes, 2 seconds
Предыдущие версии устройства имели аппаратные блокировки, которые физически не позволяли подать избыточное излучение. Но тут инженеры решили, что теперь всё контролирует софт и
23:11
23 minutes, 11 seconds
убрали аппаратные защиты ради экономии. Изначально создатели даже не могли воспроизвести баг — он срабатывал только при определённой скорости нажатия клавиш.
23:20
23 minutes, 20 seconds
В итоге они признали ошибки, доработали систему и вернули аппаратную защиту. Ладно, давай заканчивать без всякой жести. В 2024 году компания CrowdStrike,
Chapter 36: CrowdStrike Update Crash: глобальный BSOD
23:30
23 minutes, 30 seconds
которая занимается кибербезопасностью, подарила нам Y2K, который мы заслужили. Простое обновление системы безопасности положило миллионы виндоус машин,
23:39
23 minutes, 39 seconds
на котороых стоял антивирус Falcon Sensor. У этого антивируса очень глубокий доступ к ядру операционки, больше чем у обычных программ. Внутри драйвера, который был в обновлении,
23:48
23 minutes, 48 seconds
оказался баг, связанный с обработкой определённой таблицы данных в ядре системы. При загрузке драйвер пытался обратиться к некорректной области
23:56
23 minutes, 56 seconds
памяти, и этим вызывал синий экран смерти. Поскольку антивирус загружается на раннем этапе, система не могла даже запуститься, а стандартные средства восстановления не помогали. Нужно было
24:07
24 minutes, 7 seconds
вручную загружаться с флешки и удалять драйвер. Остановилась работа госучреждений, больниц,
24:13
24 minutes, 13 seconds
отменялись рейсы, и все поняли, насколько хрупка современная айти инфраструктура, особенно если она в руках одной компании Компания извинилась и пообещала компенсировать
24:23
24 minutes, 23 seconds
убытки, но все ограничилось подарочным купоном на 10 долларов в доставке, для сотрудников пострадавших компаний. И наверное самый позитивный пример,
Chapter 37: Ровер Spirit: как починить баг на другой планете
24:32
24 minutes, 32 seconds
показывающий что баги можно исправить, даже если ты находишься на другой планете. Так в 2003 году
24:38
24 minutes, 38 seconds
удалось починить марсоход Ровер СпИрит, который после через несколько дней после начала миссии перестал отвечать на команды с Земли. Инженеры заметили что он периодически
24:47
24 minutes, 47 seconds
просыпался и снова отключался. Оказалось, что его память полностью переполнилась, потому что код
24:52
24 minutes, 52 seconds
логИровал абсолютно всё — каждое событие, каждый системный вызов, каждую мелочь. Памяти было всего
24:58
24 minutes, 58 seconds
256 мегабайт,а логи занимали столько места, что система не могла создать новые временные файлы и
25:05
25 minutes, 5 seconds
начинала аварийно перезагружаться в бесконечном цикле. Инженеры не ожидали, что в полевых условиях система будет писать так много логов. Марсоход не умел их очищать и просто продолжал
25:15
25 minutes, 15 seconds
писать до упора, пока не закончится место. Но инженеры смогли спасти его удалённо с Земли. Они отправили команду чтобы перевести систему в безопасный режим и отключить почти все процессы.
25:26
25 minutes, 26 seconds
Затем с помощью низкоуровневых команд удалили старые файлы логов, перезагрузили систему и включили логику заново. В результате он не только ожил, но и проработал
25:35
25 minutes, 35 seconds
ещё 6 лет вместо запланированных трёх месяцев Заметь, в этот раз даже ничего не взорвалось.
25:41
25 minutes, 41 seconds
Как-то так. В целом, не подумай, что программирование – это сплошной ужас. На каждый баг приходятся тысячи строк правильного кода и компьютеры спасли больше жизней, чем погубили.
25:52
25 minutes, 52 seconds
Расскажи в комментах, как ты один раз сделал пятничный пуш в прод и стал тем самым джуном из мема. И вообще, расскажи какие-то прикольные истории о своих багах. Осуждать не будем,
26:01
26 minutes, 1 second
честно, у кого из нас прод не падал. Подписываться и лайкать тоже не забывай, это поможет выпускать нам больше интересных видосов. Так уж работают алгоритмы ютуба и это вроде не баг. Пака!

Поделиться: