Про безопасность

Материал из Linkintel wiki
Перейти к: навигация, поиск

Эхх. Меня тут развели на пост про компьютерную безопасность вообще и безопасность в интернете в частности. Сюда я этот пост скопировал и несколько освежил по некоторым пунктам.

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

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

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

То же самое касается безопасности - существует несколько простых правил жизни, позволяющих избегнуть бОльшей части проблем с ней.


NB! Если в тексте вам попадется незнакомый термин - не поленитесь набрать его в google и разобраться, что он означает.


Содержание

Безопасность софта

Начнем с теории: на компе работают программы, которые пользователь инсталлировал, откуда-то взяв. Если пользователю хочется, чтобы эти программы делали только то, что он (пользователь) считает нужным - у него должен быть способ в этом убедиться. Это не означает, что каждый обязан убедиться, просто надо представлять себе как это МОЖНО сделать.

Самое простое и естественное решение - это использовать только Open Source Software. (NB! Open Source это не обязательно Free software!) Тут все линейно - открой исходники и прочитай. Когда Open Source-а по каким-то причинам не хватает - в принципе можно взять и закрытый софт, предварительно убедившись в "порядочности" поставщика. Возможно, придется заплатить денюжку. Качать warez конечно тоже можно, но где гарантия, что он не затрояненый?

Что делать, если "ну позарез надо прямо сейчас вот это г...., но скачали мы его с подозрительного торрента"? Ну минимально - проверить антивирусом(он ведь у вас есть и свежий, так? Нету никакого или старый? - Ну скачайте clamav уже - http://www.clamav.net/). Но я бы и после этого ставил это в виртуальной машине (Они сейчас уже довольно производительные и удобные - смотри VirtualBox http://www.virtualbox.org/, например). Совсем минимум - залить файл на https://virustotal.com/. Критерии разумного устроенв так: 1) Ни один антивирус не определяет файл, как подозрительный, 2) Файл залит давно (некоторые вирусы умеют менять свое тело со временм, уходя от сигнатурного анализа, использующегося большинством антивирусов).

Выбор OS - вопрос провокационный, I use Linux.

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

И еще очень хороший и древний принцип - не плодить сущности без необходимости - прежде чем что-то поставить, подумать, а оно вам надо?

Еще одно - про макросы. Во всяких вордах-экселях водится такая радость, как макросы в документах. Лучше сначала открыть документ с отключенными макросами, убедиться, что в них нет ничего криминального и только потом включать их.

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

Безопасность в интернет

Ну, про интернет надо тоже понимать пару-тройку важных вещей:

1. Большинство протоколов передает трафик незашифрованным.

Что из этого следует? А следует вот что - любые логины/пароли вводимые где угодно, может подслушать любой man-in-the-middle. И не надо думать, что аппаратуру, которая способна перехватить ваш трафик, админят бородатые мужикиб которым есть чем заняться. То есть это-то конечно так, но есть еще и пыонер Вася из соседнего подъезда, который способен организовать шторм на общем комутаторе и получить весь ваш трафик. разхачить его и все вытянуть.

Какие из этого выводы? Любые сколь-нибудь существенные данные нужно передавать по защищенным протоколам - https как минимум.

Степень доверия параноика к https определяется минимальной степенью доверия к корневым сертификатам, установленным в браузере. Домашнее задание по google-фу - выяснить, где в вашем браузере посмотреть этот список и как проверить, что он совпадает с тем, что распространяет вендор браузера.

Если браузер ругается про "Соединение не защищено" и вы не знаете, с чего бы оно так - проверьте часы на локальной машине, соединение по другому каналу, другой браузер, постарайтесь выяснить, где может быть проблема до того, как вбивать логин/пароль.

2. Пароли.

Большая отдельная длинная тема. Про них надо понимать, что: 1) ЛЮБЫЕ словарные слова подбираются автоматически. преобразования кодировок, раскладок клавиатуры и т.п. не очень сильно усложняют задачу. Действительно, словарь русского языка - это, к примеру, 100000 слов. Отклик сайта на обработку одного логина, пусть секунда. У хакера средней руки есть кластер из ~100 машин в ботнете (зараженные компы ничего не подозревающих юзеров) - весь словарь перебирается за 20 минут :) Добавьте словарь английского, слова, написанные в другой раскладке, слова с включенным caps lock ом и московские телефоны - все равно за сутки управятся :). А вот если некоторые буквы в слове сделать заглавными - сложность подскакивает на порядки. В идеале - научится запоминать последовательности произвольных символов. 2) Один пароль на многих сайтах - зло. Ну где у вас гарантия, что сайт неуязвим? Сайт всегда - набор программ и данных, а в программах почти всегда есть ошибки :(((


3. Про почту

Очень полезно понимать две важные вещи:

1. Письмо, отправленное вами может пройти десяток хостов, прежде чем попадет к адресату. Соответственно, кто и где и как его посниффит - предположить невозможно. Это повод не пересылать пароли по нешифрованной почте.

2. От вашего имени почту может отправить любой урод, и протокол SMTP сам по себе НИКАК НЕ ПРОВЕРЯЕТ достоверность источника сообщения. Другое дело, что нормальные почтовые сервера пометят такое письмо, или даже возможно не пустят его в ящик получателя, если урод не придумает способ обойти [DKIM] И если ваш почтовый сервер публикует соответствующие ключи в DNS.

Из этого следует, что при наличии хоть каких-то требований к конфеденциальности передаваемой информации, об этой самой конфиденциальности приходится заботиться дополнительно. Благо есть бесплатные Thnuderbird и GnuPG, позволяющие во-первых подписывать сообщения (тогда принимающая сторона может проверить, что письмо действительно от вас) во-вторых шифровать их - (тогда вы можете быть уверенны, что расшифровать ваше сообщение может только принимающая сторона). Чтобы понять, как это работает можно почитать: http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%BC_%D0%BA%D0%BB%D1%8E%D1%87%D0%BE%D0%BC

4. Анонимность и конфиденциальность - разные вещи

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


5. Бесплатный сыр бывает в мышеловке

Пользоваться открытым WiFi смутного происхождения - дело рискованное. Просто имейте ввиду, что хозяин этого hotspot-а может видеть весь ваш трафик. И в случае компрометации вашей учетки в каком-нибудь онлайн-сервисе призвать его к ответу скорее всего не получится.


6. Мышеловки имеют фундаментальный недостаток

Одна из самых безумных идей, которая может прийти в голову при настройке домашнего маршрутизатора - это оставить его "Free" или не вешать разумно длинного пароля. Хотя бы символов 10-15. И оставить шифрование WEP, например. Связано это с тремя потенциальными угрозами:

1. Так как обычные домашние маршрутизаторы мало кто обычно добавляет в хоть какой-то мониторинг, условный вася, подцепившийся к вашему WiFi, скорее всего, сможет им пользоваться очень долго и в лучшем случае выест вам канал в инет.

2. (Да наплевать, мне не жалко!) А ещё он может заняться противоправной деятельностью. И к кому оператор связи отправит полицию или ФСБ, если будут вопросы? А мониторинга-то нет, и на кого придется переводить стрелки, "если что"?

3. А если он совсем уродец, может попытаться повзламывать ваши домашние компы/устройства. Подсунуть крипто-локер или тупо продать доступ к компу онлайн - возможны любые варианты. Вот оно надо?

Ещё одна безумная идея - выставить в интернет веб-морду от ip-камеры или видеорегистратора.

Дело в том, что такого рода железки оказываются весьма уязвимыми и в них часто находят глюки/баги/уязвимости, которые производители не чинят, а если и чинят, то не утруждаются оповещением абонентов. Потом появляются всякие [Mirai]

Этика и безопасность

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

Взломанная система "в продакшене" - постараться выяснить, что делает злоумышленник и лазейку, через которую он попал в систему. Если это удается - отключать систему, информировать пользователей о том, что данные, скачанные в течение N-ного времени с системы могут быть скомпромитированны, поднимать из бэкапа или переставлять с закрытием дыр, etc. Если линию поведения злоумышленника выявить не удалось, опять же подниматься из бэкапа+ставить какой-нибудь snort чтоб сразу ругался, если чего.

Домашняя/офисная/etc. машина. 1) отрубить инет. 2) чистить хвосты или переставлять/поднимать с бэкапа, 3) информировать контрагентов. Можно, конечно, половить "клиентов", но особенно сильно не спасет - вероятность поймать кого-то лично крайне мала.


