📜 Как создать файловую систему-приманку на Linux с помощью FUSE |

📜 Как создать файловую систему-приманку на Linux с помощью FUSE

Мануал

В этом руководстве мы покажем вам, как создать файловую систему-приманку на Linux с помощью FUSE шаг за шагом.

Представьте, что вы запускаете облачный сервер для своего стартапа.

Однажды вы помещаете поддельный файл под названием client_credentials.txt в общую папку.

Внутри него вы помещаете что-то вроде этого:

AWS_KEY=FAKE123
SECRET_KEY=GOTCHA456

Теперь, если кто-то попытается им воспользоваться, вы сразу же получите уведомление.

Это говорит о том, что кто—то копается в ваших вещах, и теперь вы можете провести расследование или закрыть доступ.

Это именно то, что делает файлприманка или хани пот.

🍯Что такое Honeypot на примере Kfsensor

Что такое файловая система-приманка?

Файловая система-приманка – это виртуальная система, маскирующаяся под реальную файловую систему, которая выглядит как настоящая, но на самом деле является поддельной.

Ее цель – обмануть злоумышленников, наблюдать за поведением атакующих или побудить злоумышленников раскрыть свою личность.

Вы можете рассматривать это как “цифровую ловушку”.

Это может побудить злоумышленников открыть ее.

Предпосылки

  • Сервер Ubuntu: В этом руководстве используется серверная версия Ubuntu 24.04 LTS. Напоминаю, что набор предустановленных пакетов Ubuntu Server отличается от набора предустановленных пакетов для обычного рабочего стола Ubuntu. Вы можете использовать Vagrant для быстрой настройки сервера Ubuntu.
  • Установите Fuse
sudo apt install fuse
  • Настройка среды Python
python3 -m venv venv
source venv/bin/activate
pip install fusepy

Создайте файловую систему-приманку на Linux с помощью FUSE

Технически, файловая система такого типа обычно создается с помощью:

  • FUSE (Файловая система в пользовательском пространстве) для создания “реальной” файловой системы
  • Python для написания логики поведения файлов
  • Система ведения журнала для регистрации обращений. В этом руководстве мы будем использовать уведомления Slack, чтобы уведомлять нашу команду о любых подозрительных попытках.

Создайте файл на Python

Создайте файл decoy_fs.py с содержимым:

from fuse import FUSE, Operations
import time, os
class DecoyFS(Operations):
    def __init__(self):
        now = time.time()
        self.files = {
            '/salary_report_2024.xlsx': self._make_file(b'Fake salary data inside\n', now),
            '/admin_passwords.txt': self._make_file(b'admin: admin123\n', now),
            '/project/secret_notes.txt': self._make_file(b'Confidential: Do not distribute\n', now)
        }

    def _make_file(self, content, timestamp):
        return {
            'content': content,
            'st_mode': 0o100644,
            'st_nlink': 1,
            'st_size': len(content),
            'st_ctime': timestamp,
            'st_mtime': timestamp,
            'st_atime': timestamp
        }

    def getattr(self, path, fh=None):
        if path == '/':
            return dict(st_mode=(0o40555), st_nlink=2)
        elif path in self.files:
            return self.files[path]
        elif path == '/project':
            return dict(st_mode=(0o40555), st_nlink=2)
        else:
            raise FileNotFoundError
    def readdir(self, path, fh):
        if path == '/':
            return ['.', '..', 'salary_report_2024.xlsx', 'admin_passwords.txt', 'project']
        elif path == '/project':
            return ['.', '..', 'secret_notes.txt']
        else:
            raise FileNotFoundError
    def open(self, path, flags):
        if path in self.files:
            msg = f" *Decoy file accessed:* `{path}` at {time.ctime()}"
            print(msg)
            return 0
        else:
            raise FileNotFoundError

    def read(self, path, size, offset, fh):
        return self.files[path]['content'][offset:offset + size]
if __name__ == '__main__':
    import sys
    if len(sys.argv) != 2:
        print("Usage: python3 decoy_fs.py /mount/point")
        exit(1)
    mountpoint = sys.argv[1]
    FUSE(DecoyFS(), mountpoint, nothreads=True, foreground=True)

Этот код имитирует каталог с поддельными конфиденциальными файлами и регистрирует, когда кто-то пытается получить к ним доступ.

В реальном сценарии мы можем настроить оповещения с помощью Slack или отправлять уведомления по электронной почте члену команды.

Мы создали три поддельных файла: salary_report_2024.xlsx, admin_passwords.txt и secret_notes.txt.

Запустите скрипт на Python

Создайте точку монтирования и запустите созданный выше скрипт на python для создания файловой системыприманки

mkdir /tmp/decoymount
python3 decoy_fs.py /tmp/decoymount

Попробуйте прочитать файл

Теперь зайдите в эту папку и попробуйте прочитать файл:

cd /tmp/decoymount
ls
cat admin_passwords.txt

Зачем использовать файловую систему-приманку?

Вы можете спросить, почему бы не использовать настоящую файловую систему с поддельными данными для привлечения злоумышленников?

Хотя это может показаться хорошей идеей, есть несколько проблем, которые делают ее менее эффективной для использования в файловой системе-приманке.

Реальные файлы являются частью реальной файловой системы.

Таким образом, они видны обычным пользователям, приложениям или даже автоматическим скриптам, которые могут сканировать файлы или выводить их список (например, с помощью ls, find или других системных инструментов).

С помощью FUSE вы можете перехватывать и контролировать каждое взаимодействие с файлами.

Например, когда пользователь пытается прочитать файл, вы можете решить, разрешать ли это, запускать оповещения или регистрировать доступ.

Вы даже можете возвращать различные данные в зависимости от определенных условий или временных меток.

Файловая система-приманка обладает следующими свойствами:

  • Она более активна, чем антивирус: это не просто защита, это “приманка”
  • Обнаруживает внутренние угрозы: например, когда сотрудники манипулируют данными компании
  • Обнаруживает проблемы на ранней стадии атаки
  • Не содержит реальных данных, риск очень низкий

Заключение

Файловая система-приманка – это метод обмана в сетевой безопасности.

Она заманивает злоумышленников, создавая поддельные файлы и папки.

Это все равно, что оставить светящийся красным портфель посреди комнаты, полной камер, — только виновный сможет его открыть.

см. также:

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий