Анонсирован релиз надежного, защищенного и высокопроизводительного FTP-сервера vsftpd 3.0.0. Ключевым улучшением, появившимся в новой версии, является реализация нового sandbox-режима, изолирующего выполнение процесса с использованием seccomp-фильтра.

В настоящее время в vsftpd задействован полный спектр средств защиты, доступных в Linux, включая выполнение в chroot, capabilities, контроль файловых дескрипторов, пространства имён, rlimits и даже экспериментальный уровень изоляции на основе ptrace. Seccomp позволяет реализовать новый уровень изоляции на уровне системных вызовов, чем-то напоминая sandbox на базе ptrace, но изначально основанный на технологии для обеспечения безопасности (ptrace является отладочным инструментом), обладающий значительно более высокой производительностью и отличающийся более высокой стабильностью.

Seccomp пока не включён в состав основного ядра Linux, но будет активирован по умолчанию в 64-разрядной сборке Ubuntu 12.04. Принцип работы Seccomp сводится к ограничению доступа к системным вызовам, при том, что логика выставляемых ограничений задаётся на уровне защищаемого приложения. Доступ к системным вызовам определяется в виде правил, оформленных в BPF-представлении (Berkley Packet Filter), которое получило распространение в системах фильтрации сетевых пакетов. BPF позволяет реализовывать достаточно сложные правила доступа, учитывающие передаваемые и возвращаемые аргументы. В код программы добавляется структура с перечнем допустимых системных вызовов (например, ALLOW_SYSCALL) и реакции в случае несовпадения (например, KILL_PROCESS).

Программа сама определяет какие системные вызовы ей необходимы и какие параметры допустимы, все остальные системные вызовы блокируются, что позволяет ограничить возможности атакующего в случае эксплуатации уязвимости в защищённом при помощи seccomp приложении. Более того, изоляция с использованием seccomp позволяет защититься от большинства атак, эксплуатирующих уязвимости в системных вызовах. Например, выявленные за последние годы критические уязвимости в glibc и ядре Linux, такие как AF_CAN, sock_sendpage и sys_tee, успешно блокируются при использовании функциональности seccomp по проверке аргументов. Кроме vsftpd, патч с поддержкой seccomp уже подготовлен для OpenSSH и будет включён в состав OpenSSH 6.0.

Кроме обеспечения поддержки seccomp из изменений, добавленных в vsftpd 3.0.0 можно отметить:

  • По умолчанию сервер запускается в обособленном режиме, самостоятельно обрабатывающем соединения (listen). Ранее по умолчанию подразумевался запуск через inetd;
  • Ранее реализованный экспериментальный sandbox на базе ptrace теперь именуется в настройках "ptrace_sandbox" вместо "sandbox". Новый sandbox "seccomp_sandbox" включен по умолчанию для систем, поддерживающих seccomp;
  • Добавлены дополнительные проверки состояния в код привилегированного управляющего процесса;
  • Для сборки использована подборка опций, обеспечивающих более высокий уровень безопасности (например, включаются различные рандомизаторы памяти и средства защиты от переполнения стека);
  • Добавлена новая опция "allow_writeable_chroot" для управления возможностью записи в chroot-окружениях, создаваемых для аутентифицированных пользователей;
  • В качестве SSL-шифра по умолчанию задействован AES128-SHA;
  • Устранение проблем с работой пассивного режима FTP при высокой нагрузке на сервер;
  • Решение проблем с таймаутами, в частности, возникающими при использовании SSL.

    Источник: http://www.opennet.ru/opennews/art.shtml?num=33569