Защита от физического доступа

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

А что делать, если хочется защитить данные на жестком диске? Ну, есть несколько идей: 1) На жесткий диск ставится криптованная ФС и вперед 2) На жестком диске живет только рабочий софт. Диск с данными монтируется по сети.

Еще я читал про фирму, в которой комп утром звонил по модему некой абстрактной бабушке, загружал себе на RAM-диск данные, а вечером - заливал их обратно. Вопрос: является ли этот метод более безопасным, чем 1) ?

Да, надо понимать, что механизмы "защиты" вида "А я положу в папочку, в которую никому не придет в голову посмотреть" - извините, но полная лажа. Если специаллист ищет данные, он обычно знает, что искать. И может сформулировать автоматическим инструментам корректную задачу :)


Защита от аппаратных сбоев

Ну, тут отдельная песня.

Надо понимать следующие вещи:

1) Жесткие диски выходят из строя время от времени. Если не хочется потерять с них данные - неплохо изучить тему RAID.

2) RAID без мониторинга - не RAID. Поясню: при падении одного из дисков в RAID у вас есть время на реагирование. Если о падении не узнать во время - узнаешь, когда реагировать будет уже поздно.

3) Наличие RAID НЕ СПАСАЕТ от человеческих ошибок - нужно иметь бэкапы. А документы и прочие особо важные, не очень большие файлы, хорошо хранить в git-е (svn, cvs .... - по вкусу) Бесплатный и удобный софт для управления десятком-другим приватных репозиториев - gitolite-admin. Если хочется плюшечек и вебмордочек - лучше уж подписаться на платный github.

4) Есть эффективные методы хранения инкрементальных бэкапов (zbackup). (Вот тут в эксплуатации возникли проблемы, но времени отстрелить их у меня пока нет. Так что однозначно рекомендовать уже не могу)

Если комп начал сильно жужжать - его полезно вскрыть и пропылесосить. А еще - смазать кулеры. Будет тише и вероятность выхода из строя жестких дисков уменьшится. Если кулеры встали колом или не поддаются смазке - менять.


А что делать, если винт посыпался, а бэкапа нет?

Ну, я бы действовал так:

0. Если данные очень ценные - обратился бы к специально обученным людям - [hddmasters] и вообще хаб [data_recovery]

1. купил/нашел место под ПОЛНЫЙ образ диска

2. слил с неисправного диска на исправный образы всех разделов (если таблица разделов жива) и попробовал бы их (образы) помучать разным восстанавливающим софтом. Мне в свое время понравился ZAR - zero assumption Recovery. Но он не единственен.

Отдельная тема - Защита от аппаратных сбоев сетей

Подборка ссылочек на статьи про безопасность

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты