HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>1. Пожалуйста, прекратите писать shell-скрипты</a></li>
1 <ul><li><a>1. Пожалуйста, прекратите писать shell-скрипты</a></li>
2 <li><a>2. Разделяй и властвуй. Изоляция процессов в Linux</a></li>
2 <li><a>2. Разделяй и властвуй. Изоляция процессов в Linux</a></li>
3 <li><a>3. Теневые стеки для пользовательского пространства</a></li>
3 <li><a>3. Теневые стеки для пользовательского пространства</a></li>
4 <li><a>4. Аудит входа в Linux через Slack. Разбираемся с PAM</a></li>
4 <li><a>4. Аудит входа в Linux через Slack. Разбираемся с PAM</a></li>
5 <li><a>5. CVE-2022-27666: Эксплойт модулей esp6 в ядре Linux</a></li>
5 <li><a>5. CVE-2022-27666: Эксплойт модулей esp6 в ядре Linux</a></li>
6 <li><a>6. Продакшн-реди eBPF, или как мы исправили BSD socket API</a></li>
6 <li><a>6. Продакшн-реди eBPF, или как мы исправили BSD socket API</a></li>
7 </ul><h3>1.<a>Пожалуйста, прекратите писать shell-скрипты</a></h3>
7 </ul><h3>1.<a>Пожалуйста, прекратите писать shell-скрипты</a></h3>
8 <p>Когда вы автоматизируете какую-либо задачу, например, упаковываете свое приложение для Docker, то часто сталкиваетесь с написанием shell-скриптов. У вас может быть bash-скрипт для управления процессом упаковки и другой скрипт в качестве точки входа в контейнер. По мере возрастающей сложности при упаковке меняется и ваш shell-скрипт.</p>
8 <p>Когда вы автоматизируете какую-либо задачу, например, упаковываете свое приложение для Docker, то часто сталкиваетесь с написанием shell-скриптов. У вас может быть bash-скрипт для управления процессом упаковки и другой скрипт в качестве точки входа в контейнер. По мере возрастающей сложности при упаковке меняется и ваш shell-скрипт.</p>
9 <p>Все работает хорошо. Но вот однажды shell-скрипт совершает что-то <em>совсем неправильное</em>.</p>
9 <p>Все работает хорошо. Но вот однажды shell-скрипт совершает что-то <em>совсем неправильное</em>.</p>
10 <p>Тогда вы осознаете свою ошибку: bash, и вообще shell-скрипты, в основном, по умолчанию не работают. Если с самого начала не проявить особую осторожность, любой shell-скрипт достигнув определенного уровня сложности почти гарантированно будет глючным… а доработка функций корректности будет довольно затруднительна.<a>Читать далее</a></p>
10 <p>Тогда вы осознаете свою ошибку: bash, и вообще shell-скрипты, в основном, по умолчанию не работают. Если с самого начала не проявить особую осторожность, любой shell-скрипт достигнув определенного уровня сложности почти гарантированно будет глючным… а доработка функций корректности будет довольно затруднительна.<a>Читать далее</a></p>
11 <h3>2.<a>Разделяй и властвуй. Изоляция процессов в Linux</a></h3>
11 <h3>2.<a>Разделяй и властвуй. Изоляция процессов в Linux</a></h3>
12 <p>Последнее десятилетие проходило под знаком контейнеризации, появлялись десятки и сотни инструментов для управления контейнерами, создания виртуальных сетей для взаимодействия контейнеров на разных узлах кластера, появлялись системы маршрутизации трафика, мониторинга доступности и иные DevOps-инструменты, которые во многом трансформировали деятельность системных администраторов вплоть до того, что начали появляться сомнения в потребности организаций в администраторах Linux.</p>
12 <p>Последнее десятилетие проходило под знаком контейнеризации, появлялись десятки и сотни инструментов для управления контейнерами, создания виртуальных сетей для взаимодействия контейнеров на разных узлах кластера, появлялись системы маршрутизации трафика, мониторинга доступности и иные DevOps-инструменты, которые во многом трансформировали деятельность системных администраторов вплоть до того, что начали появляться сомнения в потребности организаций в администраторах Linux.</p>
13 <p>Но нередко возникают ситуации, когда нужно осуществить некоторый уровень изоляции или ограничения уже запущенных процессов и для этого можно использовать возможности control groups ядра Linux, которые также лежат в основе технологий контейнеризации Docker и LXC. В этой статье мы последовательно разберем возможности cgroups, обсудим отличия новой cgroups v2 и затронем тему контейнеризации на основе Linux Containers. Да пребудет с вами безопасное окружение выполнения.<a>Читать далее</a></p>
13 <p>Но нередко возникают ситуации, когда нужно осуществить некоторый уровень изоляции или ограничения уже запущенных процессов и для этого можно использовать возможности control groups ядра Linux, которые также лежат в основе технологий контейнеризации Docker и LXC. В этой статье мы последовательно разберем возможности cgroups, обсудим отличия новой cgroups v2 и затронем тему контейнеризации на основе Linux Containers. Да пребудет с вами безопасное окружение выполнения.<a>Читать далее</a></p>
14 <h3>3.<a>Теневые стеки для пользовательского пространства</a></h3>
14 <h3>3.<a>Теневые стеки для пользовательского пространства</a></h3>
15 <p>Стек вызовов (call stack) является излюбленной целью злоумышленников, пытающихся скомпрометировать запущенный процесс; если злоумышленник найдет способ перезаписать адрес возврата в стеке, то он сможет перенаправить управление на код по своему выбору, что приведет к ситуации, которую лучше всего можно описать фразой "game over". Именно поэтому для защиты стека прикладывается очень много усилий. Одним из самых многообещающих методов является “теневой стек” (shadow stack); как следствие, множество различных процессоров должным образом поддерживают теневые стеки.</p>
15 <p>Стек вызовов (call stack) является излюбленной целью злоумышленников, пытающихся скомпрометировать запущенный процесс; если злоумышленник найдет способ перезаписать адрес возврата в стеке, то он сможет перенаправить управление на код по своему выбору, что приведет к ситуации, которую лучше всего можно описать фразой "game over". Именно поэтому для защиты стека прикладывается очень много усилий. Одним из самых многообещающих методов является “теневой стек” (shadow stack); как следствие, множество различных процессоров должным образом поддерживают теневые стеки.</p>
16 <p>С поддержкой защиты программ пользовательского пространства (user-space) с помощью теневых стеков дела обстоят не так хорошо; в настоящий момент она является предметом обсуждения в сообществе разработчиков ядра, но добавить эту функцию сложнее, чем может показаться на первый взгляд. Среди прочего, подобные патчи существуют уже достаточно долго, чтобы у них самих появились собственные проблемы с обратной совместимостью.<a>Читать далее</a></p>
16 <p>С поддержкой защиты программ пользовательского пространства (user-space) с помощью теневых стеков дела обстоят не так хорошо; в настоящий момент она является предметом обсуждения в сообществе разработчиков ядра, но добавить эту функцию сложнее, чем может показаться на первый взгляд. Среди прочего, подобные патчи существуют уже достаточно долго, чтобы у них самих появились собственные проблемы с обратной совместимостью.<a>Читать далее</a></p>
17 <h3>4.<a>Аудит входа в Linux через Slack. Разбираемся с PAM</a></h3>
17 <h3>4.<a>Аудит входа в Linux через Slack. Разбираемся с PAM</a></h3>
18 <p>Библиотеки PAM (Pluggable Authentication Module) используются для добавления сложного сценария проверки учетных данных и выполнения дополнительных действий при аутентификации пользователя и доступе к службам. В этой статье мы разберемся с внутренней архитектурой PAM, особенностями конфигурации и сделаем простой модуль для отправки уведомлений в Slack при входе пользователя в систему.<a>Читать</a></p>
18 <p>Библиотеки PAM (Pluggable Authentication Module) используются для добавления сложного сценария проверки учетных данных и выполнения дополнительных действий при аутентификации пользователя и доступе к службам. В этой статье мы разберемся с внутренней архитектурой PAM, особенностями конфигурации и сделаем простой модуль для отправки уведомлений в Slack при входе пользователя в систему.<a>Читать</a></p>
19 <h3>5.<a>CVE-2022-27666: Эксплойт модулей esp6 в ядре Linux</a></h3>
19 <h3>5.<a>CVE-2022-27666: Эксплойт модулей esp6 в ядре Linux</a></h3>
20 <p>В этом посте раскрывается эксплойт CVE-2022-27666, уязвимость, позволяющая добиться локального повышения привилегий на последней версии Ubuntu Desktop 21.10. Изначально мы приберегли ее для pwn2own 2022, но она была пропатчена за 2 месяца до начала конкурса. Поэтому было решено обнародовать наш эксплойт и опубликовать PoC в конце поста.<a>Читать</a></p>
20 <p>В этом посте раскрывается эксплойт CVE-2022-27666, уязвимость, позволяющая добиться локального повышения привилегий на последней версии Ubuntu Desktop 21.10. Изначально мы приберегли ее для pwn2own 2022, но она была пропатчена за 2 месяца до начала конкурса. Поэтому было решено обнародовать наш эксплойт и опубликовать PoC в конце поста.<a>Читать</a></p>
21 <h3>6.<a>Продакшн-реди eBPF, или как мы исправили BSD socket API</a></h3>
21 <h3>6.<a>Продакшн-реди eBPF, или как мы исправили BSD socket API</a></h3>
22 <p>Разрабатывая новые продукты, мы зачастую выводим нашу операционную систему - Linux - за рамки общепринятых возможностей. Распространенной темой было использование eBPF для создания технологии, которая в противном случае потребовала бы модификации ядра. Например, мы создали систему защиты от DDoS и балансировщик нагрузки и используем ее для мониторинга нашего серверного парка.<a>Читать</a></p>
22 <p>Разрабатывая новые продукты, мы зачастую выводим нашу операционную систему - Linux - за рамки общепринятых возможностей. Распространенной темой было использование eBPF для создания технологии, которая в противном случае потребовала бы модификации ядра. Например, мы создали систему защиты от DDoS и балансировщик нагрузки и используем ее для мониторинга нашего серверного парка.<a>Читать</a></p>
23  
23