Основы безопасности для разработчиков сайтов и администраторов

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

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

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

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

подарок от Patswerk

Защита ваших собственных устройств и данных

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

  1. Используйте безопасную настольную операционную систему. Это самое простое обновление, которое вы можете сделать, если вы еще не используете защищенную операционную систему. Наиболее безопасными операционными системами являются Linux, Unix и BSD. Вы должны использовать одну из этих операционных систем в качестве основной операционной системы.
    Бонус как для разработчиков, так и для администраторов заключается в том, что вы получаете доступ к гораздо большей библиотеке бесплатных инструментов разработки и безопасности, и большинство из них работают лучше, чем их эквиваленты в Windows или OSX. Чтобы по-настоящему работать в параноидальном режиме, выберите более безопасные дистрибутивы Linux, такие как Попугай, Qubesи Хвосты.
  2. Поддерживайте разделение между операционной системой и вашими данными. Если вы используете Linux или Unix, это легко. Вы просто убедитесь, что создали раздел или отдельный жесткий диск для размещения вашего домашнего раздела. Тогда все пользовательские файлы сохранятся при любом количестве установок операционной системы, и в качестве бонуса можно получить доступ из нескольких операционных систем в мультизагрузочных системах.
  3. Используйте файловую систему журналирования, чтобы предотвратить потерю данных в случае сбоя или неожиданного сбоя системы.
  4. Зеркало вашего домашнего раздела. Регулярно создавайте резервные копии важных файлов и используйте управление версиями файлов, чтобы избежать непреднамеренного перезаписи.
  5. Рассмотрите возможность использования облачного резервного копирования (не путайте с облачной синхронизацией, которая далеко не так безопасна и надежна, как подлинная резервная копия). Конфиденциальные данные должны быть зашифрованы перед загрузкой.
  6. Поддерживайте свою систему в актуальном состоянии, никогда не игнорируя исправления безопасности. Системы, использующие непрерывные обновления, имеют то преимущество, что вы всегда будете знать, когда исправления доступны, что нужно исправлять и почему.
  7. Обучите людей в вашей организации быть внимательными к методам социальной инженерии, которые могут быть использованы против них для получения доступа к вашим системам.
  8. Избегайте запуска программного обеспечения из непроверенных источников. При загрузке программного обеспечения из надежных источников, проверьте подписи файлов, чтобы убедиться, что у вас есть подлинная копия.
  9. Поддерживайте физическую безопасность своих компьютеров, особенно во время путешествий. Носить с собой ноутбук везде может быть непрактично, но это лучше, чем позволить злая горничная Повредить ваш BIOS. Если вы не можете носить с собой компьютер, заприте его в закрывающемся кейсе и надежно закрепите в кейсе или другим способом.
  10. Всегда помните, что лучше быть параноиком, чем быть идиотом, которого взломали.

иллюстрация от Призрачные очки Креатив

Защита клиентов

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

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

  1. Постарайтесь информировать своих клиентов о рисках. Большая часть проблемы связана с незнанием того, что существует какой-либо риск быть настороже.
  2. Сообщите корпоративным клиентам, что самая большая угроза, с которой они столкнутся инсайдерские угрозы созданный их собственными сотрудниками и подрядчиками (часто непреднамеренный, но не всегда так). Также убедитесь, что они знают о таких проблемах, как социальная инженерия, серфинг на плечах и дайвинг.
  3. Держите серверы исправленными. Выполняйте регулярные резервные копии.
  4. Сканирование на наличие улик или других злонамеренных действий. Проектирование структуры файлов и папок для максимально простого сайта поможет упростить обнаружение. Знайте, какие файлы должны быть в каждой папке. Если вы видите новые файлы, которые не знакомы или имеют имена, сгенерированные компьютером, это серьезный красный флаг.
  5. Знайте, какие файлы должны быть в папке cgi-bin (для большинства сайтов это не будет файлов), потому что это любимое место для хранения вредоносных программ.
  6. Периодически проверяйте файл htaccess, чтобы убедиться, что он не был подделан.
  7. Код, который вы пишете, вряд ли будет широко использовать строки кодирования и декодирования или содержать сильно зашифрованный контент. Если PHP-файлы содержат необычный код, маловероятно, что это допустимые файлы. Необычные инструкции по кодированию символов также являются бесплатной раздачей. Например, маловероятно, что ваши законные файлы будут закодированы в кодировке Windows-1251.
  8. После подтверждения нарушения измените ваши пароли. Убедитесь, что права доступа к файлам установлены правильно для всех файлов и папок. Монитор показывает, что злоумышленник вернулся. Даже после смены пароля злоумышленники могут получить доступ. Вам нужно быть уверенным, что они этого не делают. Настройте свой сервер так, чтобы он сообщал вам по электронной почте о любых изменениях на сервере.
  9. Помогите своим пользователям правильно выбрать пароли, объяснив им правила понятным для них способом. Вот как большинству людей нравится устанавливать свои пароли: jenny23 Вот как системные администраторы обычно советуют им устанавливать свои пароли: n @ ^ 2z`jGAnd - проблема в том, что первый пароль может быть взломан за считанные секунды, тогда как второй пароль может быть взломан через несколько часов. Также нет никакой надежды на то, что пользователь запомнит более сложный пароль. Вот пример пароля, который может быть взломан несколько раз и никогда не будет забыт: Ialwaysfly @ 40,000feet - Характеристики вышеуказанного пароля включают в себя: длина символов 20, сочетание символов верхнего и нижнего регистра, включает как цифры, так и буквы, включает не буквенно-цифровые символы, легко запоминающиеся. Подобный пример может быть:

    asImove ^ inlife, Iwillnever4getwhereIstartedНа самом деле нет предела тому, насколько креативно вы можете использовать пароли, и есть гораздо больше преимуществ с

    asImove ^ inlife, Iwillnever4 getwhereIstarted по сравнению с n @ ^ 2z`jG. Первый пример (смешанные символы 41) будет взломан до конца, и его легко запомнить, в то время как второй пример (смешанные символы 8) можно взломать в до шести часов и почти невозможно запомнить. Не думайте, что вы можете просто соединить слова вместе, и все будет хорошо, потому что хакеры на это, Вам все еще нужно смешивать регистры и использовать не алфавитно-цифровые символы, но, безусловно, длина важнее сложности как сейчас обстоят дела. Сочетание обоих дает вам преимущество над теми, кто использует только один или другой.

    Большинство атак на основе словаря фокусируются на английском языке, потому что это наиболее широко используемый язык и большинство лучших сайтов для таргетинга (с точки зрения ценности того, что они могут дать) - это сайты, управляемые людьми, которые говорят по-английски. Если вы знаете другой язык, используйте его при создании паролей.

    Так же отлично, как

    Как и in ^ inlife, Iwillnever4, где бы я ни был запущен, все еще не так совершенен, как aMedidaQue ^ enLaVida, nuncaolivdarededondecomence, потому что это добавляет еще один уровень сложности, заставляя взломщика прибегать к грубой силе. Изучение другого языка только для того, чтобы создать более эффективные пароли, может быть немного сложным, так что другая вещь, которую вы могли бы сделать, это просто стать (или остаться) очень плохим в английском, когда вы разрабатываете фразу-пароль. Например:

    asImoov ^ inlyfIwillnevar4getwhereIstarted

    В конечном итоге, вы можете использовать плохо написанные слова на иностранных языках и заменить все гласные гласными Leet:

    4M3d1d4Qu3^3nL4V1d3,nunc40l1vd4r3d3dond3c0m3nc3

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

  10. Убедитесь, что клиенты понимают опасности, связанные с отправкой конфиденциальной информации по электронной почте, Skype и т. Д.

подарок от Хоанг Нгуен

Особая заметка для разработчиков

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

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

Заключительные замечания

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

изображение заголовка любезно предоставлено Джош Уоррен

Богдан Рэнца

Богдан является одним из основателей Inspired Mag, накопив за этот период почти 6-летний опыт. В свободное время он любит изучать классическую музыку и изучать изобразительное искусство. Он тоже одержим исправлениями. У него уже есть 5.