Анонсирован релиз OpenSSH 6.0
Представлен релиз OPENSSH 6.0 0, открытой реализации клиента и сервера для работы по протоколам SSH (1.3, 1.5 и 2.0) и SFTP. Невзирая на существенный номер версии, изменений представлено сравнительно слегка, в сравнении с прошлыми выпусками. Релиз позиционируется как корректирующий, а номер версии стоит рассматривать как плавное продолжение нумерации в десятичном исчислении, при которой после 5.9 выпускается не версия 5.10, а 6.0. Заметное улучшение внесено лишь в Portable-версию, в которой добавлена помощь специфичного для Линукс нового режима изоляции "seccomp sandbox".
Основные перемены:
Новый режим изоляции привилегий для Линукс - "seccomp sandbox", автоматически включаемый при сборке на системах, поддерживающих данную технологию. Так как подсистема seccomp пока не включена в состав основного ядра, её помощь в дистрибутивах весьма ограничена. Так или иначе, дело в скором времени должно сдвинуться с мёртвой точки, так как помощь seccomp будет обеспечена изначально в 64-разрядной сборке Убунту 12.04. Стимулировать интеграцию seccomp к тому же должен факт обеспечения помощи данной технологии в наиболее важных сетевых приложениях, таких как vsftpd и OPENSSH. Кроме того, компания Google планирует активировать seccomp для усиления защиты в проекте Chromium.
Принцип работы seccomp сводится к ограничению доступа к системным вызовам. При этом, важной особенностью является то, что логика выставляемых ограничений задаётся на уровне защищаемого приложения, а не ч/з задание внешних ограничений, как в случае APPARMOR или SELINUX. В код утилиты добавляется структура с перечнем допустимых системных вызовов (к примеру, ALLOW_SYSCALL) и реакции в случае несовпадения (к примеру, KILL_PROCESS). Доступ к системным вызовам определяется в виде руководил, оформленных в BPF-представлении (Berkley Packet Filter), которое получило распространение в системах фильтрации сетевых пакетов.
Система seccomp дает возможность реализовывать довольно сложные правила доступа, учитывающие возвращаемые и передаваемые доводы. Утилита сама определяет какие системные вызовы ей необходимы и какие характеристики допустимы, все другие системные вызовы блокируются, что дает возможность ограничить возможности атакующего в случае использования уязвимости в защищённом с помощью seccomp приложении. Возможность квесты фильтров аргументов дает возможность тоже защититься от большей части атак, эксплуатирующих уязвимости в системных вызовах. К примеру, выявленные за последние несколько лет критические уязвимости в glibc и ядре Линукс, подобные как AF_CAN, sock_sendpage и sys_tee, успешно блокируются при надлежащем использовании seccomp.
В ssh-keygen добавлены бонусные точки контроля для экранирования модулей;
В ssh-add добавлена опция "-k" для загрузки лишь ключей, пропуская загрузку сертификатов;
В sshd добавлена помощь указания масок в опции PERMITOPEN. К примеру, сейчас возможно указывать подобные правила, как "PERMITOPEN localhost:*";
В ssh реализована возможность отмены локального или удалённого переброса портов, осуществлённого ч/з мультиплексированный сокет, обслуживающих к тому же иные соединения. Для отмены проброса нужно применять "ssh -O cancel -L xx:xx:xx -R yy:yy:yy user_at_host";
Помощь отмены локального/динамического проброса из командной строки, активируемой ч/з "~C";
Добавлена опциональная помощь LDNS, библиотеки для исполнения DNS-запросов (resolver), поддерживающей DNSSEC и распространяемой под лицензией BSD;
Устранены трудности со сборкой во FREEBSD, при использовании варианта libutil с функцией openpty(), однако без login();
Налажена сборка на основании включённого в состав spec-файла для создания RPM-пакетов;
Обработана проверка версии OPENSSL, что дает возможность запускать исполняемые файлы OPENSSH с более новыми ветками OPENSSL, чем применялись для сборки (раньше проверялась лишь версия патча, т.е. если OPENSSH собран с 1.0.0h, то он работал с 1.0.0i, а сейчас ещё будет вести работу и с 1.0.1a);