Разработчики исправили серьезную уязвимость в OpenSSH

Разработчики исправили серьезную уязвимость в OpenSSH

Разработчики исправили серьезную уязвимость в OpenSSH

Уязвимость OpenSSH была обнаружена экспертом Михал Залевски (Michal Zalewski) в файле-исходнике sftp-server.c, она затрагивает версии OpenSSH с 5.5 по 7.6.

Как можно видеть в коде, приведенном ниже, если SFTP-сервер стартует с параметром –R, он будет включать переменную «readonly». Это означает, что клиентам не разрешено записывать операции.

 

 

 

 

int
sftp_server_main(int argc, char **argv, struct passwd *user_pw)
{
   ...
    while (!skipargs && (ch = getopt(argc, argv,
        "d:f:l:P:p:Q:u:cehR")) != -1) {
        switch (ch) {
    ...
        case 'R':
            readonly = 1;
            break;
    ...
}

Открытие файла для SFTP-сервера выполняется с помощью вспомогательной функции process_open(), которая открывает доступные только для чтения файлы:

static void
process_open(u_int32_t id)
{
    ...
    if (readonly &&
        ((flags & O_ACCMODE) == O_WRONLY ||
        (flags & O_ACCMODE) == O_RDWR) != 0)) {
        verbose("Refusing open request in read-only mode");
        status = SSH2_FX_PERMISSION_DENIED;
    } else {
        fd = open(name, flags, mode);
    ...
}

Здесь можно увидеть, что если «readonly» активирован, будет осуществляться проверка наличия «WRITE ONLY» или «READ/WRITE». Если это условие удовлетворено, будет выведена ошибка открытия файла в режиме read-only.

В противном случае файл будет открыт с использованием системного вызова open(). Залевски использовал эти параметры для создания произвольных read-only-файлов на SFTP-сервере. Чтобы исправить эту брешь, только для чтения. Чтобы исправить это, разработчики.

Код патча можно увидеть ниже:

if (readonly &&
-       ((flags & O_ACCMODE) == O_WRONLY ||
-       (flags & O_ACCMODE) == O_RDWR)) {
+       ((flags & O_ACCMODE) != O_RDONLY ||
+       (flags & (O_CREAT|O_TRUNC)) != 0)) {
        verbose("Refusing open request in read-only mode");

Эксперты нашли три способа угнать ключи доступа из Google Password Manager

Исследователи из Unit 42 обнаружили три способа атаковать ключи доступа, синхронизированные через Google Password Manager. Сценарии получили общее название Pass-ta-key и позволяют захватывать аккаунты, обходить проверку пользователя и даже извлекать закрытые ключи.

Есть важное условие: вредоносная программа уже должна работать на компьютере жертвы с Windows и модулем TPM.

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

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

Метод не сработал на GitHub, который корректно проверял факт подтверждения личности, но позволил войти в аккаунт eBay. После уведомления сервис устранил проблему.

 

Метод Silver Pass-ta-key действует наглее. Вредонос принудительно запускает повторную регистрацию Chrome и подсовывает Google собственный ключ проверки пользователя. Облачный сервис принимает его за доказательство ввода ПИН-кода или использования биометрии. После этого злоумышленник может входить в защищённые аккаунты уже с другого устройства.

Наконец, Golden Pass-ta-key позволяет вытащить главный секрет, которым шифруются все синхронизированные ключи доступа. Сначала Chrome выводил его открытым текстом в журналах FIDO.

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

По данным Unit 42, украденный секрет подойдёт и для расшифровки будущих ключей доступа, а механизма его отзыва или замены сейчас нет.

RSS: Новости на портале Anti-Malware.ru