Самая сложная программа

https://www.quora.com/What-is-the-most-sophisticated-piece-of-software-code-ever-written
  • Перевод
От переводчика: я нашел на Quora вопрос: Какую программу или код можно назвать самыми сложными из когда-либо написанных? Ответ одного из учасников был настолько хорош, что вполне тянет на статью.

Пристегни ремни.

Самая сложная программа в истории была написана командой людей, имена которых нам неизвестны.

Это программа – компьютерный червь. Червь был написан, судя по всему, между 2005 и 2010 годами. Поскольку этот червь является таким сложным, я могу дать лишь общее описание того, что он делает.

Сначала червь появляется на USB диске. Кто-то мог найти диск, лежащий на земле, получить его по почте и заинтересоваться его содержанием. Как только диск вставлялся в компьютер c Windows PC, без ведома пользователя, червь автоматически запускал себя и копировал на этот компьютер. Существовало как минимум три способа, с помощью которых он мог себя запустить. Если не работал один, он пробовал другой. Как минимум два из этих методов запуска были абсолютно новыми и оба использовали две независимых, секретных ошибки в Windows о которых никто не знал до того момента, как появился этот червь.

Как только червь запускается на компьютере, он пытается получить права администратора. Его не сильно беспокоит установленное антивирусное ПО – он может игнорировать большинство таких программ. Затем, в зависимости от того, на какой версии Windows он работает, червь попробует один из двух ранее неизвестных методов получения прав администратора на компьютере. Как и ранее, до появления этого червя никто не знал об этих скрытых уязвимостях.

После этого червь способен скрыть следы своего присутствия в глубинах ОС, так что ни одна антивирусная программа не сможет его обнаружить. Он прячется так хорошо, что даже если будете искать на диске в то место, где этот червь должен быть, вы ничего не увидите. Этот червь прятался так хорошо, что ему удалось перемещаться по Интернету в течение года и ни одна компания, связанная с безопасностью не признала даже факта его существования.

Затем червь проверяет, может ли он выйти в Интернет. Если может, он пытается посетить сайты www.mypremierfutbol.com или www.todaysfutbol.com. В то время эти серверы были Малайзии и Дании. Он открывает зашифрованный канал связи и сообщает этим серверам, что новый компьютер успешно захвачен. Зачем червь автоматически обновляет себя до самой новой версии.

После этого червь копирует себя на любое другое USB устройство, которое вам пришлось вставить. Он делает это с помощью установки аккуратно разработанного ложного драйвера диска. Этот драйвер содержал цифровую подпись Realtek. Это означает, что авторы червя каким-то образом смогли пробиться в наиболее защищённое место крупной тайваньской компании и украсть самый секретный ключ компании так, что сама компания об этом не узнала.

Позже, авторы этого драйвера начали подписывать его секретным ключом от JMicron, другой крупной тайваньской компании. И снова, авторы смогли прорваться в самое защищённое место в этой компании и украсть самый секретный ключ, которым владеет эта компания так, что они ничего об этом не узнали.

Червь, о котором мы говорим очень сложный. И мы ещё даже не начали.

После этого червь начинает использовать два недавно обнаруженных бага в Windows. Один баг связан с сетевыми принтерами, а другой – с сетевыми файлами. Червь использует эти баги, чтобы установить себя по локальной сети на все другие компьютеры в офисе.

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

Червь ищет прикреплённые промышленные электрические моторы от двух конкретных компаний. Одна из этих компаний в Иране, а другая в Финляндии. Моторы, которые он ищет, называются «частотно-регулируемые приводы». Они используются для управления промышленными центрифугами. С помощью центрифуг можно очистить множество химических элементов.

Например, уран.

Теперь, поскольку червь получил полный контроль над центрифугами, он может сделать с ними всё, что захочет. Он может их всех отключить. Он может немедленно все их уничтожить – достаточно крутить их на максимальной скорости до тех пор, пока они не разлетятся как бомбы, убив всех, кто по случайности оказался рядом.

Но нет. Это сложный червь. И у червя есть другие планы.

Как только он захватил все центрифуга в твоем заводе… червь просто засыпает.

Проходят дни. Или недели. Или секунды.

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

И затем, потихоньку, червь начинает крутить эти центрифуги… немножко неправильно. Совсем не намного. Просто, знаете, чуть-чуть слишком быстро. Или самую малость слишком медленно. Лишь немного за пределами безопасных параметров.

В то же время, он увеличивает давление газа в этих центрифугах. Этот газ называется UF6. Очень вредная штука. Червь изменяет давление этого газа чуть-чуть за пределами безопасных значений. Ровно для того, чтобы при попадании газа в центрифуги во время работы появлялся небольшой шанс того, что он превратится в камни.

Центрифуги не любят работать слишком быстро или слишком медленно. И камни им тоже не нравятся.

Но у червя остался последний трюк. И он гениален.

В дополнение ко всем своим действиям, червь начинал проигрывать запись данных за последние 21 секунду работы, которые он записал, когда центрифуги работали нормально.
Червь проигрывал запись снова и снова, в цикле.

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

А теперь представьте, что вы ответственны за очистку урана с помощью этого крупного промышленного завода. И вроде бы всё работает хорошо. Может двигатели звучат немного странно, но цифры на компьютере показывают, что моторы центрифуг работают так, как и положено.

Затем центрифуги начинают ломаться. В случайном порядке, одна за другой. Обычно они умирают тихо. Впрочем, в некоторых случаях, они устраивают настоящее представление. А производство урана начинает резко падать. Уран должен быть чистым. Ваш уран не достаточно чистый, чтобы с ним можно было сделать что-то полезное.

Что бы вы делали, если бы управляли этим заводом по обогащению урана? Вы бы проверяли всё снова и снова и снова, не понимая в чем проблема. Вы могли бы при желании поменять все компьютеры в заводе.

Но центрифуги бы всё равно ломались. И у вас даже не было возможности узнать почему.

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

Именно это и произошло на самом деле

Вы никогда не будет ожидать, что все эти проблемы были созданы компьютерным червем, самым хитрым и умным компьютерным червем в истории, написанным какой-то невероятно секретной командой с неограниченным количеством денег и времени. Червь был разработан только с одной целью: пройти через все известные способы цифровой защиты и уничтожить ядерную программу вашей страны так, чтобы его не поймали.
Создать программу, которая могла бы сделать ОДНУ из этих вещей само по себе маленькое чудо. Создать программу, которая может делать ВСЁ это и много другое…

