Безопасность домашнего ПК или записки параноика

Kate

Administrator
Команда форума
Сидя за компьютером на работе я полагаюсь на настройки корпоративной политики безопасности, ловкость рук системного администратора и свой здравый смысл. Дома же, я обычный пользователь обычного ПК и могу полагаться только на последний пункт.

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

Компрометация конфиденциальных данных​

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

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

Угроза эксплуатации уязвимости (эксплойты)​

Не секрет, что не существует программ (а к ним относятся и операционные системы) без ошибок. А любая ошибка это потенциальная угроза безопасности. Как результат — существует уйма людей (крэкеров), которые с удовольствием (и прибылью) эти ошибки отыскивают, и заставляют их работать на себя. Путей, которыми эти люди могут эксплуатировать уязвимость программ, такое количество, что все их не знают даже профессионалы компьютерной безопасности, не говоря уж про меня или Вас. Но, что для нас важно из этого понять, так это то, что несмотря на катастрофически большое число способов использовать уязвимость, путей для начала их эксплуатации не так уж много. В рамках домашнего компьютера — это локальная и глобальная сети, съемные носители и… все. Таким образом, обезопасив эти каналы, мы можем быть спокойны за наши программы с их уязвимостями. Как это осуществить хотя бы на минимально доступном уровне, будет показано ниже.

Не все бесплатное полезно​

Не знаю как Вы, а я человек не жадный, но и платить за что попало не люблю. В конце концов, свои деньги я зарабатываю один, а забрать их у меня были бы не прочь многие. Я люблю и очень активно использую свободное ПО, которое во многих случаях весьма неплохо заменяет платные аналоги. Но, всегда ведь хочется большего. И, что уж таить греха, я думаю большинство из нас хоть раз пробовали научить платную программу работать на нас за даром. Благо в сети есть легион добрых людей, в любое время дня и ночи готовых помочь нашим невинным желаниям на абсолютно безвозмездных началах. Не стану повторять про сыр и мышеловку — все и так понятно. Не буду так же рассматривать случаи использования подозрительных «кряков», для активации желанных, но, по недосмотру, платных программ — это слишком банально. Все может быть куда менее очевидно.

Славные программисты из Словакии делают не менее славный антивирус, который мне лично нравится больше всех остальных. Его можно бесплатно скачать с их собственного сервера и бесплатно использовать в течение ознакомительного периода. Для этого достаточно ввести так называемый триальный активационный ключ. По какой-то неведомой мне причине, начиная с самых ранних версий этой программы, для поддержания ее в рабочем состоянии достаточно раз в месяц вводить новый триальный ключ и продолжать ее использование без всяких ограничений. Естественно эти ключи просто так не выдаются самими словаками, но в интернете совершенно не проблематично найти большие списки таких ключей, которые к тому же постоянно обновляются. Так же естественно, что братья славяне ищут и находят подобные сайты, и нещадно заносят их в черный список самого антивируса. Поэтому, когда он работает, зайти на такие сайты не получится — сайт окажется заблокирован. Большинство пользователей, любителей бесплатного, проделывают следующую нехитрую операцию: на время отключают защиту доступа в интернет и посещают указанный сайт, вводят понравившийся ключ и включают защиту обратно. Казалось бы, все вполне невинно, но есть одно но. Пока ваша защита наполовину отключена, с посещенной страницы в браузер ломятся (вот они эксплойты для браузеров), спеша и расталкивая друг друга, «бекдоры» и «трояндаунлоадеры».

Ничто не вечно под луной​

Безвозвратно потерять данные можно без всякой посторонней помощи. Как утверждают некоторые адепты безопасности, если Ваши данные не хранятся в трех совершенно различных местах, то у Вас нет данных. Возможно эти люди всем материалам для головных уборов предпочитают алюминиевую фольгу (особенно листовую) — я не знаю и утверждать не буду, но они говорят дело. Конечно данные данным рознь. Если пропадут милые фотки смешных котят, это с трудом, но пережить можно. Если же пропадет архив с семейными фотографиями — будет очень обидно. А если..., но не будем сгущать краски. Всегда найдутся данные, потеря которых станет тяжелой утратой. Потеря может произойти по разным причинам. От банальной поломки диска, до неосторожного обращения с командой format c:. Ниже будут сформулированы простые правила, которые позволят минимизировать риск потери данных.

Вы помните все свои пароли? Значит у Вас нет ни одного надежного​

