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

В итоге

В данной главе мы охватили очень много информации, однако это лишь верхушка айсберга. Главный посыл изложенного здесь заключается в следующем: при использовании новых технологий нельзя забывать принципы безопасности, которые были приведены ранее в этой книге. Любой программный ввод требует проверки, будь то в автомобиле или веб-приложении. Все технологии нуждаются в тестировании безопасности, потому что наша обязанность – защита пользователей, данных и систем. Новые технологии могут иметь новые уязвимости, но на них наверняка будут распространяться некоторые из уже описанных здесь концепций.

Упражнения

1. Что означает термин «разделяемая ответственность»?

2. В чем разница между инфраструктурой как услугой (IaaS) и платформой как услугой (PaaS)? Какую из них вам придется самостоятельно обновлять и поддерживать?

3. Почему онлайн-хранилища подвергаются (или не подвергаются) большему риску? Что из триады CIA может быть применимо к онлайн-хранилищу?

4. Назовите один новый риск, которому подвержено облако и которому не подвержены традиционный или локальный центры обработки данных.

5. В чем разница между контейнером, виртуальной машиной и физическим сервером?

6. Назовите одно преимущество инфраструктуры как кода.

7. Назовите одно преимущество DevOps перед каскадной моделью жизненного цикла разработки системы.

8. Какой из современных вариантов инструментария показался вам наиболее интересным? Почему?

9. Какая из современных тактических мер по обеспечению безопасности показалась вам наиболее интересной? Почему?

10. Прочитав эту главу, скажите: чего, на ваш взгляд, не хватает вашей организации? Что и как можно улучшить?

Часть III

Полезная информация о том, как постоянно писать код очень высокого качества

Глава 9. Полезные привычки

Глава 10. Непрерывное обучение

Глава 11. Заключение

Глава 9

Полезные привычки

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

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

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

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

Управление паролями

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

Отмена правил сложности пароля

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

Длинный пароль, созданный с применением энтропии, крайне сложно взломать автоматическим инструментом. Чем больше длина пароля, тем больше времени потребуется на его взлом, поэтому использование максимального количества символов заметно повышает сложность пароля. Здесь стоит обратить особое внимание на энтропию пароля. Нельзя говорить о надежности 64-символьного пароля, который состоит из повторения одного и того же символа.

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

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

Каждая учетная запись должна иметь произвольный пароль максимальной длины, сгенерированный менеджером паролей.



ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ ПАРОЛЕЙ

Боб использовал один и тот же пароль на всех сайтах, на которых регистрировался, пока однажды его учетные данные не попали в чужие руки в результате утечки информации. Боб подписался на сервис HaveIBeenPwned, который прислал ему электронное письмо с предложением сбросить пароль, поскольку его учетные данные были скомпрометированы. Сервис также посоветовал ему приобрести менеджер паролей. В этот момент Боб понял, что почти все его аккаунты находятся под угрозой взлома, поскольку на многих сайтах он использовал одни и те же учетные данные (имя пользователя и пароль). Следующие пару дней он потратил на сброс паролей и их замену на случайные значения, сгенерированные менеджером паролей, – не самый приятный опыт в его жизни.

Назад: Инструменты инвентаризации приложений
Дальше: Использование менеджера паролей