image

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

Одним прекрасным летним вечером автор статьи закрыл крышку рабочего ноутбука с Ubuntu 16.04 Desktop на Unity и отправился домой. Вечер был настолько прекрасен, что я решил взять пару дней отпуска, бросил СМС начальнику, и он меня отпустил.

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

С этого и началось наше увлекательное расследование.

Что произошло?


Утром следующего дня c4n разобрал мой ноутбук и вставил туда свой жесткий диск. Он открыл крышку и увидел вместо начала загрузки своей ОС окно входа в мою систему. Оно было кликабельно, и c4n начал вводить случайные пароли, однако, всё безуспешно. Расстроившись, он нажал на кнопку выключения, и тут произошло чудо.

Вместо перезагрузки компьютера был выполнен успешный вход в мою систему, а также были показаны последние открытые мной программы и документы. Стоит отметить, что документы не просто были показаны, они вполне себе работали! Можно было скроллить по документам и ходить по вкладкам браузера. c4n тут же скинул мне скриншот.

image
На самом деле скриншот был другой. Я, уходя с работы, не оставляю открытый KeePass и сайт компании.

На лицо локальная авторизация без пароля!

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

Причины


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

Почему удаётся пройти авторизацию, для нас осталось загадкой. Мы грешим на работу модулей PAM (Pluggable Authentication Modules), которые, вероятнее всего, не находятся в оперативной памяти, а Ubuntu 16.04 неправильно обрабатывает их отсутствие, но потом поняли, что проблема в чём-то другом.

Всегда ли воспроизводится и всегда ли одинаково?


Наши эксперименты начались с Ubuntu 16.04. Действия были следующие:

  1. Отправляем компьютер в спящий режим.
  2. Вынимаем жесткий диск.
  3. Выводим компьютер из спящего режима.

Дальше, как оказалось, может быть несколько вариантов поведения системы:

  1. Компьютер показывает окно входа, вводим случайный пароль => видим окна пользователей перед слипом (все окна рабочие).
  2. Компьютер показывает окно входа, вводим случайный пароль => система говорит, что пароль неверный => однократно нажимаем кнопку питания => видим окна пользователей перед слипом (все окна рабочие).
  3. Компьютер показывает черный экран (по нему бегает курсор), нажимаем случайные клавиши и Enter => видим окна пользователей перед слипом (все окна рабочие).
  4. Компьютер показывает черный экран (по нему бегает курсор), нажимаем случайные клавиши и Enter => ничего не происходит => однократно нажимаем кнопку питания => видим окна пользователей перед слипом (все окна рабочие).

Скорее всего, пункты 3-4 аналогичны пунктам 1-2, просто по каким-то причинам графика не отрисовывает окно входа в систему.

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

PoC


Мы сняли небольшое видео, которое демонстрирует весь процесс атаки.


На всех ли системах воспроизводится?


Условием тестирования было наличие всех последних обновлений на системе. Зачем нам бага, которую давно закрыли?

Для начала было решено проверить воспроизводится ли баг на обычных ПК (не ноутбуках) с Ubuntu 16.04 с Unity. Была теория, что показ окон может быть как-то связан с видеокартой. Поэтому проверка осуществлялась с ПК как с интегрированной, так и с дискретной видеокартой, во всех случаях результат был один и тот же – бага отлично отрабатывает.

Дальше была взята Ubuntu 16.04 с GNOME. И тут нас ждало разочарование: бага не отрабатывала. Иногда, при выходе из слипа, система на полсекунды показывала последние окна (вполне реально заснять на видео), про это исследователи сообщили ещё в 2011 году, и она не закрыта до сих пор.

