Лучшие практики обеспечения безопасности веб-приложений для малого и среднего бизнеса на 2022 г.

Опубликовано: 2022-04-23

Когда дело доходит до безопасности корпоративного стека, программные приложения являются самым слабым звеном. В отчете The State of Application Security, 2020 Forrester сообщает, что большинство внешних атак происходит либо путем использования уязвимости в программном обеспечении (42%), либо через веб-приложение (35%).

The State Of Application Security

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

Этот переход к компонентам с открытым исходным кодом делает методы обеспечения безопасности более сложными для компаний. Новые фреймворки, такие как контейнеры и API, еще больше усложняют безопасность приложений.

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

Оглавление

Почему важно тестирование веб-безопасности?

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

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

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

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

Каковы различные типы тестов безопасности?

  • Динамический тест безопасности приложений (DAST) . Этот автоматизированный тест безопасности приложений идеально подходит для внутренних приложений с низким уровнем риска, чтобы обеспечить соответствие нормативным требованиям. Сочетание ручного тестирования веб-безопасности и DAST — лучший подход для приложений со средним уровнем риска и критических приложений, в которые вносятся незначительные изменения.
  • Статический тест безопасности приложений (SAST) . Это подход к тестированию безопасности приложений как вручную, так и автоматически. Приложение можно протестировать таким образом, не запуская его в производственной среде. Кроме того, он позволяет разработчикам систематически обнаруживать и устранять уязвимости в системе безопасности программного обеспечения путем сканирования исходного кода.
  • Тест на проникновение . Эта ручная проверка безопасности идеально подходит для приложений, в которые вносятся серьезные изменения. Оценки включают бизнес-логику и тестирование на основе злоумышленников для выявления расширенных сценариев атак.
  • Самозащита приложений во время выполнения (RASP) . В этом развивающемся подходе к безопасности приложений используется ряд технологических методов, позволяющих настроить приложение таким образом, чтобы атаки можно было отслеживать по мере их выполнения и, в идеале, блокировать в режиме реального времени.

Как тестирование безопасности приложений снижает риск вашей организации?

application security

Большинство атак на веб-приложения

  • Техника внедрения SQL
  • Межсайтовый скриптинг (XSS)
  • Выполнение команд удаленно
  • Обход пути

Результаты атаки

  • Контент с ограниченным доступом
  • Учетные записи, которые были скомпрометированы
  • Установка вредоносного ПО
  • Потерянный доход
  • Клиенты теряют доверие
  • Репутационный ущерб
  • А также многое другое

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

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

Чтобы управлять рисками вашей фирмы, вы должны понимать последствия атаки, поскольку их можно использовать для оценки общей серьезности уязвимости.

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

Оценка потенциального воздействия каждого приложения в библиотеке приложений вашей компании до выявления проблемы может помочь в определении приоритетов тестирования безопасности приложений.

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

Какие функции следует проверить во время тестирования безопасности веб-приложений?

Web applications

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

  • Конфигурация приложения и сервера . Дефекты могут быть связаны с конфигурацией шифрования, конфигурациями веб-сервера и т. д.
  • Проверка ввода и обработка ошибок . Наиболее распространенные уязвимости внедрения, включая внедрение SQL и межсайтовый скриптинг (XSS), являются результатом плохой обработки ввода и вывода.
  • Аутентификация и управление сеансами . Уязвимости могут привести к выдаче себя за пользователей. Сильная политика удостоверения личности также имеет важное значение.
  • Авторизация — проверка способности приложения предотвращать вертикальное и горизонтальное повышение привилегий.
  • Бизнес -логика. Этот тип логики необходим для большинства бизнес-приложений.
  • Логика на стороне клиента . Этот тип функций становится все более распространенным на современных веб-сайтах с большим количеством JavaScript, а также на веб-сайтах, использующих другие клиентские технологии (например, Silverlight, Flash, апплеты Java).

10 лучших практик для обеспечения безопасности веб-приложений

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

# 1 Отслеживайте свои активы

Если вы не знаете, что у вас есть, вы не можете это защитить.

Для каких функций или приложений вы используете определенные серверы? В каких веб-приложениях вы используете компоненты с открытым исходным кодом?

Track Your Assets

Как вы думаете, не важно отслеживать ваши активы? Очень важно помнить, какое программное обеспечение работает в каждом приложении — просто спросите Equifax, которая была оштрафована на 700 миллионов долларов за неспособность защитить данные более 145 миллионов клиентов.

