Тема безопасности серверов

Регистрация
09.07.24
Сообщения
1599
Реакции
920
Баллы
113
CFC
146450
USDT
63.6
Разного рода уязвимости в коде и атаки на дыры сайтов это только одна из нескольких областей безопасности. Знать про атаки и не плодить для них дырки своим кодом - удел прикладных программистов, за которыми закручивают контргайку тестировщики. Кроме прикладного программирования сервисов/сайтов в отдельные профессии выделяют управленцев инфраструктурой, в которой тоже может завестись дупло.

Картина в целом такова, что дыры могут быть на всех уровнях... И в операционной системе, и в корневых технологиях (программы-серверы, протоколы связи и шины обмена данными, хранящие базы данных, кэширующие базы данных, подключаемые библиотеки, вспомогательные утилиты, языки программирования и фреймворки). Современная разработка усложнилась до безумия - одни фреймворк базируется на другом фреймворке, к ним подключается груда библиотек, что при проблемах выливается в закономерное "если делали двое - виноватого не найти".

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

Для маленьких и монолитных проектов, которых в мире большинство, можно перенять у больших братьев некоторые подходящие решения. Сам практикую это и абстрактно в общих чертах, могу описать это как-то так...

Философия: ненужное не нужно.
Минусы: займёт время, а результат будет несовместим с тем "как у большинства".
Побочные эффекты: освобождение места и оперативки.

Большинство маленьких проектов берут за основу Ubuntu. Меньшинство больших - Alpine Llinux внутри контейнеров Docker. Использовать контейнеры не обязательно, можно просто поставить Alpine и пользоваться им.

Из сложностей, там нельзя бездумно "поставить пхп". Придётся ставить отдельно нужные модули, например GD для работы с изображениями. Там даже Op_Cache ставится отдельно. Зато получится только то, что нужно (меньше модулей - меньше рисков). Вот наглядное сравнение модулей PHP и зависимостей для работы PHP на сервере (для публикаций) и на домашнем компике (для локальной разработки).
Alpine.webp
Localhost.webp


Вот парочка несложных роликов...

Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.


Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.


Вместо sudo в Alpine можно пользоваться упрощённым doas. А чтобы не пользоваться su, можно заблокировать рута.
Bash:
# заблокировать
doas passwd -l root
# разблокировать
doas passwd -u root
При блокировке нельзя будет становиться рутом через su, даже с правильным паролем будет возвращаться ошибка.
блокировка-пользователя-root.webp

В лагере открытых исходников побывали предатели. Зависимость под забавным названием XZ, которая много для какого софта требуется, однажды была чёрным ходом для злоумышленников, которые втёрлись в доверие и поучаствовали в её разработке.

Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.

XZ-lib.webp

Тема безопасности устройств туда же, чтобы через клиентское устройство с доступами на сервер не пролезли. И вспоминаем, что существуют сервера на винде, где тоже хорошо было бы потушить всё лишнее. 😉
 
912Темы
5723Сообщения
369Пользователи
neitronjimmy0Новый пользователь
Назад
Сверху