Обновления платформы
Многие разработчики считают платформы и библиотеки, которые они используют для создания программного обеспечения, в первую очередь, определяемыми функциями или личными предпочтениями. Однако выбранная платформа является важным решением не только с точки зрения проектирования и функциональности, но и с точки зрения безопасности . Выбор платформы с современными функциями безопасности и поддержание ее в актуальном состоянии — один из лучших способов обеспечить безопасность ваших приложений.
Уделите внимание выбору платформы
Наиболее важным фактором безопасности при выборе платформы является то, насколько она хорошо поддерживается. Лучшие платформы обеспечивают надежные механизмы безопасности и поддерживаются крупными сообществами, которые улучшают и тестируют их. Не существует программного обеспечения, которое совсем не содержит ошибок или является полностью безопасным, но при выявлении уязвимости мы хотим быть уверены, что она будет устранена или будет быстро предоставлено решение проблемы.
Часто "хорошо поддерживается" является синонимом "современная". Старые платформы обычно либо заменяются, либо постепенно теряют популярность. Даже если у вас есть значительный опыт работы с одним или несколькими приложениями, написанными на более ранних платформах, лучше выбрать современную библиотеку, в которой есть необходимые функции. Современные платформы, как правило, опираются на уроки, полученные ранее итерациями, что делает их выбор для новых приложений формой сокращения поверхности угроз. У вас будет еще одно приложение, чтобы беспокоиться о том, обнаружена ли уязвимость в старой платформе, в которой записываются устаревшие приложения.
Дополнительные сведения о безопасном проектировании и снижении поверхности угроз см. в статье Microsoft Azure Well-Architected Framework — Security.
Платформу нужно регулярно обновлять
Платформы разработки программного обеспечения (например, Java Spring и .NET Core) регулярно выпускают обновления и новые версии. Эти обновления содержат новые функции, устраняют старые, а также часто содержат исправления или улучшения безопасности. Когда мы разрешаем нашим платформам стать устаревшими, она создает "технический долг". Чем дальше устарели, тем сложнее и рискнее будет довести наш код до последней версии. Кроме того, работая со старыми версиями платформ, вы будете подвержены большему количеству угроз безопасности, которые были исправлены в новых выпусках платформы.
Например, с 2016 по 2017 год в платформе Apache Struts было обнаружено более 30 уязвимостей . Команда разработчиков быстро рассмотрела эти уязвимости, но некоторые компании не применяли исправления и заплатили цену в виде нарушения данных. Своевременно обновляйте ваши платформы и библиотеки.
Как обновлять мою платформу?
Для некоторых платформ, например Java или .NET, требуется установка новых выпусков, которые обычно выходят с известной периодичностью. Следите за новыми выпусками и планируйте создание веток вашего кода, чтобы протестировать его перед выпуском. Например, .NET Core поддерживает страницу заметок о выпуске, которую можно проверка, чтобы найти последние версии.
Вы можете обновить более специализированные библиотеки, такие как платформы JavaScript или компоненты .NET с помощью диспетчера пакетов. NPM и Webpack являются популярным выбором для веб-проектов и поддерживаются большинством интегрированных сред разработки или средств сборки. В .NET мы используем NuGet для управления зависимостями компонентов. Так же, как обновление основной платформы, ветвление кода, обновление компонентов и тестирование является хорошим способом проверки новой версии зависимости.
Примечание.
Средство dotnet
командной строки имеет возможность add package
remove package
добавлять или удалять пакеты NuGet, но не имеет соответствующей update package
команды. Однако, вы можете запустить команду dotnet add package <package-name>
в своем проекте и автоматически обновить пакет до последней версии. Это простой способ обновления зависимостей без необходимости открывать интегрированную среду разработки.
Использование встроенной системы безопасности
Всегда проверяйте, какие функции безопасности предлагают ваши платформы. Никогда не развертывайте собственную систему безопасности, если есть стандартная методика или встроенная функция безопасности. Кроме того, старайтесь использовать проверенные алгоритмы и рабочие процессы, так как обычно они тщательно проверяются множеством экспертов на наличие проблем и оптимизируются, в итоге гарантируя надежность и защиту.
Платформа .NET Core имеет множество функций безопасности. Ниже приведены несколько основных начальных мест в документации:
- Проверка подлинности — управление удостоверениями
- Авторизация
- Защита данных
- Безопасная конфигурация
- API расширяемости безопасности
Каждая из этих функций была написана экспертами в их области, а затем избиения с тестами, чтобы убедиться, что они работают должным образом, и только в том виде, в который они предназначены. Другие платформы предлагают аналогичные функции; проверка с поставщиком, предоставляющим платформу, чтобы узнать, что они имеют в каждой категории.
Предупреждение
Написание собственных элементов управления безопасностью, а не использование этих элементов, предоставляемых платформой, — это не только трата времени, это менее безопасно.
Microsoft Defender для облака
При использовании Azure для размещения веб-приложений Defender для облака выдаст предупреждение, если ваши платформы устарели, на вкладке "Рекомендации". Не забывайте проверять ее время от времени на наличие предупреждений, связанных с вашими приложениями.
Итоги
По возможности выберите современную платформу для создания приложений и всегда используйте встроенные функции безопасности, а также следите за обновлениями. Эти простые правила помогут обеспечить вашему приложению надежную основу.