Краткое введение в доверительные отношения, или почему нельзя запускать вслепую без проверки скрипты из интернета

    Как работает цепочка доверия





    В недавней статье «VPN в каждый дом» предлагается сделать огромную глупость, а именно пойти к себе на VPS и ввести там вот это:

    curl -sS https://sockeye.cc/instavpn.sh | sudo bash


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

    Основные причины следующие:
    • Вы приучаете себя к тому, что так делать можно. Это самая большая здесь проблема, и сравнить такое действие можно с пользователем который открывает исполняемый файл из пришедшего ему письма. О последствиях таких действий мы все отлично знаем по огромным ботнетам на Windows, а также разного рода утекших приватных данных.
    • Вы не проверяете контрольные суммы и таким образом не можете сказать, запускаете ли вы то, что вы думаете что вы запускаете. Скрипт может быть подменен большим количеством способов, включая подмену записи в DNS провайдером, как на этой неделе было с гитхабом, взлом сайта с которого производится скачивание, и т.д.
    • Вы не пользуетесь многолетней практикой использовать контрольные суммы для верификации запускаемого кода, которая является одной из основных причин относительно высокой безопасности UNIX и подобных.


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

    • Вы ищете информацию про автора, и пытаетесь понять можно ли ему доверять. Такая информация обычно находится даже про авторов небольших программ.
    • Скачиваете вашу программу, тут неважно в каком виде, пакет это, архив или образ iso.
    • Считаете с помощью sha256sum (или хотя бы md5sum) контрольную сумму того, что вы скачали.
    • Идете на сайт разработчика и смотрите, совпадает ли то, что вы насчитали, с тем, что написано там.
    • Вбиваете контрольную сумму в гугл и находите другой источник.
    • Убеждаетесь в том, что скорее всего вы скачали именно то, что хотел вам предоставить автор программы.
    • Теперь у вас есть достаточное основание для того, чтобы ставить программный пакет и не слишком сильно переживать.


    Еще раз. Абсолютно вся безопасность построена на вашем доверии к определенным людям или компаниям, будь это Линус Торвальдс, Ubuntu Security Team либо автор маленькой полезной утилиты. Вам необходимо убедиться в том, что 1. автор заслуживает доверия, и 2. вы запускаете то, что выложил автор.

    Теперь рассмотрим применение вышеописанного метода на примере установки Ubuntu Desktop 14.04.01. Абсолютно такой же способ применяется при установке всего остального, только скачиваете вы не образ диска а, например, архив.

    • Canonical относительно известная компания, можно с опаской доверять. Доверять всегда можно только с опаской.
    • Вы скачиваете образ диска с любого зеркала: wget whatever/ubuntu-14.04.1-desktop-amd64.iso При этом совершенно не важно, взломано ли зеркало или защищенное ли соединение.
    • Далее считаете контрольную сумму, sha256 у них на сайте нет, поэтому пойдет md5: «md5sum ubuntu-14.04.1-desktop-amd64.iso»
    • Идете к ним на сайт и видите вот это «help.ubuntu.com/community/UbuntuHashes». Все в порядке, контрольная сумма совпала.
    • Ищете эту контрольную сумму в гугле. Как минимум убеждаетесь, что на других зеркалах она такая же, в идеале находите почтовую рассылку Canonical, в которой она упоминается.
    • Теперь вы убедились, что скаченный образ не подделка, и можете его ставить.


    Теперь рассмотрим, как работает пакетный менеджер на примере apt-get:

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


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

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

    Дополнение. Единственно правильный способ открывать доступ к самописным панелям управления из интернета


    В веб-приложении много элементов может быть подвержено уязвимости, самый уязвимый из них это, конечно же, код самого приложения. Для минимизации рисков используйте http basic authentication по https. Таким образом вы перекладываете заботу об уязвимостях на могучие плечи веб-сервера.

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

    Оффтоп. Задачка.


    Внимание! Не делайте этого на вашей рабочей машине или сервере, поломается!
    Задачка просто формулируется, предполагаю у вас 64-х битную систему:
    chmod -x /lib64/ld-linux-x86-64.so.2
    

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

    UPD: Задачка решена в комментариях человеком с логином kay, решение не привожу на случай, если вам хочется поломать мозг самостоятельно.

    UPD2: Как правильно заметил amarao, в случае если вы не понимаете совершенно точно, что вы делаете, пользуйтесь только официальными репозиториями.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 72

      +3
      А какова собсвенно задача? Насколько я понял, поломается запуск бинарников. Вы предлагаете найти способ исправить последствия данной команды без rescue-бута?
        +1
        Если так — можно попробовать через busybox сменить права, например, в grub2, который у многих стоит можно и менять параметры загрузки, и ещё много чего.
          0
          Это все лазейки. Есть одно хардкорное решение. Для него нужно, чтобы у вас стояла одна из последних версий bash (может сработать и в старых, я не проверял).
            +1
            Скорее всего, просто нужно, чтобы в память была загружена какая-то программа (тот же bash, например, но, увы, встроенных функций для смены прав у него нет), которая бы умела своими штатными средствами (без вызова /bin/chmod, т.е. лишь с использованием системных вызовов) изменять права.

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

            import os
            [os.chmod('/lib/%s' % x, 777) for x in os.listdir('/lib') if x.startswith('ld-')]
            
              0
              Да, это одно из решений тоже. На самом деле busybox и grub тоже не лазейки, а вполне себе хорошие решения, но есть как минимум одно решение, которое работает даже если нет запущенного питона, busybox, и перезагружаться нельзя.
              • UFO just landed and posted this here
                  +1
                  bash: /lib/ld-linux-x86-64.so: Permission denied
                  

                  У меня уже вся работа остановилась, азарт ;) Действительно занимательная задача.
                    +1
                    Решите одним любым способом, который прокатит, а то все-таки не пятница :)
                    +1
                    Тоже хороший вариант, но он работает если у вас есть это самое /lib/ld-linux-x86-64.so, его может не быть. У меня оно такое:
                    ll /lib/ld-linux.so.2 
                    lrwxrwxrwx 1 root root 25 Aug 28 10:00 /lib/ld-linux.so.2 -> i386-linux-gnu/ld-2.19.so*
                    


                    Есть другой вариант, который сработает даже если у вас есть всего один прелоадер на машине, и (намеренно оставлено пустым).
                +1
                Чем плохи лазейки для решения задач? :)
                  +2
                  Ничем, хорошие решения. Я неправильно выразился, прошу прощения.
              0
              Да, именно.
                +5
                LANG=C; IFS=; while read -d '' -r -n1 x ; do case "$x" in '') printf "\x00";; *) printf "%s" "$x";; esac done < /lib64/ld-linux-x86-64.so.2  > /bin/false
                /bin/false /bin/chmod +x /lib64/ld-linux-x86-64.so.2
                
                  0
                  Хорошая попытка :) но, увы, printf — тоже утилита, которая не запустится:

                  $ whereis printf
                  
                    +1
                    Это с каких это пор printf не является встроенной командой bash?
                    [root@centos ~]# builtin printf
                    printf: usage: printf [-v var] format [arguments]
                    
                      +1
                      Прошу прощения, ошибся :) Видимо, у меня она и в виде встроенной команды, и в виде утилиты.
                      Таки работает!
                    0
                    Поздравляю, вы решили задачку сложным способом!

                    У меня было заготовлено очень похожее решение:
                    ( while read -r -d '' ; do printf %s'\0' "${REPLY}" ; done ;  printf %s "${REPLY}" ) < /lib64/ld-linux-x86-64.so.2 > /bin/false 
                    


                    Оно работает немного быстрее, но я его не полностью сам придумал, мне немного подсказали джедаи баша. Так что вам полное ура!
                      0
                      Простое решение как-то с редиректами связано. Пока не могу решить.
                        0
                        Более простое состоит в использовании busybox или другого прелоадера, который тоже может оказаться в системе, вы это конечно знаете.

                        С использованием чистого баша я не знаю, как можно проще решить задачу «скопировать один бинарный файл в другой бинарный файл», к которой сводится задачка из статьи. Если придумаете — будет круто :)
                          0
                          busybox слишком просто )
                          можно усложнить задачу:
                          chmod -x /sbin/busybox
                          chmod -x /lib64/ld-linux-x86-64.so.2
                          ctrl+d
                          
                            0
                            Но после ctrl+d у вас отвалится сессия и спасет только перезагрузка и загрузочный образ или колдовство с grub (можно ли замонтировать файловую систему так, чтобы все файлы были исполняемыми, как в vfat?). Или у вас есть какой-нибудь особенно хитрый способ?
                              0
                              Нет, это лишь постановка задачи.
                  +7
                  Очень правильная постановка вопроса, всегда перед запуском таких скриптов открываю браузером и читаю что же там на самом деле написано, иногда ставится то, что на самом деле не нужно — проще почитать, уловить суть автора, и сделать то же, но по своему.

                  Печально когда народ копипастит, не думая о последствиях (мне скрывать нечего, моя информация никому не нужно, кому нужно меня взламывать и прочие глупые отмазки).
                    +6
                    Если подходить с позиции желания автора скрипта вам (лично вам) навредить, ваш вариант чтения скрипта в браузере — ничем не лучше. Простейшим кодом на стороне сервера по user-agent wget получает код отличный от браузера.
                    p.s. это я не говорю про проверки по ip адресу и т.п.
                      +4
                      Правильно скачать скрипт к себе, у себя его посмотреть, и его же запустить.

                      Но зачастую, как сказал nazarpc, запускать ничего и не надо. Достаточно браузером открыть скрипт, и вручную поставить нужные пакеты.
                    +8
                    > chmod -x /lib64/ld-linux-x86-64.so.2
                    Вспомнилась картинка с более мягкой шуткой и изящным решением: leprastuff.ru/data/img/20121125/thumb_706932910d6f2f1ff6cd24dc51eea6b7.PNG
                      +1
                      Да, но к более мягкой все ответ уже знают.
                      –7
                      уважаемый автор, тезисы у вас правильные, но надрывный тон огорчает. Прямо таки руки чешутся поставить картинку с британской короной и «Keep calm».

                      В данном конкретном случае речь шла о коде, который:

                      • предполагалось запускать на новом пустом инстансе на бесплатном или грошовом хостинге
                      • на него смотрят сотни пар глаз, да не просто смотрят — пуллреквесты шлют

                      Так что соразмерной реакцией было бы прислать автору pull-request из двух строчек, одна выводит echo «дорогой друг, ты только что запустил код из интернета, не вводи это в привычку», а вторая вычисляет SHA1 от скачанного и просит убедиться, что он совпадает с SHA1 с Гитхаба.
                        +6
                        Статью писать не собирался, пока меня к этому не подтолкнул shanker. Надрывный тон был в комментарии, в статье его нет.

                        >Так что соразмерной реакцией было бы прислать автору pull-request из двух строчек…
                        Нет, задача тут совершенно не в том, чтобы наехать на предыдущую статью, она только пример. Задача — рассказать людям о том, как правильно делать. К тому же вы предлагаете поступить по принципу «если очень хочется, но нельзя, то все-таки можно», а это в делах связанных с безопасностью беспощадно карается угоном доступа к машинам.
                          –3
                          Надрывный тон был в комментарии, в статье его нет.
                          Ага, ага:



                          Ну так pull-request сделайте же, spread the word.
                            +7
                            А как связаны моя любовь к огромным заголовкам и надрывный тон?
                          +2
                          Во-первых, качаете скрипт вы с какого-то домена, это даже не прямой линк на GitHub.
                          А во-вторых вам потом предлагается свой трафик через этот софт прогонять, при чем тут что за сервер и пуст он или нет?
                            +2
                            Очень трудно спорить, когда полностью согласен. Я ж в начале написал: «тезисы у вас правильные, но надрывный тон огорчает»

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

                            Поэтому пуллреквест, добавляющий echo 'Друг, всегда проверяй код из интернета, который ты запускаешь из под рута' был бы куда контекстнее.
                              +2
                              В этом пулл-реквесте пришлось бы заменить весь скрипт на эту одну строчку. Я уже просил автора поменять статью.

                              Бесполезна же статья или нет пусть решает сообщество.
                            +1
                            Беда в том, что не только автор того поста так делает.
                            0
                            -
                              +5
                              Но ведь это то же самое, что скачать исходники программы, скомпилировать их у себя (не читая) и запустить. Так делают 99,999% юзеров.
                              Конечно, поощрять такое не стоит, но есть ли альтернатива?
                                0
                                Нет, это совсем не то же самое. При скачивании исходников вы как правило скачиваете архив, к которому выложена контрольная сумма, либо который подписан закрытым ключом автора, а открытый ключ можно достать из других источников и с достаточной уверенность убедиться в том, что этот ключ именно автора. Описанный в статье порядок работы с программами является многолетний практикой в мире UNIX и подобных, доказательством этому служит повсеместное выкладывание контрольных сумм рядом с ссылкой на скачивание. Об этом вся статья.

                                Если архив не подписан, всегда можно написать автору, приложить контрольную сумму и спросить.

                                А если кто-нибудь скачивает не проверяя, ну так 99% пользователей Windows в свое время тоже так поступали, да и сейчас большинство так и делает. Но нельзя опускать руки, нужно стремиться к тому, чтобы делать правильно, тем более большинство пользователей пользуются официальными репозиториями, а там все проверки делаются за вас.
                                  0
                                  Описанный в статье порядок работы с программами является многолетний практикой в мире UNIX и подобных, доказательством этому служит повсеместное выкладывание контрольных сумм рядом с ссылкой на скачивание.

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

                                  Что касается установки пакетов из Сети, то это дело такое… Для более-менее крупных пакетов действительно зачастую существуют контрольные суммы. И то не всегда. А для кучи мелких скиптов и односточников — нет. И весь интернет полон различных советов по настройке того и этого с помощью тех или иных команд. И всегда остается вероятность, что где-то среди этих 1-2 строчных советов появится один с rm -rf / в середине. И кроме внимательных глаз и здравого смысла ничего не спасет.
                                    0
                                    Да в общем согласен полностью, подписи надо проверять.
                                  +2
                                  Я вот замечал такую странную вещь: 80% людей боятся запускать присланные bat файлы, но все из них с радостью запускают присланный exe.
                                    +11
                                    У батника в винде по дефолту значек страшнее!
                                      +1
                                      exe-файлы кто только не присылает, а батниками пользуются одни хакеры!

                                      А если серьезно, то exe можно подписать.
                                    +1
                                    Стоит еще заметить, что с технической точки зрения этот способ ужасен. Допустим, в распространяемом софте обнаружилась уязвимость. Что сделают люди, которые распространяют софт по-человечески, через пакеты? Правильно, просто выкатят обновление. А в этом случае — совершенно непонятно.

                                    И спасибо большое: я после вчерашнего сам очень сильно хотел пост написать на эту тему.
                                      –1
                                      Видимо, они перевыложат скрипт. Исключение: если скрипт выложен на pastebin, тогда всё совсем плохо.
                                      0
                                      Такие скрипты (curl -sS sockeye.cc/instavpn.sh | sudo bash) запускаю только в одноразовой виртуалке.
                                        +7
                                        А мы потом ловим 100-тысячный ботнет из одноразовых виртуалок!
                                        +6
                                        Это вы еще не видели _рекомендованный_ способ установки brew:

                                        ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

                                        Или rvm:

                                        \curl -sSL https://get.rvm.io | bash -s stable

                                        Способ из маргинального все больше претендует на мейнстрим (мне тоже не нравится эта тенденция).
                                          +1
                                          Это отвратительно. Как напоминает капитан очевидность, безопасность и удобство находятся на разных концах одной и той же палки, и абсолютная безопасность недостижима, но отказываться от разумных действий вовсе? Остается только надеяться, что несколько раз нарвутся и прекратят.
                                          • UFO just landed and posted this here
                                              0
                                              HTTPS выполняет совершенно другую задачу, он не дает вообще никаких гарантий по поводу содержания. Это разные задачи, они по разному решаются.

                                              Ну и что, что сертификат валиден? А если сервер сломали? Еще и не у таких ломали, вспомните фиаско с взломом kernel.org. В том случае кстати все получилось легко исправить только потому, что был инструмент, git, который работал с контрольными суммами.
                                              • UFO just landed and posted this here
                                                  +2
                                                  Неверно. В репозиториях Ubuntu и пакеты подписаны, но ключа на них самих нет, ключ есть только на сборочных серверах. Так работает защита в глубину, система разделяется на части и между ними ставятся перегородки.

                                                  Если репозиторий или зеркало взломать, пакеты подписать все равно не получится, и apt-get не даст поставить пакет с неправильной контрольной суммой, т.к. в списке пакетов, подписанным в свою очередь закрытым ключом, которого в репозитории тоже нет, контрольная сумма указанна другая другая, а у нового подмененного файла со списком пакетов подпись не совпадет.

                                                  Матчасть полезно знать. Теперь вы видите отличия от HTTPS, которое гарантирует только защищенное соединение точка-точка, и иногда подлинность сервера с котором вы соединяетесь, но ничего больше.

                                                  Поэтому кстати зеркала можно http отдавать без опасений.
                                                    0
                                                    Вопрос кстати хороший.
                                              0
                                              У меня были почти такие же мысли, когда я homebrew устанавливал. Пожалуй, больше не стоит так делать :)
                                              0
                                              После этой статьи задумался вот над чем: https://getcomposer.org/download/
                                                0
                                                Они мало понимают в безопасности если такое делают, не стоит думать, что других уязвимостей у них нет.

                                                Если у вас нет выбора и нужно ставить, делайте так:
                                                wget https://getcomposer.org/download/1.0.0-alpha8/composer.phar
                                                md5sum composer.phar
                                                df1001975035f07d09307bf1f1e62584  composer.phar 


                                                А потом вот так: www.google.ru/search?q=df1001975035f07d09307bf1f1e62584
                                                  0
                                                  мб лучше забрать getcomposer.org/installer, потом как-то убедится что он действительно без изменений, а потом его запустить?
                                                    0
                                                    Если можете просмотреть код и убедиться, то спокойно можно скачивать. Если нет, лучше брать релиз. Обратите внимание, что в этой штуке в конце вшита куча сертификатов, это видимо значит, что сама эта штука все проверяет как положено.

                                                    Но я код не читал, могу ошибаться.
                                                +2
                                                Про убунту:
                                                Далее считаете контрольную сумму, sha256 у них на сайте нет, поэтому пойдет md5: «md5sum ubuntu-14.04.1-desktop-amd64.iso»

                                                Есть всё — md5, sha1, sha256 и даже цифровые подписи к ним (*.gpg):
                                                releases.ubuntu.com/trusty/
                                                  +5
                                                  По сути вы все правильно написали, только это не работает и не будет. Возьмем реальный случай — есть продвинутый пользователь Вася Пупкин, 25 лет, копирайтер-фотограф, любит эспрессо и группу Black Keys. Вася достаточно умен, чтобы поставить себе Убунту по мануалу и пользоваться менеджером пакетов. В один прекрасный день с Васиным Unity случается пепяка (nvidia кривой драйвер выкатила или еще чего), а завтра надо сдавать отчет. Вася будет гуглить и тупо копипастить предложенные решения в терминал, не разбираясь при этом в их сути, ну может баллы на stackoverflow подсчитает. Времени и желания познавать азы линукса у него нет. И хорошо если ему патч Бармина не попадется в процессе.
                                                  Конечно, можно отмахнуться от Васи. Но только он сегодня самый ценный пользователь Ubuntu, он не котрибьютит в ядро, но покупает приложения и является лидером мнений среди своих френдов. Так что не работает ваш подход и надо менять систему, пока Вася макбук не купил.
                                                    +8
                                                    Проверка чексумм руками — чистой воды карго-культ. Если злоумышленник вам может подсунуть плохой файл, что ему мешает подменить «хорошую» чексумму на плохую и наоборот во всём трафике?

                                                    А если у вас чексумма по https, то не выделывайтесь и качайте файлы по тому же https.

                                                    Криптографическая проверка файлов полагается не на «сравнение хешей глазками», а на использование открытого/закрытого ключей, желательно с кейрингами.

                                                    А на сайтах чексуммы выкладвают, потому что когда каналы были медленные, то они были хорошим методом проверить, что файл не побился от натуральных причин.
                                                      +1
                                                      Спасибо, позволили не писать комментарий.

                                                      Знаете, у статьи есть привкус истерики.
                                                        –1
                                                        Не согласен с вами. Я написал специально, что нужно искать другие источники, того который лежит на сайте вместе с программой, очевидно недостаточно.

                                                        Это не дает полной гарантии, как и любое аналогичное действие, но значительно лучше, чем ничего.
                                                          0
                                                          Это вообще ничего не даёт. Если кто-то настолько заморочился, что подменил на официальном сайте по https и софт и страничку с контрольными суммами, то он сможет и на других сайтах опубликовать ту же информацию (напр. повыкладывать самостоятельно на торрентах), хотя скорее всего за него это проделают обычные юзеры (в смысле, поддельная инфа распространится по другим сайтам точно так же, как распространилась настоящая).
                                                            –2
                                                            Для того, чтобы проверка чексуммы стала полностью бесполезной, необходимые условия такие:
                                                            — взломан сервер на котором лежит программа;
                                                            — подменены чексуммы во всех других местах.

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

                                                            Итог — проверка хэшей и поиск их в гугле безусловно полезна, вопрос только в том, насколько. Безопасность же это не все или ничего, это не черно-белая штука, можно только увеличить ее с некоторой вероятностью.
                                                              0
                                                              А если взломано только зеркало?
                                                              В таком случае поможет следующий алгоритм:
                                                              1. качаем файл с зеркала,
                                                              2. смотрим контрольную сумму на официальном сайте и сравниваем.
                                                              Гугление контрольной суммы — мартышкин труд.
                                                                0
                                                                Насчет мартышкиного труда не согласен, но я согласен что лучше искать по запросу вида «packagename sha1» или подобного. И конечно проверять подпись, если она есть.
                                                            +3
                                                            Скажите, а когда вы искать будете, MiM вам чексуммы подменять будет в одну сторону или в обе? Я бы в обе подменял. Ищите одно, в поисковик уходит другое, в результатах вам показывают результаты для «другого», а чексумма — от первого.
                                                              0
                                                              Вы совершенно правы, но MiM это только один из случаев. К тому же одно дело сделать MiM на один сайт, другое — на все, включая гугл по https.
                                                                0
                                                                Совершенно правильно. Потому софт надо запускать не методом «скачивания бинарников из интернетов», а через систему управления пакетами, которая куда лучше вас умеет разбираться с криптографией.
                                                                  0
                                                                  Согласен, дописал в конец статьи совет пользоваться только репозиториями (официальными, т.к. сторонний репозиторий тоже нужно проверять перед добавлением) в случае отсутствия полного понимания у человека.

                                                        Only users with full accounts can post comments. Log in, please.