Пароли в жизни пользователя ПК — один из важнейших элементов, необходимых повсеместно, от входа в любимую операционную систему, до входа в любимую социальную сеть. Почти любое взаимодействие с сайтами в интернете предполагает участие логина и пароля. Не скажу, что это меня очень огорчает, но свою долю неудобств это безусловно приносит. Пароли нужно придумывать, запоминать и… восстанавливать по случаю очередного приступа склероза. Учитывая необходимость в их огромном количестве (я как-то посчитал сколько паролей я использую на различных сайтах в интернете, в программах, требующих аутентификации и т.п., и не поверил своим глазам — их оказалось более 200), легко начать относиться к ним легкомысленно.

Про перегибы на местах, в виде доменных паролей для суперадмина, а-ля шесть единиц, я упоминать не буду — это случай клинический и интересен только с медицинской точки зрения. Но как показали последние утечки баз паролей из популярных соц. сетей, болезнь носит эпидемический характер. Конечно, отдельное спасибо можно сказать некоторым разработчикам аутентификационных механизмов, для различных сайтов, порой накладывающих драконовские ограничения на пароли, и тем самым, подталкивающих пользователей не заморачиваться с паролями вообще. Но в большинстве случаев мы сами создаем себе проблемы, не обращая должного внимания наиболее существенному механизму для обеспечения безопасности. Когда же жаренный петух по всем законам жанра, прокукарекает, становится слишком поздно пенять на «злобных хакеров», «уведших» ваш пятизначный icq (интересно, сейчас эти номера кому-то нужны?), а заодно с ним пару почтовых ящиков, на которые приходят счета с ваших банковских карт. Итак, болезнь обозначена, а способы ее лечения как обычно будут рассмотрены ниже.

Сделай сам​

Спешу обнадежить нетерпеливого читателя. Мы неспешно добрались до практических приемов, позволяющих обеспечить безопасность домашнего ПК. Так как абстрактные рассуждения уже закончились, примеры будут предельно конкретны. Чтобы мне было проще рассказывать, а Вам проще воспринимать, я опишу то, что лично я делаю, для обеспечения безопасности своего компьютера. Я обладатель типичного домашнего ПК, с установленной Windows 11.

I. Настройка операционной системы по шагам​

  • Сразу после установки системы, я использую учетную запись по умолчанию. Для этого пользователя обязательно следует задать пароль для входа в систему. Пароль может быть не сложным, но он обязателен. Ни в коем случае не задаю подсказку для пароля! Наличие подсказки противоречит самому смыслу существования пароля;
  • отключаю учетную запись Гость;
  • настраиваю получение автоматических обновлений. Тут не нужно скупиться на трафик, даже, если он лимитный. На худой конец можно выбрать режим через Панель управления\Система и безопасность\Центр обновления Windows\Настройка параметров\Искать обновления, но решение о загрузке и установке принимаются мной. Устанавливаю флажок Получать рекомендуемые обновления таким же образом, как и важные обновления, сбрасываю Разрешить всем пользователям устанавливать обновления на этот компьютер;
  • настраиваю параметры брандмауэра Windows через Панель управления\Система и безопасность\Брандмауэр Windows\Настроить параметры. Включаю брандмауэр для всех имеющихся сетей и выставляю флажки Блокирование всех входящих подключений, включая подключения, указанные в списке разрешенных программ и Уведомлять, когда брандмауэр Windows блокирует новую программу. Если на Вашем домашнем компьютере не крутится сервер Вашего сайта, вы не управляете своим компьютером с работы, и вам не нужен удаленный помощник — вы можете не колеблясь поступать так же;
  • внимательно просматриваю список разрешенных программ через Панель управления\Система и безопасность\Брандмауэр Windows\Разрешенные программы. И смело отключаю разрешения для всего, что начинается со слов Дистанционное управление и Удаленное управление. Как говорится, спасибо, я сам. В принципе можно удалить все программы из списка, но тогда придется внимательно читать сообщения о блокировках доступа в сеть для каждой нужной программы и еще для сотни не нужных;
  • настраиваю доступ к интернету и дожидаюсь загрузки и установки всех доступных обновлений для операционной системы;
  • снова настраиваю параметры брандмауэра для новой сети (в моем случае, это VPN без шифрования, сертификатов и вообще PPTP, которым осчастливил меня мой провайдер);
  • устанавливаю антивирус и принудительно обновляю его антивирусную базу. Выставляю максимальный уровень защиты, в т.ч. защиту в реальном времени и anti-stealth. Ничего, мощности современных компьютеров вполне достаточно для этих, немного тяжеловесных, возможностей современных же антивирусов;
  • создаю еще одного пользователя — он потребуется нам позже для прогулок в сети. Но, этот пользователь не простой, а бесправный. Для этого поступаю так: через Панель управления\Учетные записи пользователей и семейная безопасность\Учетные записи пользователей\Управление учетными записями создаю пользователя с обычным доступом (не администратора), скажем с именем Rightless, и конечно же, паролем. Пароль снова не обязан быть сложным. Захожу в систему под новым пользователем, для того, чтобы под него было настроено окружение в Users.— Так как лицезреть этого пользователя на экране приветствия в Windows мне не хочется, я скрываю его следующим образом: создаю текстовый файл h.reg, в котором пишу следующее:
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]
    «Rightless»=dword:00000000

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

