Руководство по передовым методам обеспечения безопасности для удаленных команд
Опубликовано: 2022-03-11Всякий раз, когда я говорю своим друзьям, что работаю удаленно на клиента, которого никогда не видел, они спрашивают меня: безопасно ли вам работать удаленно? Мой ответ звучит громко: «Да… но это зависит от того, насколько хорошо вы создадите свою политику безопасности для удаленных сотрудников».
Я живу в Пакистане, где создаю код, который представляет ценность для клиентов на другом конце планеты. Мои клиенты никогда не пожимали мне руку и не видели, где я работаю. И все же от меня ожидают, что секреты и код клиента будут защищены. В мире, где члены вашей команды не знакомы с вашим лицом или вашим голосом, как вы предотвращаете нарушения безопасности? Ответ таков: быть очень осторожным.
Не так давно мы считали, что для обеспечения производительности и безопасности наших приложений нам необходимо запускать их в нашем частном центре обработки данных. Затем появилось облако , и мы воспользовались преимуществами в плане затрат и производительности, которые дает запуск наших приложений на масштабируемой платформе по запросу без поддержки парка серверов в помещении.
Разрешите открыть вам известную тайну:
Это просто чужой компьютер.
Теперь такие компании, как Uber 1 и Stripe 2 , хранят и обрабатывают в режиме реального времени информацию о местоположении клиентов, кредитных картах и платежах на сервере облачного провайдера, придерживаясь при этом строгих стандартов безопасности, таких как соответствие PCI. Они делают это, принимая строгие политики, которые гарантируют, что их производственные данные останутся в безопасности.
Если компании могут гарантировать безопасность всей своей производственной среды, несмотря на то, что они работают за пределами своих частных центров обработки данных, мы, безусловно, можем обеспечить безопасность вашей разработки с помощью удаленных команд разработчиков. В конце концов, целые компании могут работать полностью удаленно. Toptal работает только удаленно, и мы набираем сотрудников.
Что такое «безопасность» и как мне «быть в безопасности»
На протяжении всей этой статьи, когда я говорю о «безопасности», я имею в виду информационную безопасность .
Термин «информационная безопасность» означает защиту информации и информационных систем от несанкционированного доступа, использования, раскрытия, нарушения, модификации или уничтожения. – 44 Кодекс США § 3542
Идеальной безопасности не существует , но «обеспечение безопасности» означает, что вы приняли разумные меры для обеспечения информационной безопасности.
В частности, когда вы говорите «моя рабочая среда безопасна», вы имеете в виду, что вы приняли разумные меры для защиты данных, кода или другой конфиденциальной информации, находящейся в вашем распоряжении, и обеспечили ее целостность. Вы также предприняли шаги, чтобы убедиться, что ваши привилегии на доступ к конфиденциальным информационным системам не будут использованы вами или посторонними лицами таким образом, который нанесет ущерб целям организации, владеющей этой информацией и этими системами.
У удаленных команд гораздо большая поверхность атаки, чем у централизованных команд. В отличие от централизованной команды, где вы можете физически заблокировать конфиденциальную информацию за брандмауэрами и рабочими станциями компании, в качестве удаленного работника вам рекомендуется или даже требуется приносить собственное устройство (BYOD). Более того, поскольку большая часть вашего общения происходит в Интернете, вы гораздо более уязвимы для социальной инженерии и кражи личных данных. Однако при наличии правильного набора политик вы, безусловно, можете свести к минимуму риск взлома.
Для безопасности не существует серебряной пули. Часто существует компромисс между оттенками безопасности и удобства, и вам решать, насколько далеко вы хотите зайти в своих методах безопасности, но помните, что ваша команда защищена настолько, насколько безопасен ее самый слабый член. Давайте рассмотрим некоторые распространенные атаки на систему безопасности, стратегии защиты и, наконец, обсудим пример политики удаленного работника службы безопасности.
Три наиболее распространенных типа состязательных атак
Вы не готовы, если не знаете, с чем вам предстоит столкнуться. Противник может использовать множество стратегий в своей атаке, но большинство из них можно разделить на три категории. Хотя этот список не является исчерпывающим, есть три распространенных типа векторов атак, которые могут использовать злоумышленники:
- Социальная инженерия
- Фишинг
- Вредоносные программы
Социальная инженерия
Социальная инженерия, также считающаяся человеческим взломом, представляет собой практику манипулирования людьми, заставляющую их действовать не в их интересах; это может включать разглашение конфиденциальной информации.
Атаки социальной инженерии могут либо попытаться использовать ваше сочувствие, чтобы заставить вас обойти передовые методы, либо создать ощущение безотлагательности, когда они заставят вас обойти передовые методы, опасаясь негативных действий против вас, если вы не будете следовать.
Примеры социальной инженерии включают в себя:
- Женщина звонит оператору сотовой связи и уговаривает агента службы поддержки сменить чью-то учетную запись, в то время как на заднем плане воспроизводится клип на YouTube с плачущим ребенком.
- Злоумышленник отправляет электронное письмо генеральному директору через адрес электронной почты финансового директора и разрешает перевод средств на сумму 1,8 миллиона долларов.
Фишинг
Фишинг — самый распространенный способ кражи ваших учетных данных. Представьте себе веб-сайт, который выглядит точно так же, как Facebook, на который вы входите, думая, что это настоящий сайт. Фишинг — это когда злоумышленник создает веб-сайт, который выглядит законным, но таковым не является.
Можете ли вы определить поддельный Facebook? Подсказка: его нет на Facebook.com.
Иногда хакеры могут отравить ваш Интернет и внедрить свой веб-сайт в домен Facebook, это называется атакой «Человек посередине», но не волнуйтесь, ваш браузер может предупредить вас об этом.
Целевой фишинг — это еще одна форма фишинга, при которой фишинговая страница может быть создана специально для вас или вашей организации. Это повышает вероятность того, что вы попадетесь на эту удочку, особенно в сочетании с социальной инженерией.
Я расскажу вам историю: когда я учился в школе, кто-то, недавно узнавший о фишинге, создал поддельный веб-сайт Facebook и изменил домашние страницы в компьютерном классе на свое творение. Следующее, что он понял, это то, что у этого человека было триста паролей к учетным записям Facebook. Эта атака была специально нацелена на мою школу и оказалась успешной целевой фишинговой атакой.
И подумать только, что все эти пароли остались бы в безопасности, если бы кто-то удосужился заглянуть в адресную строку.
Заражение вредоносным ПО
Существуют сотни различных типов вредоносных программ. Некоторые из них безобидны или просто раздражают, но некоторые могут быть очень опасными. Наиболее важными типами вредоносных программ, на которые следует обратить внимание, являются:
- Шпионское ПО: тихо устанавливает и записывает ваши нажатия клавиш, экран, аудио и видео.
- Средства удаленного администрирования (RAT): разрешить полный контроль над вашим компьютером.
- Программа-вымогатель: шифрует все ваши важные файлы и заставляет вас платить за ключ дешифрования.
Чтобы намеренно заставить вас установить на ваш компьютер специальное вредоносное ПО, злоумышленники обычно используют социальную инженерию:
- Злоумышленники «теряли» USB-накопители на парковке компании, чтобы получить учетные данные сотрудников.
- Мужчина, который пролил кофе на свое резюме, просит администратора распечатать ему копию чего-то, потому что у него собеседование, в результате чего компьютер компании был заражен вредоносной полезной нагрузкой на USB-накопителе. (Пример из «Искусства человеческого взлома»).
Семь стратегий киберзащиты, которые вам нужны прямо сейчас
Мы обсудили наиболее распространенные методы состязательных атак, но как защититься от них?
Стратегия № 1: Правильное управление паролями
Я ненавижу пароли. Вот, я сказал это. Я твердо верю, что комбинация имени пользователя и пароля — самая слабая из существующих форм аутентификации пользователей. Пароль — это не что иное, как короткая строка символов, сгенерированная худшим из существующих генераторов псевдослучайных чисел: человеческим разумом.
Мне нужно секретное слово, а? А как насчет моего отчества и года рождения, уж точно никто не угадает! - Каждый человек когда-либо
Что еще хуже, так это то, что для удобства люди склонны повторно использовать пароли. Это позволяет кому-то использовать один и тот же пароль для входа в банк и домашнего Wi-Fi, при этом вероятность того, что пароль заканчивается названием его любимой группы . Ужас!
Несколько лет назад я решил сделать следующее:
- Используйте менеджер паролей
- Используйте надежные парольные фразы вместо паролей
Используйте менеджер паролей
Когда я сказал, что есть компромисс между оттенками безопасности и удобства, это не применимо здесь. Либо вы в безопасности и используете менеджер паролей, либо нет. Нет промежуточного. Для обеспечения надежной защиты паролей обязательно используйте менеджер паролей. Я объясню.
- Все ли ваши пароли уникальны?
- Если я узнаю некоторые из ваших паролей, останутся ли остальные в безопасности?
- Были ли все ваши пароли созданы с использованием как минимум 32-битной энтропии?
- Ваши пароли хранятся только в зашифрованном виде?
- Вы прекрасно помните каждый пароль, который вы использовали при регистрации?
- Вы обнаружили утечку пароля на этом сайте?
Если вы ответили «нет» на любой из приведенных выше вопросов, вам нужен менеджер паролей. Хороший менеджер паролей будет случайным образом генерировать ваши пароли и хранить их в безопасности. Неважно, какой менеджер паролей вы используете, главное, чтобы вы им пользовались!
Я использую LastPass, потому что мне нравится, насколько они прозрачны в своих отчетах об инцидентах, возможность делиться своими учетными данными с друзьями и отзывать общий доступ, когда захочу, и мне нравится тот факт, что мобильная синхронизация является частью их бесплатного плана.
Я использую LastPass в течение многих лет, и их проблемы с безопасностью говорят мне, что я вхожу в их 1% лучших пользователей, заботящихся о безопасности.
Надежные парольные фразы вместо паролей
Это может показаться нелогичным, поскольку выше я просил вас использовать менеджер паролей, но есть случаи, когда пароли неизбежны: вам понадобится надежный мастер-пароль для вашего менеджера паролей или для входа в ваш компьютер. В этих случаях используйте безопасную и запоминающуюся парольную фразу с высокой энтропией.
Говоря об энтропии, давайте немного поговорим об этом. О какой «энтропии» я говорю?
Энтропия — это статистический параметр, который в определенном смысле измеряет, сколько информации производится в среднем на каждую букву текста в языке. Если язык переведен в двоичные цифры (0 или 1) наиболее эффективным способом, энтропия H представляет собой среднее количество двоичных цифр, необходимых для одной буквы исходного языка. — Клод Шеннон
Ничего страшного, если эту цитату было трудно переварить. По сути, энтропия для пароля, случайно выбранного из набора, представляет собой общее количество элементов в наборе, выраженное в базе 2. Например: если у вас есть пароль длиной 4 символа, который может содержать только строчные буквы, энтропия для случайно сгенерированный пароль будет 19-битным, потому что:
- В строчном алфавите 26 элементов.
- Строка из 4 символов, состоящая из этих букв, равна
26^4= 456 976. - 456 976, выраженное по основанию 2, равно
log(456,976) / log(2)= 19 бит (округлено до ближайшего бита)
Проблема с паролями с высокой энтропией заключается в том, что их трудно запомнить, например, c05f$KVB#*6y . Чтобы сделать их более запоминающимися, что, если вместо использования отдельных букв мы использовали целые слова? И использовали словарь из тысячи слов? Внезапно наш алфавит становится длиной в тысячу элементов, и мы можем достичь той же энтропии в 7 словах, что и в 11 символах.
Разница теперь в том, что вместо пароля мы используем фразу -пароль, которая намного длиннее.
Следующий комикс XKCD лучше всего объясняет эту концепцию:
Самый простой способ сгенерировать безопасную случайную парольную фразу — перейти сюда.
Стратегия № 2: Используйте многофакторную аутентификацию (MFA)
Двухфакторная аутентификация (2FA) или двухэтапная аутентификация — это все названия одного и того же. Это одна из тех вещей, к которым нужно немного привыкнуть, но преимущества безопасности 2FA намного превышают затраты и лично дважды спасли меня от взломов аккаунта!
Идея MFA проста. Есть три вещи, которые мы можем использовать для вашей аутентификации:
- Что-то, что вы знаете (секрет)
- Что-то, что у вас есть (жетон)
- Что-то, чем вы являетесь (ваша биология)
Использование двух более безопасно, чем использование только одного.
Большинство веб-сайтов поддерживают первый фактор аутентификации, требуя пароль, но все больше сервисов начали поддерживать и второй фактор. Веб-службы обычно не учитывают третий фактор, поскольку он требует специализированного оборудования; как датчик отпечатков пальцев на вашем телефоне.
Если вы являетесь администратором команды, рассмотрите возможность создания обязательной политики для пользователей с настройкой 2FA. Это гарантирует, что компрометация пароля не приведет к компрометации учетной записи.
Есть две популярные формы выражения «что-то, что у вас есть»:
- Ваш телефон
- Ключ U2F
Использование телефона для 2FA
Сразу хочу сказать: не используйте SMS-коды для 2FA. Взлом вашего номера телефона злоумышленниками становится обычной практикой. История почти всегда одна и та же: кто-то с помощью социальных технологий заставил оператора перенести ваш номер телефона на другого оператора. Я знаю как минимум одного человека, который стал жертвой этого нападения.
Вместо этого используйте одноразовые пароли на основе времени (TOTP), также называемые методом «Google Authenticator». Однако вместо использования Google Authenticator я рекомендую использовать Authy, поскольку он шифрует и создает резервные копии ваших токенов 2FA в облаке. Затем вы можете восстановить свои токены 2FA, даже если вы поменяете устройства… на самом деле вы можете использовать одни и те же токены на нескольких устройствах. Это очень удобно.
Использование ключа U2F для 2FA
Это самый простой и самый мощный метод 2FA. У меня есть Yubikey Neo, который я могу использовать с телефоном и компьютером. Чтобы подтвердить свою личность, я просто подключаю свой аппаратный токен и нажимаю кнопку. Мой токен уникален и является физическим токеном; Я могу носить его на связке ключей или в кошельке.
Стратегия № 3: постоянная бдительность
Независимо от того, в какой безопасности вы себя чувствуете, здоровая доля подозрительности — это хорошо. Будьте осторожны с людьми, которые просят вас сделать что-то необычное. Вы получили текстовое сообщение от кого-то с просьбой сбросить пароль? Подождите минутку и начните с ними видеозвонок. Попросите их подтвердить свою личность. Никто не может обвинить вас в осторожности.
Это не паранойя, если они действительно хотят тебя достать. – Гарольд Финч, заинтересованное лицо
Они действительно хотят заполучить вас. Иногда у злоумышленника нет причин делать то, что он делает, кроме желания это сделать.
Однажды мой друг получил сообщение от старого знакомого с вопросом, не хочет ли он стать его «доверенным контактом» на Facebook. Мой друг согласился, и его попросили ответить кодом, который они получат на свой телефон, который мой друг сразу же дал… и именно так моя подруга с помощью социальной инженерии предоставила токен сброса для своей учетной записи Gmail. Если бы моя подруга была бдительна с самого начала, она бы никогда не потеряла свои электронные письма.
Стратегия № 4: Проектирование систем в соответствии с принципом наименьших привилегий
Принцип наименьших привилегий требует, чтобы на определенном уровне абстракции вычислительной среды каждый модуль (такой как процесс, пользователь или программа, в зависимости от субъекта) имел возможность доступа только к той информации и ресурсам, которые необходимы. для его законной цели. - Википедия
Если пользователю, приложению или службе не требуются определенные привилегии, не предоставляйте их им. Из этого принципа можно вывести множество правил, но я приберегу их для следующего раздела, посвященного политикам безопасности.
Позвольте мне рассказать вам историю: однажды я разрабатывал приложение, которое принимало бы биткойн-платежи от пользователей по адресам, созданным специально для них, а затем пересылало их на адрес центрального защищенного хранилища. Если вы не знакомы с тем, как работает биткойн, вот упрощенное объяснение: вам нужен открытый ключ для получения биткойнов (например, номер счета) и соответствующий закрытый ключ для его траты (например, пин-код учетной записи). Номера счетов и пин-коды в биткойнах криптографически связаны и не могут быть изменены.
У меня было несколько вариантов разработки этой системы, но я решил пойти более длинным путем. Я решил, что для побуждения пользователя к оплате приложению не нужен доступ к приватным ключам. Итак, вместо разработки одной большой системы, которая будет принимать и пересылать биткойн-платежи, я сделал две системы:
- Принимающая система: она получала биткойны от пользователей и размещалась в общедоступном Интернете. Он содержал только открытые ключи для адресов.
- Система пересылки: это была полностью независимая и заблокированная система, единственной задачей которой было следить за сетью Биткойн на предмет транзакций по адресам и пересылать их на безопасный адрес. Он содержал как открытые, так и закрытые ключи для адресов.
Спустя долгое время, после того как я перестал поддерживать приложение, система общественного приема была взломана. Я быстро отключил его, но злоумышленнику так и не удалось украсть биткойн, потому что общедоступная система вообще не содержала закрытых ключей.
Стратегия № 5: Используйте лучшие практики здравого смысла
Некоторые практики не нуждаются в объяснении. Вы, наверное, знаете, что они важны, но меня постоянно удивляет, как много людей (включая меня) забывают щелкнуть несколько переключателей. Я оставлю этот контрольный список здесь:
- Включите брандмауэр
- Зашифруйте свой диск
- Включить зашифрованные резервные копии
- Используйте SSH-ключи
- Используйте безопасное интернет-соединение
Включите брандмауэр
Брандмауэр контролирует сетевой трафик, входящий и исходящий от вашего компьютера, на основе набора правил. Он работает, явно спрашивая вас, разрешать ли новым программам доступ к вашей сети, и является вашей первой линией защиты.
Ваша операционная система, скорее всего, поставляется со встроенным брандмауэром. Убедитесь, что он включен.
Зашифруйте свой диск
Полное шифрование диска — это волшебная способность сделать все содержимое вашего диска бесполезным без пароля. В случае потери или кражи вашего ноутбука вы можете быть уверены, что никто не сможет получить доступ к вашим данным. Включить это можно так же просто, как включить FileVault на Mac.
В современных сотовых телефонах также по умолчанию включено полное шифрование диска.
Шифруйте свои резервные копии
Аппаратное обеспечение выходит из строя, это правда жизни. Однажды ваша машина выйдет из строя, или вирус заразит ваш компьютер, или (содрогайтесь) вирус-вымогатель захватит ваш компьютер. Но как прагматичный человек, вы, вероятно, уже настроили резервный поток, я уверен… не так ли?
Однако даже с вашими резервными копиями вы должны сохранять бдительность. Убедитесь, что ваши резервные копии зашифрованы, чтобы даже в случае их утери или кражи вы могли быть уверены, что приняли разумные меры для защиты безопасности доверенных вам данных.
Если у вас есть Mac, приложение Time Machine на вашем Mac автоматически шифрует резервные копии.
Используйте SSH-ключи
Если вы что-то вынесете из этой статьи, прекратите использовать пароли для SSH на машинах. Пароли трудно разглашать, и если они когда-либо утекут, вся ваша машина будет скомпрометирована. Вместо этого создайте ключ SSH, просто запустив ssh-keygen .
Чтобы войти на удаленную машину, просто скопируйте содержимое вашего локального ~/.ssh/id_rsa.pub в ~/.ssh/authorized_keys на удаленной машине. Возможно, вам потребуется перезапустить службу SSH на удаленной машине, но это все.
Добавьте ключи SSH всей вашей команды на удаленный компьютер, и никому больше не придется вводить пароль. Отозвать ключ члена команды так же просто, как удалить ключ с удаленного компьютера.
Используйте безопасное интернет-соединение
Когда вы делитесь интернет-соединением с кем-то, вы делитесь не только своей пропускной способностью. В зависимости от конфигурации веб-сайтов и вашего Интернета они могут, по крайней мере, определить, какие веб-сайты вы посещаете, и в худшем случае прочитать всю информацию, которую вы передаете, включая пароли, сообщения или электронные письма.
Это очень просто включить и очень легко испортить. Примите разумные меры предосторожности, чтобы ваше соединение было конфиденциальным. Убедитесь, что никто не имеет доступа к вашему интернет-соединению.
Используйте WPA2 для защиты паролем своего личного Wi-Fi, а если вы работаете в местной кофейне (или в любом общедоступном Wi-Fi), предположите, что за вами следят, и используйте прокси-сервер VPN.
Я не решаюсь использовать VPN на основе подписки, тем более, что создать собственную VPN так просто. Используйте это однолинейное VPN-решение для своего собственного.
Стратегия № 6: бережно относитесь к секретам
Секреты не предназначены для раскрытия. Вот почему они называются секретами . Несмотря на это, сколько раз вы были виновны в отправке пароля в производственную базу данных PostgreSQL через Facebook Messenger? Убедитесь, что вы всегда:
- Шифрование секретов при передаче
- Чаще их переворачивайте
Шифрование секретов при передаче
Если вам необходимо делиться секретами через такие каналы, как чат, убедитесь, что они зашифрованы. В качестве упражнения посетите свой часто используемый и самый старый чат-клиент. Это могут быть сообщения Facebook или Whatsapp. Независимо от того, что это такое, откройте и найдите фразу «пароль» в своих сообщениях.
Если бы эти секреты были зашифрованы, они не были бы доступны никому, у кого есть доступ к вашим сообщениям.
Часто меняйте секреты
Чем дольше существует секрет или чем чаще им делились, тем больше вероятность того, что он был скомпрометирован. Считается хорошей практикой чередовать секреты и пароли по истечении определенного периода времени.
Стратегия № 7: установить криптографическую идентичность
Это, безусловно, продвинутая стратегия, но я лично не понимаю, почему это не является широко распространенной практикой. Подумайте об этом: ваш коллега считает, что вы были скомпрометированы. Как они передают сообщение настоящему вам? Если кому-то из Интернета нужно поделиться важной информацией об уязвимостях, как он может отправить ее безопасно? Как вы гарантируете, что ваши сотрудники безопасно обмениваются информацией при передаче?
Мой любимый пример — профиль базы ключей Coinbase, где они криптографически подписывают ключи PGP своих сотрудников. Они пошли еще дальше и предоставили своему отделу нормативно-правового соответствия ключ PGP. Серьезно, Coinbase, отличная работа!
Что касается меня лично, то в случае, если у кого-то есть обоснованные сомнения в том, что моя онлайн-личность была скомпрометирована, просто попросите меня подписать сообщение, используя ключ PGP, доступный в моем профиле базы ключей. Я единственный человек, имеющий доступ к этому ключу PGP, и я принял разумные меры предосторожности, чтобы гарантировать, что этот ключ останется в безопасности, даже если другие мои личности будут скомпрометированы.
Если вы сомневаетесь в подлинности сообщения, попросите меня подписать его. Если вам нужно отправить мне секрет, зашифруйте его моим открытым ключом.
Внедрите четкую политику безопасности удаленных сотрудников
Политика безопасности — это определение того, что значит быть безопасным для системы, организации или другого объекта. Для организации это касается ограничений поведения ее членов, а также ограничений, налагаемых на противников такими механизмами, как двери, замки, ключи и стены. - Википедия
Политика безопасности — это обязательное правило или протокол, которым необходимо следовать при выполнении действий. Приведенные выше стратегии полезны, но чтобы им было легче следовать, дайте своей команде простой набор правил. Нарушить безопасность сложнее, когда ваша команда точно знает, что делать.
Давайте обсудим примеры реализации политики безопасности удаленных сотрудников.
Политики для ваших сотрудников :
- Соглашения о неразглашении и контракты: Убедитесь, что ни один сотрудник не имеет доступа к каким-либо конфиденциальным ресурсам без соответствующей правовой базы.
- Контактная информация для экстренных случаев. Удалите полную контактную информацию вашего сотрудника и контактную информацию для экстренных случаев, если ваш удаленный член команды перестанет отвечать.
- Предоставляйте только необходимые привилегии: если члену вашей команды не требуется доступ к определенным областям для выполнения своих функций, не предоставляйте ему доступ. Сотруднику отдела продаж не требуется доступ к вашему репозиторию кода.
- Менеджеры паролей: убедитесь, что у ваших сотрудников есть доступ к менеджеру паролей.
- Строгие политики аутентификации
- Минимальная надежность пароля: лично я ненавижу пароли, а для организаций, где я являюсь администратором, мне требуются пароли, содержащие не менее пятидесяти буквенно-цифровых символов. Придерживаться этой политики тривиально, если вы используете менеджер паролей.
- Обязательный сброс пароля: Убедитесь, что срок действия паролей ваших сотрудников часто истекает, чтобы часто менять секреты.
- Двухфакторная аутентификация : везде используйте 2FA
- PGP-ключи
- Зашифрованные жесткие диски
- Зашифрованные резервные копии
Сотрудники уходят, но они не должны забирать вашу информацию с собой. Адаптируйте эти политики, чтобы сохранить данные даже после того, как ваши сотрудники покинут компанию:
- Корпоративные учетные записи электронной почты. Предоставление вашим сотрудникам учетных записей электронной почты в вашем собственном домене позволяет вам отключать и проверять их сообщения.
- Общение в режиме реального времени. Несмотря на то, что электронная почта — это прекрасно, иногда вашей команде необходимо общаться в режиме реального времени. Убедитесь, что у вашей команды есть централизованный канал Slack или IRC. Это дает вам возможность отключать или проверять их сообщения по мере необходимости.
- Централизованные репозитории кодов. Убедитесь, что весь код компании хранится в репозитории кода компании. Планы компании в отношении общедоступных предложений SaaS, таких как GitHub, хороши, пока вам не понадобится детальный контроль над всем кодом сотрудников. В последнем случае рассмотрите возможность получения собственного экземпляра GitLab.
Политики для защиты вашей инфраструктуры :
- Обновляйте системы: уязвимости в системе безопасности обнаруживаются и исправляются каждый день, и ваша задача — обеспечить применение этих исправлений. Нет ничего хуже, чем обнаружить, что нарушение было вызвано уязвимостью, которая была исправлена несколько недель назад.
- Заблокируйте производственную и промежуточную среды: ни у одного сотрудника не должно быть доступа к рабочей или промежуточной средам. Иногда они просто портятся.
- Создайте мощный поток CI/CD: вы всегда хотите развернуть «хороший» код, и простой процесс CI/CD всегда гарантирует это.
- Защитите благословенный репозиторий. Если у вас автоматизированный процесс CI/CD, убедитесь, что ваш благословенный репозиторий доступен для редактирования только менеджеру проекта.
- Определите процесс проверки: чтобы гарантировать, что «плохой» код не останется незамеченным, создайте процесс проверки. Это может быть так же просто, как потребовать один независимый комментарий «Выглядит хорошо для меня» (LGTM) перед слиянием.
- Ключи SSH: если ваше приложение требует предоставления доступа по SSH, убедитесь, что они используют ключи SSH вместо паролей.
- Подумайте об отказе от BYOD: бюджетная команда может подумать, что BYOD — это лучшее новшество политики со времен безбумажного офиса, но если вы можете себе это позволить, подумайте о том, чтобы предоставить своей команде корпоративные машины, на которых вы сможете применять строгие политики безопасности.
- Зашифрованные резервные копии: ваши данные важны.
Политики при написании кода :
- Никаких секретов в коде: из-за особенностей управления версиями может быть очень сложно удалить данные при добавлении в код, где секретные ключи очень легко найти.
- Bcrypt при хранении паролей: при разработке системы аутентификации используйте bcrypt для хеширования и соли ваших паролей вместо разработки вашей системы или (глотком) хранения в виде простого текста.
- Отфильтруйте конфиденциальную информацию из журналов: будь то ваш глобальный перец, ключ подписи сеанса вашего приложения или попытка входа пользователя, убедитесь, что они не просачиваются в файлы системного журнала, где их может прочитать любой, у кого есть доступ.
- Предоставьте наименьшие требуемые привилегии: если вашему приложению нужны только привилегии
READ, не предоставляйте ему привилегииWRITE. Придерживайтесь принципа наименьших привилегий.
Создайте план реагирования
Нарушения безопасности случаются время от времени, и хотя у вас будет достаточно времени для обучения во время вскрытия, важно то, что существует четкий путь для защиты всех цифровых активов.
Потратьте время, чтобы разработать план действий в случае нарушения безопасности. Рассмотрите свои действия в следующих случаях:
- Вы теряете устройство с конфиденциальными данными.
- К вашей инфраструктуре мог получить доступ посторонний.
- Вы наблюдаете, как кто-то из вашей команды ведет себя странно, непохоже на себя.
- Обнаружена уязвимость системы безопасности.
Что нужно включить в план реагирования:
- Тщательная документация: включите запись экрана, настройте вики, чтобы ваша команда могла делиться всем, с чем они сталкиваются.
- Сдерживание нарушения: в зависимости от масштаба нарушения это может быть так же просто, как отключение учетной записи пользователя, перевод сервера в автономный режим или остановка производства и обращение к вашим пользователям.
- Установите внутреннюю коммуникацию: запустите выделенный канал Slack или найдите способ, чтобы любой мог сообщить о том, с чем он столкнулся.
- Привлечение помощи: позвоните всем командам, пострадавшим от взлома. Это может быть хорошим временем, чтобы связаться с властями.
- Расследуйте: выясните, что было нарушено, в какой степени и что мы можем сделать, чтобы возобновить нормальную работу.
- Возврат к сети: создайте, протестируйте и опубликуйте исправление, чтобы возобновить нормальную работу как можно скорее. Работа ваших пользователей зависит от вашего сервиса, и в тот момент, когда вы сможете гарантировать стабильный и безопасный сервис, вернитесь в сеть.
- Поговорите со своими пользователями: не оставляйте своих пользователей в неведении. Худшее, что вы можете сделать, — это остановить службу, не объяснив пользователям, что происходит. Установить канал обновлений в реальном времени; это может быть так же просто, как использовать Twitter, чтобы держать их в курсе. После того, как инцидент был обработан, опубликуйте отчет о вскрытии, в котором рассказывается о том, что произошло, как это произошло и что вы сделали, чтобы предотвратить подобные нарушения в будущем.
Инциденты с безопасностью случаются. Важно то, как вы справитесь со своим ответом. Один из моих любимых ответов на сегодняшний день был в 2015 году, когда LastPass выдал обязательный сброс мастер-пароля при обнаружении аномальной сетевой активности. Я давно пользуюсь LastPass, и, несмотря на их недавние проблемы с безопасностью, мне нравится, как они реагируют на своих клиентов, ставя их потребности на первое место.
Рекомендуемое чтение
Повторюсь: идеальной безопасности не существует. Важно только то, что вы приложили разумные усилия для обеспечения безопасности ваших данных.
Эти методы обеспечения безопасности должны значительно усложнить взлом вас и вашей удаленной команды.
Если вы хотите прочитать реальную историю беглого хакера, скрывающегося от закона, я рекомендую книгу Кевина Митника «Призрак в проводах ».
Если вы хотите узнать больше о том, как думает другая сторона, я рекомендую прочитать:
- Социальная инженерия: искусство человеческого хакерства Кристофера Хаднаги
- Искусство обмана Кевина Митника и Уильяма Л. Саймона
Мое преступление в том, что любопытство.