Дальше мы взяли Arch с Wayland и Xorg — разочарование, не работает. Debian 9 c GNOME и опять разочарование. Также не отработало на новой Ubuntu 18.04 — не удивительно, ведь к этому времени мы уже стали подозревать, что проблема в Unity. Поэтому решили для последних тестов взять Ubuntu 14.04, а еще посмотреть, что произойдёт с Ubuntu 18.04, если поменять оконный менеджер с GNOME на Unity. На Ubuntu 14.04 все хорошо отработало (хотя время жизни окон было значительно меньше, чем на 16.04). На Ubuntu 18.04 с Unity после выхода из слипа система сразу падает, и никакие эксперименты дальше провести нельзя.

Вывод: мы решили, что уязвимы версии Ubuntu с нативно установленной Unity, т.е. версии

  • 10.10
  • 11.04
  • 11.10
  • 12.04
  • 12.10
  • 13.04
  • 13.10
  • 14.04 (протестировано нами)
  • 14.10
  • 15.04
  • 15.10
  • 16.04 (протестировано нами)
  • 16.10 (протестировано нами)
  • 17.04 (протестировано нами)

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

Почему мы считаем, что это плохо


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

  1. Используемые данные могут быть не сохранены на диск (например, редактируемый документ).
  2. Данные могут находиться в шифрованной домашней директории (например, файлик с паролями).
  3. Данные могут быть на шифрованной флешке.
  4. Данные могут требовать дополнительной авторизации (как в нашем PoC с KeePass).

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

Скептики скажут, что подобного результата можно легко добиться, проведя cold boot атаку, а результаты буду даже лучше, но как часто кто-то из вас носит с собой термос с парой литров жидкого азота?

Мы решили, что проблема критичная и надо писать в Ubuntu.

Как мы пишем в Ubuntu


Чтобы завести багу, нам пришлось зарегистрироваться на launchpad.net, затем создать описание баги и добавить видео с PoC. Мы получили 406 очков рейтинга и значок костра (что бы это ни значило). Стали ждать. Баг мы завели 2018-06-18.

После длительной переписки товарищ Marc Deslauriers закончил нашу полемику сообщением, суть которого сводилась к: «Мы ничего исправлять не будем. Это то же самое, что иметь физический доступ».

image

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

image

UPD: 9 июля 2018 года, в 16 часов мы решили сделать багу публичной (спасибо amarao). В обсуждении на launchpad багу подтвердили для Mate 18.04, а не только для Unity. Также сообщество настаивает, что бага существует и её не стоит игнорировать.

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


  1. WebConn
    09.07.2018 11:08

    При физическом доступе к машине можно поменять пароль пользователя, загрузившись в single-user mode. Или с live-cd подменить /etc/shadow. В общем, ваш метод далеко не самый простой на практике, и слишком много условий.

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

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


    1. AAMinin Автор
      09.07.2018 11:21

      Примерно такая же позиция у Marc Deslauriers (человека из Ubuntu, который нам отвечал), но как написано в статье, данная бага работает с шифрованной домашней директорией. А также есть проблема с KeePass и другими системами, которые требуют локальный вход, а доступ к ним через LiveCD вы не получите (не зная пароль).


      1. thauquoo
        09.07.2018 11:24

        Попробуйте воспроизвести с полным шифрованием ФС, в том числе и корня.


        1. AAMinin Автор
          09.07.2018 11:34

          На полностью шифрованном диске у нас не воспроизвелось, но если кто-то перепроверит, то будет здорово (мы только на одном ноуте это проверяли с Ubuntu 16.04, система падала при выходе из сна)


          1. c4n
            09.07.2018 11:36

            Там ещё нюанс был, что мы тестили на серверной убунте, на которую накатили GNOME, и зашифровали диск.


  1. elve
    09.07.2018 11:23

    Уже увидел. Вы ждущий режим называете сном.


    1. c4n
      09.07.2018 11:28

      В статье имеется ввиду suspend. То о чём вы говорите, я обычно называю гибернацией (Hibernation).


    1. AAMinin Автор
      09.07.2018 11:28

      Да, речь идёт про режим «suspend», а не про режим «hibernate»


  1. alexrus
    09.07.2018 11:28
    +1

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


    1. WebConn
      09.07.2018 11:37
      +1

      Ничто не мешает забекапить /etc/shadow и вернуть его обратно впоследствии.


  1. lamer84
    09.07.2018 11:46

    Видео не воспроизводится. Removed by user.


    1. c4n
      09.07.2018 11:47

      Перезаливаем в хорошем качестве


  1. aamonster
    09.07.2018 12:21

    Меня бы на вашем месте в первую очередь напрягла не уязвимость в системе (она, конечно, есть — выход из sleep предполагается по паролю, но всё же добраться до неё трудно — надо получить машину в sleep и разобрать её), а то, что ваш коллега полез менять диски, не выключив компьютер (sleep — не выключение).
    И вообще — в вашей модели ноутбука можно добраться до винчестера, не отсоединив аккумулятор?


    1. c4n
      09.07.2018 12:29
      +3

      Именно так и находятся интересные баги. Слабоумие и отвага!


      1. aamonster
        09.07.2018 13:04

        :-)
        А вообще хорошо всё, что хорошо кончается: не спалили ничего, зато нашли баг. Но всё же последовательность разборки стОит "подвесить на рефлекс", это дешевле, чем разбираться с последствиями, если что-то погорит при включении под напряжением или при падении винтика на плату.


        1. elve
          10.07.2018 06:32

          sata-диски можно и в системнике менять на горячую почти с появления этого интерфейса. Надо только потом куда-то в proc прописать единичку для перечитывания списка дисков ОС.


          1. aamonster
            10.07.2018 08:02

            Можно, но к этому надо подготовиться — размонтировать диск и всё такое.


          1. TaHKucT
            11.07.2018 12:56

            позанудствоваю немного: sata-диск действительно можно отключать\подключать на горячую, физически диск и материнки (или контроллеры) к этому готовы (во всяком случае должны быть). Готово ли к этому ПО зависит от того, в какой режим выставлен режим совместимости SATA в биосе (или UEFI). Как правило есть 2 варианта: IDE — режим совместимости, нужен только для установки старых ОС и AHCI — новый режим, именно он поддерживает горячую замену, но в могут не работать некоторые старые ОС (тут под старыми имеется ввиду что-то типа Windows до XP и прочие досы с полуосями).

            Справедливости ради стоит заметить что начиная с появления Windows Vista некоторые производители ноутбуков стали убирать из тогдашних биосов эту настройку (тогда все говорили что это MS пытается бороться с установкой WinXP на новые ноутбуки и мотивирует всех висту использовать).
            Как дела на декстопах обстоят честно говоря не скажу, на серверах обычно просто: на старых моделях по умолчанию IDE, на новых AHCI выставлено. Поэтому если арендуете какую-то железку, особенно если используете софт-рейд (mdadm) то стоит перед вводом в эксплуатацию проверить текущий режим и в случае необходимости переключить его в AHCI. В противном случае для замены диска придется согласовывать даунтайм (проверить можно в dmesg например).

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

            Извлечение диска в линуксе в режиме AHCI:

            • Находим диск физически, что бы понимать какой именно мы будем извлекать (по серийникам, по индикации бэкплейна или еще как-то)
            • Перестаем использовать диск (отмонтируем ФС, переносим на другой PV наш LV если речь про LVM и т.д. Зависит от того, как у нас диск используется)
            • echo 1 >/sys/block/sdX/device/delete
              Вместо sdX указываем правильный диск.
            • Вытаскиваем диск физически (если нет бэкплейна, то рекомендуется сначала отключать питание, а потом дата-кабель. После отключение питания желательно подождать несколько секунд что бы головки успели запарковаться на штатное место)

            Установка нового диска:
            • Подключаем диск (если нет бэкплейна, то рекомендуется сначала подключать дата-кабель, а потом питание)
            • echo "- - -" >/sys/class/scsi_host/hostX/scan
              hostX заменяем на номер шины с диском (host0, host1 и т.д.… если не знаете можно перебрать все имеющиеся в ОС)


            1. elve
              11.07.2018 13:59
              -1

              Ну так суть от количества текста не поменялась =). Горячая замена возможна и это не попалит оборудование =).


              1. TaHKucT
                11.07.2018 15:24
                +2

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


            1. dartraiden
              12.07.2018 01:43
              +1

              В биосе зачастую есть ещё параметр Hotplug и он очень часто отключён по умолчанию.


    1. AllexIn
      09.07.2018 12:55
      +1

      Разбирал/собирал десяток моделей ноутов. Ни у одной не заблокирован доступ к винчестеру аккумулятором.
      У вас что за ноут с такой «фичей»?


      1. aamonster
        09.07.2018 12:59

        Не, это просто я напутал (ноута под рукой не было — не проверил перед тем, как писать; и вы правы — такой фичи нет и быть в массе не может, т.к. винчестер обычно располагается не под аккумулятором, там места мало).
        Но в любом случае разборку imho следует начинать с полного выключения (не hibernate и тем более не sleep) и отсоединения аккумулятора.


        1. c4n
          09.07.2018 13:11

          Как правильно разбирать/собирать, думаю, все в курсе, в этом плане я с вами абсолютно согласен. Однако, тут сыграла привычка — увидев ноут с закрытой крышкой, я решил, что он выключен.
          Но проверять в любом случае полезно! Больше так делать не буду. Или буду, пока не решил :)


          1. Lord_Ahriman
            09.07.2018 14:17

            Один раз я тоже разобрал ноут за ~80к, думая, как вы. И не отсоединил даже аккумулятор (хотел оптический привод на SSD заменить, думаю, зачем заморачиваться). Заменил, начинаю вкручивать винты, один срывается, падает на материнку, я вижу искорки, которые проскакивают от него, слышу «трррррр» и седею на глазах. Впрочем, ничего не случилось, ноут работает, но с тех пор тщательно проверяю, отсоединен ли аккумулятор :)


            1. VJean
              09.07.2018 15:15

              Что за ноут такой, у которого приходится снимать крышку, чтобы снять ODD? Сколько ноутов не разбирал, на всех приводы ODD завернуты одним винтом.


              1. Lord_Ahriman
                10.07.2018 10:27

                Какой-то из топовых на момент 2014-2015 годов ASUS в металлическом корпусе, марку не помню, потому что было это около двух лет назад. Знаю только, что он по сию пору работает в другом отделе фирмы.


          1. Germanets
            09.07.2018 15:00

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


            1. AAMinin Автор
              09.07.2018 15:03

              Мы тестовый диск раз 40-50 вытаскивали, все живы (диск, ноут и тд)


            1. TaHKucT
              11.07.2018 13:12

              Разбирал что бы посмотреть на ОЗУ, сгорел какой-то там контроллер, а диск восстановить не получилось никакой магией.

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

              Ну или последний и наиболее вероятный вариант на мой взгляд: с того момента как история случилась, до того момента как вы ее изложили в комментарии выше из нее потерялись какие-то важные детали (или наоборот появились лишние). Вполне вероятно это могло случится еще на этапе «товарищ пересказывал вам как именно дело было».


      1. Visphord
        09.07.2018 14:34

        HP 6077er был с такой фишкой, HDD-память под крышкой, которая отщёлкивается только после снятия аккумулятора. Нет, конечно можно и винтики отвинтить и снять всю нижнюю крышку целиком — но это дольше, ну или поддеть отверткой эту закрывающую часть — но в «штатном» режиме защелка открыть ее без снятия аккумулятора не позволяет)


        1. Visphord
          09.07.2018 14:39

          Вот тут видно подобный механизм:
          static.migom.by/img/articles/3075/8.jpg
          Сначала «переключатель» сдвигается влево -> это «поднимает» батарею. После этого вправо — он поднимает крышку. Если не вынуть батарею вправо не двигается.


        1. x67
          09.07.2018 21:47

          У многих hp подобная последовательность. Но ничего не мешает включить внешнее питание (на 6077 оно наверняка уже включено в силу старости батареи и просто потому что энергоэффективность низкая)


      1. nfw
        09.07.2018 14:47

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


      1. XNoX
        09.07.2018 16:28

        Lenovo G500

        www.youtube.com/watch?v=GTAa5u6xDmE

        Крышка снимается после выкручивания винта, который закрыт аккумулятором.

        Кроме этого под линухом есть проблемы с вайфаем/блютузом. Поэтому для домашнего использования только windows.

        Имхо, очень надежно защищенный ноут от подобных багов.


        1. 9660
          10.07.2018 09:08

          Кроме этого под линухом есть проблемы с вайфаем/блютузом. Поэтому для домашнего использования только windows.

          Внешний свисток в юзби разве не решит вопрос?


          1. Germanets
            10.07.2018 10:09
            +1

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


            1. 9660
              10.07.2018 10:50

              Ну так то да. Хотя мне например не сильно мешает.


      1. Frankenstine
        09.07.2018 19:42

        У моего HP Probook 4320s, чтобы снять HDD, нужно
        1) Перевернуть дном вверх, снять батарею
        2) Открутить 4 винта под нею
        3) Перевернуть дном вниз, сдвинуть панель с кнопкой включения
        4) Открутить 3 винта под ней
        5) Сдвинуть клавиатуру, отключить шлейф
        6) Открутить 3 винта закрывавшихся клавиатурой, держащих нижнюю панель с тачпадом
        7) Сдвинуть нижнюю панель, отключить шлейф
        8) Наконец-то, открутить HDD, вытащить :)
        Да, у него на днище нет винтов вообще, кроме тех что под батареей, и вентиляция (забор воздуха) осуществляется… через клавиатуру.


        1. Germanets
          10.07.2018 10:23

          Нехило, конечно, видимо результат компоновки железа в 13" корпус…
          А на счёт вентиляции — да это же замечательно, не так страшно бросить работающий ноут на кровать\подушку\кресло…


          1. Frankenstine
            10.07.2018 11:20

            И клавиатура даже под нагрузкой, когда выхлоп горячий, приятно прохладная.
            Между прочим, разбирать этот ноут очень приятно, так как у него нет ни одной грёбаной защёлки :)


    1. nafgne
      09.07.2018 17:23

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


  1. unwrecker
    09.07.2018 12:25

    Unity ж вроде уже официально не поддерживается.
    Небольшой офф: заново открыл для себя xfce — он неплохо так развивается, и отлично работает «из коробки».


    1. AAMinin Автор
      09.07.2018 12:30

      Unity не поддерживается, всё так, но системы с ней, например Ubuntu 16.04, имеют длительную поддержку ( до 21 апреля 2021 для Ubuntu 16.04)


  1. mbait
    09.07.2018 12:28

    Хотелось бы узнать пару деталей:


    1. Было ли влючено в исходной системе полное шифорование диска (кроме загрузочного раздела, /boot/efi)?
    2. Был ли отключён раздел подкачки (swap) или же добавлено шифрование для него?
    3. Жёсткий диск был магнитным или SSD?


    1. AAMinin Автор
      09.07.2018 12:42

      1. Полное шифрование не было включено (только домашняя директория пользователя)
      2. swap включён
      3. Диск магнитный (но не вижу причин не работать баге на SSD)


  1. AAMinin Автор
    09.07.2018 12:42

    del


  1. tSmoker
    09.07.2018 13:58

    <ворчит как старая бабка>
    А всё эти ваши новомодные ThinkPad`ы с двумя батареями. И винчестер теперь без обесточивания не поменять и лампочку убрали! Тфу!
    </ворчит как старая бабка>
    А если серьёзно, то проверить бы с шифрованием только пользовательского раздела.


    1. AAMinin Автор
      09.07.2018 14:14

      Именно с ним и проверяли. Всё отлично работает


  1. simplix
    09.07.2018 14:21

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


    1. AAMinin Автор
      09.07.2018 14:51

      Пробовали несколько раз, не получилось. Ещё пробовали вставить флешку, чтобы на неё сохранить данные, тоже не получилось


      1. simplix
        09.07.2018 15:09

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


        1. AAMinin Автор
          09.07.2018 15:20

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

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


  1. JTG
    09.07.2018 15:11

    У меня в 16.04 что-то чудовищно сломано. Включёно шифрование и запрос пароля при выходе из спящего режима, но если система ушла в спячку с незаблокированным экраном, то при включении может до 30 секунд тупить и, вообще не реагируя на ввод, показывать рабочий стол со всеми открытыми окнами, а только потом закрыться lock-screen'ом. Это как-то совсем глупо.
    Upd: собственно, похоже на этот баг bugs.launchpad.net/ubuntu/+source/unity-2d/+bug/830348


    1. AAMinin Автор
      09.07.2018 15:25

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


      1. Mingun
        09.07.2018 23:07
        +1

        У меня можно даже вводить что-то, пока экран успеет заблокироваться. Я уже несколько раз на такое натыкался — отошел на пару шагов, вернулся, продолжаешь работу и тут ни с того ни с сего экран блокируется. А самое эпичное, что похоже, если будет висеть какое-нибудь Qt-шное всплывающее окошко (типа выпадающего списка комбобокса), то лок экрана не наступит никогда


        1. Germanets
          10.07.2018 10:25

          А самое эпичное, что похоже, если будет висеть какое-нибудь Qt-шное всплывающее окошко (типа выпадающего списка комбобокса), то лок экрана не наступит никогда
          Вот это уже круто, на такое чудо стоит багрепорт отдельный завести, если его ещё нет…


          1. Mingun
            10.07.2018 11:19
            +1

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


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


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


    1. cl0ne
      11.07.2018 00:56

      Подобное было у меня и с KDE, и в андроиде. Т.е. на телефоне после включения экрана можно увидеть запущенные приложения и даже (емнип) что-то в них сделать, прежде чем андроид «проснется» и отобразит lock-screen.


  1. sleonov
    09.07.2018 15:55

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


    1. SergeyMax
      09.07.2018 16:08

      А разве SATA не поддерживает hot-plug?


      1. sleonov
        09.07.2018 16:22

        Ну как вам сказать. Поддерживает, да. Но контроллер hot-plug в ноутбуке разве присутствует? Я не буду вдаваться тут совсем в подробности (это будет долго, но если интересно, то могу потом написать вам и развернуто), но, если кратко, то для наглядности вы можете взять любой корпус десктопа или сервера с hot-plug и посмотреть внутрь. Там, между самим диском и интерфейсами питания и сата будет такая небольшая платка контроллера. Сама схема достаточно проста, но вот то, что это наличествует в ноутбуках вызывает у меня весьма большие сомнения. По крайней мере мне лично такое не встречалось. Если увидите (тут без иронии), то буду признателен на ссылку модели.


        1. SergeyMax
          09.07.2018 16:47
          +1

          Но контроллер hot-plug в ноутбуке разве присутствует?

          Нет, напишите развёрнуто, очень интересно послушать))


          1. sleonov
            09.07.2018 16:57

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

            «В большинстве современных устройств, допускающих горячую замену, используются подвижные контакты. Один из них делается длиннее других, чтобы первым входить в контакт с присоединяемой частью, через него подключается заземляющий провод. Остальные контакты делаются короче, всего может быть до 3 различных длин. Задержка между подключением первого контакта и последующих составляет от 25 до 250 миллисекунд.

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

            Вот пример типичной последовательности подключения:

            Замыкаются наиболее длинные контакты (заземление). Тем самым достигается электрическая безопасность соединения и защита от статического заряда.
            Замыкаются длинные или средние контакты предварительного питания. Заряжаются входные контуры цепей питания.
            Задержка в десятки миллисекунд.
            Подключаются короткие контакты питания.
            Соединение считается установленным. Включается сигнал инициализации питания.
            Цепь мягкого включения питания подает напряжение на устройство.
            Задержка в десятки миллисекунд.
            Цепь питания закончила мягкое подключение. Выключается сигнал инициализации питания.
            Устройство начинает полноценную работу.»

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


            1. SergeyMax
              09.07.2018 17:06

              Расскажите, пожалуйста, более подробно про контроллер hot-plug. Что это такое?


              1. sleonov
                09.07.2018 17:10

                Я вам даже написал выше где вы можете посмотреть на него своими глазами.


                1. SergeyMax
                  09.07.2018 17:12

                  Расскажите своими словами)


                  1. nafgne
                    09.07.2018 22:21
                    +3

                    Хз почему минусят, цитата вообще ни о чём, как и раздел на вики.


                    1. ArtRoman
                      10.07.2018 21:01

                      В SATA контакты земли чуть длиньше остальных (фото), как и в USB типа A контакты питания, чтобы при подключении цепляться первыми, и только потом — линии данных. Режим Hot-plug часто можно включить в биосе, причём отдельно для каждого SATA-разъёма, и он не требует какого-то отдельного контроллера.


                      1. nafgne
                        10.07.2018 21:46

                        Наверняка контроллер интергрирован в чипсет, на одних контактах далеко не уедешь.


            1. Frankenstine
              09.07.2018 19:54
              +2

              Чисто электрически, SATA является hotplug-совместимым. Другое дело, что для такого режима эксплуатации требуется ещё и программная поддержка. Без неё «отвалившийся» девайс не будет виден системой до перезагрузки компьютера.

              В отличие от PATA, стандарт SATA предусматривает горячее подключение устройства (используемого операционной системой) (начиная с SATA Revision 1.0)

              Начиная с ревизии SATA 2.6 был определен slimline коннектор, предназначенный для малогабаритных устройств — оптических приводов для ноутбуков. Контакт #1 slimline указывает на присутствие устройства, что позволяет выполнять горячую замену устройства. Slimline signal коннектор идентичен стандартной версии. Slimline power connector имеет уменьшенную ширину и уменьшенный шаг контактов в нем, поэтому коннекторы питания SATA и slimline SATA полностью не совместимы между собой. Контакты slimline power connector питания обеспечивают только +5 В, не предоставляя +12 В и +3.3 В.

              Программная поддержка hotplug в windows включается через правку реестра (семёрка и старше), в linux работает изкаропки.


  1. amarao
    09.07.2018 16:31

    В целом, скринсевер не должен падать из-за ошибок файловой системы. Что происходит с ноутбуком:

    Из системы убирают /dev/sd*. Для тестирования не нужно дёргать диск на живую, можно просто зайти под рутом и сделать вот так вот:

    echo 1 > /sys/block/sda/device/delete
    


    Отвечая комментаторам: почему не работает «воткнуть другой диск с другим паролем на живую» — потому что устройства монтируются по их minor:major, а если вы втыкаете в систему «ещё один диск» на тот же самый слот, предварительно не удалив предыдущее блочное устройство, то диск получает следующий minor (т.е. sdb, etc).

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

    upd: дайте ссылку на баг.


    1. AAMinin Автор
      09.07.2018 16:45

      мы за живые эксперименты:)

      Вот ссылка: bugs.launchpad.net/ubuntu/+source/unity/+bug/1777415, решили перенести баг в раздел «Public Security»


      1. amarao
        09.07.2018 16:51
        +1

        Спасибо. Я сижу на cinnamon, так что воспроизвести не могу. Если у вас есть машинка, на которой вы это воспроизводили, попробуйте со строчкой (от рута), которую я вам написал выше. Разработчикам будет куда легче изучать проблему, если её можно воспроизвести софтовыми методами.


        1. AAMinin Автор
          09.07.2018 17:20

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

          Спасибо, что подтвердили наш баг:)


  1. vsespb
    09.07.2018 20:03
    +1

    Команда убунты в своём стиле — криворуки и некомпетентны.


  1. Berkof
    09.07.2018 22:13
    +5

    Боже мой, и этот Marc Deslauriers реально работает в Canonical? Пора менять дистрибутив, если контора публично не извинится за некомпетентность своего сотрудника. Одно дело — аппаратная уязвимость (Cold Boot атака эта), и совершенно другое — программная дырень с уходом в сон. То, что имея физический доступ к компьютеру можно слить с него все данные (типа) — это вообще не аргумент, уже лет 15 как распространенно тотальное шифрование дисков (Opal отлично взаимодействует с современными SSD, многие из которых физически не могут не шифровать данные, просто без контроллера делают это пустым паролем).


    1. dartraiden
      12.07.2018 01:45

      То, что имея физический доступ к компьютеру можно слить с него все данные (типа) — это вообще не аргумент, уже лет 15 как распространенно тотальное шифрование дисков

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

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

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


      1. AAMinin Автор
        12.07.2018 10:27

        Люди в описании бага на launchpad.net, говорят что у них отработало при полном шифровании диска


        1. dartraiden
          12.07.2018 13:42

          Тогда это залёт.


  1. mayorovp
    10.07.2018 10:29
    +5

    Что-то я не понимаю. Если при физическом доступе и баг не баг, и дыра не дыра — то зачем вообще пароли пользователей придумали?


  1. Sersoftin
    10.07.2018 18:12

    Эхх, на десктопном Linux в любой оболочке походу баги отрисовки всех мастей просто)


  1. rusbaron
    11.07.2018 00:14

    Интересно, я вот недавно обнаружил такую неприятную штуку, не знаю можно ли назвать это багом.
    Смысл такой — KDE у меня на ноуте иногда подлагивает, иногда славливаю великую ошибку 12309, и тогда приходишься через Ctrl+Alt+F2 к примеру логинится в терминальную сессию и грохать приложение которое жрёт больше всех оперативки(Процесс очень долгий т.к. всё лагает, но терпение помогает с этим справится). И вот как то я убил надоедающее приложение, переключился опять на графическую сессию. Закрываем ноут, он уходит в сон(suspended). Далее открываем ноут, и получаем залоченую графическую сессию, в неё нам не войти, нужен пароль, а перейдя на терминальную сессию видим что она не залочена.

    Как вариант(у меня zsh) был закрыть это программой vlock + переменной TMOUT в zshrc, но она наотрез отказалась работать с zsh и в итоге я вообще никак не мог залогинится. А если до этого ещё прописать, чтобы у тебя все терминалы работали через tmux, то была залоченаая терминальная сессия, а с помощью простой комбинации разделения сессий мы получали ещё одну незалоченную.


    1. ValdikSS
      11.07.2018 00:57
      -1

      приходишься через Ctrl+Alt+F2 к примеру логинится в терминальную сессию и грохать приложение которое жрёт больше всех оперативки(Процесс очень долгий т.к. всё лагает, но терпение помогает с этим справится).

      Alt+PrintScreen+F


      1. DaemonGloom
        12.07.2018 12:32

        И зачем поставили минус человеку? Абсолютно корректный совет.

        Alt + SysRq + F — позволяет вызвать обработчик oom_kill (out-of-memory kill) для прерывания приложений, забравших слишком много памяти (может занять продолжительное время). Используйте его, если свободная память совсем истощилась, так что система не реагирует ни на какой иной ввод (курсор мыши не движется, индикаторы NumLock/CapsLock не включаются, но индикатор работы накопителя всё время включен);


  1. dartraiden
    12.07.2018 01:55

    Marc Deslauriers отчасти прав. Если злоумышленник получил физический доступ (к машине с зашифрованным /home), гораздо сильнее вас должно волновать то, что он мог подменить системные файлы (остальные каталоги-то не зашифрованы). Просмотр открытых документов — меньшая из ваших проблем, у вас уже скомпрометирована система.

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


    1. AAMinin Автор
      12.07.2018 10:29

      Люди в описании бага на launchpad.net, говорят что у них отработало при полном шифровании диска