II. Настройка безопасного окружения​

На этом этапе я устанавливаю все приложения, которыми буду пользоваться ежедневно. Лично у меня, на домашнем компьютере, этот список невелик: система виртуализации, среда программирования, SVN-клиент, пара-тройка альтернативных браузеров, IM-клиент, VoIP-звонилка, всевозможные редакторы и т.п. мелочь. Во время установки, везде, где можно, отключаю опцию «запускать автоматически». Что, как и когда запускать я предпочитаю решать самостоятельно.

  • Теперь самое важное, настраиваем запуск сетевых приложений от имени учетной записиRightless. Для этого создаю файл ru.cmd со следующим содержанием:
    runas.exe /profile /user:<имя машины>\Rightless /savecred %1
    где <имя машины> следует заменить на то название компьютера, которые Вы указали при установке системы;
  • для всех программ, которые я хотел бы запускать автоматически при запуске Windows, я создаю ярлыки в папке Автозагрузка (для учетной записи администратора). Предположим, что я хочу запускать автоматически VoIP-звонилку. Тогда открываю папку Пуск\Все программы\Автозагрузка. Создаю в ней ярлык для соответствующей программы. После чего для созданного файла ярлыка открываю Свойства и на вкладке Ярлык в поле Объект запись
    <путь к VoIP-звонилке>
    исправляю на:
    <путь к файлу ru.cmd> "<путь к VoIP-звонилке>"
    Теперь эта программа будет запускаться автоматически, причем от имени нашего бесправного пользователя;
  • таким же образом поступаю для всех программ, которые предпочитаю запускать автоматически;
  • для тех программ, которые работают с сетью, но не подразумевают автоматического запуска, поступаю аналогично, только ярлык помещаю в удобное для быстрого доступа место;
  • создаю последний рубеж обороны, когда не спасает ни брандмауэр, ни антивирус. Для этого ограничиваю доступ к папке Автозагрузка. В свойствах папки выбираю вкладку Безопасность, Нажимаю кнопку Дополнительно. В появившемся окне жму Изменить разрешения. В следующем окне убираю флажок Добавить разрешения, наследуемые от родительских объектов. В диалоговом окне жму кнопку Удалить. Если нет ни одного пользователя, добавляю пользователя с правами администратора, т.е. текущего пользователя. Если есть — выделяю его в списке и жму Изменить. В новом окне в списке Разрешения, в колонке Разрешить выставляю флажок Полный доступ, а в колонке Запретить выставляю флажки Удаление, Удаление подпапок и файлов, Создание файлов / запись данных, Создание папок / дозапись данных. Выставляю флажок Применять эти разрешения только внутри этого контейнера и нажимаю Ok. Таким образом папка Автозапуск защищается от изменения зловредами, не умеющими работать с правами (а таких около 100%);
  • совершенно аналогично нужно поступить с ветками Run и RunOnce в реестре. Для этого при помощи regedit отыскиваем ветки
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
    И проделываем с ними все тоже, что было описано выше для папки Автозагрузка;

