Фаниев Павел Андреевич
Использование артефактов Linux для получения криминалистически значимой информации
Рассматриваются различные типы артефактов в системе Linux, описывается информация, которая может быть получена путем их изучения. Демонстрируется способ применения утилиты командной строки Grep для оптимизации процесса анализа информации при проведении расследований. Отмечается важность исследования артефактов Linux для выявления следов взломов, аномальной активности или удаленного доступа к устройству.
Ключевые слова: артефакты Linux, лог, grep, сбор информации, демон cron.
Using Linux artifacts to obtain criminally relevant information
This article discusses the various types of artifacts on a Linux system, and describes the information that can be obtained by studying them. The method of using the grep command-line utility to optimize information analysis during investigations is demonstrated. It is noted that it is important to study Linux artifacts to identify traces of hacking, abnormal activity or remote access to the device.
Keywords: Linux artifacts, log, grep, information gathering, cron daemon.
Сростом числа киберпреступлений роль цифровой криминалистики становится все более значительной. Для эффективного расследования преступлений указанного вида особое внимание следует уделить изучению артефактов ОС Linux. Такие артефакты содержат важную информацию, касающуюся действий злоумышленников, используемых ими методов и т.д. Несмотря на то, что в среднепользовательском сегменте достаточно популярна ОС Windows, следует помнить, что ОС Linux, относящаяся к семейству UNIX-подобных операционных систем, широко применяется в технической, коммерческой и научной сферах. Большое количество серверов мобильных устройств и встраиваемых систем работают на Linux. По данным статистики, свыше 70% серверов в мире работают на этой операционной системе [1].
Согласно Отчету об атаках на онлайн-ресур-сы российских компаний за 2022 г. [2] на территории России было зафиксировано свыше 900 тыс. DDoS-атак, при этом значительная их часть (30%) пришлась на устройства госсектора. Указом Президента РФ от 30 марта 2022 г. № 166 «О мерах по обеспечению технологической независимости и безопасности критической информационной инфраструктуры Российской Федерации» органам государственной власти, заказчикам с 1 января 2025 г. запрещено использование иностранного программного обеспечения на принадлежащих им значимых объектах критической информационной инфраструктуры [3]. Это касается
и используемой на персональных компьютерах ОС Windows. В целях исполнения данных требований началась реализация комплекса мероприятий по закупке и внедрению отечественной операционной системы Astra Linux, разработанной компанией ООО «РусБИТех-Астра».
Анализ артефактов Linux является одним из важных факторов успешного расследования IT-преступлений, особенно совершенных в отношении сетевой инфраструктуры госсектора. С их помощью можно получить информацию, необходимую для установления фактов преступного посягательства на информационную инфраструктуру и определения причинно-следственных связей между событиями преступления. Кроме того, можно осуществить реконструкцию атаки на инфраструктуру, а именно восстановить хронологию и последовательность действий, совершенных злоумышленником. Этот процесс включает в себя изучение журналов, анализ сетевой активности правонарушителей, а также выявление проблем, с которыми они столкнулись в ходе получения несанкционированного доступа к системе. Подобный подход нередко помогает установить цели и порядок действий преступников, их квалификацию, а также провести необходимые мероприятия по устранению последствий взлома и недопущению его в последующем.
Для анализа артефактов Ос Linux необходимо использовать команды терминала операционной системы. Рассмотрим наиболее распространенные из них:
72
1. Команда last - используется для просмотра записей о последних фактах аутентификации в системе и о выходе из учетной записи пользователя. Команда выводит информацию в удобном для восприятия формате, показывая имя пользователя, время последнего входа в систему, терминал, с которого выполнен вход, и общее время, проведенное пользователем в системе. Вместе с ней можно использовать дополнительные уточняющие операторы. Например, «-Faiwx» производит фильтрацию выдачи команды last, показывая только тех пользователей, которые выполнили вход в систему с определенного терминала (например, ttyl1) или не выполнили выход из системы по истечении определенного времени. Практическая польза данной информации заключается в возможности определения, кто из пользователей и в какое время осуществлял вход в систему. Это необходимо для выявления логических аномалий, например, если установлен факт входа с учетной записи пользователя в ночное время со служебного компьютера, но при этом достоверно известно, что собственник учетной записи в данный момент на рабочем месте отсутствовал и аутентификацию не проходил. Это может свидетельствовать о том, что логин и пароль были скомпрометированы и использовались злоумышленниками для входа в систему. Кроме того, с помощью команды «last» можно получить сведения об адресе хоста, с которого было осуществлено подключение.
2. Лог работы операционной системы - файлы этой категории являются основным источником сведений для анализа и реконструкции атаки на цифровую инфраструктуру. Они содержат информацию о системных событиях, ошибках, предупреждениях, состоянии аппаратного и программного обеспечения, сетевых подключениях и многом другом. Необходимость исследования тех или иных системных логов определяется индивидуально, в зависимости от каждой решаемой задачи. Однако анализ некоторых из них обязателен при расследовании подавляющего большинства преступлений, связанных с незаконным доступом к системе:
2.1. /var/log/lastlog - содержит информацию о последнем входе в систему каждого пользователя. Если пользователь не осуществлял аутентификацию в системе в течение времени, установленного системным администратором, его запись в /var/log/lastlog может быть удалена.
1 TTY (аббревиатура от Teletypewriter) - это абстрактное устройство в UNIX и Linux. Иногда оно относится к физическому устройству ввода, такому как последовательный порт, а иногда к виртуальному TTY, который позволяет пользователям взаимодействовать с системой [4].
2.2. /var/log/btmp - записывает информацию обо всех неудачных попытках входа в систему. Этот файл используется демоном2 btmpd для отслеживания и анализа неудачных попыток входа.
2.3. /var/log/wtmp - содержит информацию обо всех успешных и неудачных попытках входа в систему. Информация обновляется при каждом входе или выходе из системы. Этот файл используется в качестве родительского при создании файлов /var/log/lastlog и /var/ log/faillog, которые содержат информацию о последнем входе пользователя в систему и о неудачных попытках входа соответственно.
2.4. /var/log/cron - содержит записи обо всех задачах, выполненных cron3, сведения о дате и времени выполнения задачи, команде, которая была выполнена, и о статусе выполнения.
2.5. /var/log/dpkg - в файле записана информация обо всех действиях, связанных с пакетными данными, которые были установлены с помощью dpkg, а именно названия пакетов и произведенные с ними действия (установка, обновление, удаление), а также о любых ошибках, которые могли возникнуть во время этих действий. Содержание этого файла может быть полезно при анализе истории изменений, внесенных в системные файлы.
2.6. /var/log/maillog - системный журнал, в котором записывается информация о событиях, связанных с электронной почтой, используемой на конкретном сервере. В основном это следующие сведения:
информация о попытках отправки письма с конкретного сервера;
сведения о входящей корреспонденции, полученной сервером;
сведения обо всех ошибках или предупреждениях, связанных с функционированием почтового сервиса.
Ввиду большого объема информации для оптимизации процесса анализа файла целесообразно использовать специальные команды. К примеру, при использовании команды «tail / var/log/maillog» можно получить информацию о последних записях в журнале. Для получения сведений, относящихся только к исходящим сообщениям, можно использовать команду «grep "outgoing mail" /var/log/maillog».
2 Демон - это процесс, который работает в фоновом режиме и выполняет определенные задачи. Он запускается при загрузке системы и работает до выключения компьютера. Демоны обычно используются для управления системой, системными службами, сетевыми сервисами и т.д. [5].
3 Cron является демоном, осуществляющим запуск тех или иных задач согласно установленному расписанию. Его аналогом в ОС Windows является Task Scheduler. С помощью cron можно автоматизировать различные процессы наподобие обновления установленного ПО, осуществления плановой рассылки электронных писем и т.д.
73
3. История работы с терминалом shell4 -файл с этой информацией расположен в «домашнем» каталоге операционной системы. В зависимости от установленного дистрибутива Linux он может иметь одно из следующих названий: .bash_history, .history, .sh_ history, .*_ history. Это связано с тем, что в зависимости от дистрибутива могут быть установлены разные версии shell. Отметим, что символ «.» в начале имени файла делает его скрытым от пользователя. Чтобы просмотреть содержимое этого файла, необходимо воспользоваться терминальной командой «ls -a». Изучение логов работы shell необходимо для отслеживания всех вводимых в системе команд, а также выявления аномалий, которые могут быть вызваны работой вредоносного кода.
4. Файлы демона cron - выше уже обращалось внимание на необходимость изучения логов работы cron. Однако не меньший интерес может представлять файл, содержащий в себе непосредственно сами команды, которые cron уже выполнил или должен будет выполнить.
Файл /etc/crontab содержит команды, которые должен выполнить cron. Он используется для планирования регулярных задач. Записанная в нем информация состоит из набора строк, каждая из которых содержит семь полей, разделенных пробелами или табуляцией. К примеру, если при его изучении встречается запись вида: 17 * * * * root cd /home/user && ./ backup.sh, можно сделать вывод что cron поставлена задача каждый час, в 17 минут, запускать команду "cd /home/user && ./backup. sh" от имени пользователя "root", т.е. имеющего права администратора. Весь синтаксис данной команды можно представить в следующем виде: m h dom mon dow user command, где каждое значение интерпретируются следующим образом:
поле 1 (m) - минуты (от 0 до 59); поле 2 (h) - часы (от 0 до 23); поле 3 (dom) - день месяца (от 1 до 31); поле 4 (mon) - месяц (от 1 до 12); поле 5 (dow) - день недели; поле 6 (user) - имя пользователя, от которого будет выполнена команда;
поле 7 (command) - выполняемая команда. Учитывая, что анализ массива информации, содержащейся в файлах системы, без использования специализированного программного обеспечения может занимать колоссальное количество времени, при работе следует особое внимание уделить утилите командной строки Linux - grep, которая используется для поиска текста в файлах или вывода других команд.
4 Shell - командный интерпретатор, который позволяет пользователю вводить команды и получать результаты [6]. В Linux встречается несколько видов shell, наиболее распространенные Bash, Zsh, Fish и др.
Grep расшифровывается как "search globally for lines matching the regular expression, and print them". Он дает очень много возможностей для фильтрации текста. С его помощью можно выбирать нужные строки из текстовых файлов, фильтровать вывод команд и даже искать в файловой системе файлы, которые содержат определенные строки [7].
Grep принимает два основных аргумента: шаблон поиска и файл (файлы), в которых нужно искать. Он анализирует файл в поиске всех строк, соответствующих заданному шаблону, и выводит эти строки. Например, используя его следующим образом: grep "box" myfile.txt, можно найти все строки в файл myfile.txt, содержащие слово box, и вывести их на экран.
Grep также поддерживает различные флаги или опции для расширения своих возможностей. Некоторые из наиболее используемых флагов grep включают:
- -i (или --ignore-case) - предназначен для игнорирования регистра символов при поиске;
- -v (или --invert-match) - печатает только строки, которые не соответствуют заданному шаблону;
- -r (или --recursive) - осуществляет рекурсивный поиск в указанном каталоге и его подкаталогах.
Например, чтобы найти все строки в файлах с расширением .txt в текущем каталоге и его подкаталогах, содержащие слово "confidence", без учета регистра, можно использовать следующую команду: grep -i -r " confidence " *.txt
При исследовании артефактов Linux немаловажно учитывать и ряд правовых аспектов.
Во-первых, необходимо обеспечить сохранность исследуемых данных, поскольку в противном случае они могут быть признаны в качестве недопустимых доказательств в суде. Для этого необходимо использовать методы и инструменты, позволяющие исключить возможность изменения или подделки файлов, например, путем создания копий образов данных с использованием криптографических хеш-сумм, для подтверждения их неизменности впоследствии.
Во-вторых, при работе с артефактами ОС Linux важно учитывать требования, связанные с защитой персональных данных.
В-третьих, в случаях, когда расследование киберпреступлений пересекает границы юрисдикции одной страны, возникает необходимость в сотрудничестве с международными правоохранительными организациями. Ввиду этого при возникновении необходимости исследования устройств, подпадающих под юрисдикцию иностранного государства, все дальнейшие действия следует проводить в строгом соответствии с международными договорами, регулирующими обмен данными и цифровыми доказательствами (например,
74
такими, как Соглашение о сотрудничестве государств - участников Содружества Независимых Государств в борьбе с преступлениями в сфере информационных технологий от 28 сентября 2018 г., которое было ратифицировано Федеральным законом от 1 июля
2021 г. № 237-Ф3 с оговоркой и вступило в силу для Российской Федерации 17 июля
2022 г.), а также с законодательством страны, в которой проводится расследование,
В заключение нужно отметить, что исследование артефактов Linux является важным инструментом для сбора и анализа информации о деятельности злоумышленников в операционной системе Linux. Их анализ способствует
выявлению следов взлома, аномальной активности или удаленного доступа, что позволяет принимать необходимые меры для обеспечения безопасности, предотвращения потенциальных угроз, реконструкции событий проникновения в инфраструктуру, а в ряде случаев для получения прямых или косвенных доказательств, указывающих на личность преступника. Важно отметить, что для получения полной и точной информации при анализе артефактов Linux требует использование специализированных инструментов и познаний в данной области, а грамотно проведенное исследование может значительно помочь в расследовании инцидентов безопасности и обеспечении защиты системы Linux.
1. Какой процент пользователей Linux [Электронный ресурс]. URL: https://mschmvd42. ru/kakoi-procent-polzovatelei-linux
2. Отчет об атаках на онлайн-ресурсы российских компаний за 2022 г. [Электронный ресурс]. URL: https://rt-solar.ru/upload/iblock/34a/5w4 h9o57axovdbv3ng7givrz271ykir3/Ataki-na-onlayn_ resursy-rossiyskikh-kompaniy-v-2022-godu.pdf
3. О мерах по обеспечению технологической независимости и безопасности критической информационной инфраструктуры Российской Федерации: указ Президента Рос. Федерации от 30 марта 2022 № 166. URL: http://publication.pravo.gov.ru/Document/ View/0001202203300001?index=1
4. Что такое TTY в Linux [Электронный ресурс]. URL: https://linuxcool.net/obzory/chto-takoe-tty-v-linux/
5. Что такое демоны в Linux [Электронный ресурс]. URL: https://losst.pro/chto-takoe-demony-v-linux
6. Что такое Shell, и зачем он нужен [Электронный ресурс]. URL: https://inp.nsk. su/~bolkhov/teach/inpunix/shell.ru.html
7. Команда grep в Linux [Электронный ресурс]. URL: https://losst.pro/gerp-poisk-vnutri-fajlov-v-linux#chto-takoe-grep
1. What percentage of Linux [Web resource]. URL: https://mschmvd42.ru/kakoi-procent-poizovateiei-linux
2. Report on attacks on online resources of Russian companies in 2022 [Web resource]. URL: https://rt-soiar.ru/upioad/ibiock/34a/5w4h9o57axo vdbv3ng7givrz271ykir3/Ataki-na-oniayn_resursy-rossiyskikh-kompaniy-v-2022-godu.pdf
3. On measures to ensure the technoiogicai independence and security of the criticai information infrastructure of the Russian Federation: decree of the President of the Russian Federation d.d. March 30, 2022 No 166. URL: http://pubiication.pravo.gov.ru/Document/ View/0001202203300001?index=1
4. What is TTY in Linux [Web resource]. URL: https://iinuxcooi.net/obzory/chto-takoe-tty-v-iinux/
5. What are daemons in Linux [Web resource]. URL: https://iosst.pro/chto-takoe-demony-v-iinux
6. What is a Sheii and why does the URL need it [Web resource]. URL: https://inp.nsk.su/~boikhov/ teach/inpunix/sheii.ru.htmi
7. The grep command in Linux [Web resource]. URL: https://iosst.pro/gerp-poisk-vnutri-fajiov-v-iinux#chto-takoe-grep
СВЕДЕНИЯ ОБ АВТОРЕ
Фаниев Павел Андреевич, адъюнкт кафедры судебно-экспертной деятельности Краснодарского университета МВД России; Эксперт организационно-методического отдела ЭКЦ ГУ МВД России по Краснодарскому краю; e-mail: faniev_pavel@mail.ru
INFORMATION ABOUT AUTHOR
P.A. Faniev, Adjunct of the Department of Forensic Expert Activity, Krasnodar University of the Ministry of the Interior of Russia; Expert of the Organizational and Methodological Department of the Expert and Forensic Center, Main Directorate of the Ministry of the Interior of Russia across the Krasnodar Territory; e-mail: faniev_pavel@mail.ru
75