Introduction à la Sécurité des Systèmes d'Exploitation

Présentation du laboratoire TryHackMe

Ce tutoriel est associé au laboratoire TryHackMe suivant : https://tryhackme.com/room/operatingsystemsecurity

Nous allons explorer les fondements de la sécurité des systèmes d'exploitation et démontrer un cas pratique d'authentification SSH sur un système Linux.

Notions Fondamentales de Sécurité OS


L'utilisation quotidienne d'un smartphone, d'un ordinateur portable ou de tout autre dispositif informatique implique une interaction, directe ou indirecte, avec le système d'exploitation. Les OS les plus répandus comprennent MS Windows, macOS, iOS, Android, Chrome OS et Linux.

Définition du Système d'Exploitation

Pour comprendre ce qu'est un système d'exploitation, il est nécessaire de définir au préalable un terme technique fondamental : le matériel informatique.

Le matériel (hardware) représente l'ensemble des composants physiques et périphériques que l'on peut toucher. Celui-ci inclut l'écran, le clavier, l'imprimante, les clés USB ainsi que la carte mère. La carte mère constitue un élément central puisque qu'elle accueille le processeur (CPU) et la mémoire vive (RAM), et permet également le raccordement des dispositifs de stockage (disques durs mécaniques HDD ou Solid State Drive SSD).

La carte mère représente donc la pièce maîtresse de l'ordinateur, à laquelle sont connectés tous les périphériques externes. Cependant, ces composants matériels ne peuvent être utilisés directement pour exécuter vos applications favorites. C'est précisément pourquoi un système d'exploitation est indispensable : il assure le contrôle et la gestion de ces ressources matérielles.

Le système d'exploitation (OS) fait office d'intermédiaire entre le matériel et les applicatinos que vous exécutez.

среди примеров программ повседневного использования можно выделить веб-браузеры (Firefox, Safari, Chrome) и приложения для обмена сообщениями (Signal, WhatsApp, Telegram). Ни одна программа не может работать directement на оборудовании — для этого им требуется слой операционной системы, который обеспечивает доступ к аппаратным ресурсам в соответствии с установленными правилами.

Типы операционных систем

Существуют различные категории операционных систем, предназначенных для конкретных целей:

  • Настольные системы: MS Windows 11, macOS
  • Мобильные системы: Android, iOS
  • Серверные системы: MS Windows Server 2022, IBM AIX, Oracle Solaris
  • Универсальные системы: Linux (работает как на персональных компьютерах, так и на серверах)

Данные на вашем устройстве

Независимо от того, используете ли вы Android или iOS, ваш смартфон содержит значительный объём конфиденциальной информации:

  1. Личные переписки с семьёй и друзьями
  2. Личные фотографии
  3. Клиент электронной почты для рабочей и личной переписки
  4. Пароли, сохранённые в браузере или заметках
  5. Приложения онлайн-банкинга

Аналогичная ситуация справедлива и для ноутбуков с Windows, macOS или Linux:

  1. Конфиденциальные документы, связанные с работой или учёбой
  2. Личные документы (копии паспорта, удостоверения личности)
  3. Почтовые программы (MS Outlook, Mozilla Thunderbird)
  4. Сохранённые пароли в браузерах и приложениях
  5. Копии фотографий с цифрового фотоаппарата и смартфона

Три основных принципа информационной безопасности

При обсуждении информационной безопасности необходимо учитывать три ключевых аспекта:

  • Конфиденциальность (Confidentiality): Гарантия того, что конфиденциальные файлы и информация доступны только уполномоченным лицам.
  • Целостность (Integrity): Обеспечение невозможности модификации файлов, хранящихся в системе или передаваемых по сети.
  • Доступность (Availability): Гарантия готовности вашего устройства к использованию в любой момент.

Эти три принципа образуют модель CIA (Confidentiality, Integrity, Availability).

Типичные угрозы безопасности операционных систем


Как упоминалось ранее, безопасность операционной системы охватывает защиту от атак, направленных на:

  • Конфиденциальность
  • Целостность
  • Доступность