III. Основы онлайн безопасности​

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

  • Никаких паролей, которые можно запомнить. Ну во-первых моя память не слишком для этого подходит, во-вторых легкий пароль — это его отсутствие. Вместо этого я их записываю (ну, конечно при условии, что собираюсь использовать этот ресурс и дальше на постоянной основе). Записываю пароли не на бумажке, а в простом текстовом файле. Файл храню в зашифрованном виде. Для шифрования использую архиватор, следующим образом: создаю единый архив из текстового файла с паролями и еще одного или нескольких балластных файлов. Для последних важно, чтобы они были большого размера. Подойдут файлы в 5 — 10 Мб, например, mp3. На архив ставлю длинный пароль с одновременным шифрованием имен файлов. Этот единственный пароль можно постараться запомнить, но лучше придумать алгоритм для его генерации и запомнить именно алгоритм. Внимание! При таком походе к хранению паролей, утеря мастер пароля от архива равноценна катастрофе. Расшифровать архив — задача практически невозможная при любой вычислительной мощности, существующей на данный момент;
  • для каждого ресурса, требующего аутентификацию обязательно создаю уникальный пароль;
  • я не способен придумать удовлетворительный пароль и никогда этим не занимаюсь. Вместо этого я использую on-line GUID/UUID генераторы, коих в сети можно найти многие сотни. Как правило, использую вывод в виде base64. В итоге пароли выглядят примерно так: 0HzdM3BwR02p18ZW+e49hA;
  • активно использую менеджер паролей (Bitwarden) в своем браузере, так что практически никогда не открываю заветный файл с паролями и не ввожу их с клавиатуры, а значит снижаю риски их компрометации;
  • никогда не оставляю на серверах никакую личную информацию, если соединение с этими серверами не поддерживает https (и даже, если поддерживает);
  • если собираюсь оставить приватные данные, то внимательно слежу за тем, чтобы форма ввода логина-пароля также была устроена через https с валидным сертификатом, выданным именно владельцу ресурса, т.е. его подлинность должна быть подтверждена (сейчас все современные браузеры умеют это отслеживать);
  • никогда не создаю подсказки для паролей, ибо во-первых для паролей, описанных выше подсказку не придумать, а во-вторых считаю это предложение за гранью разумного. Если форма регистрации все же настаивает, успокаиваю ее любым мусором в данном поле;
  • никогда не указываю секретный вопрос для восстановления пароля, по тем же причинам;
  • никогда не авторизуюсь под своими аккаунтами с «чужого компьютера» или через неизвестную мне публичную точку доступа, даже, если соединение через https. Если же Вам придется сделать это во что бы то ни стало, сразу после входа в аккаунт, включите и подтвердите двухэтапную (или двухфакторную) аутентификацию и при первой возможности смените пароль для данного аккаунта со своего компьютера;
  • раз в 2-3 месяца стараюсь менять пароли в критичных для меня аккаунтах, хотя честно сказать бывает что и забываю;
  • ну и последнее: никогда не пользуюсь (и Вам не рекомендую) активаторами, «кряками», «кейгенами» и прочими нехорошими вещами, загруженными из интернета, на локальном ПК. Если желание ими воспользоваться становиться непреодолимым (ну что поделать, ничто человеческое мне не чуждо), произвожу все операции, начиная от захода на соответствующий ресурс в интернете и до скачивания и запуска подозрительного файла, исключительно внутри виртуальной гостевой машины, с обрубленными каналами, ведущими в сторону хост-машины. Такой подход принято называть «песочницей», и он может очень выручить в условиях суровой реальности.

IV. Бэкапы и версионирование​

Всегда лучше иметь копию критически важных данных. Еще лучше — две копии. И совсем хорошо всю историю версий, особенно, если данные часто и активно редактируются. Для примера — если Вы находитесь в процессе редактирования документа (который может длиться днями, неделями, а то и годами), то создание бэкапов это непреложное условие. Можно использовать для этих целей любую удобную систему версионирования файлов, которая одновременно решит сразу две задачи — непосредственно хранение бэкапов (причем различных версий), возможность последовательной (а, порой, и параллельной правки несколькими авторами и(ли) из разных мест, а также хранение документа более чем в одном месте, т.е. то, что и требуется. Однако такой подход оправдан далеко не всегда. Как правило, бесплатные удаленные репозитории систем версионирования, либо не обеспечивают приватность вообще, либо по тем или иным соображениям на нее нельзя полагаться. Например, в случае работы с документами, имеющими тот или иной гриф секретности (это не обязательно военная тайна, достаточно и корпоративной). В таком случае можно установить систему версионирования локально, например, для системы SVN доступно несколько свободных пакетов, включающих и клиент и сервер. Тем не менее, для домашнего использования я предпочитаю поступать следующим образом:

  • Устанавливаю архиватор, с хорошей поддержкой командной строки;
  • создаю командный файл bu.cmd, примерно следующего содержания (для большей конкретики, покажу на примере архиватора WinRar):
    set _path=
    set _fn=
    call :parse_path %1
    rem вместо f: Вы должны указать свою букву диска, предназначенного для хранения архивов
    set _bupath=f:%_path%
    if exist %_bupath%\*.* goto compress
    md %_bupath%
    rem в переменной _bupath — у нас путь к каталогу архива, а в переменной _fn – имя файла архива
    :compress
    "%ProgramFiles%\WinRAR\Winrar.exe" a -m5 -s -t -r -rr10p -ag-YYYY.MM.DD_(HH.MM) "%_bupath%%_fn%.rar" %1
    goto :_end
    :parse_path
    set _path=%~p1
    set _fn=%~n1
    goto :_end
    :_end
Для того, чтобы этим было удобно пользоваться, желательно добавить соответствующее меню в список возможных действий над файлами. Для этого я предпочитаю поступать так:

  • Создаю файл m.reg;
  • записываю в него примерно следующее:
    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOT\*\shell\Сохранить\command]
    @="\"<полный путь к файлу>\\bu.cmd\" \"%1\""

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

 
Сверху