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

    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. Также сообщество настаивает, что бага существует и её не стоит игнорировать.

    Акрибия

    88,00

    Компания

    Поделиться публикацией

    Похожие публикации

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

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

      А вот доступ к данным с зашифрованных томов в таком случае — да, не очень хорошо.
        0
        Примерно такая же позиция у Marc Deslauriers (человека из Ubuntu, который нам отвечал), но как написано в статье, данная бага работает с шифрованной домашней директорией. А также есть проблема с KeePass и другими системами, которые требуют локальный вход, а доступ к ним через LiveCD вы не получите (не зная пароль).
          0
          Попробуйте воспроизвести с полным шифрованием ФС, в том числе и корня.
            0
            На полностью шифрованном диске у нас не воспроизвелось, но если кто-то перепроверит, то будет здорово (мы только на одном ноуте это проверяли с Ubuntu 16.04, система падала при выходе из сна)
              0
              Там ещё нюанс был, что мы тестили на серверной убунте, на которую накатили GNOME, и зашифровали диск.
        0
        Уже увидел. Вы ждущий режим называете сном.
          0
          В статье имеется ввиду suspend. То о чём вы говорите, я обычно называю гибернацией (Hibernation).
            0
            Да, речь идёт про режим «suspend», а не про режим «hibernate»
            +3
            Если ваш пароль поменяют, вы об этом узнаете. Описанный вариант эксплуатации бага это исключает.
              +6
              Ничто не мешает забекапить /etc/shadow и вернуть его обратно впоследствии.
              0
              Видео не воспроизводится. Removed by user.
                0
                Перезаливаем в хорошем качестве
                +5

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

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

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

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

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

                          +1
                          позанудствоваю немного: 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
                            Ну так суть от количества текста не поменялась =). Горячая замена возможна и это не попалит оборудование =).
                              +1
                              иногда «комментарий» — это не высказывание противоположной точки зрения, а просто дополнение на заданную и смежные темы.
                              +1
                              В биосе зачастую есть ещё параметр Hotplug и он очень часто отключён по умолчанию.
                        +4
                        Разбирал/собирал десяток моделей ноутов. Ни у одной не заблокирован доступ к винчестеру аккумулятором.
                        У вас что за ноут с такой «фичей»?
                          +1

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

                            +2
                            Как правильно разбирать/собирать, думаю, все в курсе, в этом плане я с вами абсолютно согласен. Однако, тут сыграла привычка — увидев ноут с закрытой крышкой, я решил, что он выключен.
                            Но проверять в любом случае полезно! Больше так делать не буду. Или буду, пока не решил :)
                              +1
                              Один раз я тоже разобрал ноут за ~80к, думая, как вы. И не отсоединил даже аккумулятор (хотел оптический привод на SSD заменить, думаю, зачем заморачиваться). Заменил, начинаю вкручивать винты, один срывается, падает на материнку, я вижу искорки, которые проскакивают от него, слышу «трррррр» и седею на глазах. Впрочем, ничего не случилось, ноут работает, но с тех пор тщательно проверяю, отсоединен ли аккумулятор :)
                                0
                                Что за ноут такой, у которого приходится снимать крышку, чтобы снять ODD? Сколько ноутов не разбирал, на всех приводы ODD завернуты одним винтом.
                                  0
                                  Какой-то из топовых на момент 2014-2015 годов ASUS в металлическом корпусе, марку не помню, потому что было это около двух лет назад. Знаю только, что он по сию пору работает в другом отделе фирмы.
                                0
                                Товарищ так свой жёсткий диск убил… Причём ладно бы он диск трогал, так нет же, он просто модули оперативной памяти вытащил, осмотрел и сразу же вернул на место. При последующей попытке «включения» ноут уже не ожил, а диск восстановить не получилось никакой магией, сервис диагностировал сдохший контроллер, если я не ошибаюсь.
                                  –1
                                  Мы тестовый диск раз 40-50 вытаскивали, все живы (диск, ноут и тд)
                                    0
                                    Разбирал что бы посмотреть на ОЗУ, сгорел какой-то там контроллер, а диск восстановить не получилось никакой магией.

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

                                    Ну или последний и наиболее вероятный вариант на мой взгляд: с того момента как история случилась, до того момента как вы ее изложили в комментарии выше из нее потерялись какие-то важные детали (или наоборот появились лишние). Вполне вероятно это могло случится еще на этапе «товарищ пересказывал вам как именно дело было».
                                0
                                HP 6077er был с такой фишкой, HDD-память под крышкой, которая отщёлкивается только после снятия аккумулятора. Нет, конечно можно и винтики отвинтить и снять всю нижнюю крышку целиком — но это дольше, ну или поддеть отверткой эту закрывающую часть — но в «штатном» режиме защелка открыть ее без снятия аккумулятора не позволяет)
                                  0
                                  Вот тут видно подобный механизм:
                                  static.migom.by/img/articles/3075/8.jpg
                                  Сначала «переключатель» сдвигается влево -> это «поднимает» батарею. После этого вправо — он поднимает крышку. Если не вынуть батарею вправо не двигается.
                                    0

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

                                    0

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

                                      0
                                      Lenovo G500

                                      www.youtube.com/watch?v=GTAa5u6xDmE

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

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

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

                                        Внешний свисток в юзби разве не решит вопрос?
                                          +1
                                          По такому принципу можно многие проблемы решить, но любая флешка\вайфай\модем торчащий из порта ноутбука это получение проблем на пустом месте. Положить неровно ноут, уткнув и отломив или погнув порт этой самой флешки, или зацепить неудачно рукой и тд… Разумеется, если ноутбук действительно используется как ноутбук, а не как стационарный комп, вечно стоящий в одном и том же месте…
                                            0
                                            Ну так то да. Хотя мне например не сильно мешает.
                                        0
                                        У моего HP Probook 4320s, чтобы снять HDD, нужно
                                        1) Перевернуть дном вверх, снять батарею
                                        2) Открутить 4 винта под нею
                                        3) Перевернуть дном вниз, сдвинуть панель с кнопкой включения
                                        4) Открутить 3 винта под ней
                                        5) Сдвинуть клавиатуру, отключить шлейф
                                        6) Открутить 3 винта закрывавшихся клавиатурой, держащих нижнюю панель с тачпадом
                                        7) Сдвинуть нижнюю панель, отключить шлейф
                                        8) Наконец-то, открутить HDD, вытащить :)
                                        Да, у него на днище нет винтов вообще, кроме тех что под батареей, и вентиляция (забор воздуха) осуществляется… через клавиатуру.
                                          0
                                          Нехило, конечно, видимо результат компоновки железа в 13" корпус…
                                          А на счёт вентиляции — да это же замечательно, не так страшно бросить работающий ноут на кровать\подушку\кресло…
                                            0
                                            И клавиатура даже под нагрузкой, когда выхлоп горячий, приятно прохладная.
                                            Между прочим, разбирать этот ноут очень приятно, так как у него нет ни одной грёбаной защёлки :)
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        0
                                        Unity ж вроде уже официально не поддерживается.
                                        Небольшой офф: заново открыл для себя xfce — он неплохо так развивается, и отлично работает «из коробки».
                                          0
                                          Unity не поддерживается, всё так, но системы с ней, например Ubuntu 16.04, имеют длительную поддержку ( до 21 апреля 2021 для Ubuntu 16.04)
                                          +1

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


                                          1. Было ли влючено в исходной системе полное шифорование диска (кроме загрузочного раздела, /boot/efi)?
                                          2. Был ли отключён раздел подкачки (swap) или же добавлено шифрование для него?
                                          3. Жёсткий диск был магнитным или SSD?
                                            0
                                            1. Полное шифрование не было включено (только домашняя директория пользователя)
                                            2. swap включён
                                            3. Диск магнитный (но не вижу причин не работать баге на SSD)
                                            0
                                            del
                                              0
                                              <ворчит как старая бабка>
                                              А всё эти ваши новомодные ThinkPad`ы с двумя батареями. И винчестер теперь без обесточивания не поменять и лампочку убрали! Тфу!
                                              </ворчит как старая бабка>
                                              А если серьёзно, то проверить бы с шифрованием только пользовательского раздела.
                                                0
                                                Именно с ним и проверяли. Всё отлично работает
                                                0
                                                А что если после разблокировки на горячую подключить винчестер, чтобы можно было сменить пароль и записать изменение, а также прочитать с него все данные?
                                                  0
                                                  Пробовали несколько раз, не получилось. Ещё пробовали вставить флешку, чтобы на неё сохранить данные, тоже не получилось
                                                    +1
                                                    А что именно не получилось, на винчестере не видно данных? А если пересканировать оборудование после подключения? Может ли это зависеть от предварительных настроек системы на подключение винчестера на горячую? От флешки тут пользы сильно меньше, а вот возможность перезаписать пароль пользователя на подключенный при разблокированной системе накопитель — бесценно. Или может быть можно отключить запрос пароля при выходе из ждущего режима, затем усыпить его и вернуть винчестер на место, чтобы при повторном включении пароль уже не был запрошен. Если такая опция существует, но не может быть включена без винчестера и одновременно с этим можно вставить флешку, тогда на неё можно записать программу, которая поменяет нужное значение в памяти. Идей и вариантов масса, нужно только пробовать, вот только я виндузятник, так что идеи общие. И куда более странно, что разработчики отказались это исправлять, такого бага не должно быть в принципе, условие «если недоступны файлы с паролями — считаем проверку успешной» просто эпичное.
                                                      0
                                                      Винчестер система не видит, как не крути (пересканирование оборудования приводит к падению окна). В таких условия разрешить вход без пароля тоже не возможно (пойдёт обращение к жесткому диску и скорее всего окно упадёт).

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

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

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

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


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


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

                                                      0
                                                      Подобное было у меня и с KDE, и в андроиде. Т.е. на телефоне после включения экрана можно увидеть запущенные приложения и даже (емнип) что-то в них сделать, прежде чем андроид «проснется» и отобразит lock-screen.
                                                      0
                                                      Самое интересное, что баг он есть баг и тут ничего не поделаешь. Только вы нашли его, допустив другой «баг». Вы меняли жесткий диск не извлекая батарею. Откровенно говоря я сильно не советовал бы этого делать, во избежание поломки оборудования. Прецеденты бывали.
                                                        0
                                                        А разве SATA не поддерживает hot-plug?
                                                          0
                                                          Ну как вам сказать. Поддерживает, да. Но контроллер hot-plug в ноутбуке разве присутствует? Я не буду вдаваться тут совсем в подробности (это будет долго, но если интересно, то могу потом написать вам и развернуто), но, если кратко, то для наглядности вы можете взять любой корпус десктопа или сервера с hot-plug и посмотреть внутрь. Там, между самим диском и интерфейсами питания и сата будет такая небольшая платка контроллера. Сама схема достаточно проста, но вот то, что это наличествует в ноутбуках вызывает у меня весьма большие сомнения. По крайней мере мне лично такое не встречалось. Если увидите (тут без иронии), то буду признателен на ссылку модели.
                                                            +1
                                                            Но контроллер hot-plug в ноутбуке разве присутствует?

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

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

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

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

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

                                                              И да, я процитировал. Лучше на мой взгляд — описать сложно.
                                                              Теперь вернемся к ноутбукам, сама конструкция которых не подразумевает частой замены жесткого диска. Именно по этой причине контроллер hot-plug там, зачастую, и не присутствует. Если вы знаете модели где это реализовано то — отпишите. Как я понял из предыдущего вашего поста, вам было проще нарисовать смайлов, чем привести модели ноутбуков с Hot-plug.
                                                                0
                                                                Расскажите, пожалуйста, более подробно про контроллер hot-plug. Что это такое?
                                                                  0
                                                                  Я вам даже написал выше где вы можете посмотреть на него своими глазами.
                                                                    0
                                                                    Расскажите своими словами)
                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                        0
                                                                        В SATA контакты земли чуть длиньше остальных (фото), как и в USB типа A контакты питания, чтобы при подключении цепляться первыми, и только потом — линии данных. Режим Hot-plug часто можно включить в биосе, причём отдельно для каждого SATA-разъёма, и он не требует какого-то отдельного контроллера.
                                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                                  +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 работает изкаропки.
                                                          0
                                                          В целом, скринсевер не должен падать из-за ошибок файловой системы. Что происходит с ноутбуком:

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

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


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

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

                                                          upd: дайте ссылку на баг.
                                                            0
                                                            мы за живые эксперименты:)

                                                            Вот ссылка: bugs.launchpad.net/ubuntu/+source/unity/+bug/1777415, решили перенести баг в раздел «Public Security»
                                                              +1
                                                              Спасибо. Я сижу на cinnamon, так что воспроизвести не могу. Если у вас есть машинка, на которой вы это воспроизводили, попробуйте со строчкой (от рута), которую я вам написал выше. Разработчикам будет куда легче изучать проблему, если её можно воспроизвести софтовыми методами.
                                                                0
                                                                Со строчкой от рута ничего не отработало. После её ввода пошли артефакты, что кажется весьма логичным, если учесть что в это время шла работа с диском.

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

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

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

                                                                Если шифрование вообще не используется, то тут и говорить не о чем — не нужно никаких плясок с дисками, достаточно снять образ и спокойно его изучать.
                                                                  0
                                                                  Люди в описании бага на launchpad.net, говорят что у них отработало при полном шифровании диска
                                                                    –1
                                                                    Тогда это залёт.
                                                                +6
                                                                Что-то я не понимаю. Если при физическом доступе и баг не баг, и дыра не дыра — то зачем вообще пароли пользователей придумали?
                                                                  0
                                                                  Эхх, на десктопном Linux в любой оболочке походу баги отрисовки всех мастей просто)
                                                                    0
                                                                    Интересно, я вот недавно обнаружил такую неприятную штуку, не знаю можно ли назвать это багом.
                                                                    Смысл такой — KDE у меня на ноуте иногда подлагивает, иногда славливаю великую ошибку 12309, и тогда приходишься через Ctrl+Alt+F2 к примеру логинится в терминальную сессию и грохать приложение которое жрёт больше всех оперативки(Процесс очень долгий т.к. всё лагает, но терпение помогает с этим справится). И вот как то я убил надоедающее приложение, переключился опять на графическую сессию. Закрываем ноут, он уходит в сон(suspended). Далее открываем ноут, и получаем залоченую графическую сессию, в неё нам не войти, нужен пароль, а перейдя на терминальную сессию видим что она не залочена.

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

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

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

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

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

                                                                      Самое читаемое