Рассмотрим три основных уязвимости, которыми пользуются злоумышленники:

  1. Слабые пароли в системе аутентификации
  2. Недостаточные права доступа к файлам
  3. Вредоносное программное обеспечение

Проблема слабых паролей

Аутентификация — это процесс подтверждения вашей личности. Она может осуществляться тремя основными способами:

  • Знание: пароль или PIN-код
  • Биометрия: отпечаток пальца
  • Владение: устройство для получения SMS

Пароли являются наиболее распространённым методом аутентификации и, соответственно, наиболее уязвимым. Многие пользователи выбирают простые и предсказуемые пароли или используют один и тот же пароль на нескольких сайтах. Нередко пароли основаны на личных данных: датах рождения, кличках домашних животных — хотя злоумышленники отлично знают об этой тенденции.

21 апреля 2019 года Национальный центр кибербезопасности Великобритании (NCSC) опубликовал список из 100 000 наиболее часто используемых паролей. Вот первые 20 из них:

Ранг           Пароль
1               123456
2               123456789
3               qwerty
4               password
5               111111
6               12345678
7               abc123
8               1234567
9               password1
10              12345
11              1234567890
12              123123
13              000000
14              iloveyou
15              1234
16              1q2w3e4r5t
17              qwertyuiop
18              123
19              monkey
20              dragon

Анализ этого списка показывает, что последовательности типа 123, 1234, 12345, ..., 123456789 и 1234567890 весьма популярны. Слова вроде password, iloveyou, monkey и dragon также часто встречаются. Бессмысленные комбинации вроде qwerty, qwertyuiop и 1q2w3e4r5t легко предсказать, поскольку они соответствуют раскладке клавиатуры.

Если злоумышленник угадает пароль от вашей учётной записи (почты или социальной сети), он получит прямой доступ к вашим личным данным. Поэтому критически важно использовать сложные пароли и не повторять их на разных сайтах.

Недостаточные права доступа к файлам

Правильная система безопасности основана на принципе минимальных привилегий. В рабочей среде доступ к файлам должен быть только у тех, кому он необходим для выполнения служебных обязанностей. На личном уровне, если вы планируете поездку с семьёй или друзьями, вы, вероятно, захотите предоставить доступ к связанным документам только участникам поездки, а не всем подряд. В этом и заключается суть принципа минимальных привилегий: чёткое определение того, кто имеет доступ к каким ресурсам.

Слабые права доступа к файлам создают серьёзные риски для конфиденциальности и целостности: злоумышленник может получить доступ к файлам, к которым не должен иметь доступ, а также модифицировать файлы, которые не должен иметь возможность редактировать.

Вредоносное программное обеспечение

Вредоносные программы представляют ещё одну категорию угроз. В зависимости от типа, они могут атаковать конфиденциальность, целостность и доступность данных.

Некоторые виды вредоносного ПО (например, трояны) позволяют злоумышленнику получить доступ к вашей системе и читать или изменять файлы.

Другие виды направлены на нарушение доступности. Ярким примером служит программное-вымогатель (ransomware) — вредонос, шифрующий файлы пользователя, после чего они становятся нечитаемыми без ключа дешифрования. Злоумышленники предлагают восстановить доступ к файлам за определённую плату («выкуп»).

Практический пример: аутентификация SSH в Linux


В ходе типичной кибератаки злоумышленник может попытаться получить удалённый доступ к целевой системе, заставив жертву запустить вредоносный файл или подобрав учётные данные (логин и пароль).

В этом разделе мы сосредоточимся на втором способе — получении доступа к удалённой системе путём подбора учётных данных. Обнаружив действительное имя пользователя, можно попытаться угадать пароль, а затем повысить привилегии до уровня администратора системы.

Администраторская учётная запись в Android, Apple и Linux-системах называется root, а в MS Windows — administrator. Обе эти учётные записи имеют полный неограниченный доступ к системе.

