28352
Admin - @workakkk РКН: clck.ru/3FmvFv
В Linux KVM нашли 16-летнюю уязвимость Januscape - CVE-2026-53359.
Она позволяет root-пользователю внутри гостевой виртуальной машины выйти на хост на системах Intel и AMD x86.
Хуже того, публичный proof-of-concept уже есть: он может крашить хосты.
Canonical сообщает, что патчи для ядер Ubuntu пока ещё готовятся для всех релизов.
Временная рекомендация — отключить nested virtualization, пока обновления не будут выпущены.
Для тех, кто держит виртуализацию в проде, это неприятный сигнал: root внутри VM не всегда значит «изолирован внутри VM».
Нашёл хорошую бесплатную книгу по x86-64 Assembly под Ubuntu.
x86-64 Assembly Language Programming with Ubuntu - это не «ассемблер за 10 минут», а нормальный учебник для тех, кто хочет понять, что реально происходит ниже C, Go, Rust и Python.
Разбираются базовые вещи:
• архитектура x86-64
• представление данных
• формат программы
• toolchain
• debugger
• instruction set
• addressing modes
• process stack
• macros и functions
• system services
• floating-point instructions
• parallel processing
• interrupts
Самое полезное - книга учит смотреть на программу не как на текст, а как на работу процессора, регистров, памяти, стека и системных вызовов.
Это особенно полезно для тех, кто хочет лучше понимать:
• C/C++
• компиляторы
• reverse engineering
• performance
• Linux internals
• low-level debugging
Да, материал не самый свежий по Ubuntu, но фундамент x86-64 от этого не исчезает.
Хорошая база, если хочется наконец понять, что происходит «под капотом».
PDF:
http://egr.unlv.edu/~ed/assembly64.pdf
Хватит держать сервер нараспашку: базовый хардэнинг Linux за 8 шагов
Большинство серверов взламывают не через киношные zero-day, а через базовые ошибки: парольный SSH, открытые порты, root-вход и отсутствие бэкапов.
В этом ролике короткий чек-лист, как обезопасить Linux-сервер с нуля.
Первое: вход только по SSH-ключу, парольную авторизацию отключить.
Второе: запретить прямой вход под root и работать через sudo.
Третье: закрыть все лишние порты через UFW или iptables.
Четвёртое: регулярно ставить security updates.
Дальше: fail2ban против перебора паролей, двухфакторка там, где возможно, минимум прав для пользователей и сервисов.
И обязательно бэкапы. Не “когда-нибудь”, а по расписанию и отдельно от сервера.
Финальный слой: логи и мониторинг, чтобы видеть подозрительную активность до того, как сервер уже лег.
Минимум, который реально нужен: SSH-ключи, firewall, обновления, fail2ban и бэкапы.
Полезно бэкендерам, DevOps и всем, кто держит VPS или продакшен.
#Linux #сервер #безопасность #DevOps #SSH #fail2ban #firewall #VPS #хардэнинг #кибербезопасность #бэкапы #системноеадминистрирование
Epic Games ищет Senior Game Security Engineer, который должен «развивать Linux anti-cheat capabilities». Из-за этого некоторые решили, что Fortnite в будущем может выйти на Linux.
В вакансии требуется глубокое знание внутреннего устройства Windows и Linux, а также опыт в low-level security и anti-cheat системах. При этом Fortnite в описании не упоминается.
Easy Anti-Cheat уже поддерживает Linux и Proton, но эти функции нужно отдельно включать и поддерживать для каждой игры.
Так что сама вакансия не гарантирует Fortnite на Linux, особенно учитывая, что Тим Суини не особо любит Linux, возможно, даже сильнее, чем Гейб Ньюэлл.
Один из самых дорогих багов в истории Debian начался с «невинной» правки.
В OpenSSL были строки, которые выглядели странно: код подмешивал в генератор случайных чисел неинициализированную память.
Статические анализаторы и Valgrind ругались на это как на ошибку.
Мейнтейнер решил убрать предупреждение и удалил две строки.
На вид - чистка мусора.
По факту - генератор случайных чисел потерял важный источник энтропии.
И почти два года Debian OpenSSL выпускал предсказуемые ключи.
Пострадали SSL-сертификаты, SSH-ключи, VPN, серверы и всё, что зависело от нормальной криптографической случайности.
Урок жёсткий: в security-коде странная строка не всегда мусор.
Иногда это защита, которую нельзя трогать без понимания всей модели угроз.
Не дай ДИО взломать твой VPS: сервер с нуля по-джоджовски
Читать полностью…
⚡️🖥 Наруто учит параллельной работе в Linux
Три команды которые экономят часы ручной работы. find с xargs и grep ищет error сразу во всех логах, parallel конвертирует пачку PNG в WEBP в несколько потоков, rsync синхронизирует папку с бэкапом и показывает прогресс.
Настоящий шиноби автоматизирует рутину и всегда делает бэкап. Сохраняй чтобы не потерять.
🔥 КИБЕРВИКЕНД: Четыре дня жесткой практики | Стартуем сегодня
Летом принято расслабляться, но в нашей сфере паузы обходятся слишком дорого
С весны ужесточили законы по персональным данным так, что привычный пробив по ФИО стал уголовкой. Разберем, как выстраивать легальную консалтинговую модель, делать OSINT внутри своей профессии и зарабатывать юридически чисто.
Одна кнопка в приложении больше не защищает от деанона в условиях ТСПУ и блокировок. Поговорим о фингерпринтах, корреляции трафика и о том, почему сегодня спасает только связка Vless + Reality.
Разберем, почему гибридные спецы сейчас в жесточайшем дефиците и почему ИИ их никогда не заменит.
Разбор архитектуры RaaS (Ransomware-as-a-Service). Поймете, как хакерские синдикаты строят бизнес-процессы и делят прибыль, и как выстроить реальную проактивную защиту вместо бумажной безопасности.
💡Совет Linux
Случайно удалил файл и не понимаешь, что именно пропало?
Попробуй проверить недавние изменения:
find ~/ -type f -mtime -1
🚀 В Linux каждый процесс живёт в своей версии памяти.
Два разных приложения могут одновременно использовать один и тот же адрес, например 0x555555..., но попадать при этом в совершенно разные места физической RAM.
Почему так?
Потому что процесс видит не настоящую физическую память, а virtual address space - виртуальное адресное пространство.
Когда программа делает malloc, она получает адрес, который выглядит как обычный указатель:
int *x = malloc(sizeof(int));
*x = getpid();
printf("PID %d -> virtual address: %p -> value: %d\n",
getpid(), (void*)x, *x);
Линус Торвальдс мог быть богаче Илона Маска. Но он выбрал другой путь.
В 2005 году его команда внезапно потеряла доступ к инструменту, с помощью которого управляла кодом Linux. Один разработчик сделал реверс-инжиниринг этой системы, и компания, которой она принадлежала, просто отключила проект без предупреждения.
Тысячи разработчиков. Никакого нормального способа совместной работы. Никакого запасного плана.
Торвальдс не стал паниковать. Он сел и написал собственную систему контроля версий с нуля.
За 10 дней.
Он назвал её Git. Уже в первый день Git отслеживал собственный исходный код. Через несколько недель на нём управлялся весь проект Linux. К концу 2005 года официально вышел Git 1.0.
А потом Линус просто отдал его бесплатно. Open source. Без компании. Без патентов. Без монетизации.
Через несколько месяцев он передал проект другим людям и вернулся к Linux, будто ничего особенного не произошло.
Зато другие быстро поняли, что он оставил на столе.
На Git вырос GitHub: 100 млн разработчиков, покупка Microsoft в 2018 году за $7,5 млрд. GitLab вышел на биржу в 2021 году с оценкой почти $12 млрд. Сегодня Git контролирует больше 85% рынка систем контроля версий.
Каждое приложение в вашем телефоне. Каждый сайт, который вы открываете. Почти всё это создаётся с помощью Git.
Торвальдс не заработал на этом $0.
Он создал самый используемый инструмент для разработчиков в истории просто потому, что его достала существующая система.
А потом отдал его бесплатно, потому что считал: такой инструмент должен быть доступен всем.
И он ни разу публично не сказал, что жалеет об этом.
А вы знали, что Linux тоже можно забэкдорить?
Многие считают Linux почти неуязвимым. Но это не так.
В 2024 году злоумышленник почти 2 года тихо встраивал бэкдор в XZ Utils - базовую библиотеку сжатия, которая есть почти во всех крупных Linux-дистрибутивах.
Целью был sshd. При наличии правильного ключа шифрования можно было внедрять код через SSH-сертификаты входа. Тихо, без алертов, внешне всё выглядело полностью легитимно.
Один разработчик заметил проблему только потому, что sshd стал запускаться примерно на 500 мс медленнее обычного.
Именно из-за этого бэкдор не успел попасть в production-системы по всему миру.
Linux не неуязвим. Просто долгое время он не был главной целью. Теперь это меняется.
В России могут ввести доступ к интернет-сервисам по паспорту.
Минцифры обсуждает систему подтверждения возраста пользователей в сети. По словам главы ведомства, в ближайшее время власти займутся механизмом, который позволит сайтам и онлайн-сервисам проверять, сколько лет человеку.
Формально речь идёт о защите несовершеннолетних, но по факту такая система может стать первым шагом к более жёсткой идентификации пользователей в интернете.
В MIT учат операционным системам так: дают живое ядро Unix и просят его сломать
В большинстве вузов операционные системы изучают по слайдам.
Студент слушает про процессы, виртуальную память и планировщик, рисует схемы на экзамене и в итоге так и не видит, как это работает внутри. В MIT пошли другим путём. Там студенту выдают полностью рабочее ядро в духе Unix и предлагают самому в нём ковыряться, ломать и переписывать.
Это ядро называется xv6. По сути это переосмысление шестой версии Unix 1975 года, переписанное на современном C под многопроцессорные системы RISC-V. Оригинальный Unix V6 был отличным учебным материалом, но устарел и опирался на железо, которого давно нет. xv6 сохраняет идеи оригинала, но запускается на современной архитектуре и читается куда легче.
Главное, что подкупает, это размер. Всё ядро занимает около шести тысяч строк. Это объём, который реально прочитать целиком за разумное время, а не абстрактная гора кода, в которой теряешься на первой неделе. Здесь на месте процессы, системные вызовы, виртуальная память, файловые дескрипторы, каналы и планировщик. Всё это можно открыть, прочитать и тут же поэкспериментировать.
Хорошо видно это на примере каналов. Реализация чтения из pipe в файле kernel/pipe.c укладывается примерно в пятнадцать строк. Если канал пуст, читатель засыпает и ждёт. Как только писатель добавляет данные, читателя будят. Блокировка, засыпание и пробуждение согласованы всего в паре десятков строк, и этот кусок кода объясняет про синхронизацию больше, чем целая лекция про мьютексы и условные переменные.
Именно так и стоит разбираться в операционных системах, когда хочешь понять, как они работают на самом деле, а не как это описывают на высоком уровне. Отличная новость в том, что всё это выложено в открытый доступ и бесплатно. Книга и исходники лежат на сайте курса MIT 6.828, и любой желающий может пройти тот же путь, что и студенты.
https://pdos.csail.mit.edu/6.828/2025/xv6/book-riscv-rev5.pdf
В C код может выполниться ещё до `main()`
В Linux и GCC есть constructor-функции - они запускаются автоматически до входа в main().
Выглядит почти как магия:__attribute__((constructor))
Такую функцию не нужно вызывать вручную. Компилятор сам пометит её как код, который должен выполниться при старте программы.
Где это используется:
- инициализация глобального состояния
- подготовка shared libraries
- регистрация плагинов
- настройка runtime-окружения
- выполнение служебного кода до основной логики
Именно поэтому в C-программе не всегда всё начинается с main().
Иногда до него уже кто-то успел поработать.
⚡️ `nixos-cli` заменяет разрозненные инструменты NixOS вроде `nixos-rebuild` единым командным интерфейсом.
* Drop-in замена для nixos-rebuild и других стандартных NixOS-скриптов
* TUI для управления generations и предпросмотра options
* Wrapped и unwrapped варианты Ix-пакета, чтобы избежать лишних rebuild
* Интеграционные тесты через pkgs.testers.runNixOSTest
https://github.com/nix-community/nixos-cli
⚡️ Linux может освободить RAM, не уничтожая сам диапазон виртуальной памяти процесса.
Это как раз то, что делает madvise(MADV_DONTNEED) для anonymous mappings.
Сценарий такой:
char *region = mmap(NULL, GB,
PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS,
-1, 0);
// потрогали часть страниц
madvise(region, GB, MADV_DONTNEED);
madvise виртуальные адреса остаются валидными. Процесс всё ещё «видит» тот же диапазон памяти.munmap и нового mmapMADV_DONTNEED не означает «удали адреса». Это скорее сигнал ядру: «эти страницы мне сейчас не нужны, можешь забрать физическую память».
🖥 Совет Linux
Диск забился, а где именно - непонятно?
Есть простая команда, чтобы быстро найти самые тяжёлые директории:
du -sh /* 2>/dev/null | sort -rh | head -10
Что она делает:
du -sh /* считает размер всех директорий в корне
sort -rh сортирует результат от самых больших к маленьким
head -10 показывает топ-10
2>/dev/null убирает ошибки доступа, чтобы вывод был чистым
Дальше всё просто: увидели, что разросся /var, /home или /opt - заходите внутрь и запускаете ту же команду уже там.
Например:
du -sh /var/* 2>/dev/null | sort -rh | head -10
Одна из тех команд, которые экономят кучу времени, когда сервер внезапно начинает кричать про 100% disk usage.
Когда не помнишь, какой конфиг трогал: Linux-спасатель
В Linux это можно быстро найти одной командой.
Вместо того чтобы вручную открывать десятки файлов в etc, попроси систему показать только те, которые менялись за последние 24 часа.
Команда find ищет обычные файлы в /etc, параметр -mmin ограничивает поиск последними 1440 минутами, а -printf выводит дату, время и путь к файлу.
В конце стоит sort, чтобы изменения шли по порядку, от старых к новым.
А если хочешь видеть самые свежие изменения сверху, просто добавь sort r.
⚡️ Kali Linux Roadmap: с чего начать в этичном хакинге
Нашёл нормальный roadmap по Kali Linux для тех, кто хочет не просто «поставить Kali и открыть терминал», а постепенно разобраться, как всё это работает.
Внутри маршрут по базовым темам: установка, настройка окружения, работа с терминалом, Linux-команды, сеть, безопасность, инструменты Kali и практика.
Это полезно тем, кто только заходит в кибербезопасность и не понимает, за что браться первым. Kali часто выглядит как набор страшных утилит, но без базы по Linux, сетям и правам доступа эти инструменты быстро превращаются в хаос.
Хороший подход здесь простой: сначала понять систему, потом сеть, потом инструменты, и только после этого переходить к практике в легальных лабораториях и CTF.
Такой roadmap удобно проходить как чек-лист: открыл раздел, разобрал команды, повторил руками, закрепил на тестовом окружении.
Для старта в Kali Linux это намного лучше, чем хаотично смотреть ролики и копировать команды без понимания.
https://github.com/justxor/Kalilinuxroadmap/tree/main
Запустил новый Linux-сервер? Не спеши сразу ставить сайт, бота или базу.
Сначала закрой базу безопасности.
Обнови систему, чтобы убрать старые уязвимости. Создай отдельного пользователя и не работай постоянно из-под root. Защити SSH: отключи root-вход, убери пароли и используй ключи.
Дальше включи firewall и оставь открытыми только нужные порты. Поставь Fail2ban, чтобы сервер сам блокировал подозрительные попытки входа.
И обязательно настрой бэкапы, логи и мониторинг. Сервер без резервных копий это лотерея.
Эти шаги занимают немного времени, но сильно снижают риск взлома и проблем в будущем.
5 терминальных инструментов, с которыми чувствуешь себя CLI-магом:
1. bottom (`btm`) - современный и красивый системный монитор, удобная альтернатива htop
https://github.com/ClementTsang/bottom
2. starship - быстрый и гибко настраиваемый prompt для любой shell
https://github.com/starship/starship
3. eza - современная замена ls с цветами и интеграцией с Git
https://github.com/eza-community/eza
4. zoxide - умный cd, который запоминает ваши привычки и быстрее открывает нужные папки
https://github.com/ajeetdsouza/zoxide
5. atuin - продвинутая история команд с поиском, синхронизацией и статистикой
https://github.com/atuinsh/atuin
🛡️ Защита вашей конфиденциальности в сети
Awesome Privacy — это обширная коллекция ресурсов и инструментов для обеспечения конфиденциальности в интернете. Здесь вы найдете рекомендации по безопасным браузерам, мессенджерам, VPN и другим средствам, которые помогут защитить ваши данные и личную информацию.
🚀Основные моменты:
- Подборка инструментов для анонимности и безопасности.
- Ресурсы по шифрованию и защите данных.
- Советы по безопасному серфингу в интернете.
- Обсуждения и рекомендации от сообщества.
📌 GitHub: https://github.com/Lissy93/awesome-privacy
#awesome-list
C умел «объектный стиль» задолго до модных споров про ООП.
В Linux-драйверах это видно особенно хорошо. Каждый драйвер фактически реализует интерфейс, просто заполняя структуру с указателями на функции.
file_operations из include/linux/fs.h - хороший пример. Ядро говорит: вот набор операций, которые может поддерживать файл, сокет или устройство. Драйвер сам решает, какие обработчики дать:
open
read
write
release
mmap
fsync
unlocked_ioctl
Если операция не нужна, поле остаётся NULL, и ядро использует поведение по умолчанию там, где это возможно.
По сути это тот же контракт между системой и реализацией, только без классов, наследования и рантаймовой магии. Есть таблица функций, есть объект, есть набор действий, которые с ним можно выполнить.
Именно поэтому C до сих пор живёт в ядрах, драйверах и системном коде. Он не навязывает модель абстракций, но даёт достаточно низкоуровневых инструментов, чтобы собрать нужную модель самому.
Просто вместо красивого слова interface у тебя struct с function pointers.
#programming #linux #c
⚡️ Linux Совет
Если у вас «само всё сломалось», начните с этого:find /etc -mtime -1 -type f
Команда покажет все обычные файлы в /etc, которые менялись за последние 24 часа.
Можно заменить /etc на нужную директорию:find /var/www -mtime -1 -type f
Полезно, когда сервер внезапно ведёт себя странно, конфиги изменились, деплой был «не у нас», а виноватых нет.find быстро показывает, что реально трогали за последний день.
⚡️ Linux Roadmap: подробный практический курс от нуля до уверенного администратора
Это пошаговый маршрут изучения Linux с упором на практику. Каждый раздел содержит объяснение «почему это устроено именно так», разбор команд и обязательные задания, которые нужно выполнить руками в терминале. Чтение без повторения навыка не даёт — держите терминал открытым рядом с этим текстом.
Как работать с этим курсом: идите сверху вниз, не перепрыгивайте разделы; каждую команду набирайте руками, а не копируйте; в конце каждого блока выполняйте задание; специально ломайте систему в виртуалке и чините — это лучший способ учиться.
https://github.com/justxor/linuxfullroadmap/
⚙️ ASMLings - подробный гайд на русском
ASMLings - это набор из ~32 коротких упражнений на ассемблере Intel 8086, выстроенных по возрастанию сложности: от mov ax, 0x1337 до 32-битного сложения через carry flag, циклов, подпрограмм, работы с памятью и стеком.
Полный русскоязычный гайд по asmlings — интерактивной песочнице для изучения ассемблера Intel 8086, в которой 16-битный x86-эмулятор написан на Rust.
Внутри: что это, как устроено под капотом, как установить, как читать и решать упражнения, разборы реальных задач из репозитория, готовые примеры в examples/ и шпаргалки.
https://github.com/justxor/-ASMLingsru/
👣 На Stepik обновили курс «Rust: полный курс разработчика. С нуля до профи»
Представьте: через три месяца вы открываете чужой Rust-код и читаете его как книгу.
Arc<Mutex<T>> не вызывает панику. impl Future не пугает. Вы точно знаете, почему компилятор ругается и как это починить за 10 секунд.
Это не фантазия. Это результат 50 уроков, в которых каждая концепция объясняется через код и закрепляется практикой. Ownership, traits, generics, async, unsafe - всё, что казалось магией, станет рабочим инструментом.
А бонусом - портфолио проектов: от CLI-утилит до REST API и WebAssembly.
Вы и так знаете, что Rust - ваш следующий язык. Этот курс просто сделает это реальностью.
Сегодня - 55% процентов от цены, торопись: https://stepik.org/a/269250/
Linux tip: когда процесс завис, не убивайте его вслепую
Если процесс завис, не обязательно сразу делать kill -9 и гадать, что там произошло.
Можно подключиться к нему через strace и посмотреть в реальном времени, на каком системном вызове он застрял.
Команда:
strace -p <PID> -e trace=read,write,open
pidof my_process
sudo strace -p <PID> -e trace=read,write