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

«Не снимайте меня»: как случайные прохожие смогут управлять видеосъёмкой

Камеры сегодня повсюду: в смартфонах, умных очках, экшн-камерах и даже в «умных» дверных звонках. Проблема в том, что в кадр регулярно попадают люди, которые вовсе не давали согласия на съёмку. Исследователи из Калифорнийского университета в Ирвайне решили проверить, можно ли это исправить и представили систему BLINDSPOT.

BLINDSPOT (PDF) — это прототип системы, которая позволяет случайным прохожим прямо сигнализировать камере о своих предпочтениях по конфиденциальности.

Без регистрации, без загрузки биометрии в облако и без привязки к личности. Всё работает локально, на устройстве.

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

Прототип реализовали на обычном смартфоне Google Pixel.

Исследователи протестировали сразу три варианта, как прохожий может «договориться» с камерой:

1. Жесты руками. Самый простой вариант — провести рукой перед лицом, чтобы включить размытие, и повторить жест в обратную сторону, чтобы его отключить. Никакого дополнительного оборудования не нужно. На расстоянии до 1-2 метров система срабатывала почти безошибочно, а реакция занимала меньше 200 миллисекунд.

2. Световой маячок. Во втором сценарии человек носит с собой небольшой LED-маячок, который мигает в заданном шаблоне и передаёт цифровой сигнал камере. Такой способ работает уже на расстоянии до 10 метров в помещении, с точностью около 90% и без ложных срабатываний. Время отклика — чуть больше полсекунды.

3. UWB-метка. Третий вариант использует ultra-wideband — радиотехнологию с очень точным определением расстояния и направления. Камера и метка обмениваются короткими сигналами через Bluetooth и UWB. Этот способ оказался самым стабильным: точность часто превышала 95%, система корректно работала с несколькими людьми сразу и не давала ложных срабатываний.

 

Главный вывод исследователей — управление приватностью «со стороны прохожего» вполне реально даже на обычном смартфоне.

Как и ожидалось, есть нюансы. Во-первых, расстояние: система должна «видеть» лицо. На практике это означает максимум около 10 метров — дальше лица становятся слишком мелкими для надёжного распознавания.

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

В-третьих, условия съёмки. Яркий солнечный свет мешает световым маячкам, движение в плотной толпе снижает точность жестов. Задержка между сигналом и фактическим размытием может составлять от долей секунды до двух секунд — и в этот момент запись всё ещё идёт.

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

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