Для практических упражнений мы будем использовать Linux и следующие команды:

  • whoami — отображение текущего пользователя
  • ssh USERNAME@MACHINE_IP — подключение по SSH
  • ls — просмотр содержимого каталога
  • cat FILENAME — чтение содержимого текстового файла
  • history — история выполненных команд

Симуляция атаки

Представьте, что вы проводите аудит безопасности для компании. Во время осмотра офиса вы замечаете на столе записку с двумя словами: sammie и dragon. Можно ли предположить, что Sammie использует пароль dragon на целевой машине?

В терминале AttackBox выполните подключение по SSH:

user@AttackBox# ssh sammie@MACHINE_IP
sammie@MACHINE_IP's password:
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-100-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Tue  1 Mar 13:20:32 UTC 2022

  System load:  0.03              Processes:              216
  Usage of /:   51.8% of 6.53GB   Users logged in:        1
  Memory usage: 17%               IPv4 address for ens33: MACHINE_IP
  Swap usage:   0%

 * Super-optimized for small spaces: read how we shrank the memory
   footprint of MicroK8s to make it the smallest full K8s around.

   https://ubuntu.com/blog/microk8s-memory-optimisation

0 updates can be applied immediately.


Last login: Tue Mar  1 09:46:11 2022 from MACHINE_IP

sammie@beginner-os-security:~$ 

После успешного подключения проверьте текущего пользователя командой whoami. Команда ls покажет файлы в текущем каталоге (скрытые файлы не отображаются). Для просмотра содержимого текстового файла используйте cat ИМЯ_ФАЙЛА (сокращение от concatenate).

user@AttackBox# ssh sammie@10.20.30.130
sammie@10.20.30.130's password: 

[...]

Last login: Tue Mar  1 14:45:53 2022 from 10.20.30.1
sammie@beginner-os-security:~$ whoami
sammie
sammie@beginner-os-security:~$ ls
country.txt  draft.md  icon.png  password.txt  profile.jpg
sammie@beginner-os-security:~$ cat draft.md 
# Operating System Security

Reusing passwords means that your password for other sites becomes exposed if one service is hacked.
sammie@beginner-os-security:~$

Команда history отображает историю ранее выполненных команд. С её помощью можно обнаружить чувствительную информацию.

Допустим, вам известны имена других пользователей системы:

  • johnny
  • linda

Если эти пользователи не уделяют достаточного внимания безопасности, можно попытаться подобрать их пароли двумя способами:

  1. Если вы не подключены к системе: выполните ssh johnny@MACHINE_IP и последовательно вводите различные пароли.
  2. Если вы уже подключены как другой пользователь: используйте su - johnny для смены пользователя и подбора пароля.

Выполнение лабораторной работы


Разверните виртуальную среду на странице лаборатории TryHackMe и выполните следующие задания:

Вопросы:

  1. Используя список Top 20 самых популярных паролей, определите пароль пользователя Johnny.
  2. После входа от имени Johnny выполните команду history. Найдите команду, которую Johnny случайно ввёл вместо пароля root. Чему равен пароль root?
  3. Войдя как Johnny, используйте команду su - root для перехода в учётную запись администратора (введите найденный пароль). Прочитайте содержимое файла flag.txt в корневом каталоге. Что содержит этот файл?

Решение:

Подключитесь к целевой машине по SSH:

ssh johnny@10.10.210.242
# После нескольких попыток обнаруживаем рабочий пароль: abc123

Ответ: Пароль пользователя johnny: abc123

После успешного подключения выполните команду history для просмотра истории команд. В ней обнаруживается пароль root.

Ответ: Пароль root: happyHack!NG

Переключитесь на учётную запись root (используя найденный пароль) и прочитайте содержимое файла flag.txt:

su - root
# введите пароль: happyHack!NG
cat /flag.txt

Ответ: Содержимое flag.txt: THM{YouGotRoot}

Étiquettes: cybersecurity operating-system Linux SSH authentication

Publié le 2 juin à 23h34