Предлагаю смотреть на вопрос философски. Многие из нас работают на удаленке. Защищая свою рабочую машину для просмотра котиков, мы возможно избавим от проблем себя и свою любимую компанию. А вот откуда может прилететь, сходу сказать сложно. Будем считать против нас Бох! Ну не тот который всё создал, а тот который специализируется на атаках ИБ, ну и раз он Бох, то он конечно умеет читать мысли и бессмертен.
О чём тут пойдёт речь
Сам я звезд с неба не хватаю, но видел в жизни некоторое дерьмо. Поэтому хочу поделиться своим опытом в создании относительно безопасного рабочего места, которого мне хватает, при всей его аскетичности достаточно комфортно, приятно глазу, и которое, по моему мнению достаточно неудобно для эксплуатации известных мне уязвимостей, заложенных в современные ПК и Linux дистрибутивы.
Если вы кое чего добились и можете представлять кому-либо интерес, советую ознакомится с данным текстом, чтобы иметь представление о возможных методах сохранения своей приватности.
Пишу данный текст, чтобы получить обратную связь от более опытных и искушенных, хотя вряд ли кто-либо будет делиться подобной информацией.
Из чего я исхожу
Современные персональные компьютеры могут вести тайную жизнь. Так вот как я уже говорил, если вы кого-то заинтересовали, вы будете атакованы. Про любые телефоны я вообще молчу. Не спасут вас даже пароли, которые вы держите в голове, какой длинны бы они не были. Бох, вы знаете, он же человека насквозь видит, боги они хоть и бессмертны, но тоже нуждаются в деньгах. Поэтому если вы заинтересуете одного из богов, или не приведи господь, одного из них прогневааете, он до вас доберётся. Чем больше он о вас знает тем проще ему осуществить задуманное, а время у богов ничем не ограничено и оно играет против вас.
Android и iOS
Для краткости скажу, что всё что у вас на телефоне, это 100% публичная информация, всё что вы сфотографировали и даже никому не показали, уже видит Бох. Тут без вариантов. Не зря же РФ создает свои защищенные мобильные устройства. В общем про мобилки долго отнимать времени не буду. Просто старайтесь не вести переписку с телефона, любой звонок уже слушает Бох, а у него свои планы. Они могут с вашими не совпадать.
Больше встречайтесь с людьми, говорите о действительно важном с глазу на глаз. Всё сказанное через телефон это публичная информация. Всё что находится в ПЗУ, ОЗУ и экране мобилки, видит Бох.
Имейте это ввиду, тут ничего не поделаешь.
ПК и Mac
Всё это сорта примерно одной и той же субстанции. О ПК информации больше. Всевозможные Intel ME и аналоги от AMD и есть источник угроз. Технологии это сложные, закрытые и не так много людей точно понимает что происходит под капотом. Есть только небольшая надежда на то, что более открытый ПК, в некоторых случаях, обещает штатное отключение препроцессоров или отключение с помощью программатора. Полное отключение препроцессоров не предполагается, по крайней мере мне нагуглить такого не удалось.
В общем нам нужна аппаратная платформа с минимизированными функциями удаленного контроля. Всегда имел дело с ПК, про Mac сам бы послушал с удовольствием.
Ключи и пароли
Работа с паролями и ключами должна вестись на компьютере у которого физически нет возможности подключаться к сети. Генерируем пароли например pwgen, на сами пароли не смотрим, только столько сколько необходимо чтобы пароль поместить на аппаратный носитель. Разглядывать парольную последовательность, ну такое.
На компьютере подготовленном для работы с ключами ничего не храним. Установка софта на нем только через флешку.
Естественно что ваш аппаратный ключ должен иметь копии. Как много и как их хранить каждый подумает для себя сам.
В качестве второго фактора к паролю везде, где это возможно, используйте FIDO2 или другие методы с применением аппаратных средств.
Установка Linux
Windows на десктопе это геморрой, и совершенно не понятно как его огораживать. Поэтому только Linux.
Я использую в качестве корня BTRFS, в качестве домашнего раздела, смотрите что больше нравится. Btrfs умеет в снапшоты, а еще в моем дистрибутиве можно грузить root в RO режиме. Соответственно сразу после установке всего необходимого перезагружаюсь и сижу в RO.
LVM + LUKS лежит ниже разделов FS. Соответственно весь диск для того, кому он случайно попадет в руки, будет выглядеть как «требующий форматирования».
И так, систему накОтили, секретную фразу сгенерили на отдельном ПК без сети и диск зашифровали. Срочно подключаемся к интернету и начинаем разглядывать котиков. В моем дистрибутиве модуль pam_u2f
не поставляется на ISO образе и его нужно скачать отдельно, пока это не настроено, к сети не подключаемся. Читаем об этом, например тут. Я обычно сохраняю необходимость ввода пароля, мой конфиг выглядит так:
$ cat /etc/pam.d/common-auth
auth required pam_env.so
auth optional pam_gnome_keyring.so
auth required pam_u2f.so authfile=/etc/Yubico/u2f_config cue [cue_prompt=Slava Rossii!!!]
auth required pam_unix.so try_first_pass
Далее идем в /etc/passwd выносим всё непонятное, в общем я по началу обращал внимание только на то, чтобы ни у кого кроме root и моего пользователя не было bash
, все кроме этих двоих nologin
:
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
messagebus:x:498:498:User for D-Bus:/run/dbus:/usr/sbin/nologin
polkitd:x:497:497:User for polkitd:/var/lib/polkit:/usr/sbin/nologin
scard:x:496:496:Smart Card Reader:/run/pcscd:/usr/sbin/nologin
#lp:x:495:495:Printing daemon:/var/spool/lpd:/usr/sbin/nologin
tss:x:98:98:TSS daemon:/var/lib/tpm:/usr/sbin/nologin
systemd-coredump:x:482:482:systemd Core Dumper:/:/usr/sbin/nologin
systemd-timesync:x:481:481:systemd Time Synchronization:/:/usr/sbin/nologin
#tftp:x:480:480:TFTP Account:/srv/tftpboot:/usr/sbin/nologin
srvGeoClue:x:479:479:User for GeoClue D-Bus service:/var/lib/srvGeoClue:/usr/sbin/nologin
qemu:x:107:107:qemu user:/:/usr/sbin/nologin
pulse:x:477:477:PulseAudio daemon:/var/lib/pulseaudio:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/var/lib/nobody:/usr/sbin/nologin
man:x:13:62:Manual pages viewer:/var/lib/empty:/usr/sbin/nologin
#flatpak:x:476:476:Flatpak system helper:/:/usr/sbin/nologin
daemon:x:2:2:Daemon:/sbin:/usr/sbin/nologin
rtkit:x:473:473:RealtimeKit:/var/lib/empty:/usr/sbin/nologin
rpc:x:472:472:User for rpcbind:/var/lib/empty:/usr/sbin/nologin
unbound:x:471:471:unbound caching DNS server:/var/lib/unbound:/usr/sbin/nologin
dnsmasq:x:469:469:dnsmasq:/var/lib/empty:/usr/sbin/nologin
brltty:x:467:467:Braille Device Daemon:/var/lib/brltty:/usr/sbin/nologin
usbmux:x:466:466:usbmuxd daemon:/var/lib/usbmuxd:/usr/sbin/nologin
bin:x:1:1:bin:/bin:/usr/sbin/nologin
#statd:x:465:465:NFS statd daemon:/var/lib/nfs:/usr/sbin/nologin
#sshd:x:464:464:SSH daemon:/var/lib/sshd:/usr/sbin/nologin
nm-openvpn:x:463:463:NetworkManager user for OpenVPN:/var/lib/openvpn:/usr/sbin/nologin
nm-openconnect:x:462:462:NetworkManager user for OpenConnect:/var/lib/nm-openconnect:/usr/sbin/nologin
#colord:x:461:461:user for colord:/var/lib/colord:/usr/sbin/nologin
#fwupd-refresh:x:460:460:Firmware update daemon:/var/lib/fwupd:/usr/sbin/nologin
gdm:x:458:458:Gnome Display Manager daemon:/var/lib/gdm:/usr/sbin/nologin
unclestephen:x:1000:1000:Uncle Stephen:/home/unclestephen:/bin/bash
dockremap:x:454:454:docker --userns-remap=default:/:/usr/sbin/nologin
Из того что нужно срочно снести:
pipewire
, sshd
, avahi-*
, ну остальное сами смотрите.
Далее не плохо бы отрубить ipv6.
В файл /etc/sysctl.conf
добавляем:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Применяем
sysctl -p
Проверяем, что фаервол запущен. На самом деле тут конечно есть о чем поговорить, но у меня именно осознанных знаний, которыми я бы мог поделиться по этому вопросу мало.
Возможно стоит установить один из интерактивных фаерволов, например OpenSnitch, чтобы вообще получить представление о том кто и куда ходит на вашем ПК. Таким образом в список сносимого софта попал avahi, который то и дело соединяется с какими то ненужными мне серверами. Короче вот так.
Далее ставим софт, если всё перед этим сделано верно, можно уже из сети, ставим только то, что необходимо на данной машине для просмотра котиков работы. Ничего лишнего, что не требуется для работы тут быть не должно.
Ператские игори запускаем под виндой на отдельной машине!!!
Когда всё проверено, можно перезагружаться на последнее состояние диска в RO.