Один из клиентских веб-порталов рейтингового агентства был скомпрометирован после того, как не был исправлен компонент с открытым исходным кодом Apache Struts. Компания заявляет, что не знала, что клиентский портал использует уязвимый компонент с открытым исходным кодом.

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

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

# 2 Проведите оценку угроз

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

Как хакеры смогут взломать ваше приложение? Какие существующие меры безопасности у вас есть? Какие дополнительные инструменты потребуются?

Вы должны ответить на эти и другие вопросы в рамках оценки угроз.

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

Вы можете рисковать тем, что ваши стандарты и методы безопасности будут проигнорированы, если вы будете слишком настаивать. Отнеситесь к безопасности серьезно и не торопитесь.

Используйте следующую формулу для оценки риска:

Риск = вероятность атаки x влияние атаки.

Риск также можно рассматривать как вероятность того, что что-то произойдет, по сравнению с тяжестью последствий.

Даже если бы кит упал с неба и раздавил вас, это было бы катастрофой, но маловероятно, что это произойдет.

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

# 3 Будьте в курсе ваших исправлений

Устанавливаете последние исправления в свои операционные системы? Используете ли вы стороннее программное обеспечение? Скорее всего, вы отстаете, то есть подвергаетесь опасности.

Patching

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

Когда уязвимость обнаруживается и ответственно сообщается владельцам продукта или проекта, она публикуется на сайтах и ​​базах данных с рекомендациями по безопасности, таких как база данных уязвимостей WhiteSource.

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

Однако если вы не примените исправление, когда оно станет доступным, вы не получите улучшенной безопасности.

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

# 4 Управляйте своими контейнерами

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

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

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

Для обеспечения безопасности конвейера CI/CD вы должны сканировать уязвимости от начала до конца, в том числе в своих реестрах.

В дополнение к этим сканированиям рекомендации по безопасности приложений при работе с контейнерами также включают важные задачи, такие как подписание ваших собственных образов с помощью таких инструментов, как Docker Content Trust, если вы используете Docker Hub, или Shared Access Signature, если ваша команда использует Microsoft Azure. .

# 5 Расставьте приоритеты в своих операциях по исправлению

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

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

Оценка угроз выполняется на основе серьезности уязвимости (рейтинг CVSS), критичности уязвимого приложения и ряда других факторов.

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

Неэффективно и не представляет высокого риска, даже если рейтинг CVSS уязвимого компонента критичен, если он не получает вызовы от вашего продукта.

Умные стратегии — это те, которые в первую очередь расставляют приоритеты для самых насущных угроз, основываясь на имеющихся факторах, а менее рискованные оставляют на потом.

# 6 Шифровать, шифровать, шифровать

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

Атаки «человек посередине» и другие формы вторжения могут привести к раскрытию конфиденциальных данных, если вы не сможете должным образом заблокировать свой трафик.

Например, когда вы храните пароли и идентификаторы пользователей в виде простого текста, вы подвергаете своих клиентов риску.

Убедитесь, что вы используете SSL с обновленным сертификатом как часть вашего основного контрольного списка для шифрования. Не позволяйте себе остаться позади, поскольку HTTPS является стандартом. Также рекомендуется хеширование.

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

# 7 Управление привилегиями

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

Manage Privileges

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

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

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

№8 Используйте автоматизацию для управления уязвимостями

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

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

Чтобы управлять громоздким процессом тестирования из-за огромного количества уязвимостей, разработчикам требуются автоматизированные инструменты.

Чтобы найти потенциальные уязвимости безопасности в собственном коде, во время разработки можно использовать статическое тестирование безопасности приложений (SAST) и динамическое тестирование безопасности приложений (DAST).

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

В более чем 92% всех современных приложений компоненты с открытым исходным кодом составляют 60-80% вашей кодовой базы. Контрольный список безопасности вашего приложения должен отдавать приоритет защите компонентов с открытым исходным кодом.

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

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

# 9 Тестирование на проникновение

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

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

Хакерские фирмы могут быть наняты, или фрилансеры могут участвовать в программах вознаграждения за обнаружение ошибок, таких как BugCrowd и HackerOne. Ваша компания должна спонсировать вознаграждение за обнаружение ошибок, если вы еще этого не сделали.

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

# 10 Будьте осторожны с токенами

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

Tokens

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

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

Рекомендации по обеспечению безопасности приложений в качестве базовых практик

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

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

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