218

В статье рассмотрен принцип реализации драйвера устройства специального назначения
для защищенных ОС Linux на примере простого символьного драйвера. Показано, что главной
целью является подведение итогов и формирование базовых знаний для написания будущих
модулей ядра. Обосновано, что для взаимодействия с оборудованием или осуществления
операций с доступом к привилегированной информации в системе нужен драйвер ядра.
Установлено, что модуль ядра Linux - это скомпилированный двоичный код, который вставляется
непосредственно в ядро Linux, внутренней и наименее защищённой оболочке выполнения команд
в процессоре x86-64. Выявлено, что здесь код исполняется совершенно без всяких проверок, но на
невероятной скорости и с доступом к любым ресурсам системы. Доказано, что изменяя ядро, есть
вероятность риска потерять данные в коде ядра нет стандартной защиты, как в обычных
приложениях Linux.

 

  • Internet ҳавола
  • DOI
  • UzSCI тизимида яратилган сана 16-02-2020
  • Ўқишлар сони 205
  • Нашр санаси 16-05-2018
  • Мақола тилиRus
  • Саҳифалар сони86-93
Русский

В статье рассмотрен принцип реализации драйвера устройства специального назначения
для защищенных ОС Linux на примере простого символьного драйвера. Показано, что главной
целью является подведение итогов и формирование базовых знаний для написания будущих
модулей ядра. Обосновано, что для взаимодействия с оборудованием или осуществления
операций с доступом к привилегированной информации в системе нужен драйвер ядра.
Установлено, что модуль ядра Linux - это скомпилированный двоичный код, который вставляется
непосредственно в ядро Linux, внутренней и наименее защищённой оболочке выполнения команд
в процессоре x86-64. Выявлено, что здесь код исполняется совершенно без всяких проверок, но на
невероятной скорости и с доступом к любым ресурсам системы. Доказано, что изменяя ядро, есть
вероятность риска потерять данные в коде ядра нет стандартной защиты, как в обычных
приложениях Linux.

 

Ўзбек

Maqolada oddiy drayverlar misolidan foydalanib, himoyalangan Linux operatsion tizimida maxsus
maqsadlar uchun yaratilgan qurilmalar drayverlarini qo'llash tamoyili ko’rsatilgan. Asosiy maqsad -
kelajakda yadro modullarini yaratish uchun asosiy ma'lumotlarni to'plash va shakllantirishdir. Uskunalar
bilan ishlash yoki imtiyozli ma'lumotlarga ega bo‘lgan ososiy vazifalarni bajarish uchun tizim
yadrosining drayveri bo‘lishi kerak. Linux yadrosi moduli – bu Linux yadrosiga to‘g‘ridan-to‘g‘ri
kiritilgan, kompilyatsiya qilingan ikkilik kodi bo‘lib, x86-64 arxitektura protsessori uchun ichki va eng
kam himoyalangan qobiq hisoblanadi. Bu yerda kod hech qanday tekshiruvlarsiz amalga oshiriladi, ammo
tezlik bilan va har qanday tizim resurslariga murojat qilgan holda bajariladi. Yadroni o‘zgartirish bilan siz
ma'lumotlaringizni yoqotish xavfini tug‘dirasiz. Yadro kodi Linux OT ning boshqa ilovalari kabi aniq
himoya mexanizmiga ega emas.
 

English

In this article discusses the principle of implementing a special-purpose device driver for secure
Linux operating systems, using the example of a simple character driver. The main goal is to summarize
and form the basic knowledge for writing future kernel modules. To interact with the equipment or
perform operations with access to privileged information, the system needs a kernel driver. The Linux
kernel module is a compiled binary code that is inserted directly into the Linux kernel, the internal and
least secure shell of executing instructions in the x86-64 processor. Here the code is executed completely
without any checks, but at an incredible speed and with access to any system resources. Changing the
kernel, you run the risk of losing data. The kernel code does not have standard protection, as in normal
Linux applications.
 

Муаллифнинг исми Лавозими Ташкилот номи
1 Ochilov N.N. _ _
Ҳавола номи
1 Торвальдс Л., Даймонд Д. Ради удовольствия = Just for fun. М.: Эксмопресс, 2002. С. 288.
2 Торвальдс Л. Linux Format = Linux формат. М.: Эксмо-пресс, 2015. С. 228.
3 Лав Р. Разработка ядра Linux = Linux Kernel Development. 2-е изд. М.: «Вильямс», 2006. С. 448.
4 Родригес К. З., Фишер Г., Смолски С. Linux: азбука ядра. Спб: «Кудицпресс», 2007. С. 584.
5 Баррет Д. Linux: основные команды. Карманный справочник. 2-е изд. Спб: «Кудиц-пресс», 2007. С. 288.
Кутилмоқда