… для этого червю Stuxnet пришлось стать самой сложной программой из когда-либо написанных.
Поделиться публикацией
Комментарии 267
    +18
    офигеть. звучит как дешевенький сериал про погромистов-взломщиков, только на самом деле :)
      +34
      Вот только непонятно какое это имеет отношение к «самой сложной программе».

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

      Сломать — обычно проще, чем починить, так что STUXNET, при всей своей изощрённости и близко не дотягивает до сложности браузера, в котором вы сейчас читаете эту статью — а этот браузер, в свою очередь, гораздо проще, чем многие другие программы, с которыми он взаимодействует.
        +1
        При всей сложности браузера, сделать его проще, чем такого червя.
        Просто представьте сколько закрытых и специфичных знаний было в него вложено.
        Представьте себе ВЕСЬ цикл отладки, который понадобился для того, чтобы можно было смело выпускать его в сеть. Ведь у него была только одна попытка — любая ошибка обратила бы все эти усилия в пыль, выдав его с потрохами.
          +10
          Просто представьте сколько закрытых и специфичных знаний было в него вложено.
          Примерно столько же, сколько в какой-нибудь WebRTC.

          Ведь у него была только одна попытка — любая ошибка обратила бы все эти усилия в пыль, выдав его с потрохами.
          А с этим пожалуйте в НАСА. У них часто есть одна попытка на то, чтобы удалённо исправить ту или иную ошибку — и ничего, справляются как-то.
            +1
            А с этим пожалуйте в НАСА. У них часто есть одна попытка на то, чтобы удалённо исправить ту или иную ошибку — и ничего, справляются как-то.

            В данном случае ошибку невозможно было бы ни обнаружить, ни исправить удалённо. Т.е. условия ещё более жёсткие, чем в НАСА.
              +1
              Т.е. условия ещё более жёсткие, чем в НАСА.
              Условия — да, более жёсткие, сложность программы — нет.

              Единcтвенная часть, которую НАСА далает, а разработчики Stuxnet не делают — проверка результатов работы (у Stuxnet этим шпионы занимались, очевидно, а не программа). Всё остальное — так же.

              Только разработчики Stuxnet сделали свою работу один раз, а в НАСА такие вещи делаются десятки (сотни?) раз в год…
                +6
                Только разработчики Stuxnet сделали свою работу один раз, а в НАСА такие вещи делаются десятки (сотни?) раз в год…

                Справедливости ради, мы точно не знаем, сколько раз в АНБ делали такую работу. Мы знаем, что, как минимум, Stuxnet и платформа Flame/Duqu были обнаружены. Мы не знаем, сколько обнаружено не было.

                +3
                В данном случае ошибку невозможно было бы ни обнаружить, ни исправить удалённо.

                Там же сказано, что червь скачивает свою самую последнюю версию. Раз есть версионирование, значит и есть исправление ошибок, не вижу причин не перепрошить контроллеры ещё раз.
                +1
                А как быть со сложностью реверсного инжениринга винды и сименса?
                Нет, конечно, если у хакеров был доступ к исходным кодам и внутренней документации производителей — дело принимает другой оборот.
                Но представим, что их не было. Тогда что?
                А как тестировать софт на урановой центрифуге? Это вообще не штатное изделие, у которого можно заказать копию и отладить в лаборатории (как делает NASA со своими тестовыми экземплярами).
                  0
                  А зачем тестировать софт на центрифуге? Достаточно воспроизведения программного окружения и частотника, который крутит центрифугу, сама механика не обязательна
                    0
                    Ну сам барабан не нужен. Но ПО контроллера понадобится. В абстрактный код просто так не встроишся. Надо же знать на каких входах какие сигналы, как закодированы и т.д.
                      0
                      Прошу прощения, воспринял ваш комментарий
                      А как тестировать софт на урановой центрифуге? Это вообще не штатное изделие, у которого можно заказать копию и отладить в лаборатории (как делает NASA со своими тестовыми экземплярами).

                      как необходимость полного воспроизведения HW и SW, хотя на самом деле достаточно программного окружения, исходного проекта Step 7 и ПЛК+частотник из железа.
                +2
                Ты попробуй эти данные достань, разберись с особенностями систем как Siemens, у которой даже документации нормальной нет. И все закрыто. Это ппц сколько надо было потратить сил и времени. А как это все отладить я даже представить не могу.
                  +1
                  > При всей сложности браузера, сделать его проще, чем такого червя.

                  Только мы что-то не наблюдаем разнообразия браузеров.
                    0
                    Почему вы думаете, что у него была лишь одна попытка? Ведь не зря же в него была встроена функция самообновления.
                    0
                    Если переходить на ваш уровень сравнения. Организм — это операционная система с установленным ПО и драйверами. Естественно это уже совершенно другой порядок сложности.
                    Компьютерный вирус ведь не зря назвали именно так. Он моделирует работу реальных вирусов, которые взламывают защиту иммунной системы организма, мимикрируют выдавая себя за «своих». Но биологические вирусы «писала» эволюция сотни миллионов лет, и я бы не рискнул говорить, что по сложности они уступают биологическим системам защиты присутствующим в организме.
                  +13
                  Некачественный перевод пересказанной истории.
                  habr.com/post/123030
                    +12
                    По этой ссылке:
                    Stuxnet был очень сложной программой, содержащей около 10 000 строк кода, написание которых заняло человеко-годы.
                    Ok 10 000 строк кода может занять 2-3 человеко-года, но это не самый большой объем кода из известных. Нпр., антикварный компилятор Pascal-8000 OS 360/370 содержал 10 000 строк исходного кода. Извините м.б. я чего не понял в этой статье?

                    Понятно, что была успешно проведена очень сложная операция, которая потребовала непростой подготовки, но в сложной операции не обязательно применяют только очень сложные инструменты. Нпр., центрифугу можно подорвать простым динамитом, но это не упростит задачу и не уменьшит заслуг ее исполнителей.
                      0
                      Мда, взорвать центрифугу нынче считается заслугой…
                        +4
                        Сложность зависит не столько от количества строк кода, сколько от количества блоков со сложной логикой. Сложная логика — тоже понятие субъективное, я бы оценивал это как логика. которую сможет написать далеко не каждый считающий себя программистом (и чем меньше людей сможет это сделать — тем сложнее логика). Но и с этой точки зрения, данный червь — не рекордсмен, потому как если взять ядро какой-нибудь ОС — да хоть ядро Линукс, или Windows, — то там сложной логики тоже найдётся в достаточном количестве.

                        Но статья всё равно интересная :)
                          +1
                          Сложная логика — тоже понятие субъективное, я бы оценивал это как логика. которую сможет написать далеко не каждый считающий себя программистом (и чем меньше людей сможет это сделать — тем сложнее логика).

                          В принципе согласен. Но интересны детали. Нпр., упомянутый компилятор Pascal-8000 (структура компиляторов Вирта) — это сложная логика? Вроде- да, но парсер для такого компилятора и YACC сгенерирует…
                            0
                            Парсер — это ничтожно малая часть компилятора.
                              +1
                              Если это не C++. В C++ парсер должен являться компилятором. Такая вот рекурсия…
                                0
                                В компиляторе, о котором речь, довольно простая генерация кода и несложная оптимизация. Парсер выглядит наиболее сложной частью.
                        +13
                        Уважаемый переводчик,
                        скажите, пожалуйста: а что самое сложное в этой программе?:
                        залезть на USB-диск? выйти в инет? найти ПО Siemens? проснуться? повысить давление газа? что-то еще?
                          +14
                          Я бы предположил, что самое сложное оставаться незамеченным во время и после выполнения этих процедур
                            –4
                            Так заметили же. Не сразу — но заметили.
                              +6
                              Заметили после того, как троян выполнил свою функцию. Есессно заметили. Вы бы тоже заметили, что у вас производство накрылось медным тазом. А в случае урановой промышленности — перетрясли бы каждый электрочайник, не то, что оборудование…
                                +3
                                И тем не менее обнаружили его не в Иране (где он ароде как выводил из строя центрифуги), и даже не в России, а в Беларуси. Где и центрифуг-то никогда не было.
                                  0
                                  Нет, обнаружили его в Иране. Просто произошло это усилиями белорусской компании.
                                +1
                                Смотрел фильм про это дело. Там говорили, было много заинтересованных сторон. Сторонники более агрессивной атаки, чтоб быстрее и посильнее все сломать. Сторонники скрытности, чтоб долго и медленно и по чуть-чуть. И как-то таки задрали ему агрессивность слишком сильно. И тогда-то его и нашли.
                              +5
                              Вмешаюсь (я не переводчик)
                              Думаю, что самое сложное в этоц программе — ее успешно достигнутая цель, незаметно трахнуть ядерную программу Ирана.
                                +5
                                Как минимум то, что программа делала всё вышеперечисленное (а ещё захватывала компьютеры и размножалась по сети и через USB) в течение года и за всё это время никто её деятельность не обнаружил. Ни одна антивирусная компания.
                                  –2
                                  Речь про антивирусные компании Ирана?
                                    +4
                                    Речь идёт про все антивирусные компании в мире. В основном червь был распространён в Иране (58% хостов), но при этом так или иначе встречался во многих странах. В конце текста есть ссылка на отчет Symantec с подробным описанием.
                                    P.S. Не знаю наверняка, на едва ли у Ирана есть свои компании — разработчики антивирусов. Скорее всего они использовали ПО известных компаний.
                                      –2
                                      А сколько еще других вирусов больше года живет в инете?
                                        +5
                                        Пока их не найдут, их одновременно много и совсем нет.
                                          +6
                                          Ok. Пока они не станут ломать центрифуги их никто не будет искать. Т.о. чтобы быть сложным не надо ломать центрифуги…
                                            0
                                            Ok. Пока они не станут ломать центрифуги их никто не будет искать.
                                            Неправильно, поскольку они используют уязвимости обычных ОС, то как только уязвимость закрывается, то по активности вируса в песочнице он сразу и попадётся.
                                              0
                                              Совсем не так. Антивирусы вычисляют большинство заразы ещё на этапе внедрения в систему. Совсем не важно, какая боевая нагрузка идёт бонусом. Сам факт наличия в системе постороннего кода (Пусть и безопасного) — вторжение. И вредоносов, реально скрытно формирующих ботнеты в интернете — единицы. Большинство просто не лечат. А тут — не обнаружили даже. И это не только касперский, а тот же симантек.
                                              0
                                              Шредингеровские вирусы.
                                              0
                                              Никто не знает. Это как «а кто самый лучший преступник?» Мы не знаем.
                                          0

                                          Могла заразить через флешки без создания файлов? Никого не насторожили левые файлы, связь непонятно чего непонятно с чем. Это же все должно отлавливаться, чай не бюджетники. Или таки бедные бюджетники с экономией на IT?

                                            0
                                            Конечно, могла. Софт такого уровня, да еще в те годы по-любому скрывал свое присутствие в системе — драйвера, перхватывающие системные вызовы и т.п., позволяющее искажать список файлов. Загрузочный вирус, в конце концов.
                                              0

                                              Загрузочный же в виде файла? Искажать список файлов можно на зараженной машине, а на новой нет. Не отключить автозагрузку в нынешние времена? Странно это все. На критические машины вообще никаких носителей не должно быть лишних. Или это все по сети шло или непонятно. т.к. на флешке должны были быть файлы на которые должны были обратить внимание, если там конечно IT вообще был.

                                                +2
                                                1. Достаточно поставить 'Hidden' на лишние файлы, в организациях почти нет гиков, которые работают в консоли или в FAR, с отображением системных и скрытых файлов.

                                                2. AutoRun не обязан быть включенным, вирус активировался из-за бага в отрисовке lnk-файла в проводнике, когда содержимое флешки просматривали через «Мой Компьютер».

                                                3. В «критические» машины ничего и не сували, их заразили по сети, через другие уязвимости. Тут главное пройти в изолированную сеть.
                                                  0

                                                  За то есть ПО, которое ловит все эти автозагрузки и без антивируса.
                                                  Что за баг через lnk? Не встречал упоминаний.
                                                  Критические машины не должны быть в сети с остальными.

                                                    0
                                                    Что за баг через lnk? Не встречал упоминаний.
                                                    habr.com/post/99732

                                                    За то есть ПО, которое ловит все эти автозагрузки и без антивируса.
                                                    Если бы им ещё пользовались… К примеру, какое такое ПО установлено у нас в воинских частях или штабах? Я ничего такого не слышал.

                                                    Критические машины не должны быть в сети с остальными.
                                                    На момент проектирование разделение чёткое. А когда сдают в эксплуатацию, много лет компьютерами пользуются разные люди, немудрено и забыть, в какой компьютер что можно вставлять, а что нельзя.
                                                      0

                                                      Т.е. опять приходим к тому, что IT спецов там по сути не было. Экономили на допусках к секретам. Как обычно в прочем. Экономия.

                                          +26
                                          А всё — из-за не совсем корректно переведённого слова:
                                          "sophisticated" — в данном случае — скорее "изощрённый" чем «сложный» («complex», «difficult»).

                                          Не берусь утверждать что Stuxnet действительно является одной из самых изощрённых программ, но так хотя-бы понятно что автор оригинального текста (на Quora) имел в виду.
                                            0
                                            А всё — из-за не совсем корректно переведённого слова:
                                            «sophisticated» — в данном случае — скорее «изощрённый» чем «сложный» («complex», «difficult»).
                                            Согласен. Интересно, что гугл предлагает еще вариант «вводящий в заблуждение». М.б. и этот вариант мог подойти для заголовка? ;)

                                            Не берусь утверждать что Stuxnet действительно является одной из самых изощрённых программ
                                            Наверное, можно утверждать, что программа Stuxnet прославилась тем, что сумела обмануть (надуть, оставить с носом и т.д.) службы безопасности сверхважного проекта целого государства (Ирана).

                                            BTW Возникает интересный вопрос: если еще какое государство захочет освоить обогащение урана, то, опасаясь подобных диверсий, оно может заказать и закупить устаревшие центрифуги, которые применялись в докомпьютерные времена — там наверное была автоматика, но не сильно сложнее, чем предохранительный клапан первых паровых машин. Это будет интересный случай сознательного отказа от достижений прогресса по причине их уязвимости.
                                              +2
                                              Никто такой херней страдать не будет. Просто не будут подключать ПК управляющие центрифугой к сети и запретят всовывать не пустые носители инфы.
                                                0
                                                Как тогда апдейтить центрифужный софт?
                                                  –3
                                                  1. Так же как апдейтился софт большинства космических кораблей, спутников и луноходов/марсоходов (кроме самых современных) — никак.
                                                  Апдейты для такого критичного производства скорее вредны, чем полезны и нужны только при реальной критичной проблеме в софте, разумеется ОС и софт должны быть проверянными и отлаженными много раз до запуска в продашен.

                                                  2. Программист садиться за комп центрифуги, запускает компилятор, скажем, С++ программы, и с листочка переписывает изменения программы, отлаженные на тестовом стенде. А десяток других программистов, QA инженеров и чекистов стоят за его спиной и проверяют по своим листочкам.
                                                    +4
                                                    1. Так же как апдейтился софт большинства космических кораблей, спутников и луноходов/марсоходов (кроме самых современных) — никак.
                                                    Апдейты для такого критичного производства скорее вредны, чем полезны и нужны только при реальной критичной проблеме в софте, разумеется ОС и софт должны быть проверянными и отлаженными много раз до запуска в продашен.
                                                    Рассказывает теоретик не имеющий ровно никакого представления о том, как устроены и работают космические корабли, спутники и прочее.

                                                    Про Apollo 14 слышали? А про Voyager? Про более современные марсоходы я уж и не говорю: апдейт софта для них — рутинная операция.

                                                    Разве что советские луноходы этого избежали: компьютеры тогда были настолько большими и медленными, что вместо программ использовался оператор, который следил за всем происходящим из ЦУПа с Земли.

                                                    Я надеюсь вы не предлагаете возле каждой центрифуги посадить оператора, который будет за ней следить?

                                                    2. Программист садиться за комп центрифуги, запускает компилятор, скажем, С++ программы, и с листочка переписывает изменения программы, отлаженные на тестовом стенде. А десяток других программистов, QA инженеров и чекистов стоят за его спиной и проверяют по своим листочкам.
                                                    И так — несколько сот раз. Я боюсь у программиста случится нервный срыв, а уж сколько раз программа будет вбита неверно, несмотря «десяток других программистов» — одному богу ведомо…
                                                      0
                                                      И так — несколько сот раз. Я боюсь у программиста случится нервный срыв, а уж сколько раз программа будет вбита неверно, несмотря «десяток других программистов» — одному богу ведомо…

                                                      Зачем сто раз? Достаточно один раз, а перекинуть апдейт от одного чистого компа к другому можно как по внутренней «чистой» сети, так и с помощью «чистых» накопителей, которые никогда не присоединялись к другим компьютерам. Это вполне обычные требования построения закрытых систем.

                                                      апдейт софта для них — рутинная операция

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

                                                        Как только мы вводим в систему «доверенную» флешку или сеть, так тут же получаем шанс, что кто-то «для простоты» уберёт лишнее звено.

                                                        То есть обноления для многих спутников или были невозможны или являлись самым последним средством, когда по другому аппарат будет потерен.
                                                        Тем не менее на практике это приводит к десяткам (если не сотням) апдейтов в год.

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

                                                          За это трибунал с последующим лишением звания и тюремным заключнием на N лет.

                                                          И это требования, которые достаточно просто нарушить.

                                                          Вы просто плохо представляете насколько регламент в таких случаях (ядерные электростанции, ядерное оружие и т.п.) контролируется и как он медленно меняется, особенно в сторону упрощения. Работник просто не выйдет с чистой флешкой через десяток постов с ренгеном и не войдет с левой флешкой в кармане. А если попытается — сядет всерьез и надолго. И это лишь небольшая часть защиты подобных систем.

                                                          странно ожидать, что у центрифуг проблем никогда не будет и разбираться с ними никогда не придётся

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

                                                          А еще придется убедиться, что сетевое оборудование чистой сети не содержит закладок, а новые носители из коробочки были действительно упакованы на заводе-изготовителе и действительно чистые.
                                                            0
                                                            Так закладка может быть и конролерах жестких дисков, процессоров и т.п. оборудовании. Поэтому на таком уровне паранои, гарантирована чистыми будет только отечественное железо и софт. Да и то, не на 100%.
                                                              0
                                                              И компилятор придётся брать верифицированный, и рантайм до мозга костей, по-хорошему.
                                                          0
                                                          десяток других программистов, QA инженеров стоят за его спиной и проверяют по своим листочкам
                                                          Проблема Ирана в том, что своих технологий нет. Оборудование иностранное, никаких исходников, обновления можно ставить только бинарные, полностью доверяя поставщику оборудования.
                                                            0
                                                            vedenin1980 говорит: пускай иностранный специалист от фирмы-поставщика приезжает на объект и под дулом автомата контролем местных безопасников перепечатывает апдейт с бумажки.
                                                              +2
                                                              А я говорю о том, фирма-поставщик может дать только бинарный апдейт, закрытый цифровой подписью, который можно перепечатать за пару месяцев, но в котором никто ничего не поймёт. Чтобы были исходники, контроль и понимание, технология должна быть своя.
                                                                –1
                                                                говорит: пускай иностранный специалист от фирмы-поставщика приезжает на объект и под дулом автомата контролем местных безопасников перепечатывает апдейт с бумажки.

                                                                Спасибо за перевод того что я говорю, но вообще-то я этого не говорил. Сами по себе апдейты оборудования в виде бинарных кодов от иностранного производителя при полном отсутствии альтернаативных средств контроля — гарантированная уязвимость, даже вирусов никаких не надо, достаточно найти способы давления на производителя или его инженеров.
                                                                  0
                                                                  Как нет, когда да?
                                                                  2. Программист садиться за комп центрифуги, запускает компилятор, скажем, С++ программы, и с листочка переписывает изменения программы, отлаженные на тестовом стенде. А десяток других программистов, QA инженеров и чекистов стоят за его спиной и проверяют по своим листочкам.
                                                                    +2
                                                                    Вы в упор не хотите видеть того факта, что никто вам исходники не даст, а перепечатывание бинарного файла вручную ничего не даст.
                                                                      +1
                                                                      Я не хочу видеть? Я привёл цитату vedenin1980, про которую он утверждает, что он такого не говорил.
                                                                      Про перепечатывание бинарного файла вручную — не говорил ни он, ни я.
                                                                        +1
                                                                        Зачем приводить цитату того, что в принципе невозможно?
                                                                        Про перепечатывание бинарного файла это единственная возможность сделать обновление «вручную» без прямого использования носителей информации.
                                                                          0
                                                                          Если еще перечитайте цитаты, я говорил об одном из способов, как обычно делаются обновления для систем, которым запрещен доступ в внешний мир, вроде комьютеров управления ядерными ракетами или электоростанциями. Разумется, это бесмысленно в случае если программа сделана не в том же государстве или хотя бы нет полных исходных кодов.

                                                                          Где вы там увидили предложение, чтобы иностранный программист приезжал за сверхсекретный объект чужой страны? Я не представляю ни одной страны, которая пустила бы гражданина другой страны на такой объект в принципе. Не говоря уже о гражданине потенциально-враждебного военного блока. И тем более, ни один иностранец на такой объект сам не приедет.
                                                            0
                                                            Ядерные объекты Ирана не были подключены к сети. И регламент носителей был. Не спасло это их из-за уязвимостей нулевого дня.
                                                              0
                                                              Ну и что? Всё равно никто не будет страдать покупкой древности. Просто регламент будет жестче — не втыкать флэшки вообще, например.
                                                                0
                                                                Почему вы так уверены? В банкоматах крупнейших банков мира стоит XP Embeded, которая до сих пор не снята с техподдержки. Во многом именно из-за большей предсказуемости поведения и большой временной проверки. Хотя большее старьё в мире живых ОС сыскать трудо. Почему бы и не взять какие-нибудь центрифуги времён российского докомпьютерного атомного проекта.
                                                                  +1
                                                                  XP используется, потому что железо не тянет нихрена. А новое железо стоит как крыло от самолета, при этом смысла от него не много.
                                                                  Это я с уверенностью заявляю как человек делавшим пару лет назад через своё ИП закупку XP Embedded для платежных терминалов партнера.
                                                                    0
                                                                    MS очень долго заявлял, что у его 10-ки системные требования в базовой версии ещё скромнее предшествующих ОС. Сам не сверял. Может и врали конкретно.
                                                                    Но у вас есть ключевое: «смысла от него не много». А рисков-то больше. Не только в цене ИМХО дело.
                                                                      0
                                                                      «Я вам не скажу за всю одессу» (С)
                                                                      Я не в курсе ситуации в каждом конкретном случае.
                                                                      Мой единичный опыт однозначно указывает на единственную причину использования XP — legacy железо, которого уже закуплено дофига и давно используется. Нежелание менять кобыл, которые уже вывозят бизнес тыщу лет.
                                                                      Не вижу причин полагать, что у других что-то отличается.
                                                                      Стремление бизнеса к консерватизму вполне хорошо известно.
                                                                      Я не могу представить человека(имеется ввиду не личность, а должность), который возьмет на себя ответственность перевести весь бизнес на другую ОС без веской причины.
                                                                        0
                                                                        MS очень долго заявлял, что у его 10-ки системные требования в базовой версии ещё скромнее предшествующих ОС. Сам не сверял. Может и врали конкретно.
                                                                        По ресурсам достаточно посмотреть на минимальные требования: 64MB RAM у WinXP, 512MB Win10 IoT edition (самый тонкий), 256MB у Win10 IoT в режиме headless (т.е. только ядро и службы, без GUI).

                                                                        Вопрос не сколько в мегагерцах/мегабайтах, сколько в поколении железа. XP можно включить на Pentium-1/133MHz (для терминала хватит), а для Win10 необходим процессор с проддержкой SSE2, NX и PAE. Т.е. Pentium-4 — минимум.
                                                                          0
                                                                          и не просто P-IV, а самые последние, на cedar mill, только у них NX появился
                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                            +6
                                                            Самое сложное тут не завалиться ни на одном из шагов и выполнить поставленную задачу. В отличии от обычного ПО, вредоносное ПО не может быть так тщательно оттестировано и отлажено, хотябы потому что под рукой может не оказаться достаточного кол-ва центрифуг. Такого рода ПО использует множество недокументированных возможностей и багов. В любой момент что-то может пойти не так и не сработать. Такое ПО работает изначально во враждебной среде и его можно сравнить, например, с марсоходами)

                                                            А если рассматривать сложность в контесте глубин абстракции и сущностей, то конечно тут даже текстовый редактор со среднем функционалом его обойдет. Но вредоносам такая сложномть ни к чему, для них главное надежность. Поэтому чем проще, тем лучше
                                                              +1
                                                              его можно сравнить, например, с марсоходами
                                                              Хороший пример! Задача написать ПО для марсохода выглядит сильно сложнее именно потому, что тестирование в реальных условиях невозможно ни за какие деньги, а вот в случае с центрифугами можно купить достаточное количество при условии достаточного финансирования проекта. К тому же, наверняка, можно (м.б. частично) использовать только части центрифуг и бракованные изделия. А испорченные (в ходе тестирования) ремонтировать. М.б. вместо покупки возможна аренда на время тестирования. Конечно, это задача не для школьного кружка информатики.

                                                              для них главное надежность. Поэтому чем проще, тем лучше
                                                              Ok. И для марсохода главное надежность.
                                                                0
                                                                Зато о действиях марсохода можно узнавать по телеметрии, и слать апдейты.
                                                                В случае же Stuxnet об его успехе/неуспехе можно было узнавать только по заголовкам иранских газет.
                                                                  0
                                                                  Насколько я понял червь в случае неудачи может обновиться и повторить попытку:
                                                                  Затем червь проверяет, может ли он выйти в Интернет. Если может, он пытается посетить сайты www.mypremierfutbol.com или www.todaysfutbol.com. В то время эти серверы были Малайзии и Дании. Он открывает зашифрованный канал связи и сообщает этим серверам, что новый компьютер успешно захвачен. Зачем червь автоматически обновляет себя до самой новой версии.

                                                                  После этого червь копирует себя на любое другое USB устройство, которое вам пришлось вставить.
                                                                    0
                                                                    Только на начальном этапе размножения. Всё интересное, в частности работа с центрифугами, происходит без доступа к интернету.
                                                                      0
                                                                      А что мешает слать апдейты? Зловред скопировал себя на USB-диск. Но в газетах (и в агентурных источниках) никаких сообщений, значит делают апдейт. И так до успеха или до полного провала.
                                                                        +2
                                                                        Неизвестно, попал ли код на центрифуги. Возможно, код уже очень хорош, но просто его ещё не перенесли в защищённую сеть. В этом случае выпускать апдейт, меняющий поведение вируса, может быть вредно. Вдруг первая отработала бы правильно, а в новой версии либо слишком заметное поведение, либо новая не пойманная бага.
                                                                          0
                                                                          Неизвестно, попал ли код на центрифуги.
                                                                          Скорее всего, поставщик центрифуг рассылает обновления ПО сразу всем своим клиентам. Поэтому про появление обновления не трудно узнать по официальным каналам. Вирус попадет вместе с очередным обновлением.

                                                                          Вдруг первая отработала бы правильно, а в новой версии либо слишком заметное поведение, либо новая не пойманная бага.

                                                                          Элементарно можно предусмотреть случай встречи двух версий вируса на компе управления центрифугой. Если первый не отработал, то пусть отработает, а потом в случае неудачи запустить второй (или наоборот, т.к. поздняя версия более совершенная). Вирус может запоминать сделанные попытки — он о них только в инет сообщить не может.

                                                                          В статье указаны два возможных пути: 1) повысить давление газа; 2) повысить скорость. Если по первому не получилось, значит, придется пробовать второй, не получилось по второму — искать третий и т.д.
                                                                            0
                                                                            Скорее всего, поставщик центрифуг рассылает обновления ПО сразу всем своим клиентам.
                                                                            Только зачем их устанавливать, если и так всё работает.
                                                                              +1
                                                                              Только зачем их устанавливать, если и так всё работает.
                                                                              Это вопрос к автору статьи — если бы их не ставили, вирус бы не добрался до цели.
                                                                                0
                                                                                Прочитайте статью, прежде чем комментировать. Она не очень длинная.
                                                                                  0
                                                                                  А что не так? М.б. Вы чего-то просмотрели?
                                                                                    0
                                                                                    В статье я не увидел упоминаний, что вирус проник благодаря установке обновлений.
                                                                                      +1
                                                                                      А что еще могли таскать на USB-диске с одного компа (с инетом) на другой (без инета)? Неужели фотографии котиков?
                                                                                        0
                                                                                        Обычный документооборот в гос. учреждениях: отчётнось, заявления, приказы, планы. Котиков и порно тоже могли таскать, в личных целях.
                                                                                          0
                                                                                          Обычный документооборот в гос. учреждениях: отчётнось, заявления, приказы, планы. Котиков и порно тоже могли таскать, в личных целях.


                                                                                          При столь низком уровне безопасности задача вируса сильно упрощается.
                                                              –1
                                                              Самое сложное — перевести текст на русский после гуглопереводчика.
                                                                0
                                                                Самое сложное
                                                                а) прописать сценарий со множеством ветвлений и распространения в неизвестной среде, сохранив скрытность
                                                                б) найти неизвестные доселе уязвимости в винде
                                                                в) найти неизвестные доселе уязвимости в сименсе
                                                                г) разработать алгоритм управления центрифугой, не имея на руках тестовой центрифуге (А откуда, это штучный товар)
                                                                  0
                                                                  разработать алгоритм управления центрифугой, не имея на руках тестовой центрифуге (А откуда, это штучный товар)

                                                                  Я так понимаю это была операция спецслужб НАТО с приличным бюджетом, получить центрифуги для тестирования скорее всего не проблема, даже получить/купить бекдоры это только вопрос денег и влиятния.
                                                                    +1
                                                                    Вот. Значит помимо кодеров ещё толпа агентов трудилась для разработки программного продукта. ИМХО это тоже надо включать в сложность общей разработки.
                                                                      0
                                                                      ИМХО это тоже надо включать в сложность общей разработки.
                                                                      ИМХО в сложность общей разработки спец.операции, но не в сложность кода программы.
                                                                        0
                                                                        Речь всё-таки про сложность программы, а не всей операции. А то у нас программа для Аполлона самой сложной в мире станет…
                                                                          0
                                                                          Ну там роль программы скорее вспомогательная. Для обеспечения других операций. А тут наоборот — куча операций по обеспечению разработки ПО.
                                                                            0
                                                                            Тут программа не сильно сложнее, чем там, на самом деле.

                                                                            Только там программа должна была довести ракету до луны и посадить её, а тут нужно довезти вирус до пещеры и там ломануть центрифугу…
                                                                    0
                                                                    на мой взгляд:
                                                                    1. Обнаружить никому неизвестные уязвимости
                                                                    2. Использовать совокупность этих уязвимостей вместе
                                                                    3. Завербовать инсайдеров в компаниях для кражи ключей
                                                                    4. Завербовать инсайдеров в Иране
                                                                    5. Скрытно оплатить их услуги
                                                                    6. Создать аналогичный лабораторный стенд
                                                                    7. Все то, что Вы описали

                                                                    +5
                                                                    Господа не видели исходники линукса или хрома? Можно добавить исходники оракла, но тут согласен, их реально мало кто видел.
                                                                      +2
                                                                      Ok. Also: в книге Диомидис Спинеллис, Анализ программного кода на примере проектов Open Source, М., СПб, Киев, 2004 в качестве примера «огромного кода» приведен Web-сервер apache.
                                                                        +4
                                                                        Исходники ядра Linux покажутся цветочками по сравнению с монстром типа reload в коде GCC (почему-то при чтении заголовка статьи сразу подумал об этом).
                                                                          +4
                                                                          снимаю шляпу и нервно тереблю в руках :) LLVM тоже вспомнился. По reload — вот это доставляет:
                                                                          >Reload does everything, and probably no one exactly knows how much that is.
                                                                        +4
                                                                        В то же время, он увеличивает давление газа в этих центрифугах. Этот газ называется UF6. Очень вредная штука. Червь изменяет давление этого газа чуть-чуть за пределами безопасных значений. Ровно для того, чтобы при попадании газа в центрифуги во время работы появлялся небольшой шанс того, что они превратятся в камни.

                                                                        Кто "они"? Центрифуги? Пределы? Значения?

                                                                          +2
                                                                          Речь шла о газе. Спасибо за замечание, поправил.
                                                                            +7
                                                                            Пока я писал комментарий, автор исправил вызвавший претензии оборот. Однако здесь есть неочевидная штука (которую я выяснил, пока я писал комментарий, а автор успел исправлял оборот), поэтому я все же не удалю комментарий, а оставлю в исправленном виде.

                                                                            В оригинале:
                                                                            The worm makes the pressure of that UF6, just a tiny bit out of safe parameters. Just enough that the UF6 gas in the centrifuges, has a small chance of turning into rock, while the centrifuge is spinning.

                                                                            Centrifuges don’t like running too fast or too slow. And they don’t like rocks either.


                                                                            Т.е., выйти чуть-чуть из рабочего режима, чтобы гексафторид урана из газовой фазы мог превратиться в «твердь» во вращающейся центрифуге. Гексафторид урана — твердое соединение при обычных условиях, но у него тройная точка весьма близко к обычным условиям, и он легко возгоняется, а разделяют изотопы урана в газовой фазе. Небольшие изменения условий могут сильно менять агрегатное состояние гексафторида урана (газ/жидкость/твердое состояние), и понятно, что газовые центрифуги к такому фазовому переходу будут очень восприимчивы.
                                                                            +6
                                                                            Как только прочел про случайно подобранную флешку, сразу подумал про стакснет.
                                                                            Хотя, емнип, там было сложнее — заражение было двухфазным, сначала заразили компьютеры компании-разработчика ПО, которая имела выход в интернет. А оттуда уже заразили флешку, на которой переносили обновления в иранскую лабораторию, НЕ подключенную к интернету.

                                                                            Много пафоса для простой истории в рамках хабра.
                                                                              –6
                                                                              Дорогие критики, признайте, задумка червя гениальна, кто бы ни сделал это… он чертов гений!
                                                                              И теперь подумайте, а что если… все компьютеры с виндой уже заражены… как вы проверите?
                                                                                +62
                                                                                как вы проверите?
                                                                                Подключим центрифугу и посмотрим нормально ли она работает:)
                                                                                  +1
                                                                                  Вы про Reflections on Trusting Trust что-нибудь слышали? Люди над этими проблемами размышляют уже многие годы… а вы только что проснулись…
                                                                                    +2
                                                                                    Любая венда, которая самостоятельно скачивает исполняемые файлы и запускает их без согласия пользователя (т.н. обновления) уже потенциально заражена.
                                                                                      +3
                                                                                      все компьютеры с виндой уже заражены

                                                                                      Небольшое исправление.
                                                                                        0
                                                                                        Зараза к заразе не пристает ;—)
                                                                                          –5
                                                                                          Stuxnet- сдаже само название говорит, что асе может плохо кончится, а какая сторона плохо кончит-не известно. Вообщем-стухнет. И теперь понятно кто червь -создал;—)
                                                                                            +1
                                                                                            Вообще-то, его так назвали не авторы, а вирусные аналитики, которые поймали червя. Может, авторы дали ему прекрасное название, а эти аналитики всё опошлили?
                                                                                          +3
                                                                                          Ага, точно.
                                                                                          Ведь у секретных производств стандартизованные и известные API для управления их сердцем — центрифугами.
                                                                                            +14
                                                                                            Центрифуги для секретных производств покупают у тех же производителей (Siemens и т.п.), что и для несекретных производств. Нету никаких «секретных заводов по производству секретных центрифуг», по крайней мере в Иране.
                                                                                              +6
                                                                                              Маленькая поправочка: центрифуги Siemens не производит. Центрифуги производят совсем другие люди в совсем другом месте. И это производство — таки секретное (когда-то и завод был секретным, но те времена прошли).

                                                                                              Что было закуплено у Siemens'а — это аппаратура контроля. Когда-то и она была секретной, но тут Иран решил «не париться», взял универсальную у Siemens'а — на чём и поплатился.
                                                                                                0
                                                                                                Специальные версии для отдельных клиентов — обычное дело, а иногда и неотъемлемое. И покупая «такие-же» может оказаться что они вовсе другие. Так даже если бы производство было не секретным, все равно пришлось бы довольно много узнать чтобы быть уверенным.
                                                                                              +10

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

                                                                                                +1
                                                                                                Согласен. Мат. док-во необходимо.
                                                                                                  +8
                                                                                                  Тут скорее не сам код сложный, а сложность в знаниях(куча 0-day уязвимостей разного уровня и железа; ключи, которыми подписывали драйверы), необходимых для написания этого кода.
                                                                                                    0
                                                                                                    Почти конспирологический намек на спецслужбы )
                                                                                                      +12
                                                                                                      Нет никаких сомнений, что Stuxnet разработан спецслужбами. В первую очередь, у кого ещё найдутся деньги на оплату нескольких программисто-лет ради саботажа иранской ядерной программы, т.е. безо всякой денежной выгоды?
                                                                                                        0
                                                                                                        Возможно да, возможно нет. Доказательств нет — посему и получается то самое конспирологическое «а кто же еще?»)
                                                                                                      +2
                                                                                                      +не совсем понятно как это все тестировать
                                                                                                        +2
                                                                                                        Сдаётся мне, это заслуга не хакеров, а АНБ или ЦРУ, которые просто пришли в Рэдмонд — «а ну гоните нам бэкдоры для одной важной спецоперации».
                                                                                                          0
                                                                                                          Не куча, а всего 1 zero day, согласно вики, остальные 3 были известны на тот момент. Автор статьи приукрасил.
                                                                                                          +1

                                                                                                          Отбрасывая теорию заговора, можно предположить, что где-то с начала 2000-х в Microsoft сидел рецидивист под видом junior'а и время от времени делал баги в ядре. А потом тот же самый рецидивист перешел работать в реалтек. После опыта то работы над ядром операционки они его охотно взяли к себе. После этого ему оставалось лишь вставить флэшку в чужой комп, чтобы найти нужный файл приватного ключа на какой-нибудь билд-машине, используя свои же собственные баги.

                                                                                                            +4
                                                                                                            Я вас умоляю. В программе размера с ядро Windows количество багов измеряется тысячами.

                                                                                                            Засовывать туда ещё несколько, а потом надеяться, что их никто не заметит и не удалит — нафиг нужно?

                                                                                                            Исходники Windows у спецслужб есть (да даже некоторым ВУЗам их дают под подписку о неразглашении), технологии поиска ошибок — давно известны (недаром на Хабре регулярно в соответствующем блоге статьи публикуются). Получите доступ к исходникам, заплатите за несколько человеко-месяцев работы — и накопаете сколько нужно багов.

                                                                                                            Приватные ключи китайских компаний утекают регулярно. Вот более свежий пример.

                                                                                                            Особенность stuxnet'а не в том, что он как! то особенно сложен, а в том, что он как-то особенно бесмысленен: денег на его создание ушло явно порядком, а ущерб нанесён не слишком большой.
                                                                                                              0
                                                                                                              ну так не надо засовывать, и программировать не надо — надо просто подсадить агента в QA-отдел и чтобы он
                                                                                                              1. сливал внутреннюю информацию о багах
                                                                                                              2. иногда как бы не замечал баги на своем участке тестирования (но отдавал их в «центр»)

                                                                                                              Если сознательно всовывать баги — велика вероятность попасться, тем более у джуниора. Такие вещи у джунов получаются бессознательно (баги, которые не может понять даже сеньор). Чтобы делать их сознательно — нужен уже скилл сеньора.
                                                                                                                0

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


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


                                                                                                                Может даже наоборот быть: архитектор какой-нибудь уважаемый, чей код считается за эталон и где-то на подсознательном уровне не проверяется так, как у других, из-за уже нажитой репутации хорошего работника.


                                                                                                                А может то и другое одновременно?.. Но это так просто мысли вслух :)


                                                                                                                P.S. Кстати, все мы знаем, что в Microsoft QA-отдел не пользуется особым уважением. Так что я не думаю, что у них там в принципе весь код всегда тестируется на все уязвимости. Ну может есть там в процессе у них что-то такое, но точно там люди сидят не с уровнем знаний, описанном в статье.

                                                                                                                  +1
                                                                                                                  Так что я не думаю, что у них там в принципе весь код всегда тестируется на все уязвимости.
                                                                                                                  Невозможно протестировать код на уязвимости. В редких случаях, когда у вас мало кода, можно формально доказать Coq и всё такое), но этого и близко нету.

                                                                                                                  История с Windows ограничивается тем, что дыры в ядре Windows ищут разработчики Windows и слоумышленники — и ни те ни другие не заинтересованы в публикации статистики.

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

                                                                                                                  Если вы верите, что ядро Windows в сотни раз надёжнее и безопаснее… ну верьте…
                                                                                                                    0
                                                                                                                    Если вы верите, что ядро Windows в сотни раз надёжнее и безопаснее… ну верьте…

                                                                                                                    А вы точно на мой комментарий ответили?) Я вроде не сравнивал ядра различных ОС. Глядя на то, какие баги фиксятся в очередном обновлении, я с уверенностью могу сказать, что не считаю Windows безопасной системой (как впрочем и любую систему, так как уязвимости есть везде).


                                                                                                                    Невозможно протестировать код на уязвимости

                                                                                                                    Есть достаточно много фирм, которые делают аудит кода за деньги. Вы это к чему?

                                                                                                                      0
                                                                                                                      А вы точно на мой комментарий ответили?)
                                                                                                                      На ваш, на ваш. Вы продолжаете настаивать на том, что кому-то нужен человек в Microsoft, который что-то там будет куда-то отсылать.

                                                                                                                      Я же говорю о том, что гораздо надёжнее такого человека иметь на довольствии в спецслужбе: нулевая вероятность что его спалят и вполне достататочная эффективность.

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

                                                                                                                      На тему кода без уязвимостей мой любымый пример — это Nintendi Wii. То, что она дырявая как решето — это ладно. Прикол в другом: в Wii есть загрузчик, boot1. 17K. Зашит намертво в процессор, а не во флеш, так что замене не подлежит. Понятно, что его аудировали и проверяли и всё такое прочее… и, тем не менее, первые два года — в нём была дыра, которую залатали только через — года.

                                                                                                                      17K… два года. А теперь посмотрите на размеры кода любой современной ОС…
                                                                                                                        0

                                                                                                                        Ну я спорить с вами не буду. Может быть дешевле (читайте надежнее), может быть не дешевле. Я лишь предположил возможный вариант.


                                                                                                                        По поводу уязвимостей. Были и будут. Вопрос в качестве кода и его тестировании. А что касается вашего нинтендо… Кто его знает? Может и аудировали вовсе?..

                                                                                                                          0

                                                                                                                          Может и не аудировали вовсе*

                                                                                                                  0
                                                                                                                  Если сознательно всовывать баги — велика вероятность попасться, тем более у джуниора. Такие вещи у джунов получаются бессознательно (баги, которые не может понять даже сеньор). Чтобы делать их сознательно — нужен уже скилл сеньора.
                                                                                                                  Что, никогда не озаряло: "***, вот это я баг там оставил"? А сознательно можно потом никому не сказать.
                                                                                                                    0
                                                                                                                    И что толку? Такие баги, которые появляются каждый день, приводят к неверным результатам, мелким визуальным глюкам интерфейса, тривиальным ошибкам типа деления на 0 или разыменовывания null-указателя. Они не приводят к несакционированному предоставлению доступа или выполнению кода в данных.
                                                                                                                      0
                                                                                                                      Какие это «такие»? Это может быть потенциально любой баг. Да, конечно большинство багов не потенциально опасны, но бывает. К примеру недавний баг проверки пароля в MAC OS вполне способен быть таким с озарением потом.

                                                                                                                      Я не говорю что это прямо регулярный случай, но нельзя исключать теоретическую возможность.
                                                                                                                        0
                                                                                                                        И баг проверки пароля в логин-форме никак не поможет проекту stuxnet.
                                                                                                                        То есть, мы обсуждаем, как гипотетический программист работает на ЦРУ, а пришли к сценарию, когда он сажает баги не для своего проекта, а для соседнего.
                                                                                                                  +1
                                                                                                                  да даже некоторым ВУЗам их дают под подписку о неразглашении

                                                                                                                  Их можно даже скачать, только тссс — никому не говорите.
                                                                                                                    0
                                                                                                                    Особенность stuxnet'а не в том, что он как! то особенно сложен, а в том, что он как-то особенно бесмысленен: денег на его создание ушло явно порядком, а ущерб нанесён не слишком большой.

                                                                                                                    Вам известны менее затратные способы вывести из строя иранские центрифуги?
                                                                                                                      0
                                                                                                                      Есть способы менее затратные и намного более быстрые. Но международное сообщество не поймёт.
                                                                                                                        0
                                                                                                                        Это какие? Атомная бомба, она ведь дорогая, зараза. А обычным вооружением до иранских заводов, запрятанных в горах достать крайне сложно.
                                                                                                                          0
                                                                                                                          Основная стоимость атомной бомбы в её разработке (поговаривают, эти деньги Израиль заплатил ещё в семидесятые), сам боеприпас не столь дорогой. А в качестве неядерного решения, израильтяне прикупили у США GBU-28 в количестве.
                                                                                                                0
                                                                                                                Теперь, поскольку червь получил полный контроль над центрифугами, он может сделать с ними всё, что захочет. Он может их всех отключить. Он может немедленно все их уничтожить – достаточно крутить их на максимальной скорости до тех пор, пока они не разлетятся как бомбы, убив всех, кто по случайности оказался рядом.


                                                                                                                Нельзя ли пояснить, почему вдруг центрифуги, раскрутившись на максимальной скорости, должны разлететься как бомбы? Почему они вообще способны разогнаться до скоростей, которые не будут выдерживать, и почему если это произойдет, то разорвавшийся цилиндр будет вести себя как бомба?
                                                                                                                  +6
                                                                                                                  Почему они вообще способны разогнаться до скоростей, которые не будут выдерживать

                                                                                                                  На них стоит софт, который следит, чтобы они не разгонялись до скоростей, которые не будут выдерживать. Именно этот софт и стал мишенью для вируса.
                                                                                                                    +3
                                                                                                                    в одном НИИ центрифуга из-за небольшого дисбаланса улетела через перекрытие на этаж выше и весело покатилась снося стены.
                                                                                                                      +5

                                                                                                                      Я видел последствия вылета дисковода компактдисков — он пробил собственный металлический корпус и металлический корпус компьютера и врезался в стену — повезло, что полетел не вперёд, где был только пластик и сидели люди.
                                                                                                                      Никогда бы не поверил, если бы не видел собственными глазами.

                                                                                                                      +1
                                                                                                                      Почему они вообще способны разогнаться до скоростей, которые не будут выдерживать

                                                                                                                      Они их выдерживают, но недолго. И за долготой как раз следит софт.
                                                                                                                        0
                                                                                                                        Это вы с прямым углом перепутали. Сверхкритические центрифуги вот только-только появились у Росатома, во временя Stuxnet'а их не было. Все центрифуги, которые могли быть у Ирана — подкритические, софт там следит, чтобы частота вращения не подходила слишком близко к критической частоте…
                                                                                                                      +5
                                                                                                                      Остался непроясненным вопрос — сколько центрифуг было убито в процессе отладки?
                                                                                                                        +6

                                                                                                                        Сколько секретных ядерных программ Ирана было убито в процессе отладки :)

                                                                                                                          +2

                                                                                                                          Сколько секретных ядерных программ Ирана нужно, чтобы вкрутить лампочку :)

                                                                                                                            0
                                                                                                                            Две. Одна — для изначального существования лампочки, вторая, чтобы заменить лампочку, когда та stuxnet.
                                                                                                                            * многозначительно подмигивает
                                                                                                                          +1

                                                                                                                          Имея в наличии доступ к документации, коду проекта и неограниченное количество ресурсов, можно сделать/украсть виртуальный прототип и отлаживать там.

                                                                                                                          +21
                                                                                                                          Так этого червя делала одна из самых могущественных разведок мира. Их ресурсы ограничены только физикой мира. Чему тут удивлятся? Доки на сименс? Запрос производителю — и они есть, включая то, что обычному клиенту никогда не дадут. Ключи от сертификатов? Агентура хлеб есть не просто так, достанут легко. Уязвимости? Купить в даркнете, искать самим (исходники всего софта ведь тоже есть) — ресурсы не ограничены же. Закодить это всё вообще нет проблем, ибо есть лучшие спецы. Если бы это сделали хакеры без неограниченных ресурсов, тогда было бы действительно космически круто, а так… Ну да, красиво сработано.
                                                                                                                            +6
                                                                                                                            Соль в том, что они атаковали не хлебопечку в лавке Махмуда, а самый охраняемый объект государства, в котором тоже неплохо откормленная разведка и службы безопасности и ресурсы и всё такое.
                                                                                                                              +3
                                                                                                                              Особенности сети конкретного государства + особенности его политического режима, позволяющие там ворочать дела.

                                                                                                                              Например КНДР таким способом не прокатит остановить. Или не прокатило
                                                                                                                                0
                                                                                                                                Или прокатило: они же объявили три неделю назад, что сворачивают ядерную программу.
                                                                                                                                  +1
                                                                                                                                  Ракету и боезаряд к ней они сделали. И у них штольни засыпало.

                                                                                                                                  Так что приостановка (вряд ли полное сворачивание) произошли по «естественным» причинам.
                                                                                                                            –4
                                                                                                                            "… две независимых, секретных ошибки в Windows о которых никто не знал..."
                                                                                                                            видимо дядюшке Билли сделали предложение от которого он не смог отказаться.
                                                                                                                              +3

                                                                                                                              Я глянул в оригинал...


                                                                                                                              В обсчем, там тоже очень неверное в профессиональном смысле выражение: моторы сами по себе просто не могут называться частотно-регулируемым приводом — это достаточно серьёзная неточность.


                                                                                                                              Скорее, червь искал определённые виды частотных приводов — например, по типам GSD-данных в профинет/профибус конфигурации — и смотрел, какие именно двигатели к ним подключены.

                                                                                                                                0
                                                                                                                                Основная сложность здесь это незакрытые уязвимости. Обычному человеку сложно найти несколько уязвимостей 0-го дня, но для спецслужбы любой страны, думаю, это проблемы не составит. Достаточно найти сотрудника с доступом к коду и тикетам, и воздействовать на него деньгами или другими способами. Сотрудников таких сотни хоть в MS, хоть в Сименсе. Да и за такую утечку скорее всего никому ничего не будет, максимум — уволят, если докажут.
                                                                                                                                  +12
                                                                                                                                  Ребята, тут больше вопрос к переводчику, а не к автору статьи и вопроса.
                                                                                                                                  «sophisticated» — больше вопрос о изощренности, а не о сложности. И переводить статью нужно было как вопрос «Какая, на ваш взгляд, самая хитроумная программа, написанная на текущий момент?»
                                                                                                                                    –5
                                                                                                                                    Хочу понять — надо ли центрифуги подключать к компьютеру с интернетом?
                                                                                                                                    Простая блокировка роутером всех IP адресов и сайтов кроме указанного для передачи данных куда-либо могли бы предупредить такую проблему.
                                                                                                                                    Собственно если мы говорим о средней азии, то это менее развитые народы. Видимо скрытые файлы для их админа в новинку. Да и XP наверняка везде стоит.
                                                                                                                                      +7
                                                                                                                                      Фишка в том, что компьютеры НЕ БЫЛИ подключены к Интернету. Честный, настоящий, air gap. Но зато в качестве компенсации — годами не обновляющаяся винда и персонал, особо не думающий ни о каких брандмауэрах…
                                                                                                                                      0
                                                                                                                                      Это не спортивно!) Очевидно, это целенаправленная атака, вирусня написана спецслужбами под определенную задачу.
                                                                                                                                      Если говорить про сложный софт, то это ОС/базы данных, если про вирусы — Zmist(2002) — произведение искусства от нашего соотечественника Z0mbie и финальный салют вирусной сцены. По сложности и продвинутости так никто эту планку не взял, а дальше наступила эра унылоты — теперь вирусные аналитики разгребают комбинации технологий двадцатилетней давности, а самые олдовые с теплотой вспоминают те дни и шедевры.
                                                                                                                                      They say a good picture is worth a thousand words. The T-1000 model from the film Terminator 2 is the easiest analogy to use. Zmist integrates itself into the code section of the infected application as the T-1000 model could hide itself on the floor.
                                                                                                                                      Art of Computer Virus Research and Defense

                                                                                                                                        0
                                                                                                                                        Увы, принятие ст. 273 УК РФ надёжно заблокировало все исследования вирусных технологий, даже в лабораторых условиях и исключительно в исследовательских целях.

                                                                                                                                        Государство хотело защитить своих граждан, а на деле уникальная тусовка, которая сложилась в ex-СССР в 90-е, здесь больше не появится. Самые сильные хакеры будут появляться, например, в Китае (вспоминаем, на кого теперь молятся все геймеры-пираты после выхода очередной Denuvo).

                                                                                                                                        Учитывая, в какие годы принят этот закон и влияние в эти годы наших заокеанских партнёров, продвижение этого закона могло быть спланированной спец-операцией :D
                                                                                                                                          0
                                                                                                                                          Такое явление как сцена уже не появится нигде, и дело не в законе, также как китайские хакеры — это не про сцену.

                                                                                                                                          В некотором смысле Win32.Zmist, появившийся в начале XXI ве-
                                                                                                                                          ка, – это финальный «салют» всей эпохе Win32-вирусов. После его
                                                                                                                                          появления писать вирусы для заражения PE-файлов стало бессмыс-
                                                                                                                                          ленно – никто не оценит, никто не поймет. Можно, конечно, упомя-
                                                                                                                                          нуть «монстра» Win32.MetaPHOR, написанного пару лет спустя.
                                                                                                                                          И все.
                                                                                                                                          Нет, Win32-вирусы, конечно, пишут. Ежегодно появляются не-
                                                                                                                                          сколько новых разновидностей «заразы» для Windows. Но, во-первых,
                                                                                                                                          «несколько» – это не те «десятки» и «сотни», которыми был отмечен
                                                                                                                                          рубеж тысячелетий. Во-вторых, не то что «переплюнуть», а хотя бы
                                                                                                                                          встать вровень с Win32.Zmist и Win32.MetaPHOR современным
                                                                                                                                          вирусам не под силу. Да и изменились побудительные мотивы виру-
                                                                                                                                          сописателей. Почти никто уже не стремится «сказать новое слово» и
                                                                                                                                          «оставить след». Современные Win32-вирусы тоже очень сложны, но
                                                                                                                                          они представляют собой наборы давно известных технологий, меха-
                                                                                                                                          нически объединенных в единое целое. Назначение подобных виру-
                                                                                                                                          сов (например, Win32.Virut и Win32.Sality) – заразить на компьюте-
                                                                                                                                          ре все, что возможно, а затем постоянно висеть в памяти, – рассылая
                                                                                                                                          «спам» и зарабатывая деньги своим авторам.
                                                                                                                                          Компьютерные вирусы и антивирусы: взгляд программиста(2013)


                                                                                                                                          проникнуться той эпохой:
                                                                                                                                          z0mbie.daemonlab.org — z0mbie, с 2005 о нем не известно ничего
                                                                                                                                          z0mbie.daemonlab.org/mistfall.txt — описание вируса от автора
                                                                                                                                          dsr.segfault.es/stuff/website-mirrors/29A — здесь автор трудился и издавался)
                                                                                                                                            +4
                                                                                                                                            Те студенты, которые составляли «ударную силу» IT-фронтира начала нулевых — выросли и закономерно захотели денег. Теперь они уже ни строчки кода не напишут без предварительно составленного плана монетизации.
                                                                                                                                            А новых энтузиастов не появилось и уже не появится, потому что эпоха фронтира закончилась. Исчез тот ореол таинственности и романтики, который привлекал молодых людей с горящими глазами. Компьютеры стали слишком обыденной вещью.
                                                                                                                                            0
                                                                                                                                            Учитывая, в какие годы принят этот закон и влияние в эти годы наших заокеанских партнёров, продвижение этого закона могло быть спланированной спец-операцией :D

                                                                                                                                            Вы так говорите, как будто законы, принятые в РФ в любые другие годы, были сильно полезнее.
                                                                                                                                          +13

                                                                                                                                          Из тех программ, с которыми я сталкивался, самой сложной был бинарник, реализующий бизнес-логику Поиска Google.


                                                                                                                                          Начать с размера — у Поиска есть жёсткие правила по добавлению новых зависимостей, так как бинарник близок к размеру, при котором линкер вылетает с OOM.


                                                                                                                                          Быстродействие измеряется миллисекундами. Для оптимизации в числе прочего используются трюки с выделением памяти: большое количество мелких объектов удаляются не независимо, а все вместе — одним блоком памяти. (proto arenas)


                                                                                                                                          В процессе работы над запросом вызываются от десятков до сотен бэкэндов. Все они должны закончить работать в пределах отведённого времени, причём на любом континенте, где у Гугла есть датацентры. Для обеспечения concurrency в этом фреймворке есть кастомная реализация green threads.


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


                                                                                                                                          В эту программу вложено десятки тысяч человеко-лет работы.

                                                                                                                                            –2
                                                                                                                                            Смешно звучит фраза «Моторы, которые он ищет, называются «частотно-регулируемые приводы»»
                                                                                                                                            Словно компетенция автора очень далека от этой сферы и он даже не собирается посмотреть что там глубже.
                                                                                                                                            А я бы в первую очередь PLC Siemens и рассматривал как источник вируса.
                                                                                                                                            Я б придумал такую теорию заговора:
                                                                                                                                            Stuxnet — это муляж, прикрытие для настоящего источника вируса.
                                                                                                                                            Сам вирус находится во Flash микроконтроллеров частотного преобразователя.
                                                                                                                                            Либо он там сразу сидит, либо попал во время ремонтов или тех. обслуживания.
                                                                                                                                            Возможно в SoC-ах частотников сидят микро RF приемопередатчики. Скажем замаскировать RF часть под микросхему гальванического изолятора. Тогда перепрошить их мог персонал дистанционно.
                                                                                                                                            Все частотники соединены Ethernet сетью. Это стандартное решение у Siemens-а. Но протоколы в той сети проприетарные, и даже речи не идет о их контроле сторонним оборудованием. Т.е. у Siemens полная свобода и безнаказанность действий в локальной сети.
                                                                                                                                            Самая сложная вещь во всем этом деле была поднять хайп вокруг флешек со Stuxnet чтобы никто не вспомнил про Siemens.
                                                                                                                                            Кстати подъем частоты центрифуги в два раза вызовет увеличение потребляемой мощности в 4-е раза т.е. в квадрате. На такие скачки потребления мгновенно должна была среагировать автоматика, если она опять же не была от Siemens.


                                                                                                                                              +3
                                                                                                                                              Центрифуги работают на доли процентов ниже предела прочности. Если бы их возможно было раскрутить ещё на несколько процентов — уже раскрутилибы, так как это сильно увеличивает выход изотопов.

                                                                                                                                              Так что речь идёт об чрезвычайно тонком увеличении оборотов. Незначительно ближе к пределу отвердевания гексафторида, немного недостаточно для того что бы центрифуги начали разрушаться.
                                                                                                                                              –1
                                                                                                                                              Я не специалист по безопасности и не хакер, но какой-то детсад в этой конторе по обогащению урана — флешки может вставлять кто угодно и куда угодно. Почему сразу не был сделан физически закрытый контур, все компьютеры кроме администратора без устройств ввода с физических носителей, а у админа CD-DVD дисковод только для чтения, с которого инсталлировать с CD-DVD дисков софт только от поставщика и только присланный поставщиком на диске? Windows можно было вообще поставить один раз и не обновлять, потому что в физически закрытом контуре без разницы есть там дырки или нет, работает да и ладно.
                                                                                                                                              И ходили бы любые черви вокруг этого закрытого контура кругами и ничего бы не сделали.
                                                                                                                                              Просто удивляюсь этой ситуации, вроде бы серьезные люди делали серьезное дело, а об элементарных вещах не думали.
                                                                                                                                                +6
                                                                                                                                                Там так и было. Вирус заразил 58% компьютеров СТРАНЫ, чтоб попасть на флешку человеку, у которого есть доступ.
                                                                                                                                                  +1
                                                                                                                                                  Примерно так и было. Я читал, цель была — заразить все фирмы, которые присылали техников для обслуживания чего-то (не центрифуг, конечно) внутри комплекса. Так преодолели air gap. А дальше уже по локалке.
                                                                                                                                                    0
                                                                                                                                                    Это вот как раз самый прекрасный пример того, что пресловутый Air Gap, о котором любят твердить АСУТПшники в ответ на разговоры про информационную безопасность, вообще не является панацеей и во многих случаях тупо не работает.
                                                                                                                                                    А знали бы вы, какой бардак творится у нас на некоторых промышленных и очень серьезных объектах…
                                                                                                                                                      –1
                                                                                                                                                      Я за давностью лет уже позабыл, как там было, а лезть в википедию лень, но вроде бы не было там никакого airgap'а. Ну, то есть, авторы stuxnet были уверены, что он там есть и делали упор на распространение через флешку. А червя в конечном итоге поймали непосредственно через интернет, потому, что с этих компов и центрифугами рулили и порнуху смотрели.
                                                                                                                                                    +1
                                                                                                                                                    На мой взгляд самая сложная такая программа, детали работы которой никто не знает. И которая при этом очень большая. Например, нейросеть AlphaGo и другие.
                                                                                                                                                      0
                                                                                                                                                      Например, нейросеть AlphaGo и другие
                                                                                                                                                      А тут, кстати, очень интересно. Сама по себе программа, строящая нейросеть не слишком велика и сложна.

                                                                                                                                                      А вот уже построенная нейросеть — это десятки мегабайт каких-то цифр… Можно ли и нужно ли считать их программой? Как понять — насколько она на самом деле сложна? Вопрос оссенно философский…
                                                                                                                                                        0
                                                                                                                                                        нейросеть является функцией от х переменных (х — число рецепторов), собственно процесс обучения сети — это попытка построить поверхность функции решающей поставленную задачу (из простых примеров — объяснение почему xor не строится на однослойной сети — тупо не получается создать такую поверхность)
                                                                                                                                                        Если рассматривать червя как функцию то станет ясно что не так уж и много у него входных параметров, поверхность решений тоже не сильно многомерная, в общем то тему развернули уже в обсуждении — речь идет не о сложности а о суммарном knowledge вложенном в него. Скрипт считающий по уравнению e=mc^2 напишет любой школьник, а что бы само уравнение вывести нам пришлось ждать Пуанкаре и Эйнштейна.
                                                                                                                                                          0
                                                                                                                                                          речь идет не о сложности а о суммарном knowledge вложенном в него

                                                                                                                                                          Тогда немножко упомянутые выше языки вроде Coq сами по себе вполне могут посоревноваться с нейросетями.
                                                                                                                                                            0
                                                                                                                                                            Coq сам по себе нет, там чекер тривиальный, а вот его примочки/стратегии — да, соглашусь.
                                                                                                                                                              0
                                                                                                                                                              Лежащая в основе математика не сказать чтоб тривиальная.

                                                                                                                                                              Было бы интересно взять матстатистика и специалиста по теории типов и замерить, сколько у каждого уйдёт на изучение противоположной области.
                                                                                                                                                                0
                                                                                                                                                                лежащая именно в основе чекера математика — тривиальна. Это реализация чекера на основе символьной логики, там по сути единственная операция — это инсерт над строкой. принцип такой же как в metamath, просто чуть более сложная реализация. metamath (если понимать что имеешь дело с символьной логикой, сам создатель в своей книге 30 страниц посвятил описанию поиска решения но ни разу не озвучил про символьную логику) — так вот, если это понимать то исходник чекера metamath раскуривается за один вечер и это не преувеличение. На Coq однозначно уйдет больше но не намного. Другое дело — вывод типов, это да, посложнее и математика там повеселее. Но это как раз стратегии, ибо теории дающей вывод типов на вершине лямбда куба нет и что самое отвратное — доказуемо быть не может, поэтому либо ограничения системы типов (и получаем детерминированный Хиндли-Милнер) либо гуляем по полной но не все что можем написать можем доказать (и получаем эвристики/стратегии и необходимость в приличном математике, который будет чутко останавливать полет фантазии когда код полезет в недоказуемую область)
                                                                                                                                                                  0
                                                                                                                                                                  Ну, я скорее со всякими идрисами сравниваю, чем с Coq'ом, ибо последний я знаю ну очень поверхностно. И там весело, от зависимых типов самих по себе до всякой более фундаментальной матлогики.
                                                                                                                                                                    0
                                                                                                                                                                    Идрис да, мне понравился. По моему с Вашей же подачи с ним и познакомился. Но там да, в отличие от Coq, ядро — вывод типов а не чекер пруфа. Не знаю как в идрис, но подозреваю также как в хаскеле — документацию читаешь как математический трактат )
                                                                                                                                                          0
                                                                                                                                                          Где-то рядом с этим вопросом архиваторы, видеокодеки и прочая колмогоровская сложность.
                                                                                                                                                        +1
                                                                                                                                                        В статье нагнали много жути про неуязвимость червя, но вот эта фраза:
                                                                                                                                                        Если может, он пытается посетить сайты www.mypremierfutbol.com или www.todaysfutbol.com.
                                                                                                                                                        заставляет усомниться в идеальной конспирации.
                                                                                                                                                        Какая дрянь с моего ПК, периодически ломится на непонятные адреса и при этом даже сосёт с них какой-то трафик… Хорошо настроенный файервол должен сразу реагировать на подобные вещи.
                                                                                                                                                          –6
                                                                                                                                                          Вы не понимаете, это был ну очень сложный червь, понимаете? Очень, сложный! Вот прям совсем сложный. Не верите? Он использовал три недокументированные уязвимости компьютерных мышек. Теперь понимаете? У них колесики начинали крутится сами собой, пока мышка не выходила из строя. Тогда ее заменяли на новую, а она уже с обновленной прошивкой червя! Все потому что он был очень сложный.
                                                                                                                                                          +3