Объявление

Свернуть
Пока нет объявлений.

Настраиваем полнодисковое шифрование и анонимизацию уровня ОС

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Настраиваем полнодисковое шифрование и анонимизацию уровня ОС

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

    Также мы с тобой рассмотрим, как защитить и анонимизировать сетевой трафик. Про Tor слышали практически все, многие даже использовали его как прокси для отдельных приложений; мы же посмотрим, как эффективно пользоваться им для полной анонимизации целой операционной системы.

    Требования к системе

    Начнем мы наш рассказ с шифрования. Для начала давай сформулируем основные требования к системе, то есть что бы хотелось получить на выходе. Будем считать, что хорошая криптосистема должна шифровать абсолютно всё содержимое жесткого диска так, чтобы его содержимое нельзя было отличить от случайных данных. Загрузчик системы должен состоять из двух частей и находиться на флешке или другом сьёмном носителе. Первая, незащищенная часть, по паролю расшифровываeт вторую, в которой находится ядро системы и ключи от жесткого диска. Система должна допускать быструю смену ключей и паролей без потери данных, а работа с разделами должна быть такой же, как и обычно.

    Алгоритм работы

    С требованиями определились. Теперь давай подумаем о том, как будем этого добиваться. Итак, наша схема будет работать следующим образом:

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


    В то время как обычные средства шифрования защищают только домашний рaздел или оставляют загрузчик на жестком диске — наша схема делает выключенный компьютер практически неуязвимым к снятию информации и протрояниванию компонентов системы, а для уничтожения всех данных на нём достаточно просто уничтожить флешку. Когда компьютер включен, ключи от диска находятся в оперативной памяти, поэтому для надёжной защиты от cold-boot атак необходимо использовать пароль на BIOS/UEFI и входить в режим гибернации, если нет возможности контролировать доступ к компьютеру.

    Подготовка диска

    Ну а теперь перейдем непосредственно к действиям.

    Для осуществления задуманного нам понадобятся:

    Live-DVD с любым дистрибутивом Linux (все команды в статье даны для Debian/Ubuntu);
    Любая свободная флешка размером более 128 Мб;
    Прямые руки.


    Если ты хочешь защитить уже существующую систему, а не ставить новую, необходимо сначала сделать её полный бэкап.

    Для начала нам нужно загрузиться с Live-DVD и определиться с носителями, на которые будем ставить систему. В нашем примере мы работаем c дистрибутивом Debian, а наши носители — жесткий диск /dev/sda и флеш-карта /dev/sdb. После загрузки нам необходимо открыть консоль с правами root и установить необходимые программы — полнодисковое шифрование cryptsetup и загрузчик grub2:
    Цитата
    apt-get install cryptsetup grub2

    Если на жестком диске была какая-то незашифрованная информация, его необходимо полностью перезаписать случайными данными. Для этого сначала определим его размер в байтах:
    Цитата
    fdisk -l /dev/sda

    А затем затрем диск случайными данными:
    Цитата
    openssl rand $размер_в_байтах | dd of=/dev/sda bs=512K

    Теперь нам необходимо сгенерировать ключ шифрования и положить его в /root/key:
    Цитата
    dd if=/dev/random of=/root/key bs=1 count=32

    Итак, форматируем жесткий диск:
    Цитата
    cryptsetup luksFormat /dev/sda key

    В начале диска, зашифрованного LUKS, есть заголовок, в котором перечислены методы шифрования и зашифрованные ключи. Чтобы содержимое диска выглядело как случайные данные, мы забэкапим и затрём этот заголовок:
    Цитата
    cryptsetup luksHeaderBackup /dev/sda --header-backup-file /root/header.luks
    dd if=/dev/urandom of=/dev/sda bs=1 count=1052672

    Открываем наш зашифрованный диск:
    Цитата
    cryptsetup -d=key --header=header.luks luksOpen /dev/sda rootfs

    Далее с /dev/mapper/rootfs можно работать как с обычным жестким диском. При необходимости можно использовать RAID, LVM и даже создать swap-раздел.

    Устанавливаем систему или копируем защищаемую:
    Цитата
    mkdir /mnt/root
    mkfs.ext4 /dev/mapper/rootfs
    mount /dev/mapper/rootfs /mnt/root


    Установка системы

    В рамках статьи мы будем устанавливать Debian Jessie с помощью debootstrap, утилиты для развёртывания базовой debian-based системы в папке другой системы (а скопировать уже существующую систему можно rsync-ом):
    Код
    apt-get install debootstrap
    debootstrap --arch amd64 jessie /mnt/root http://http.debian.net/debian

    Теперь chroot-имся в неё, ставим необходимый софт и настраиваем initramfs:
    Код
    chroot /mnt/root
    apt-get install vim locales linux-image-3.16.0-4-amd64(или более новую версию) cryptsetup
    cp /usr/share/initramfs-tools/hooks/cryptroot /etc/initramfs-tools/hooks
    CRYPTSETUP=y update-initramfs -k all -u

    Обязательно нужно установить пароль на систему, если она новая:
    Код
    passwd


    Настройка системы

    Так как теперь корневая ФС системы при загрузке теперь будет находиться в /dev/mapper/rootfs, надо поправить информацию о файловых системах в fstab:
    Код
    vim /etc/fstab
    /dev/mapper/rootfs / ext4 errors=remount-ro 0 1

    Следующим шагом выходим из chroot и делаем копию initrd:
    Код
    cp /mnt/rootfs/boot/initrd-(текущая версия) /tmp/initrd
    mkdir /tmp/newinitrd
    cd /tmp/newinitrd

    Распаковываем его:
    Код
    zcat ../initrd | cpio -idv

    И подправляем скрипты, запускаемые при загрузке системы до монтирования основных файловых систем. В файле ./scripts/local-top/ORDER необходимо заменить cryptroot на crypto. Содержимое файла ./scripts/local-top/crypto нужно заменить на скрипт, открывающий наш полностью зашифрованный диск:
    Код
    prereqs()
    {
    echo "$PREREQ"
    }
    case $1 in
    prereqs)
    prereqs
    exit 0
    ;;
    esac
    modprobe -b dm_crypt
    modprobe -b aes_generic
    modprobe -b sha256
    /sbin/cryptsetup -d=/etc/key --header=/etc/header.luks \
    luksOpen /dev/disk/by-id/$DISK_ID$ rootfs

    $DISK_ID можно узнать, используя ls -l /dev/disk/by-id/ | grep sda. После этого делаем скрипт исполняемым:
    Код
    ****d +x ./scripts/local-top/crypto

    Затем кладём в initrd ключ и заголовок тома:
    Код
    cp /root/key /mnt/rootfs/initrd/etc/key
    cp /root/header.luks /mnt/rootfs/initrd/header.luks

    Собираем получившийся initrd и кладём его в папку /root:
    Код
    find . | cpio -H newc -o > ../initrd
    cd ..
    gzip initrd
    mv initrd.gz /root/initrd


    Подготовливаем флешку

    Пришло время заняться флешкой, без которой наш зашифрованный диск будет представлять собой несвязанный набор байт. Начинаем с ее разметки:
    Код
    parted
    (parted) select /dev/sdb
    (parted) mklabel msdos
    (parted) mkpart primary 5 100 # Раздел с любой файловой системой, например fat32
    (parted) mkpart primary 100 200 # раздел с initrd и ядром, защищен luks
    (parted) mkpart primary 200 250 #раздел с grub

    Теперь шифруем раздел и устаналиваем на него пароль (как ты помнишь, мы разбиваем флешку на два раздела):
    Код
    cryptsetup luksFormat /dev/sdb2

    Остается настроить загрузчик. Для этого открываем /etc/default/grub и добавляем в конец файла строку GRUB_ENABLE_CRYPTODISK=1. После этого форматируем раздел под загрузчик:
    Код
    mkfs.ext2 /dev/sdb3

    И монтируем его:
    Код
    mkdir /mnt/grub
    mount /dev/sdb3 /mnt/grub

    Устанавливаем GRUB на флеш-карту. Значение --target следует выбрать в зависимости от параметров твоего компьютера. Наиболее универсальный вариант — i386-pc:
    Код
    grub-install --target=i386-pc --root-directory /mnt/grub/ /dev/sdb

    Теперь создадим файл конфигурации /mnt/grub/grub.cfg:
    Код
    set timeout=5
    set default=0
    menuentry "Linux" {
    insmod cryptodisk
    insmod luks
    cryptomount hd0,msdos2
    set root=(crypto0)
    linux /vmlinuz root=/dev/mapper/rootfs ro quiet
    initrd /initrd
    }

    В этом файле мы задаем одну строку меню «Linux», при запуске которой после ввода пароля открывается зашифрованный раздел флешки с ядром системы и ключами от жесткого диска.
    [​IMG]

    После этого открываем защищенный раздел на флешке:
    Код
    cryptsetup luksOpen /dev/sdb2 cryptboot

    Форматируем его и монтируем:
    Код
    mkfs.ext2 /dev/mapper/cryptboot
    mkdir /mnt/cryptboot
    mount /dev/mapper/cryptboot /mnt/cryptboot

    После чего копируем в него ядро и initrd:
    Код
    cp /root/initrd /mnt/cryptboot/initrd
    cp /mnt/rootfs/boot/vmlinuz-(вставьте сюда свою версию) /mnt/cryptboot/vmlinuz
    sync

    Всё готово!

    [​IMG]

    Размонтируем диски и перезагружаемся:
    Код
    umount /mnt/*
    cryptsetup luksClose /dev/mapper/cryptboot
    cryptsetup luksClose /dev/mapper/rootfs
    sync
    shutdown -r now


    Анонимизация ОС

    С шифрованием разобрались. Теперь пришло время поговорить об анонимизации системы.

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

    Настройка

    По шагам:

    Скачиваем Virtualbox, Whonix Gateway и Kali;
    Проверяем ova-файл, устанавливаем и обновляем Whonix по инструкции на сайте;
    Для отключения графического интерфейса — выделяем виртуальной машине 120 Мб оперативной памяти;
    Затем проверяем файл с образом диска Kali и создаём под него новую виртуальную машину;
    В настройках сетевого адаптера VM выбираем внутреннюю сеть whonix;
    Включаем систему;
    Настраиваем сеть вручную или с помощью Network Manager-а:
    ip 10.152.152.11
    шлюз 10.152.152.10
    dns-сервер 10.152.152.10


    Перед началом работы необходимо убедиться, что сеть работает нормально, и только потом обновить ОС и установить все необходимые приложения. Разумеется, не отключая Tor. При этом ни в коем случае нельзя устанавливать Guest Additions, так как они синхронизируют время на реальной и виртуальной машине, расшаривают буфер обмена, могут получить доступ к микрофону и вообще содержат в себе довольно много потенциально опасной функциональности.

    Кстати говоря, в нашем случае для усложения отслеживания лучше использовать Tor Browser с правами обычного пользователя, так как стандартный браузер Kali довольно редок и запускается от рута. Для этого устанавливаем sux, который позволит нам запускать графические приложения от имени другого пользователя:
    Код
    wget http://ftp.us.debian.org/debian/pool....0.1-6_all.deb
    dpkg -i sux_1.0.1-6_all.deb


    Скачиваем браузер с официальной страницы проекта. Опять же на всякий случай проверяем целостность скачанного файла (по данной инструкции). Затем создаём пользователя torbrowser, логинимся в него через su и распаковываем архив с правами этого пользователя:
    Код
    tar xf tor-browser-linux64-4.5.3_en-US.tar.xz

    Далее отключаем в нём Tor, так как весь трафик уже анонимизируется на виртуальной машине с Whonix, а Tor через Tor — это вредно и очень медленно. Как это сделать, можно посмотреть тут. Ну и, наконец, запускаем torbrowser:
    Код
    sux torbrowser tor-browser_en-US/Browser/start-tor-browser


    Настройка ssh и sshfs для включенной машины

    Для подключения к гостевой машине через ssh нужно сначала подключиться к Whonix-Gateway, пробросив порт, а потом из Whonix-Gateway подключиться к ssh-серверу, запущенному на Kali. Аналогичным способом можно получить доступ к файлам на Kali с помощью двойного sshfs.

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

    Во время работы

    Перед запуском Whonix Gateway и Kali рекомендую включить VPN и поставить на закачку несколько произвольных торрентов с большим количеством сидов — например, с популярными дистрибутивами Linux-a. Это сильно затруднит проведение атак, основанных на статистическом анализе трафика. Кроме того, чтобы избежать случайной утечки информации, желательно закрыть все посторонние программы.

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


    Tips & Tricks

    Несколько советов, которые обязательно пригодятся тебе в будущем:

    Совет 1. Чтобы сменить цепочку Tor-серверов и выходную ноду, необходимо запустить в консоли Whonix Gateway утилиту arm и нажать клавишу "n".

    Совет 2. Для безопасного обмена данными с выключенной виртуальной машиной можно монтировать её диски с помощью vdfuse:
    Код
    sudo apt-get install vdfuse (для других дистрибутивов может быть иное)
    sudo vdfuse -t VMDK -f /path/Kali-Linux.vmdk /mnt/mountpoint1
    sudo mount /mnt/mountpoint1/Partition /mnt/mountpoint2

    Совет 3. При подключении по ssh из реальной машины можно использовать tmux для одновременной работы с терминалом изнутри и снаружи VM. Для этого необходимо запустить tmux в Kali, подключиться к ней по ssh и выполнить tmux a. Можно также смонтировать папки виртуальной машины с помощью sshfs:
    Код
    sshfs root/user@VM:/ /mnt/mountpoint

    Совет 4. Для приватной анонимной связи и передачи файлов я рекомендую torchat. Его стоит запускать в основной системе, чтобы предотвратить сценарий Tor-over-Tor, утечку и потерю данных. Для связи с группой лиц можно использовать свои irc- или jabber-серверы в качестве onion-ресурсов: рекомендуемый клиент — Pidgin, система криптографической защиты чатов — otr.

    Совет 5. В случае если необходимо анонимно работать с не-TCP-шными протоколами, можно воспользоваться VPN (желательно — не требующей регистрации). Для этого обычно нужно скачать соответствующий конфигурационный файл и использовать команду sudo openvpn config.ovpn.

    Меры предосторожности

    Хотя рассмотренная схема и гарантирует защиту от утечки ip-адреса из виртуальной машины, для настоящей анонимности необходимо соблюдать следующие правила:

    Нельзя подключаться к своим ресурсам;
    Нельзя заходить в аккаунты, которые использовались тобой без Tor-а;
    Нужно помнить, что все нешифрованные данные могут перехватываться exit nod-ой;
    Нельзя допускать прохождение трафика Tor-a через Tor, так ноды двух цепочек могут случайно совпасть, тем самым сокращая эффективную длину цепочки вплоть до 1 машины;
    При передаче файлов нужно защищать их криптографическими и стеганографическими методами, используя утилиты 'gpg' и 'steghide', и анонимизировать их метаданные, например с помощью mat (Metadata Anonymisation Toolkit).

  • #2
    Сообщение от RapiraZ Посмотреть сообщение
    В наше время только ленивый не защищает свои личные данные и не печется о своей приватности. Но мало кто использует для этого полнодисковое шифрование, из-за чего вся защита легко снимается при наличии физического доступа к компьютеру. Сегодня мы разберемся, как можно зашифровать весь жесткий диск, включая загрузчик, оставив себе возможность быстрого уничтожения данных без физического доступа к ним.

    Также мы с тобой рассмотрим, как защитить и анонимизировать сетевой трафик. Про Tor слышали практически все, многие даже использовали его как прокси для отдельных приложений; мы же посмотрим, как эффективно пользоваться им для полной анонимизации целой операционной системы.

    Требования к системе

    Начнем мы наш рассказ с шифрования. Для начала давай сформулируем основные требования к системе, то есть что бы хотелось получить на выходе. Будем считать, что хорошая криптосистема должна шифровать абсолютно всё содержимое жесткого диска так, чтобы его содержимое нельзя было отличить от случайных данных. Загрузчик системы должен состоять из двух частей и находиться на флешке или другом сьёмном носителе. Первая, незащищенная часть, по паролю расшифровываeт вторую, в которой находится ядро системы и ключи от жесткого диска. Система должна допускать быструю смену ключей и паролей без потери данных, а работа с разделами должна быть такой же, как и обычно.

    Алгоритм работы

    С требованиями определились. Теперь давай подумаем о том, как будем этого добиваться. Итак, наша схема будет работать следующим образом:

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


    В то время как обычные средства шифрования защищают только домашний рaздел или оставляют загрузчик на жестком диске — наша схема делает выключенный компьютер практически неуязвимым к снятию информации и протрояниванию компонентов системы, а для уничтожения всех данных на нём достаточно просто уничтожить флешку. Когда компьютер включен, ключи от диска находятся в оперативной памяти, поэтому для надёжной защиты от cold-boot атак необходимо использовать пароль на BIOS/UEFI и входить в режим гибернации, если нет возможности контролировать доступ к компьютеру.

    Подготовка диска

    Ну а теперь перейдем непосредственно к действиям.

    Для осуществления задуманного нам понадобятся:

    Live-DVD с любым дистрибутивом Linux (все команды в статье даны для Debian/Ubuntu);
    Любая свободная флешка размером более 128 Мб;
    Прямые руки.


    Если ты хочешь защитить уже существующую систему, а не ставить новую, необходимо сначала сделать её полный бэкап.

    Для начала нам нужно загрузиться с Live-DVD и определиться с носителями, на которые будем ставить систему. В нашем примере мы работаем c дистрибутивом Debian, а наши носители — жесткий диск /dev/sda и флеш-карта /dev/sdb. После загрузки нам необходимо открыть консоль с правами root и установить необходимые программы — полнодисковое шифрование cryptsetup и загрузчик grub2:
    Цитата
    apt-get install cryptsetup grub2

    Если на жестком диске была какая-то незашифрованная информация, его необходимо полностью перезаписать случайными данными. Для этого сначала определим его размер в байтах:
    Цитата
    fdisk -l /dev/sda

    А затем затрем диск случайными данными:
    Цитата
    openssl rand $размер_в_байтах | dd of=/dev/sda bs=512K

    Теперь нам необходимо сгенерировать ключ шифрования и положить его в /root/key:
    Цитата
    dd if=/dev/random of=/root/key bs=1 count=32

    Итак, форматируем жесткий диск:
    Цитата
    cryptsetup luksFormat /dev/sda key

    В начале диска, зашифрованного LUKS, есть заголовок, в котором перечислены методы шифрования и зашифрованные ключи. Чтобы содержимое диска выглядело как случайные данные, мы забэкапим и затрём этот заголовок:
    Цитата
    cryptsetup luksHeaderBackup /dev/sda --header-backup-file /root/header.luks
    dd if=/dev/urandom of=/dev/sda bs=1 count=1052672

    Открываем наш зашифрованный диск:
    Цитата
    cryptsetup -d=key --header=header.luks luksOpen /dev/sda rootfs

    Далее с /dev/mapper/rootfs можно работать как с обычным жестким диском. При необходимости можно использовать RAID, LVM и даже создать swap-раздел.

    Устанавливаем систему или копируем защищаемую:
    Цитата
    mkdir /mnt/root
    mkfs.ext4 /dev/mapper/rootfs
    mount /dev/mapper/rootfs /mnt/root


    Установка системы

    В рамках статьи мы будем устанавливать Debian Jessie с помощью debootstrap, утилиты для развёртывания базовой debian-based системы в папке другой системы (а скопировать уже существующую систему можно rsync-ом):
    Код
    apt-get install debootstrap
    debootstrap --arch amd64 jessie /mnt/root http://http.debian.net/debian

    Теперь chroot-имся в неё, ставим необходимый софт и настраиваем initramfs:
    Код
    chroot /mnt/root
    apt-get install vim locales linux-image-3.16.0-4-amd64(или более новую версию) cryptsetup
    cp /usr/share/initramfs-tools/hooks/cryptroot /etc/initramfs-tools/hooks
    CRYPTSETUP=y update-initramfs -k all -u

    Обязательно нужно установить пароль на систему, если она новая:
    Код
    passwd


    Настройка системы

    Так как теперь корневая ФС системы при загрузке теперь будет находиться в /dev/mapper/rootfs, надо поправить информацию о файловых системах в fstab:
    Код
    vim /etc/fstab
    /dev/mapper/rootfs / ext4 errors=remount-ro 0 1

    Следующим шагом выходим из chroot и делаем копию initrd:
    Код
    cp /mnt/rootfs/boot/initrd-(текущая версия) /tmp/initrd
    mkdir /tmp/newinitrd
    cd /tmp/newinitrd

    Распаковываем его:
    Код
    zcat ../initrd | cpio -idv

    И подправляем скрипты, запускаемые при загрузке системы до монтирования основных файловых систем. В файле ./scripts/local-top/ORDER необходимо заменить cryptroot на crypto. Содержимое файла ./scripts/local-top/crypto нужно заменить на скрипт, открывающий наш полностью зашифрованный диск:
    Код
    prereqs()
    {
    echo "$PREREQ"
    }
    case $1 in
    prereqs)
    prereqs
    exit 0
    ;;
    esac
    modprobe -b dm_crypt
    modprobe -b aes_generic
    modprobe -b sha256
    /sbin/cryptsetup -d=/etc/key --header=/etc/header.luks \
    luksOpen /dev/disk/by-id/$DISK_ID$ rootfs

    $DISK_ID можно узнать, используя ls -l /dev/disk/by-id/ | grep sda. После этого делаем скрипт исполняемым:
    Код
    ****d +x ./scripts/local-top/crypto

    Затем кладём в initrd ключ и заголовок тома:
    Код
    cp /root/key /mnt/rootfs/initrd/etc/key
    cp /root/header.luks /mnt/rootfs/initrd/header.luks

    Собираем получившийся initrd и кладём его в папку /root:
    Код
    find . | cpio -H newc -o > ../initrd
    cd ..
    gzip initrd
    mv initrd.gz /root/initrd


    Подготовливаем флешку

    Пришло время заняться флешкой, без которой наш зашифрованный диск будет представлять собой несвязанный набор байт. Начинаем с ее разметки:
    Код
    parted
    (parted) select /dev/sdb
    (parted) mklabel msdos
    (parted) mkpart primary 5 100 # Раздел с любой файловой системой, например fat32
    (parted) mkpart primary 100 200 # раздел с initrd и ядром, защищен luks
    (parted) mkpart primary 200 250 #раздел с grub

    Теперь шифруем раздел и устаналиваем на него пароль (как ты помнишь, мы разбиваем флешку на два раздела):
    Код
    cryptsetup luksFormat /dev/sdb2

    Остается настроить загрузчик. Для этого открываем /etc/default/grub и добавляем в конец файла строку GRUB_ENABLE_CRYPTODISK=1. После этого форматируем раздел под загрузчик:
    Код
    mkfs.ext2 /dev/sdb3

    И монтируем его:
    Код
    mkdir /mnt/grub
    mount /dev/sdb3 /mnt/grub

    Устанавливаем GRUB на флеш-карту. Значение --target следует выбрать в зависимости от параметров твоего компьютера. Наиболее универсальный вариант — i386-pc:
    Код
    grub-install --target=i386-pc --root-directory /mnt/grub/ /dev/sdb

    Теперь создадим файл конфигурации /mnt/grub/grub.cfg:
    Код
    set timeout=5
    set default=0
    menuentry "Linux" {
    insmod cryptodisk
    insmod luks
    cryptomount hd0,msdos2
    set root=(crypto0)
    linux /vmlinuz root=/dev/mapper/rootfs ro quiet
    initrd /initrd
    }

    В этом файле мы задаем одну строку меню «Linux», при запуске которой после ввода пароля открывается зашифрованный раздел флешки с ядром системы и ключами от жесткого диска.
    [​IMG]

    После этого открываем защищенный раздел на флешке:
    Код
    cryptsetup luksOpen /dev/sdb2 cryptboot

    Форматируем его и монтируем:
    Код
    mkfs.ext2 /dev/mapper/cryptboot
    mkdir /mnt/cryptboot
    mount /dev/mapper/cryptboot /mnt/cryptboot

    После чего копируем в него ядро и initrd:
    Код
    cp /root/initrd /mnt/cryptboot/initrd
    cp /mnt/rootfs/boot/vmlinuz-(вставьте сюда свою версию) /mnt/cryptboot/vmlinuz
    sync

    Всё готово!

    [​IMG]

    Размонтируем диски и перезагружаемся:
    Код
    umount /mnt/*
    cryptsetup luksClose /dev/mapper/cryptboot
    cryptsetup luksClose /dev/mapper/rootfs
    sync
    shutdown -r now


    Анонимизация ОС

    С шифрованием разобрались. Теперь пришло время поговорить об анонимизации системы.

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

    Настройка

    По шагам:

    Скачиваем Virtualbox, Whonix Gateway и Kali;
    Проверяем ova-файл, устанавливаем и обновляем Whonix по инструкции на сайте;
    Для отключения графического интерфейса — выделяем виртуальной машине 120 Мб оперативной памяти;
    Затем проверяем файл с образом диска Kali и создаём под него новую виртуальную машину;
    В настройках сетевого адаптера VM выбираем внутреннюю сеть whonix;
    Включаем систему;
    Настраиваем сеть вручную или с помощью Network Manager-а:
    ip 10.152.152.11
    шлюз 10.152.152.10
    dns-сервер 10.152.152.10


    Перед началом работы необходимо убедиться, что сеть работает нормально, и только потом обновить ОС и установить все необходимые приложения. Разумеется, не отключая Tor. При этом ни в коем случае нельзя устанавливать Guest Additions, так как они синхронизируют время на реальной и виртуальной машине, расшаривают буфер обмена, могут получить доступ к микрофону и вообще содержат в себе довольно много потенциально опасной функциональности.

    Кстати говоря, в нашем случае для усложения отслеживания лучше использовать Tor Browser с правами обычного пользователя, так как стандартный браузер Kali довольно редок и запускается от рута. Для этого устанавливаем sux, который позволит нам запускать графические приложения от имени другого пользователя:
    Код
    wget http://ftp.us.debian.org/debian/pool....0.1-6_all.deb
    dpkg -i sux_1.0.1-6_all.deb


    Скачиваем браузер с официальной страницы проекта. Опять же на всякий случай проверяем целостность скачанного файла (по данной инструкции). Затем создаём пользователя torbrowser, логинимся в него через su и распаковываем архив с правами этого пользователя:
    Код
    tar xf tor-browser-linux64-4.5.3_en-US.tar.xz

    Далее отключаем в нём Tor, так как весь трафик уже анонимизируется на виртуальной машине с Whonix, а Tor через Tor — это вредно и очень медленно. Как это сделать, можно посмотреть тут. Ну и, наконец, запускаем torbrowser:
    Код
    sux torbrowser tor-browser_en-US/Browser/start-tor-browser


    Настройка ssh и sshfs для включенной машины

    Для подключения к гостевой машине через ssh нужно сначала подключиться к Whonix-Gateway, пробросив порт, а потом из Whonix-Gateway подключиться к ssh-серверу, запущенному на Kali. Аналогичным способом можно получить доступ к файлам на Kali с помощью двойного sshfs.

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

    Во время работы

    Перед запуском Whonix Gateway и Kali рекомендую включить VPN и поставить на закачку несколько произвольных торрентов с большим количеством сидов — например, с популярными дистрибутивами Linux-a. Это сильно затруднит проведение атак, основанных на статистическом анализе трафика. Кроме того, чтобы избежать случайной утечки информации, желательно закрыть все посторонние программы.

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


    Tips & Tricks

    Несколько советов, которые обязательно пригодятся тебе в будущем:

    Совет 1. Чтобы сменить цепочку Tor-серверов и выходную ноду, необходимо запустить в консоли Whonix Gateway утилиту arm и нажать клавишу "n".

    Совет 2. Для безопасного обмена данными с выключенной виртуальной машиной можно монтировать её диски с помощью vdfuse:
    Код
    sudo apt-get install vdfuse (для других дистрибутивов может быть иное)
    sudo vdfuse -t VMDK -f /path/Kali-Linux.vmdk /mnt/mountpoint1
    sudo mount /mnt/mountpoint1/Partition /mnt/mountpoint2

    Совет 3. При подключении по ssh из реальной машины можно использовать tmux для одновременной работы с терминалом изнутри и снаружи VM. Для этого необходимо запустить tmux в Kali, подключиться к ней по ssh и выполнить tmux a. Можно также смонтировать папки виртуальной машины с помощью sshfs:
    Код
    sshfs root/user@VM:/ /mnt/mountpoint

    Совет 4. Для приватной анонимной связи и передачи файлов я рекомендую torchat. Его стоит запускать в основной системе, чтобы предотвратить сценарий Tor-over-Tor, утечку и потерю данных. Для связи с группой лиц можно использовать свои irc- или jabber-серверы в качестве onion-ресурсов: рекомендуемый клиент — Pidgin, система криптографической защиты чатов — otr.

    Совет 5. В случае если необходимо анонимно работать с не-TCP-шными протоколами, можно воспользоваться VPN (желательно — не требующей регистрации). Для этого обычно нужно скачать соответствующий конфигурационный файл и использовать команду sudo openvpn config.ovpn.

    Меры предосторожности

    Хотя рассмотренная схема и гарантирует защиту от утечки ip-адреса из виртуальной машины, для настоящей анонимности необходимо соблюдать следующие правила:

    Нельзя подключаться к своим ресурсам;
    Нельзя заходить в аккаунты, которые использовались тобой без Tor-а;
    Нужно помнить, что все нешифрованные данные могут перехватываться exit nod-ой;
    Нельзя допускать прохождение трафика Tor-a через Tor, так ноды двух цепочек могут случайно совпасть, тем самым сокращая эффективную длину цепочки вплоть до 1 машины;
    При передаче файлов нужно защищать их криптографическими и стеганографическими методами, используя утилиты 'gpg' и 'steghide', и анонимизировать их метаданные, например с помощью mat (Metadata Anonymisation Toolkit).
    Человек тот, что угостил мануалом по реализации супер защищенной и анонимной ос, утверждал, что технология продаваемых сборок один в один! На сколько это правда? Склонен доверять его словам, так как читал описания продаваемых ос и полностью внимательно изучил представленный мануал. Больше всего интересует мнение Бога Информационной Безопасности Вектора, помоги открыть глаза жаждущим прозреть! Большое Человеческое Спасибо)

    Комментарий


    • #3
      RapiraZ, направление мысли верное. Просмотрел первую часть, там есть "недочеты" - недописки. Человек с нулевым знанием принципов линукс и терминала врядли по этой инструкции что-то соберет с первого или десятого раза без знания некоторых нюансов.

      А так Линукс это открытая система, полезная информация о ней по крупицам валяется по всему интернету.

      З.Ы. Для начала неплохо изучить книку по терминалу, а потом уже приступать к выполнению и реализации подсказок из мануала. Вот неплохая - КОМАНДНАЯ СТРОКА ЛИНУКС, Уильям Шоттс.
      Продажа Дебетовых Карт !!! жми сюда !!!
      Telegram: @loo5fooc https://t.me/loo5fooc
      Jabber: loo5fooc@xmpp . jp [email protected]

      Не несу ответственность за сделки не подтверждённые в ЛС форума!

      Комментарий

      Обработка...
      X