QR код в systemd
Dec. 19th, 2013 05:23 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Айсед вынудил таки почитать, что за QR код сунул поттеринг в systemd: http://lwn.net/Articles/512895/
На данный момент то что там описано, для меня выглядит как жуткий security theater:
* 15 минут подписи логов по умолчанию. Это овердохера - аттакер в среднем имеет 7.5 минут чтобы стереть из текущего неподписанного лога свое присутствие
* мутный алгоритм брата поттеринга
* возможность проебать старый ключик в памяти-свопе
* возможность просто нахрен вытереть логи - и вся информация, которая у нас останется это "логи кем-то были стерты".
На данный момент то что там описано, для меня выглядит как жуткий security theater:
* 15 минут подписи логов по умолчанию. Это овердохера - аттакер в среднем имеет 7.5 минут чтобы стереть из текущего неподписанного лога свое присутствие
* мутный алгоритм брата поттеринга
* возможность проебать старый ключик в памяти-свопе
* возможность просто нахрен вытереть логи - и вся информация, которая у нас останется это "логи кем-то были стерты".
no subject
Date: 2013-12-20 01:50 pm (UTC)вот нужно например узнать дату/время неудачных попыток залогиниться по ssh
кошерный и юниксвейный syslog считает, что показаний системных часов достаточно, чтобы однозначно идентифицировать время события
раздутый и переинженернутый journald пишет в нечитаемый юниксвейным catом бинарник показания часов + monotonic timestamp, тем самым страхуя нас от всяких неожиданностей вроде DST или leap second
кошерный и юниксвейный syslog пишет в файл тупо строку, из которой ещё а) надо выдрать IP б) формат которой может меняться при апгрейде. Само собой, каждый интегратор пишет регэкспы для парсинга сам.
раздутый и переинженернутый journald поддерживает произвольные поля в сообщении лога, куда клиент (ssh-сервер в нашем случае) может складывать любую потенциально интересную информацию (IP, reverse hostname, public key и т.п. в нашем случае)
ну и да, любому недоумку очевидно, что смотрелки текстовых файлов cat и less весом 47 и 155 Кб помещаются на аварийную
дискетуфлешку, а вот journalctl (смотрелка логов journald) весом 151 Кб — уже нет.no subject
Date: 2013-12-20 03:19 pm (UTC)Тем не менее, отличие "текстовых логов" от "бинарных" есть. Это набор инструментов для работы. У "текстовых" - миллион различных редакторов, включая поточные, лёгкая поддержка в языках общего назначения.
У "бинарных" - сами можете перечислить. А зная любовь П. к модернизации без сохранения обратной совместимости, можете прикинуть время жизни "бинарных" логов до полного протухания инструментов считывания.
no subject
Date: 2013-12-20 05:37 pm (UTC)no subject
Date: 2013-12-20 06:22 pm (UTC)Круто! Дальше нам с вами беседовать не о чем.
no subject
Date: 2013-12-20 07:38 pm (UTC)no subject
Date: 2013-12-21 08:47 am (UTC)Отличие ровно в одной операции.
<имя конвертера> < банарный_лог > текстовый лог. А дальше все как обычно.
Причему вызвать это можно и изнутри языка общего назначения - потоки ввода-вывода еще не отменяли.
no subject
Date: 2013-12-21 02:27 pm (UTC)А вы уверены, что формат не будет меняться? Что конвертор не вылетит на логах со специфическими повреждениями структуры? (файловые системы, как и жесткие диски не идеальны)
no subject
Date: 2013-12-22 11:34 am (UTC)Смотрелки могут быть на самом деле синонимом какого-нибудь BusyBox.
no subject
Date: 2013-12-22 08:34 pm (UTC)таки що там с monotonic timestamp?ага, вроде как наколхозить можно Я правильно понимаю, что по умолчанию их значения всё равно не попадают никуда? то есть проблема на самом деле в том, что класть journalctl, как и less, в busybox Не Принято, так?