Защита ядра Linux — очень сложная предметная область. Она включает большое количество сложно взаимосвязанных понятий, и было бы полезным иметь ее графическое представление. Поэтому я разработал карту средств защиты ядра Linux. Вот легенда:
Рубрика «linux kernel» - 4
Карта средств защиты ядра Linux
2019-06-24 в 16:15, admin, рубрики: hacking, linux kernel, security, Блог компании Positive Technologies, информационная безопасность, Разработка под Linux, системное программирование, ядро LinuxК вопросу о параметрах драйвера в Linux, или как я провел выходные
2018-12-03 в 11:13, admin, рубрики: linux kernel, Программирование, Разработка под Linux«Мы ленивы и нелюбопытны»
На сей раз поводом к посту послужила статья в неплохом журнале, посвященном ОС Linux (далее по тексту Л), в которой привлеченный «эксперт» хвалил драйвер подключения ЖКИ к плате Raspbery. Поскольку подобные вещи (подключение, не ОС) входят в сферу моих профессиональных интересов, статью просмотрел с вниманием, потом нашел собственно текст «драйвера» и был слегка удивлен, что ЭТО можно хвалить. Ну, в общем то, уровень эксперта можно определить хотя бы потому, что он упорно именовал программу драйвером, несмотря на то, что она им никоим образом не является. Казалось бы, и фиг с ним, мало ли кто что пишет для себя, но выкладывать подобное в открытый доступ — «я и не знал, что так можно».
Особенно порадовало то обстоятельство, что адрес устройства на шине I2C напрямую задавался в тексте программы и для его изменения требовалась ее перекомпиляция (хорошо, что не всего ядра). Я, кстати, заметил, что на форумах, посвященных Л, наиболее популярный ответ на любой вопрос о проблемах в ПО, «пересобери последнюю версию ядра». Мне данный подход представляется несколько странным, наверное, я чего-то не знаю. Но, тем не менее, возник вопрос, а как в Л действительно реализуется (внутри, не снаружи — там все просто и понятно) параметризация драйвера, ответу на который и посвящен данный пост.
Читать полностью »
Подборка докладов по ядру Linux с Open Source Summit Europe 2018
2018-10-30 в 14:52, admin, рубрики: linux kernel, Open Source Summit, Блог компании Positive Technologies, информационная безопасность, конференции, Разработка под Linux, системное программирование
На прошлой неделе в Эдинбурге (Шотландия) прошел европейский Open Source Summit 2018. Представляю вашему вниманию подборку интересных докладов по ядру Linux, на которых мне удалось поприсутствовать.
Читать полностью »
Можно ли закрыть обратно открытый исходный код?
2018-10-15 в 7:00, admin, рубрики: copyleft, copyright, linux kernel, open source, Законодательство в IT, исходный код, Разработка под Linux
Эта концепция кажется довольно простой для любого человека, некоторое время работавшего с открытым исходным кодом: проект, однажды выпущенный в виде открытого кода, остаётся открытым навсегда. Конечно, разработчик может решить, что будущие версии проекта будут закрытыми, и иногда такое случалось, но то, что уже выпущено на свободу, отозвать обратно не получится. У интернета нет кнопки «удалить»; опубликовав свой код, и дав миллионам людей потенциальную возможность скачать его, загнать джина обратно в бутылку не получится.
Но что насчёт уважительных причин? Что, если проект превратится во что-то, к чему вы больше не хотите иметь отношения? Возможно, вы отправляли свой код для проекта, имея представление о том, как его будут использовать, а потом правила поменялись. Или же вас забанили на этом проекте, и при этом у людей, поддерживающих его, нет проблем с тем, чтобы оставить ваш значительный вклад в виде кода, даже когда вас выкинули на обочину?
Из-за того, что некоторые люди считают вынужденным изменением в правилах поведения разработчиков Linux, у некоторых разработчиков наиболее исключительного проекта с открытым кодом в мире возникают вопросы. С такой ситуацией сообществу приходится сталкиваться редко, и такого ещё никогда не случалось с проектом подобного масштаба.
Читать полностью »
Как STACKLEAK улучшает безопасность ядра Linux
2018-09-27 в 14:00, admin, рубрики: hacking, linux kernel, security, Блог компании Positive Technologies, информационная безопасность, Разработка под Linux, ядро LinuxSTACKLEAK — это функция безопасности ядра Linux, изначально разработанная создателями Grsecurity/PaX. Я решил довести STACKLEAK до официального ванильного ядра (Linux kernel mainline). В этой статье будет рассказано о внутреннем устройстве, свойствах данной функции безопасности и ее очень долгом непростом пути в mainline.
Рассуждение о священных войнах, а также мольба о мире
2018-09-24 в 10:26, admin, рубрики: code of conduct, eric s. raymond, ethos, free software, linux kernel, open source, telos, СПО, теория игрВступление переводчика
Я вполглаза слежу за зреющим конфликтом в сообществе Linux. Материалов об этом везде публикуется довольно много, началось всё с этого, в текущем состоянии отражено, например, здесь, а за первоисточником можно обращаться сюда. Среди всего обилия информации меня заинтересовало письмо Эрика С. Рэймонда, которое он озаглавил иронично-пафосно: “On holy wars, and a plea for peace”. Это письмо отличается взвешенным тоном и интересно само по себе, а не только в контексте конфликта. Перевод следует.
Линус Торвальдс отказывается от жесткого стиля и берет тайм-аут
2018-09-18 в 9:31, admin, рубрики: greg kroah-hartman, linus torvalds, linux kernel, open source, управление разработкой, Управление сообществомВ воскресенье лидер проекта Linux ядра сделал заявление, которое будет иметь долгосрочные последствия для всего сообщество сторонников открытого кода. По своему обыкновению, он не стал обращаться через социальные сети и делать громкие заявления для прессы. В письме содержащем комментарии к версии 4.19-rc4 он принес извинения за все те инциденты, когда из-за резкого тона в переписке мог задеть чувства младших коллег по цеху. Также он рассказал о своем решении временно отойти от руководства проектом для того, чтобы произвести ревизию своего инструментария, стиля и затем вернуться в строй после работы над ошибками.
В сообществе и вокруг него долго шла речь о том, что агрессивный тон и разнообразные эпитеты, что регулярно доставались незадачливым адресатам, отталкивают от проекта талантливых, но не слишком толстокожих разработчиков, наносят ущерб всему проекту.
Насколько эффективна виртуальная файловая система procfs и можно ли ее оптимизировать
2018-08-01 в 17:36, admin, рубрики: containers, CRIU, file systems, linux, linux kernel, open source, procfs, virtuozzo, Блог компании Virtuozzo, Разработка под Linux, Серверная оптимизация, системное программированиеФайловая система proc (в дальнейшем просто procfs) является виртуальной файловой системой, которая предоставляет информацию о процессах. Она — “прекрасный” пример интерфейсов следующих парадигме “все является файлом”. Procfs была разработана очень давно: во времена, когда серверы в среднем обслуживали несколько десятков процессов, когда открыть файл и вычитать информацию о процессе не было проблемой. Однако время не стоит на месте, и сейчас серверы обслуживают сотни тысяч, а то и больше процессов одновременно. В таком контексте идея “открыть файл для каждого процесса, чтобы вычитать интересующие данные” уже не выглядит такой привлекательной, и первое что приходит на ум чтобы ускорить чтение — это получение информации о группе процессов за одну итерацию. В этой статье мы попробуем найти элементы procfs которые можно оптимизировать.
Раскрытие памяти (Memory Disclosure) ядра в современных ОС
2018-07-08 в 13:58, admin, рубрики: C, linux kernel, memory disclosure, syscalls, windows kernel, информационная безопасность, Разработка под Linux, разработка под windows, системное программированиеПод катом расположен перевод вступительной части документа Detecting Kernel Memory Disclosure with x86 Emulation and Taint Tracking (Статья Project Zero) от Mateusz Jurczyk.
В переведенной части документа:
- специфика языка программирования C (в рамках проблемы раскрытия памяти)
- специфика работы ядер ОС Windows и Linux (в рамках проблемы раскрытия памяти)
- значимость раскрытия памяти ядра и влияние на безопасность ОС
- существующие методы и техники обнаружения и противодействия раскрытия памяти ядра
Хотя в документе пристально рассматриваются механизмы общения привилегированного ядра ОС с пользовательскими приложениями, суть проблемы можно обощить для любой передачи данных между различными доменами безопасности: гипервизор — гостевая машина, привилегированный системный сервис (демон) — GUI приложение, сетевые клиент — сервер и т.д.