От переводчика: я нашел на Quora вопрос: Какую программу или код можно назвать самыми сложными из когда-либо написанных? Ответ одного из учасников был настолько хорош, что вполне тянет на статью.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

… для этого червю Stuxnet пришлось стать самой сложной программой из когда-либо написанных.

Комментарии (224)


  1. Dreyk
    19.05.2018 20:19
    +1

    офигеть. звучит как дешевенький сериал про погромистов-взломщиков, только на самом деле :)


    1. khim
      20.05.2018 01:46
      +2

      Вот только непонятно какое это имеет отношение к «самой сложной программе».

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

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


      1. 0x131315
        20.05.2018 17:22
        -1

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


        1. khim
          20.05.2018 18:20
          +4

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

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


          1. tyomitch
            20.05.2018 18:49

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

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


            1. khim
              20.05.2018 18:59
              +1

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

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

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


              1. ivlad
                20.05.2018 19:06
                +2

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

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


            1. VaalKIA
              20.05.2018 21:57

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

              Там же сказано, что червь скачивает свою самую последнюю версию. Раз есть версионирование, значит и есть исправление ошибок, не вижу причин не перепрошить контроллеры ещё раз.


          1. MaxxxZ
            22.05.2018 10:22
            +1

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


        1. Closius
          21.05.2018 01:07

          Ты попробуй эти данные достань, разберись с особенностями систем как Siemens, у которой даже документации нормальной нет. И все закрыто. Это ппц сколько надо было потратить сил и времени. А как это все отладить я даже представить не могу.


        1. mistergrim
          21.05.2018 12:24

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

          Только мы что-то не наблюдаем разнообразия браузеров.


  1. ValdikSS
    19.05.2018 20:32
    +3

    Некачественный перевод пересказанной истории.
    habr.com/post/123030


    1. third112
      19.05.2018 21:27
      +1

      По этой ссылке:

      Stuxnet был очень сложной программой, содержащей около 10 000 строк кода, написание которых заняло человеко-годы.
      Ok 10 000 строк кода может занять 2-3 человеко-года, но это не самый большой объем кода из известных. Нпр., антикварный компилятор Pascal-8000 OS 360/370 содержал 10 000 строк исходного кода. Извините м.б. я чего не понял в этой статье?

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


      1. andrew8712
        20.05.2018 07:20

        Мда, взорвать центрифугу нынче считается заслугой…


      1. gitKroz
        20.05.2018 08:45
        +1

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

        Но статья всё равно интересная :)


        1. third112
          20.05.2018 10:04

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

          В принципе согласен. Но интересны детали. Нпр., упомянутый компилятор Pascal-8000 (структура компиляторов Вирта) — это сложная логика? Вроде- да, но парсер для такого компилятора и YACC сгенерирует…


          1. tyomitch
            20.05.2018 18:49

            Парсер — это ничтожно малая часть компилятора.


            1. khim
              20.05.2018 19:00

              Если это не C++. В C++ парсер должен являться компилятором. Такая вот рекурсия…


            1. third112
              20.05.2018 19:07

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


  1. third112
    19.05.2018 20:40
    +1

    Уважаемый переводчик,
    скажите, пожалуйста: а что самое сложное в этой программе?:
    залезть на USB-диск? выйти в инет? найти ПО Siemens? проснуться? повысить давление газа? что-то еще?


    1. Alx1
      19.05.2018 20:49
      +1

      Я бы предположил, что самое сложное оставаться незамеченным во время и после выполнения этих процедур


      1. khim
        20.05.2018 01:46

        Так заметили же. Не сразу — но заметили.


        1. alexr64
          20.05.2018 03:57

          Заметили после того, как троян выполнил свою функцию. Есессно заметили. Вы бы тоже заметили, что у вас производство накрылось медным тазом. А в случае урановой промышленности — перетрясли бы каждый электрочайник, не то, что оборудование…


          1. khim
            20.05.2018 08:45

            И тем не менее обнаружили его не в Иране (где он ароде как выводил из строя центрифуги), и даже не в России, а в Беларуси. Где и центрифуг-то никогда не было.


            1. PaulAtreides
              20.05.2018 21:13

              Нет, обнаружили его в Иране. Просто произошло это усилиями белорусской компании.


        1. petropavel
          20.05.2018 15:15

          Смотрел фильм про это дело. Там говорили, было много заинтересованных сторон. Сторонники более агрессивной атаки, чтоб быстрее и посильнее все сломать. Сторонники скрытности, чтоб долго и медленно и по чуть-чуть. И как-то таки задрали ему агрессивность слишком сильно. И тогда-то его и нашли.


    1. olgerdovich
      19.05.2018 20:50
      +1

      Вмешаюсь (я не переводчик)
      Думаю, что самое сложное в этоц программе — ее успешно достигнутая цель, незаметно трахнуть ядерную программу Ирана.


    1. Arkronus Автор
      19.05.2018 20:50
      +1

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


      1. third112
        19.05.2018 21:33

        Речь про антивирусные компании Ирана?


        1. Arkronus Автор
          19.05.2018 21:46
          +1

          Речь идёт про все антивирусные компании в мире. В основном червь был распространён в Иране (58% хостов), но при этом так или иначе встречался во многих странах. В конце текста есть ссылка на отчет Symantec с подробным описанием.
          P.S. Не знаю наверняка, на едва ли у Ирана есть свои компании — разработчики антивирусов. Скорее всего они использовали ПО известных компаний.


          1. third112
            19.05.2018 21:54

            А сколько еще других вирусов больше года живет в инете?


            1. DimaTiunov
              19.05.2018 22:05

              Пока их не найдут, их одновременно много и совсем нет.


              1. third112
                19.05.2018 22:11
                +2

                Ok. Пока они не станут ломать центрифуги их никто не будет искать. Т.о. чтобы быть сложным не надо ломать центрифуги…


                1. VaalKIA
                  20.05.2018 22:02

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


                1. MaxxxZ
                  22.05.2018 10:28

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


              1. QuakeMan
                20.05.2018 08:45

                Шредингеровские вирусы.


            1. DEmon_CDXLIV
              22.05.2018 10:14

              Никто не знает. Это как «а кто самый лучший преступник?» Мы не знаем.


    1. Shambler0
      20.05.2018 08:45

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

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


      1. third112
        20.05.2018 09:52

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

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

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


        1. AllexIn
          20.05.2018 21:03

          Никто такой херней страдать не будет. Просто не будут подключать ПК управляющие центрифугой к сети и запретят всовывать не пустые носители инфы.


          1. tyomitch
            20.05.2018 23:20

            Как тогда апдейтить центрифужный софт?


            1. vedenin1980
              20.05.2018 23:58

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

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


              1. khim
                21.05.2018 01:13

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

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

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

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

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


                1. vedenin1980
                  21.05.2018 01:35

                  И так — несколько сот раз. Я боюсь у программиста случится нервный срыв, а уж сколько раз программа будет вбита неверно, несмотря «десяток других программистов» — одному богу ведомо…

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

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

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


                  1. khim
                    21.05.2018 01:49

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

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

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

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


                    1. vedenin1980
                      21.05.2018 02:10

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

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

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

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

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

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


                  1. Marsikus
                    21.05.2018 12:11

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

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


                    1. vedenin1980
                      21.05.2018 12:41

                      Так закладка может быть и конролерах жестких дисков, процессоров и т.п. оборудовании. Поэтому на таком уровне паранои, гарантирована чистыми будет только отечественное железо и софт. Да и то, не на 100%.


                    1. 0xd34df00d
                      22.05.2018 00:42

                      И компилятор придётся брать верифицированный, и рантайм до мозга костей, по-хорошему.


              1. qw1
                21.05.2018 11:33

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


                1. tyomitch
                  21.05.2018 11:43
                  -1

                  vedenin1980 говорит: пускай иностранный специалист от фирмы-поставщика приезжает на объект и под дулом автомата контролем местных безопасников перепечатывает апдейт с бумажки.


                  1. qw1
                    21.05.2018 12:15

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


                  1. vedenin1980
                    21.05.2018 12:37

                    говорит: пускай иностранный специалист от фирмы-поставщика приезжает на объект и под дулом автомата контролем местных безопасников перепечатывает апдейт с бумажки.

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


                    1. tyomitch
                      21.05.2018 22:11

                      Как нет, когда да?

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


                      1. sumanai
                        21.05.2018 22:42
                        +2

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


                        1. tyomitch
                          21.05.2018 23:35
                          +1

                          Я не хочу видеть? Я привёл цитату vedenin1980, про которую он утверждает, что он такого не говорил.
                          Про перепечатывание бинарного файла вручную — не говорил ни он, ни я.


                          1. sumanai
                            21.05.2018 23:48
                            +1

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


                          1. vedenin1980
                            21.05.2018 23:57

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

                            Где вы там увидили предложение, чтобы иностранный программист приезжал за сверхсекретный объект чужой страны? Я не представляю ни одной страны, которая пустила бы гражданина другой страны на такой объект в принципе. Не говоря уже о гражданине потенциально-враждебного военного блока. И тем более, ни один иностранец на такой объект сам не приедет.


          1. MaxxxZ
            22.05.2018 10:31

            Ядерные объекты Ирана не были подключены к сети. И регламент носителей был. Не спасло это их из-за уязвимостей нулевого дня.


            1. AllexIn
              22.05.2018 10:35

              Ну и что? Всё равно никто не будет страдать покупкой древности. Просто регламент будет жестче — не втыкать флэшки вообще, например.


              1. MaxxxZ
                22.05.2018 10:55

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


                1. AllexIn
                  22.05.2018 11:09
                  +1

                  XP используется, потому что железо не тянет нихрена. А новое железо стоит как крыло от самолета, при этом смысла от него не много.
                  Это я с уверенностью заявляю как человек делавшим пару лет назад через своё ИП закупку XP Embedded для платежных терминалов партнера.


                  1. MaxxxZ
                    22.05.2018 11:12

                    MS очень долго заявлял, что у его 10-ки системные требования в базовой версии ещё скромнее предшествующих ОС. Сам не сверял. Может и врали конкретно.
                    Но у вас есть ключевое: «смысла от него не много». А рисков-то больше. Не только в цене ИМХО дело.


                    1. AllexIn
                      22.05.2018 11:15

                      «Я вам не скажу за всю одессу» (С)
                      Я не в курсе ситуации в каждом конкретном случае.
                      Мой единичный опыт однозначно указывает на единственную причину использования XP — legacy железо, которого уже закуплено дофига и давно используется. Нежелание менять кобыл, которые уже вывозят бизнес тыщу лет.
                      Не вижу причин полагать, что у других что-то отличается.
                      Стремление бизнеса к консерватизму вполне хорошо известно.
                      Я не могу представить человека(имеется ввиду не личность, а должность), который возьмет на себя ответственность перевести весь бизнес на другую ОС без веской причины.


                    1. qw1
                      22.05.2018 11:43

                      MS очень долго заявлял, что у его 10-ки системные требования в базовой версии ещё скромнее предшествующих ОС. Сам не сверял. Может и врали конкретно.
                      По ресурсам достаточно посмотреть на минимальные требования: 64MB RAM у WinXP, 512MB Win10 IoT edition (самый тонкий), 256MB у Win10 IoT в режиме headless (т.е. только ядро и службы, без GUI).

                      Вопрос не сколько в мегагерцах/мегабайтах, сколько в поколении железа. XP можно включить на Pentium-1/133MHz (для терминала хватит), а для Win10 необходим процессор с проддержкой SSE2, NX и PAE. Т.е. Pentium-4 — минимум.


    1. DeeoniS
      20.05.2018 11:55
      +6

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

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


      1. third112
        20.05.2018 12:45
        +1

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

        для них главное надежность. Поэтому чем проще, тем лучше
        Ok. И для марсохода главное надежность.


        1. tyomitch
          20.05.2018 18:47

          Зато о действиях марсохода можно узнавать по телеметрии, и слать апдейты.
          В случае же Stuxnet об его успехе/неуспехе можно было узнавать только по заголовкам иранских газет.


          1. third112
            20.05.2018 19:14

            Насколько я понял червь в случае неудачи может обновиться и повторить попытку:

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

            После этого червь копирует себя на любое другое USB устройство, которое вам пришлось вставить.


            1. tyomitch
              20.05.2018 19:43

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


              1. third112
                20.05.2018 20:33

                А что мешает слать апдейты? Зловред скопировал себя на USB-диск. Но в газетах (и в агентурных источниках) никаких сообщений, значит делают апдейт. И так до успеха или до полного провала.


                1. qw1
                  21.05.2018 11:31
                  +1

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


                  1. third112
                    21.05.2018 12:13

                    Неизвестно, попал ли код на центрифуги.
                    Скорее всего, поставщик центрифуг рассылает обновления ПО сразу всем своим клиентам. Поэтому про появление обновления не трудно узнать по официальным каналам. Вирус попадет вместе с очередным обновлением.

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

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

                    В статье указаны два возможных пути: 1) повысить давление газа; 2) повысить скорость. Если по первому не получилось, значит, придется пробовать второй, не получилось по второму — искать третий и т.д.


                    1. qw1
                      21.05.2018 12:19

                      Скорее всего, поставщик центрифуг рассылает обновления ПО сразу всем своим клиентам.
                      Только зачем их устанавливать, если и так всё работает.


                      1. third112
                        21.05.2018 12:22
                        +1

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


                        1. qw1
                          21.05.2018 12:24

                          Прочитайте статью, прежде чем комментировать. Она не очень длинная.


                          1. third112
                            21.05.2018 12:26

                            А что не так? М.б. Вы чего-то просмотрели?


                            1. qw1
                              21.05.2018 12:38

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


                              1. third112
                                21.05.2018 12:46
                                +1

                                А что еще могли таскать на USB-диске с одного компа (с инетом) на другой (без инета)? Неужели фотографии котиков?


                                1. qw1
                                  21.05.2018 13:11

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


                                  1. third112
                                    21.05.2018 13:14

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


                                    При столь низком уровне безопасности задача вируса сильно упрощается.


    1. Arris
      21.05.2018 01:18

      Самое сложное — перевести текст на русский после гуглопереводчика.


    1. MaxxxZ
      22.05.2018 10:26

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


      1. vedenin1980
        22.05.2018 11:06

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

        Я так понимаю это была операция спецслужб НАТО с приличным бюджетом, получить центрифуги для тестирования скорее всего не проблема, даже получить/купить бекдоры это только вопрос денег и влиятния.


        1. MaxxxZ
          22.05.2018 11:09
          +1

          Вот. Значит помимо кодеров ещё толпа агентов трудилась для разработки программного продукта. ИМХО это тоже надо включать в сложность общей разработки.


  1. gearbox
    19.05.2018 20:48

    Господа не видели исходники линукса или хрома? Можно добавить исходники оракла, но тут согласен, их реально мало кто видел.


    1. third112
      19.05.2018 21:04

      Ok. Also: в книге Диомидис Спинеллис, Анализ программного кода на примере проектов Open Source, М., СПб, Киев, 2004 в качестве примера «огромного кода» приведен Web-сервер apache.


    1. RadicalDreamer
      20.05.2018 00:10

      Исходники ядра Linux покажутся цветочками по сравнению с монстром типа reload в коде GCC (почему-то при чтении заголовка статьи сразу подумал об этом).


      1. gearbox
        20.05.2018 15:26
        +3

        снимаю шляпу и нервно тереблю в руках :) LLVM тоже вспомнился. По reload — вот это доставляет:
        >Reload does everything, and probably no one exactly knows how much that is.


  1. phikus
    19.05.2018 21:15

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

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


    1. Arkronus Автор
      19.05.2018 21:21
      +1

      Речь шла о газе. Спасибо за замечание, поправил.


    1. olgerdovich
      19.05.2018 21:31
      +1

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

      В оригинале:

      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.


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


  1. MacIn
    19.05.2018 21:22
    +1

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

    Много пафоса для простой истории в рамках хабра.


  1. solne4niuy
    19.05.2018 21:30

    Дорогие критики, признайте, задумка червя гениальна, кто бы ни сделал это… он чертов гений!
    И теперь подумайте, а что если… все компьютеры с виндой уже заражены… как вы проверите?


    1. third112
      19.05.2018 21:38
      +2

      как вы проверите?
      Подключим центрифугу и посмотрим нормально ли она работает:)


    1. khim
      20.05.2018 01:51

      Вы про Reflections on Trusting Trust что-нибудь слышали? Люди над этими проблемами размышляют уже многие годы… а вы только что проснулись…


    1. vsb
      20.05.2018 11:28
      +2

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


    1. sumanai
      20.05.2018 12:54
      +1

      все компьютеры с виндой уже заражены

      Небольшое исправление.


    1. decomeron
      20.05.2018 22:21

      Зараза к заразе не пристает ;—)


    1. decomeron
      20.05.2018 22:46
      -1

      Stuxnet- сдаже само название говорит, что асе может плохо кончится, а какая сторона плохо кончит-не известно. Вообщем-стухнет. И теперь понятно кто червь -создал;—)


      1. qw1
        21.05.2018 11:35
        +1

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


  1. chromimon
    19.05.2018 21:30
    +2

    Ага, точно.
    Ведь у секретных производств стандартизованные и известные API для управления их сердцем — центрифугами.


    1. tyomitch
      19.05.2018 22:00

      Центрифуги для секретных производств покупают у тех же производителей (Siemens и т.п.), что и для несекретных производств. Нету никаких «секретных заводов по производству секретных центрифуг», по крайней мере в Иране.


      1. khim
        20.05.2018 01:55

        Маленькая поправочка: центрифуги Siemens не производит. Центрифуги производят совсем другие люди в совсем другом месте. И это производство — таки секретное (когда-то и завод был секретным, но те времена прошли).

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


      1. LynXzp
        22.05.2018 05:26

        Специальные версии для отдельных клиентов — обычное дело, а иногда и неотъемлемое. И покупая «такие-же» может оказаться что они вовсе другие. Так даже если бы производство было не секретным, все равно пришлось бы довольно много узнать чтобы быть уверенным.


  1. rhaport
    19.05.2018 21:35
    +1

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


    1. third112
      19.05.2018 21:40

      Согласен. Мат. док-во необходимо.


    1. Firz
      19.05.2018 22:13
      +2

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


      1. d-stream
        19.05.2018 22:54

        Почти конспирологический намек на спецслужбы )


        1. tyomitch
          19.05.2018 23:09

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


          1. d-stream
            20.05.2018 00:23

            Возможно да, возможно нет. Доказательств нет — посему и получается то самое конспирологическое «а кто же еще?»)


      1. OpieOP
        19.05.2018 23:36

        +не совсем понятно как это все тестировать


      1. Spaceoddity
        20.05.2018 14:54

        Сдаётся мне, это заслуга не хакеров, а АНБ или ЦРУ, которые просто пришли в Рэдмонд — «а ну гоните нам бэкдоры для одной важной спецоперации».


      1. DjOnline
        22.05.2018 10:29

        Не куча, а всего 1 zero day, согласно вики, остальные 3 были известны на тот момент. Автор статьи приукрасил.


    1. Dobby007
      20.05.2018 00:17

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


      1. khim
        20.05.2018 02:07

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

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

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

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

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


        1. Zoolander
          20.05.2018 09:58

          ну так не надо засовывать, и программировать не надо — надо просто подсадить агента в QA-отдел и чтобы он
          1. сливал внутреннюю информацию о багах
          2. иногда как бы не замечал баги на своем участке тестирования (но отдавал их в «центр»)

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


          1. Dobby007
            20.05.2018 13:04

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


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


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


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


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


            1. khim
              20.05.2018 18:37
              +1

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

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

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

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


              1. Dobby007
                20.05.2018 21:22

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

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


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

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


                1. khim
                  20.05.2018 22:51
                  +1

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

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

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

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

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


                  1. Dobby007
                    20.05.2018 23:28

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


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


                    1. Dobby007
                      20.05.2018 23:35

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


          1. LynXzp
            22.05.2018 05:37

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


            1. qw1
              22.05.2018 09:37

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


        1. MacIn
          20.05.2018 18:17
          +1

          да даже некоторым ВУЗам их дают под подписку о неразглашении

          Их можно даже скачать, только тссс — никому не говорите.


        1. tyomitch
          20.05.2018 23:29

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

          Вам известны менее затратные способы вывести из строя иранские центрифуги?


          1. PaulAtreides
            21.05.2018 00:26

            Есть способы менее затратные и намного более быстрые. Но международное сообщество не поймёт.


            1. Seekeer
              21.05.2018 12:07

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


  1. Alek_roebuck
    19.05.2018 22:28

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


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


    1. tyomitch
      19.05.2018 23:12

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

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


    1. kalininmr
      20.05.2018 01:34

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


      1. Goodkat
        20.05.2018 12:13
        +5

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


    1. sumanai
      20.05.2018 12:59
      +1

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

      Они их выдерживают, но недолго. И за долготой как раз следит софт.


      1. khim
        20.05.2018 18:41

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


  1. nerudo
    19.05.2018 22:31
    +1

    Остался непроясненным вопрос — сколько центрифуг было убито в процессе отладки?


    1. snuk182
      19.05.2018 22:37
      +1

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


      1. Keyten
        20.05.2018 08:30

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


    1. rhaport
      20.05.2018 00:00

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


  1. Konachan700
    19.05.2018 22:40
    +4

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


    1. tyomitch
      19.05.2018 23:17

      Соль в том, что они атаковали не хлебопечку в лавке Махмуда, а самый охраняемый объект государства, в котором тоже неплохо откормленная разведка и службы безопасности и ресурсы и всё такое.


      1. struvv
        20.05.2018 11:06
        +2

        Особенности сети конкретного государства + особенности его политического режима, позволяющие там ворочать дела.

        Например КНДР таким способом не прокатит остановить. Или не прокатило


        1. tyomitch
          20.05.2018 18:59

          Или прокатило: они же объявили три неделю назад, что сворачивают ядерную программу.


          1. khim
            20.05.2018 19:06
            +1

            Ракету и боезаряд к ней они сделали. И у них штольни засыпало.

            Так что приостановка (вряд ли полное сворачивание) произошли по «естественным» причинам.


  1. Daddy_Cool
    19.05.2018 23:17
    -1

    "… две независимых, секретных ошибки в Windows о которых никто не знал..."
    видимо дядюшке Билли сделали предложение от которого он не смог отказаться.


  1. kababok
    19.05.2018 23:22

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


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


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


  1. amaksr
    20.05.2018 04:14

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


  1. kibizoidus
    20.05.2018 05:14

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


  1. godlatro
    20.05.2018 08:45
    -1

    Хочу понять — надо ли центрифуги подключать к компьютеру с интернетом?
    Простая блокировка роутером всех IP адресов и сайтов кроме указанного для передачи данных куда-либо могли бы предупредить такую проблему.
    Собственно если мы говорим о средней азии, то это менее развитые народы. Видимо скрытые файлы для их админа в новинку. Да и XP наверняка везде стоит.


    1. khim
      20.05.2018 08:55

      Фишка в том, что компьютеры НЕ БЫЛИ подключены к Интернету. Честный, настоящий, air gap. Но зато в качестве компенсации — годами не обновляющаяся винда и персонал, особо не думающий ни о каких брандмауэрах…


  1. vibrant
    20.05.2018 08:45

    Это не спортивно!) Очевидно, это целенаправленная атака, вирусня написана спецслужбами под определенную задачу.
    Если говорить про сложный софт, то это ОС/базы данных, если про вирусы — 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


    1. qw1
      20.05.2018 11:37

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

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

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


      1. vibrant
        20.05.2018 15:21

        Такое явление как сцена уже не появится нигде, и дело не в законе, также как китайские хакеры — это не про сцену.

        В некотором смысле 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 — здесь автор трудился и издавался)


        1. Alexey2005
          20.05.2018 18:57
          +1

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


      1. tyomitch
        20.05.2018 19:03
        -1

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

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


  1. eterevsky
    20.05.2018 11:00
    +7

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


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


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


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


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


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


  1. Indemsys
    20.05.2018 11:48
    -3

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



    1. argentumbolo
      20.05.2018 14:55
      +2

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

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


  1. lotse8
    20.05.2018 12:31

    Я не специалист по безопасности и не хакер, но какой-то детсад в этой конторе по обогащению урана — флешки может вставлять кто угодно и куда угодно. Почему сразу не был сделан физически закрытый контур, все компьютеры кроме администратора без устройств ввода с физических носителей, а у админа CD-DVD дисковод только для чтения, с которого инсталлировать с CD-DVD дисков софт только от поставщика и только присланный поставщиком на диске? Windows можно было вообще поставить один раз и не обновлять, потому что в физически закрытом контуре без разницы есть там дырки или нет, работает да и ладно.
    И ходили бы любые черви вокруг этого закрытого контура кругами и ничего бы не сделали.
    Просто удивляюсь этой ситуации, вроде бы серьезные люди делали серьезное дело, а об элементарных вещах не думали.


    1. arheops
      20.05.2018 14:32
      +4

      Там так и было. Вирус заразил 58% компьютеров СТРАНЫ, чтоб попасть на флешку человеку, у которого есть доступ.


    1. petropavel
      20.05.2018 15:09
      +1

      Примерно так и было. Я читал, цель была — заразить все фирмы, которые присылали техников для обслуживания чего-то (не центрифуг, конечно) внутри комплекса. Так преодолели air gap. А дальше уже по локалке.


    1. F0iL
      20.05.2018 21:46

      Это вот как раз самый прекрасный пример того, что пресловутый Air Gap, о котором любят твердить АСУТПшники в ответ на разговоры про информационную безопасность, вообще не является панацеей и во многих случаях тупо не работает.
      А знали бы вы, какой бардак творится у нас на некоторых промышленных и очень серьезных объектах…


      1. PaulAtreides
        21.05.2018 00:22

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


  1. KvanTTT
    20.05.2018 12:38

    На мой взгляд самая сложная такая программа, детали работы которой никто не знает. И которая при этом очень большая. Например, нейросеть AlphaGo и другие.


    1. khim
      20.05.2018 18:47

      Например, нейросеть AlphaGo и другие
      А тут, кстати, очень интересно. Сама по себе программа, строящая нейросеть не слишком велика и сложна.

      А вот уже построенная нейросеть — это десятки мегабайт каких-то цифр… Можно ли и нужно ли считать их программой? Как понять — насколько она на самом деле сложна? Вопрос оссенно философский…


      1. gearbox
        20.05.2018 22:05

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


        1. 0xd34df00d
          22.05.2018 01:22

          речь идет не о сложности а о суммарном knowledge вложенном в него

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


          1. gearbox
            22.05.2018 09:55

            Coq сам по себе нет, там чекер тривиальный, а вот его примочки/стратегии — да, соглашусь.


      1. 0xd34df00d
        22.05.2018 01:21

        Где-то рядом с этим вопросом архиваторы, видеокодеки и прочая колмогоровская сложность.


  1. Spaceoddity
    20.05.2018 15:03
    +1

    В статье нагнали много жути про неуязвимость червя, но вот эта фраза:

    Если может, он пытается посетить сайты www.mypremierfutbol.com или www.todaysfutbol.com.
    заставляет усомниться в идеальной конспирации.
    Какая дрянь с моего ПК, периодически ломится на непонятные адреса и при этом даже сосёт с них какой-то трафик… Хорошо настроенный файервол должен сразу реагировать на подобные вещи.


    1. BingoBongo
      20.05.2018 18:43
      -3

      Вы не понимаете, это был ну очень сложный червь, понимаете? Очень, сложный! Вот прям совсем сложный. Не верите? Он использовал три недокументированные уязвимости компьютерных мышек. Теперь понимаете? У них колесики начинали крутится сами собой, пока мышка не выходила из строя. Тогда ее заменяли на новую, а она уже с обновленной прошивкой червя! Все потому что он был очень сложный.


  1. trimtomato
    20.05.2018 15:18
    +1

    В русскоязычной Википедии сейчас читаю, что этот вирус обнаружили белорусы. Переключаюсь на английский — там уже Касперский открыл. Тут, в комментариях, дают ссылку на статью где Symantec рассказывают что видели этот вирус еще за год до событий. Антивирусные компании, такие антивирусные…


    1. Firz
      20.05.2018 15:46

      Каждый был первым, потому что каждый не может доказать что остальные не правы. Так, кстати, много где бывает.


    1. PaulAtreides
      20.05.2018 21:22

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


    1. Ragnar_by
      21.05.2018 02:10

      В английской википедии также сказано, что «The worm was at first identified by the security company VirusBlokAda in mid-June 2010.»


      1. trimtomato
        22.05.2018 00:37

        Сейчас да.
        Просто когда я писал комментарий, английская статья начиналась со строчки, что это найденный Касперским червь. Кто-то неравнодушный уже подправил. Там в истории видно.
        Неравнодушные делают мир лучше.


  1. IBAH_II
    20.05.2018 15:39
    -2

    Бред! причем бред рассчитанный на офисных програмеров.
    Засомневался, когда дочитал до фразы «Моторы, которые он ищет, называются «частотно-регулируемые приводы»» и убедился в этом окончательно, когда прочитал про увеличение давления газа и «И у вас даже не было возможности узнать почему.»

    Уж очень этот креатив похож на рекламу «обеспечения информационной безопасности»

    вот если бы червь заражал сей девайс вот это была бы действительно сложная программа


    1. Firz
      20.05.2018 16:40
      +2

      вот если бы червь заражал сей девайс вот это была бы действительно сложная программа

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


      1. IBAH_II
        20.05.2018 18:36

        Там есть две планки, которые, что характерно, выставляются отверткой. Как только давление выходит за выставленные отверткой пределы, замыкаются/размыкаются контакты, и соответственно рубится питание и выбрасывается блинкер (флажок).
        Именно блинкер, для того чтобы обеспечить, квитирование (взвод блинкера) человеком.
        Только после взвода блинкера допускается повторный пуск установки. В некоторых случаях квитирование производится под подпись-протокол-отпечатки пальцев.


        1. khim
          20.05.2018 18:55
          +1

          И вот задача вируса была — подвести центрифуге поблике к «блинкеру», но так, чтобы флажок не упал.


          1. IBAH_II
            20.05.2018 19:03
            -1

            Но это означат, что кто-то уставку на манометре неправильно поставил. Кстати эти уставки делаются тоже под подпись-протокол-отпечатки пальцев.


    1. Zoolander
      20.05.2018 17:23
      +1

      так это точно бред или вы просто засомневались из-за плохо выглядящих терминов?

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

      здесь, в статье — системные ошибки есть?


      1. IBAH_II
        20.05.2018 18:18

        Бред…
        Автор не имеет понятия как строятся программно-аппаратные комплексы соответствующие промышленной безопасности.
        Первый уровень защит, самый надежный, механический (самый простой пример — реверсивный пускатель), мне улучалось видеть установку в которой открыть дверь в опасную зону можно только застопорив приводной вал.
        Второй уровень защит электромеханический (пример «реле обрыва поля»), в последнее время стало модно использовать электронику, так называемые желтые реле безопасности. Червям там негде разместится, там даже процессора нет. Как правило эти устройства рубят всю установку при выходе параметра за уставки.
        И только потом контроллеры, которые должны быть безопасны, с этим сложнее. Производители напихивают в них столько фишек, что уже сами не в состоянии отследить баги и дыры. Поэтому, я сторонник самописаных контроллеров, с потребным в данной задаче функционалом.

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


        1. IBAH_II
          20.05.2018 18:58

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


        1. Zoolander
          20.05.2018 19:44

          спасибо, но вы описали как надо строить, а не реальность
          а в реальности мало кто строит системы «как надо»

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

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


          1. IBAH_II
            20.05.2018 20:52

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


        1. vvzvlad
          21.05.2018 12:40

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

          Так частотники были кастомные, а вот контроллеры, которые ими управляли — обычное. Там ничего сложного и не надо, просто команды посылать-принимать.


  1. stranger777
    20.05.2018 17:37

    Windows, Realtek, JMicron: США — Иран, Тайвань — Китай; физики-ядерщики на подмоге у взломщиков. И не только они. Так что, думаю, сложность работы самой «неизвестной команды» проргаммистов сильно преувеличена. Много чего и много кто им попросту слил.
    А звучит красиво, конечно.


    1. khim
      20.05.2018 19:13

      Кстати да. Тут путают сложность программы и сложность всей спецоперации, частью которой была программа.

      Программа — среднего уровня сложности, в общем-то. А вот если добавить сюдя всё что там есть, кроме, собственно, кода… тут да — много интересного…


  1. ivlad
    20.05.2018 18:15

    Есть отличный фильм — "Zero days". Рекомендую посмотреть тем, кто интересуется этим вопросом.


  1. nurik_6
    20.05.2018 19:06

    Данный сюжет чем-то напоминает, сюжет из книги «Проблема трех тел», где инопланетная раса
    с планеты Трисолярис, отправили в сторону Земли «софоны» — микро-суперкомпьютеры, одной из задач которых, было вносить хаос в измерения (в ускорителях частиц), тем самым, останавливая научный прогресс, в то время как инопланетный флот добирался до земли.


    1. zagayevskiy
      21.05.2018 14:41

      Финал этой трилогии ("Конец смерти") — одно из самых больших разочарований :(


  1. dadyjo
    20.05.2018 19:57
    -1

    А ведь стоило поставить вместо windows linux и возможно мы бы не читали сейчас эту статью :)


  1. dadyjo
    20.05.2018 20:04

    Самый крутой червь про которого я читал был описан в этой книге lib.ru/LAZAREWICH/worm.txt

    Отрывок
    «В 1982 году Джон Хэкер завершил работу над своим шедевром — червем, получившим от своего создателя устрашающее имя „Князь
    Тьмы“.Это был не просто червь. Это был суперчервь! В него была
    заложена способность к самосовершенствованию.»

    «Мурашки пробегали по спине Джона, всякий раз когда он
    представлял себе дальнейшее. Где-то там, на другом конце провода
    стоят машины с огромной оперативной памятью и немыслимо
    вместительными накопителями. Кабели с невероятной пропускной
    способностью и спутниковые каналы свяэи соединяют их с другими
    такими же большими машинами, разбросанными по всему миру. Все
    вместе они образуют информационное пространство, бесконечное как
    космос, и опасное как джунгли. В этих джунглях отныне будет жить
    его червь. За ним будут охотиться антивирусные программы, и он
    должен будет продираться через многочисленные защитные „заборы“
    и „перегородки“ делящие это пространство на части.
    Чтобы выжить, ему придется активно размножаться, занимая под
    свои копии свободную память в очередном захваченном компьютере.
    Но вся „изюминка“ программы написанной Джоном Хэкером состояла в
    том, что многие из этих копий будут несколько отличаться от
    оригинала. и всякий раз по разному и случайным образом.
    Некоторые из них могут оказаться более приспособленными к
    выживанию в компьютерных „джунглях“. Именно эти копии сумеют
    пролезть в новые банки данных, где найдут „жизненное
    пространство“ для дальнейшего размножения. Таким образом,
    выживут наиболее приспособленные, в полном соответствии с
    Дарвиновской теорией эволюции, которая утверждает, что
    приобретенные полезные признаки должны накапливаться и вести к
    появлению все более совершенных организмов.»


  1. Karpion
    20.05.2018 20:08
    -1

    Ну, первый же баг в системе безопасности Ирана — это использование Windows.

    Далее: недопустимо поручать управление системой (центрифугой) и контроль параметров — одной системе. Тут надо разные системы — желательно максимально разные, т.е. если программные, то на процессорах разных типов (например, ARM и MIPS).
    Желательно реализовывать контроль параметров работы максимально аппаратно, без участия программ вообще. Ну или на примитивных процессорах.

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


    1. PaulAtreides
      20.05.2018 21:35
      +1

      Ну, первый же баг в системе безопасности Ирана — это использование Windows.


      Это не Ирана баг, а производителя этой SCADA-системы — компании Сименс. Иранцы конечно изрядно помогли автору stuxnet — в их сети творился страшный бардак в области безопасности (самый страшный бардак из когда либо устроенных, хаха), но избавиться от windows было не в их силах.


      нужна максимальная технологическая/экономическая независимость от мировых рынков


      А это, увы, в наше время невозможно. Какие-то ключевые технологии могут быть собственными, но построить полную производственную цепочку ВСЕГО — сейчас не в состоянии ни одна страна. Нет независимых стран. Ни США, ни Китай, ни Северная Корея от чего-то подобного не застрахованы.


      1. Karpion
        21.05.2018 02:03

        Баг Ирана — в том, что они выбрали поставщика, который поставляет SCADA-систему под Windows. Надо было хотя бы требовать возможности запуска SCADA-системы под WINE или типа того. А в идеале — требовать многоплатформенную систему.

        Кроме того, баг был в том, что систему заказали у потенциального противника — страны-члена НАТО.

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


        1. qw1
          21.05.2018 12:11
          +1

          Тут собрать Украину-Беларусь-Казахстан-Россию невозможно, а вы на Китай с Бразилией замахиваетесь )))


          1. Karpion
            21.05.2018 18:23

            Набор стран я составил достаточно случайно, ориентируясь на размер и возможности этих стран. Реалистичность создания единого государства из именно этих трёх государств — я не рассматривал.


            1. qw1
              21.05.2018 18:34
              +1

              Ну да, сходство с БРИКС чисто случайно вышло )))


        1. DummyBear
          21.05.2018 19:04

          Евразия и Остазия? :)


          1. Karpion
            21.05.2018 19:23

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

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


  1. qw1
    21.05.2018 12:27

    Я только не понимаю, зачем сворачивать программу.
    Сломались центрифуги, можно начать заново, с нуля. Никто не продаёт оборудование — можно своё спроектировать. Ведь США и СССР обогащали уран 70 (!) лет назад. Сейчас возможностей в тысячи раз больше. И информации больше везде, и оборудование (даже гражданского назначения) такое, которое немыслимо было в те времена.


    1. Marsikus
      21.05.2018 12:36

      зачем сворачивать программу

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


      1. Meklon
        21.05.2018 15:38
        +1

        В случае Ирана — передвинуть влево


    1. khim
      21.05.2018 18:21
      +2

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

      Первым был СССР, как уже упоминалось (замечание для тех, кто будет праздновать «победу советского образования»: разработчиком был Макс Штеенбек из Германии, хотя Арцимович и многие другие приняли в этом деятельное участие). Сегодня это дело продолжает ТВЭЛ.

      Дальше — центрифуга появилась в Европе, куда уехал один из разработчиков. Там тоже много чего интересного произошло, но, в конце-концов, «у них получилось» и сегодня ETC (компания, которой владеют совместно URENCO и AREVA) тоже умеет их делать.

      Наконец Китай. Тут, в общем, пока непонятно. Через некоторое время после того, как в бурные 90е (в 1997м, если быть точным) Китай получил завод с центрифунгами из России CNNC создала-таки «самостоятельно» центрифуги. Вот только… на дату новости посмотрите, да? И учтите, что это — центрифуги, «успешно прошедние испытания». USEC в Америке испытания-то своих центрифуг (разработанных, как бы, в 1977 году, то есть уже 40 лет назад) провёл… а работающего завода у них нет до сих пор.

      Такие дела.

      А теперь — вопрос:
      Ведь США и СССР обогащали уран 70 (!) лет назад.
      Как же так-то? Если, как уже упоминалось, США до сих пор не освоили центрифуги, то откуда взялись малыш и толстяк? А очень просто: кроме пресловутых центрифуг есть ещё много способов обогащения урана. Американцы использовали газодиффузный.

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

      Такие дела…


      1. qw1
        21.05.2018 18:53

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


        1. khim
          21.05.2018 19:03
          +1

          Опять же, можно вести исследования на опережение, а не догонять.

          Это может себе позволить Китай, но не Иран.

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

          Если на всё подобные «сенсации» деньги бросать — можно быстро стать банкротом. Какую-нибудь лабораторию профинансировать — можно (и не исключаю, что так Иран и делает) но «по крупному» вкладываться в «сенсации науч-попа» не стоит.

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


        1. Am0ralist
          21.05.2018 22:29

          Вот Ирану стоит проверить, есть ли здравое зерно за этой шумихой.
          Звездные войны 2.0?


  1. AlexPetrovitch
    21.05.2018 20:01
    +1

    khim
    20.05.18 в 08:45
    И тем не менее обнаружили его не в Иране (где он ароде как выводил из строя центрифуги), и даже не в России, а в Беларуси. Где и центрифуг-то никогда не было.

    trimtomato
    20.05.18 в 15:18
    В русскоязычной Википедии сейчас читаю, что этот вирус обнаружили белорусы. Переключаюсь на английский — там уже Касперский открыл. Тут, в комментариях, дают ссылку на статью где Symantec рассказывают что видели этот вирус еще за год до событий.

    Немного истории…
    Во времена Союза в Белоруссии было крупнейшее научно-производственное объединение по разработке и производству различных центрифуг. Объединение разрабатывает и производит в Беларуси центрифуги и в настоящее время.
    10 июля 2010 компания «ВирусБлокАда» (Беларусь, Минск) в своем пресс-релизе сообщает об обнаружении 17 июня 2010 года вредоносной программы, использующей новую уязвимость для своего распространения и описывает процесс заражения и распространения.
    23 июля 2010 компания «ВирусБлокАда» в своем пресс-релизе "Об уязвимости CVE-2010-2568 в операционных системах Microsoft" опять возвращается к этой теме.
    В документе "SCADA & PLC VULNERABILITIES IN CORRECTIONAL FACILITIES" (от 7/30/2011) указывается, что Stuxnet обнаружил Сергей Уласень из VirusBlokAda (17 июня 2010 года). С переводом этого документа "Уязвимости SCADA и PLC в исправительных учреждениях" (от 10.11.2011) можно ознакомиться на SecurityLab.


    1. khim
      21.05.2018 20:46

      Спасиба за комментарий. То есть получается, что на SIEMENS перевели и управление центрифугами в России? Просто раздолбаев было меньше и флешку с вирусом никто не сунул?


  1. Dugnist
    21.05.2018 20:01

    Неужели так сложно использовать linux вместо windows? Дешевле, безопаснее, удобнее…


    1. khim
      21.05.2018 20:46
      +1

      Написать подобную программу под Linux — не сильно сложнее, чем под Windows.


      1. tyomitch
        21.05.2018 22:22
        +1

        На самом деле, сильно сложнее добиться столь же эффективного распространения (58% компьютеров в стране?), если писать под малопопулярную ОС. А шанс преодолеть air gap напрямую зависит от повального заражения компьютеров всех причастных к предприятию.


        1. qw1
          21.05.2018 22:40
          +1

          Для этого вирус может быть двухкомпонентым. Если он на windows-машине, то linux-часть спит, и наоборот.


          1. tyomitch
            21.05.2018 23:38

            А такой вирус написать примерно вдвое сложнее, чем лишь одну из его половин.
            Так что Dugnist прав: использование Linux существенно бы усложнило задачу атакующих.


      1. qw1
        21.05.2018 22:57

        не сильно сложнее, чем под Windows
        Я думаю, намного сложнее. Главная уязвимость — CVE-2010-2568, которая крашит проводник при ошибке структуры lnk-файла. Для эксплуатации что важно: нужно точно знать структуру стека в уязвимой ф-ции и по каким известным адресам находятся нужные байты, чтобы в адрес возврата положить указатель на код типа lea eax, [ebp+20] / jmp eax, что запустит код в стеке.

        Под windows всё понятно — у нас Windows Explorer определённых версий, которых всего 3-4 штуки (WinXP, SP1, SP2). Можно очень заморочиться и сделать эксплойт под 3 системы. Но включение в поддержку любой дополнительной бинарной сборки ОС, чтобы везде одинаково работало, повышает сложность эксплуатации на порядок.

        Под linux сразу вопрос — какой DE? Если знаем DE, то какой бинарник, в каком окружении, какие ещё известные (с точностью до адресов нужных байт) so-файлы есть в процессе. Тут ещё сложность — одна промашка, и вместо запуска вредоносного кода получаем креш процесса и сразу это всё привлекает внимание программистов при массовом распространении и сразу уязвимость закрывается.

        Да и глупостей нет в linux, типа autorun или открытия списка файлов при вставке флешки.


        1. sumanai
          21.05.2018 23:10

          которых всего 3-4 штуки

          Больше. Кроме сервис-паков проводник может обновляться отдельными обновлениями.
          Да и глупостей нет в linux, типа autorun или открытия списка файлов при вставке флешки.

          Их 11 лет по умолчанию и в Windows нет, а без умолчания все 18. Впрочем если флешку вставляют, то обычно для того, чтобы с ней работать, и отсутствие автозапуска только отсрочит вызов вируса.


        1. khim
          21.05.2018 23:36

          Да и глупостей нет в linux, типа autorun или открытия списка файлов при вставке флешки.
          Зато есть автомонтирование. Причём монтируются все файловые системы, какие нашлись на флешке. А создатели этих файловых систем проповедуют «страусиную политику»: если ваша файловая система битая — то мы ни за что ответственности не несём. Дальше — организуем пачку файловых систем, под разные ядра. И всё.

          Тут ещё сложность — одна промашка, и вместо запуска вредоносного кода получаем креш процесса и сразу это всё привлекает внимание программистов при массовом распространении и сразу уязвимость закрывается.
          Не креш процесса, а креш ядра. Который, если мы всё успешно заэксплоитили, можно и из логов вычистить. И никто ничего закрывать не будет — максимум запустят fsck, убедятся, что файловая система таки действительно побилась, чертыхнутся и будут дальше работать…


          1. qw1
            22.05.2018 00:33

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

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

            Мы же говорим о массовой эпидемии? Если вирус будет крешить систему хотя бы на 5% машин, то кто-то из исследователей обязательно доберётся до причины и вскроется, что пол-страны заражено. А когда разберут код пейлоада, усилят меры безопасности на объектах и второго шанса не будет.


            1. khim
              22.05.2018 01:31

              Но никак не «нам тут отрепортили RCE в ядре, но мы его фиксить не будем, потому что FS битая».
              Когда уже есть готовая RCE — тут и Microsoft просыпается и фиксит. А вот когда «всего лишь» переполнение… ошибки могут годами висеть. Пока кто-нибудь RCE не изобразит. Вот тут — подробнее.

              офигеют немного, что на флешке откуда-то возникла «пачка файловых систем, под разные ядра».
              Многи ли пользователей будут разбираться с тем, что там творится на флешке, если она выглядит как обычная флешка без всяких странностей? После того, как вы запустили код в ядре можно уже спокойно все эти файловые системы отмонтировать…

              Если вирус будет крешить систему хотя бы на 5% машин, то кто-то из исследователей обязательно доберётся до причины и вскроется, что пол-страны заражено.
              А с чего он будет крешить машину? Ядро в таких случаях не любит умирать. Да, «kernel oops» в логах может остаться, но и только. И вирус, в конечном итоге, таки обнаружили, так что и под Windows — та же история…


    1. vlivyur
      22.05.2018 09:50

      А много скад под linux?


  1. 1eqinfinity
    22.05.2018 10:05

    Прикольно, спасибо. Я думаю, перевод сильно выиграл бы, если использовать «ты» вместо «вы». А то как в старой шутке, в Англии все такие вежливые, что даже с кошками на вы.


  1. odissey_nemo
    22.05.2018 11:29

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

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

    Кстати, этот ресурс также не может существовать без подпитки извне))) Интересно, правда?