Разработчики исправили серьезную уязвимость в 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");

В России разработали защиту квантовых ключей от ослепления детекторов

Специалисты инженерно-квантовой лаборатории «СФБ Лаб» и Центра квантовых технологий МГУ разработали способ защиты систем квантового распределения ключей от ослепления детекторов. Метод позволяет не только заметить атаку, но и сохранить безопасную часть ключа. Решение защищено российским патентом, результаты исследования приняты к публикации в журнале Physical Review Applied.

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

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

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

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

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

Подход проверили на серийном детекторе. Он не требует усложнять оптическую схему и подходит для широкого класса коммерчески доступных устройств. Патент RU 2 856 208 C1 предусматривает варианты реализации для приёмников с одним и двумя детекторами.

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