Application security testing – что это такое и как работает
Application Security Testing (далее – AST) – это процесс (или комплекс мер) поиска уязвимых мест в исходном коде. Цель, преследуемая в рамках данного процесса — устойчивость ПО к различным угрозам. Реализация механизмов app security testing осуществляется на разных этапах жизненного цикла приложения: разработки, интеграции, ввода в эксплуатацию и приемки, использования программного обеспечения – с помощью определенного набора технологий, а также средств тестирования безопасности приложений, в том числе универсальных, применяющихся практически на всех этапах.
Технологии и инструменты AST, их особенности и применение
Технологии и инструменты тестирования безопасности по этапам жизненного цикла ПО можно представить в виде таблицы:
Стадия сборки
кода
Предвыпускная
стадия (Pre Prod)
Выпуск в
производство (Prod)
Из таблицы видно, что универсальная технология, которая может применяться на всех этапах жизненного цикла программного обеспечения, – это SAST. Static Application Security Testing, или статическое тестирование безопасности, принято еще называть методом белого ящика. Оно сводится к анализу исходного кода без запуска ПО. Именно это обуславливает универсальность такого подхода. Благодаря тому что для анализа не требуется исполнение кода, реализовать тестирование можно в любой момент:
Learn Application Security in 5 Minutes | EC-Council | CASE
- В процессе разработки ПО – путем встраивания таких решений в IDE.
- На этапе сборки кода, когда происходит подключение сторонних библиотек и ПО, с помощью которых анализируются подключаемые модули, библиотеки, файлы фреймворков, приложения, с которыми разрабатываемое ПО будет взаимодействовать. Это обеспечивается за счет возможности анализа SAST-инструментами некомпилированного и скомпилированного кода (при использовании анализаторов байтового, а также двоичного кода).
- На стадии верификации кода и на предвыпускном этапе с помощью SAST анализируется как уже готовый скомпилированный код, так и фрагменты, над которыми еще ведется работа.
- На стадии выпуска в производство SAST-анализаторы могут использоваться разработчиками, а также теми, кто эксплуатирует ПО. Главное преимущество этих инструментов для конечных пользователей – простота. Для работы с ними и анализа результатов не требуется опыт в разработке. Анализировать приложения сможет специалист по информационной безопасности компании или другой ответственный эксперт, на которого возложены такие функции.
При проведении app security test методом белого ящика выявляются различные виды угроз. SAST-анализаторы обнаруживают синтаксические и математические ошибки, проблемы с проверкой кода, небезопасные ссылки на сторонние приложения, библиотеки, модули и так далее.
При разработке Solar appScreener мы выбрали именно SAST-подход, чтобы решение могли использовать на всех этапах жизненного цикла не только разработчики, но и эксплуатирующие ПО компании.
Application Security 101 — What you need to know in 8 minutes
Dynamic Application Security Testing, или динамическое тестирование, называют методом черного ящика. Данная технология позволяет обнаружить уязвимости в работающем приложении, выявляет его слабые места. Такие инструменты проверяют выполняемый код и выявляют широкий спектр проблем, связанных с запросами/ответами приложения, использованием памяти, уязвимостями при использовании cookies, сеансами пользователя, исполнением кодов внешних компонентов и модулей, аутентификацией пользователей, внедрением данных (инъекциями).
Таким образом, при выполнении application security test с помощью DAST-инструментов приложение (включая отдельные его компоненты, которые требуется проанализировать) должно быть запущено (код должен исполняться). Поэтому внедрить такой инструмент в процесс разработки можно не всегда (только в зависимости от используемой разработчиком модели). Кроме того, Dynamic Application Security Testing требует немалых временных затрат, в отличие от SAST, отчего на проверку может уйти значительно больше времени.
Инструменты DAST редко применяют пользователи ПО. Для работы с ними требуется персонал с опытом по проведению тестирования на проникновение. Специалист по информационной безопасности без соответствующей подготовки работать с ними не сможет.
Интерактивное тестирование безопасности, или Interactive Application Security Testing, сочетает черты двух предыдущих технологий, благодаря чему компенсируются недостатки, присущие каждой из них. Такие инструменты могут использоваться практически на всех этапах (при разработке – с оговорками, в зависимости от модели).
IAST-анализаторы выполняют статический анализ, а также тестируют исполняемый код. Это реализовано за счет выполнения анализа потоков данных, конфигурации приложений, подключаемых компонентов, библиотек, фреймворков, запросов, внешних/внутренних подключений. IAST – довольно мощная, эффективная технология. Но все-таки конечные пользователи ПО могут испытывать трудности с ее внедрением – для работы с результатами динамического тестирования требуются специалисты с опытом проведения тестирования на проникновение. Таким образом, ее использование рекомендовано уже на более поздних этапах зрелости компании, задействованной в проверках кода.
Под SCA (Software Composition Analysis) понимают анализ сторонних компонентов ПО. Его цель – проверка уязвимостей в сторонних компонентах, используемых в составе ПО. Данная технология может применяться как на этапе разработки, так и при сборке приложений в завершенный экземпляр ПО. Для реализации SCA используются утилиты, а также иные решения, которые собирают информацию о зависимостях и находят возможные уязвимости, связанные с ними. В зависимости от инструмента, поиск уязвимостей происходит при непосредственном анализе сторонних компонентов (в том числе при использовании SAST-технологии) либо путем сбора информации из различных баз.
Run-time Application Security Protection – это обеспечение безопасности программы во время ее запуска (при выполнении кода). Эту технологию еще называют самозащитой приложений. Инструменты RASP внедряют в ПО при разработке, а используют уже на этапе эксплуатации. Они анализируют код, трафик, поведение пользователей, запросы, а также другие данные, обнаруживают и предотвращают киберугрозы.
Тем самым обеспечивается выполнение application security testing в режиме реального времени при использовании ПО. Благодаря RASP реализуется эффективная защита приложений. Но есть минус – такие инструменты могут существенно влиять на быстродействие ПО, из-за чего их повсеместное внедрение вызывает проблемы.
Как мы видим, процесс RAST оказывается многоуровневым. Таким образом, можно сделать вывод, что в вопросах обеспечения безопасности приложений не стоит надеяться только на разработчиков. Пользователям есть смысл подумать и о внедрении инструментов для самостоятельного анализа, таких, например, как SAST.
Источник: rt-solar.ru
Application Security Manager. Разработчик или безопасник?
Большинство успешных атак организации реализуется через уязвимости и закладки в софте. К счастью, сканер уязвимостей ПО уже рассматривается компаниями не как что-то экзотическое, а как необходимый элемент инфраструктуры защиты. Если при небольших объемах разработки можно использовать сканер as is, то когда объемы большие, приходится автоматизировать процесс.
Но кто должен им управлять? Решать, как часто проверять релизы? Заниматься верификацией уязвимостей? Принимать решение, наложить ли вето на релиз и отправить код на устранение уязвимостей? И отвечать на многие другие вопросы.
Вот тут на авансцену выходит Application Security Manager — менеджер по безопасной разработке ПО.
Но где сыскать такую редкую птицу или как вырастить самим? Артем Бычков, менеджер по безопасности приложений АО «Райффайзенбанк», и Даниил Чернов, руководитель направления Solar appScreener компании «Ростелеком-Солар», рассказывают, какие требования к Application Security Manager диктует практика разработки в российских компаниях.
Кто такой Аппликейшн Секьюрити Менеджер
Организации рано или поздно приходят к осознанию необходимости найма такого человека в команду. В частности, потому что никто из имеющихся в компании специалистов на эту роль напрямую не подходит. Разработчики? Их опыт работы связан именно с разработкой софта – транслировать найденные уязвимости в риски ИБ, а тем более риски для бизнеса для них весьма затруднительно.
Безопасники? Для них проблематично погружение в тонкости разработки: для верификации уязвимостей необходимо умение разбираться в программных кодах на разных языках, что требует наличия серьезного опыта разработки.
Давайте рассмотрим, какие задачи возникают в ходе реализации процесса безопасной разработки, которые предстоит решать Аппликейшн Секьюрити Менеджеру (АСМ).
У читателя может сложиться мнение, что работа АСМ связана исключительно с проведением проверок программных разработок на предмет соответствия требованиям безопасности. Но вопросы безопасности возникают на различных этапах жизненного цикла системы, начиная от проектирования и заканчивая развертыванием на продуктив. Существуют различные модели построения цикла безопасной разработки (Software Security Touchpoints, SDLC и другие) и разные методики встраивания этих практик в процесс (в зависимости от применяемого подхода – waterfall, agile). Но все они сходятся в ключевых моментах: о безопасности нужно думать на всех этапах жизненного цикла системы.
Очевидно, что в рамках более-менее крупного проекта один человек вряд ли сможет выполнить работы на всех этапах. Редко кто в одиночку способен разработать требования к безопасности приложения, выполнить ревью его архитектуры и проверить результат работы аналитиков, провести аудит безопасности кода, убедиться, что во время тестирования были проведены необходимые тесты защищенности приложения и что система была безопасно развернута и правильно сконфигурирована.
Более того, часто эти активности выполняются представителями разных команд и подразделений. Чтобы весь механизм работал, как нужно, движущей силой процесса должен стать АСМ. Задача АСМ – обеспечить выполнение практик безопасной разработки, либо своими силами, либо делегируя определенные задачи профильным специалистам. Однако, исходя из нашей практики, просто раздать задачи ответственным и почивать на лаврах у АСМ не получится.
Какие требования предъявляются к АСМ
Во-первых, от него требуется понимание проекта, который он сопровождает. Это особенно важно в agile-разработке, когда, в отличие от ватерфольной модели, у тебя нет 2-х месяцев на то, чтобы провести ревью перед релизом. От АСМ зависит, например, как сформированные на этапе проектирования требования будут интерпретированы командой, как лягут на архитектуру, являются ли они вообще реализуемыми и не создадут ли серьезных технических проблем в будущем. Чаще всего АСМ является основным потребителем, интерпретатором и оценщиком отчетов автоматизированных инструментов и аудитов, сделанных третьими сторонами. Именно АСМ отфильтровывает нерелевантные и ошибочные результаты, оценивает риски, участвует в процессах управления исключениями и выработки компенсирующих мер.
Приведем пример из жизни: аудит или сканер исходного кода выявил в проекте использование небезопасной хеш-функции (MD5). Политика компании формально настаивает на том, что использовать ее нельзя, и вендор согласен заменить функцию на более безопасную за 3 месяца и крупную сумму. Нюанс состоял в том, что в данном случае неустойчивость хеш-функции к коллизиям никак не влияла на безопасность системы, так как функция не использовалась для защиты целостности. Формальный подход в данном случае и замена одной функции другой привел к необоснованному затягиванию сроков вывода проекта в продуктив и значительным затратам, дав нулевой выигрыш в безопасности.
Во-вторых, в дополнение к первому, АСМ должен обладать знаниями из различных областей: нужно понимать процессы разработки и принципы информационной безопасности. Важны в том числе и «хард-скилы», ведь очень тяжело критически оценивать результаты работы профильных специалистов и автоматизированных инструментов, если не можешь прочитать код, не понимаешь возможных путей эксплуатации уязвимостей.
Наверняка многие сталкивались с ситуацией, когда в отчете по анализу кода или пентесту фигурирует критическая уязвимость, но разработчики не согласны с этим (при этом они, как правило, тоже хотят создать безопасную систему) и указывают на то, что аудиторы не смогли провести эксплуатацию данной уязвимости. Как оценить, кто прав в подобной ситуации? Без технических навыков объективно разрешить спор будет сложно. Если процесс разработки безопасного ПО строится руками внешней организации и/или по сервисной модели – кто и как будет оценивать работоспособность «технических» практик?
Еще один жизненный пример: внедряется новый инструмент разработки, его работоспособность проверяется на референсном проекте, после чего он передается в промышленную эксплуатацию. К нему постепенно подключаются проекты, отрисовывается красивый зеленый дашборд… и тут происходит ИБ-инцидент.
Как выясняется, использованная «дыра» должна была быть обнаружена еще на этапе динамического анализа. Но этого не произошло, потому что… никто не посмотрел, а как работает этот топовый сканер уязвимостей, обычно выдающий прекрасные результаты, с SPA-приложениями на новом JavaScript-фреймворке. Оказалось, что он не может «увидеть» динамически генерируемую форму аутентификации и сделать нужные проверки. И никто не обращал на это внимание, поскольку все работало. У разработчиков не было потребности вникать в специфику функционирования сканеров, чтобы обратить на это внимание, а безопасники не видели критических отличий между разными подходами к веб-разработке.
Где взять такого специалиста
Кто изучал рынок, тот наверняка столкнулся с острым дефицитом специалистов по безопасности приложений. Как правило сценарий выглядит следующим образом: внутренние заказчики составляют требования к кандидату и передают их в кадры. Если требования жёсткие, то по результатам свободного поиска на выходе компания получает ноль кандидатов, так как готовые специалисты крайне редко вывешивают резюме в открытый доступ. Если они и меняют работу, то это чаще всего происходит легко и непринужденно через имеющиеся контакты. Как быть?
Можно попытаться переманить профессионала из других компаний, но этот путь по разным причинам не всегда приемлем. Все чаще на рынке появляются конкурсы на аутстаффинг АСМ, что вполне успешно позволяет закрыть вопрос за счет аренды экспертов у сервис-провайдера.
- выходцы из разработки, увлекающиеся или желающие развиваться в сфере безопасности;
- безопасники-технари, знакомые с разработкой и безопасностью ПО и желающие глубже погрузиться в эту тематику.
Профессиональным же безопасникам придется акклиматизироваться, меняя сложившиеся привычные подходы к организации работы и перенимая культуру в командах, занимающихся разработкой. Однако, если специалист по безопасности пишет код и знаком с процессами разработки, то в команду он вольется быстро и просто.
Контроль безопасности разработки – это в первую очередь бизнес-процесс, для успешного функционирования которого необходимо слаженное взаимодействие всех участников команды. «Сердцем» этого процесса является квалифицированный АСМ – он и вдохновитель, и двигатель направления, и исполнитель многих задач, и контролирующий менеджер, и много кто еще. В общем, и чтец, и жнец, и на дуде игрец. Найти или вырастить такого специалиста непросто, но если все же удастся, то будет всем счастье.
Мир сходит с ума, но еще не поздно все исправить. Подпишись на канал SecLabnews и внеси свой вклад в предотвращение киберапокалипсиса!
Источник: www.securitylab.ru
Application Security
Это облачное решение сетевой безопасности, предназначенное для малых и крупных предприятий, помогает защитить бизнес-приложения и данные.
Детали продукта
Обеспечивает профилактические и комплексные меры защиты от несанкционированного доступа и атак вредоносных приложений. Решения безопасности F5 защищают приложения и API в различных архитектурах, облаках и экосистемных интеграциях, снижая риски и операционную сложность, ускоряя цифровые инновации.
Контакты
United States
Характеристики
Стартовая стоимость
Бесплатная версия
Пробный период
Операционные системы
Cloud, SaaS, Web
Обучение
Документация
Персонально
Поддержка
Рабочее время
Возможности
Сетевая безопасность
VPN / Виртуальная Частная Сеть
Брандмауэры
Контроль доступа
Мониторинг активности
Отчетность / Аналитика
Реакция на угрозы
Система обнаружения вторжений
Сканирование уязвимостей
Кибербезопасность
AI / машинное обучение
Белый список / Черный список
Поведенческая аналитика
Проверка IOC
Сканирование уязвимостей
Токенизация
Управление конечными точками
Управление происшествиями
Выберите самые важные функции
Бесплатная консультация по подбору ПО от наших специалистов
Бесплатная консультация
Заполните небольшой опрос и наши специалисты подберут для вас ПО
Подобрать ПО
Аналоги Application Security
Splunk Enterprise
Компания Splunk помогает вам исследовать, контролировать, анализировать и принимать необходимые действия в отношении все.
Infrascope
от NGR Softlab
Infrascope — программа для управления и защиты привилегированного доступа, мониторинга и протоколирования действий в кор.
PT ISIM
от Positive Technologies
PT ISIM — программно-аппаратный комплекс глубокого анализа технологического трафика.
Secure Web Gateway
от Zecurion
Сетевая безопасность и веб-прокси. URL-фильтрация с более чем 1 млн веб-сайтов.
PT Network Attack Discovery
от Positive Technologies
Positive Technologies Network Attack Discovery — система глубокого анализа сетевого трафика (NTA) для выявления атак на .
Log360
от ManageEngine
Log360 — это инструмент управления журналами, который позволяет смягчить угрозы безопасности и защитить локальные, облач.
LINX PROTECT
Система сетевой защиты от спам-активностей, кражи учетных записей сотрудников компании, поиска скрытых директорий
PT XDR
от Positive Technologies
PT XDR — решение для выявления киберугроз и реагирования на них.
InfoWatch ARMA
от InfoWatch
InfoWatch ARMA — российская система для обеспечения кибербезопасности АСУ ТП.
Популярные сравнения с Application Security
Популярные сравнения с Application Security
Компания Splunk помогает вам исследовать, контролировать, анализировать и принимать необходимые действия в отношении всех данных вашей организации.
от Kaspersky Lab
Локальная репутационная база, повышающая безопасность изолированных сетей.
от SiteLock
Облачное решение, позволяющее предприятиям обнаруживать и предотвращать киберугрозы с помощью сканирования веб-сайтов, удаления вредоносных программ и многого другого.
от Positive Technologies
PT ISIM — программно-аппаратный комплекс глубокого анализа технологического трафика.
от ExtraHop Networks
Программное решение для анализа безопасности сетевого трафика предприятия
от Positive Technologies
Positive Technologies Network Attack Discovery — система глубокого анализа сетевого трафика (NTA) для выявления атак на периметре и внутри сети.
от Positive Technologies
PT XDR — решение для выявления киберугроз и реагирования на них.
Система сетевой защиты от спам-активностей, кражи учетных записей сотрудников компании, поиска скрытых директорий
от ООО «Газинформсервис»
Комплексная и многофункциональная защита информационных ресурсов рабочих станций и серверов
Application Security с Splunk Enterprise
Application Security с Kaspersky Private Security Network
Application Security с SiteLock
Application Security с PT ISIM
Application Security с ExtraHop Reveal(x) 360
Application Security с PT Network Attack Discovery
Application Security с PT XDR
Application Security с LINX PROTECT
Application Security с Блокхост-Сеть 4
Application Security с BSP Deception
Application Security с Log360
Application Security с Secure Web Gateway
Application Security с Traffic Inspector Next Generation
Application Security с InfoWatch ARMA
Application Security с Infrascope
Application Security с ESET Endpoint Security
Application Security с Xello Deception
Application Security с Wallarm WAF
Application Security с Next Generation Firewall
Application Security с Astra Security
Application Security с FortiGate NGFW
Application Security с XSpider
Application Security с Minerva
Application Security с PT Sandbox
Application Security с MaxPatrol 8
Application Security с Dr.Web Gateway Security Suite
Application Security с Dr.Web Mail Security Suite
Application Security с Dr.Web Desktop Security Suite
Application Security с PT Application Firewall
Application Security с СЗИ ВИ Dallas Lock
Application Security с Протей. SMS Firewall
Application Security с SafeERP
Application Security с Гарда Монитор
Application Security с vGate
Application Security с Astra Linux Special Edition
Application Security с БДМ
Application Security с Cisco Identity Services Engine
Application Security с Гарда Аналитика
Application Security с SkyDNS
Application Security с ViPNet EndPoint Protection
Application Security с KasperskySmall Office Security
Application Security с Kaspersky Secure Connection
Application Security с VMware Horizon
Application Security с UserGate SUMMA
Application Security с Циркон 37С
Application Security с Efros Config Inspector
Application Security с Alertix
Application Security с Comodo cWatch
Application Security с Cmd
Application Security с Violet
Application Security с SpyHunter
Application Security с AVG Internet Security Business Edition
Application Security с Kaspersky Endpoint Security
Application Security с McAfee Network Security Platform
Application Security с Microsoft Remote Desktop
Application Security с Электронный замок «Витязь»
Application Security с SafeNode System Loader
Application Security с Ankey ASAP
Application Security с Интернет Контроль Сервер
Application Security с ЗАСТАВА-Офис
Application Security с БУЛАТ SD-WAN
Application Security с Windows Server
Application Security с Malwarebytes
Application Security с Dr.Web Security Space
Application Security с Dr.Web Enterprise Security Suite
Application Security с Acunetix
Application Security с Aruba ClearPass
Application Security с WildFire
Application Security с Ideco UTM
Application Security с LogMeIn Pro
Application Security с Data-Centric Audit and Protection
Application Security с Genesis
Application Security с AVSOFT ATHENA
Application Security с Cisco Secure Endpoint
Application Security с Циркон 37К
Application Security с ZoneAlarm Pro
Application Security с Stronghold Antivirus
Application Security с HP Sure Recover
Application Security с Cloudflare
Application Security с XG Firewall
Application Security с VMware Health Analyzer
Application Security с Spiceworks Network Monitor
Application Security с Ozon
Application Security с Sentinel
Application Security с ViPNet Client 4
Application Security с HP Sure Click
Application Security с Microsoft SQL Server
Application Security с Nessus
Application Security с Cisco Data Center
Application Security с Artica Proxy
Application Security с Ivacy
Application Security с ARIA SDS Platform
Application Security с 1IDM
Application Security с Efros Access Control Server
Application Security с SurfSecure
Application Security с PineApp Mail Secure
Application Security с NANO Antivirus
Application Security с Webroot SecureAnywhere DNS Protection.
Application Security с REVE Antivirus
Application Security с Avanpost FAM
Application Security с bitdefender GravityZone
Application Security с КриптоПро CSP
Application Security с SecureLink
Application Security с Adguard
Application Security с BufferZone
Application Security с Матрица доступа
Application Security с Norton Security
Application Security с STOPzilla AntiVirus
Application Security с NordVPN
Application Security с TunnelBear
Application Security с Kraftway Secure Shell
Application Security с Avast Business Antivirus Pro Plus
Application Security с AVSOFT VEIL
Application Security с BOND
Отзывы Application Security
Отзывов ещё нет — ваш может стать первым.
Смежные категории к Сетевая безопасность
Сравнить 0 продуктов категории Сетевая безопасность
О компании
- Наша история
- Юридические документы
Пользователям
115419, г.Москва, ул.Шаболовка, д.34, стр.5
Все сведения, содержащиеся на страницах сайта (информационные материалы, каталоги, статьи и пр.), носят ознакомительный характер. Информация не является исчерпывающей. Информация на сайте не является публичной офертой, определяемой положениями Статьи 437 Гражданского кодекса РФ. Все права интеллектуальной собственности принадлежат компаниям — производителям программного обеспечения, как и товарные знаки и логотипы. Все ссылки на дистрибутивы, а так же выложенные статьи, товарные знаки и логотипы носят в себе только ознакомительный характер и не претендуют на интеллектуальную собственность, а так же ее нарушение
Источник: picktech.ru
What is Application Security (AppSec)?
AppSec is the process of finding, fixing, and preventing security vulnerabilities at the application level, as part of the software development processes. This includes adding application measures throughout the development life cycle, from application planning to production use. In the past, security happened after applications were designed and developed. Today, security is “shifting left”, and security is becoming an integral process of the development and testing process. By adding AppSec from the start, organizations can significantly reduce the likelihood of security vulnerabilities in their own code, or in third-party components used within applications.
Application Security Threats: The OWASP Top 10
There are countless security threats that affect software applications. However, the Open Web Application Security Project (OWASP) Top 10 list compiles the application threats that are most prevalent and severe, and most likely to affect applications in production.
AppSec initiatives must focus at least on these high profile threats to modern applications:
- Injection—code injection involves a query or command sent to a software application, which contains malicious or untrusted data. The most common is SQL injection, but it can also affect NoSQL, operating systems, and LDAP servers.
- Broken Authentication—many applications have inadequate or malfunctioning authentication and authorization functions. This can allow an attacker to steal user credentials, or easily gain access without appropriate credentials.
- Sensitive Data Exposure—applications and APIs may openly expose sensitive data belonging to the organization or its customers, including financial or payment details and personally identifiable information (PII).
- XML External Entities (XXE)—attackers can make malicious use of external entity references in XML documents, due to vulnerabilities in old XML parsers. These can be used to gain access to internal files, scan ports, and execute code remotely.
- Broken Access Control—restrictions for authenticated users are not implemented correctly. An attacker could use this to gain access to unauthorized functions or data, access another user’s account, view sensitive files, or change permissions for other users.
- Security Misconfiguration—even if an application has security features, they can be misconfigured. This commonly occurs because no-one changed the application’s default configuration. This includes failure to patch operating systems and frameworks.
- Cross-Site Scripting (XSS)—allows an attacker to run a malicious script in a user’s browser. This can be used to steal their session, redirect users to malicious sites, or perform defacement of websites.
- Insecure Deserialization—faults in the way code is taken from a file and constructed into an object. This can enable malicious code execution, privilege escalation, and replaying activity by authorized users.
- Using Components with Known Vulnerabilities—multiple vulnerability databases report known vulnerabilities in software components. Software that uses a vulnerable component (even just as a dependency of one of its components) is exposed to attack.
- Insufficient Logging https://www.checkpoint.com/cyber-hub/cloud-security/what-is-application-security-appsec/» target=»_blank»]www.checkpoint.com[/mask_link]
Как обеспечить безопасность приложения? 8 ответов от безопасников
Обеспечить безопасность приложения сложнее, чем может показаться. Уже не так эффективны SQL-инъекции и брутфорс, мы думаем, что за привязкой мобильных устройств и двухэтапной аутентификацией нам ничто не грозит.
А так ли это на самом деле?
Какие уязвимости можно найти в приложении?
Ещё живут различные инъекции (SQL, NoSQL, LDAP, OS, XML, XQuery, XPath, XSLT), LFI-уязвимости, закладки (внедрённые в код функции, которые срабатывают в определённый момент), слабые алгоритмы шифрования, небезопасная работа с логами и cookie, а также утечка информации через социнжиниринг.
Самые опасные уязвимости веб-приложений можно посмотреть на странице OWASP Top Ten, которая регулярно обновляется.
И это лишь вершина айсберга.
Правда ли, что львиная доля атак приходится на бреши в механизмах аутентификации?
Согласно статистике Positive Technologies, наиболее часто встречающиеся уязвимости веб-приложений за 2019 год связаны с неправильной настройкой безопасности. А вот самому высокому риску подвержены сайты со слабой аутентификацией. Такая проблема была обнаружена в 45% исследованных веб-приложений:
Почти треть таких уязвимостей обусловлена неограниченным количеством попыток войти в аккаунт. Аутентификация только по паролю является тем фактором, который способствует наибольшему количеству атак посредством перебора комбинаций «логин/пароль». Требования к возрасту и сложности пароля, которые раньше были «золотым стандартом», теперь подрывают безопасность. Согласно рекомендациям NIST, организациям следует перейти на многофакторную аутентификацию, если они ещё этого не сделали.
Критически важным элементом безопасности сервиса является система регистрации и аутентификации пользователей. В большинстве случаев вам лучше не делать её с нуля и тем более не использовать пароль как фактор аутентификации. Лучше возложить вообще всю эту функцию на сторонний сервис, например популярную соцсеть или цифровую экосистему.
Тарас Иващенко , руководитель группы продуктовой безопасности Ozon
Обеспечение безопасности приложения — это задача безопасников?
Не совсем, ведь уже на стадии разработки нужно обращать внимание на очевидные уязвимости.
Разработчик должен с первой редакции сайта или приложения заложить основные инструменты защиты данных пользователя, например Web Application Firewall. В дальнейшем, с выходом патчей, закрывать появляющиеся уязвимости. В идеальной ситуации разработчик должен либо самостоятельно, либо с привлечением дополнительных специалистов тестировать продукт на проникновение, раз за разом применяя популярные методы взлома и после анализируя полученный результат.
Иван Деревцов , руководитель отдела информационной безопасности в АТОЛ
Что включает в себя обеспечение безопасности приложения?
Это все меры, в том числе и те, которые предшествуют этапу разработки:
- Корректная постановка цикла разработки и деплоя. Это также включает выбор релевантного подхода к разработке (Agile/Waterfall), применение лучших практик DevOps, использование доверенного серверного оборудования.
- В команде должен быть один или несколько специалистов, которые отвечают за информационную безопасность.
- Сформированная модель угроз безопасности — метрики, которые нужно постоянно отслеживать, особенно при каждом обновлении или изменении внешних факторов. Стоит понимать, что модели угроз будут разными для разных приложений.
- Использование технических средств анализа защищённости кода.
- Использование защищённой среды разработки.
Application security — сложная задача, особенно в больших командах. Здесь важна грамотная работа архитекторов, которая предусмотрит механизмы безопасности для каждого из «кирпичиков» проекта, тем самым обеспечивая многоуровневую защиту продукта.
Алексей Кузнецов , руководитель направления анализа защищённости BI.ZONE
Какими бывают технические средства анализа защищённости кода?
Основной пласт анализаторов включает в себя:
- Статические — это анализаторы исходного кода на базе механизма статического анализа (SAST). Проверка происходит без запуска самой программы на промежуточных этапах разработки или на этапе сборки. К SAST-решениям относятся Synopsys, AppScan, Checkmarks, Veracode, Appercut, Application Inspector, Micro Focus.
- Динамические — применяются к готовому коду и ориентированы в основном на веб-приложения. Работают на базе динамического тестирования безопасности (DAST) через подачу URL-адреса в автоматический сканер.
- Интегрированные в CI (Continuous Integration) — сканируют статический и динамический код.
- Инструменты пентестера.
Как создать защищённую среду разработки?
Стоит помнить, что обеспечить безопасность приложения можно только комплексно, поэтому уделяйте внимание каждому из этапов:
- Сегментировать сеть и организовать управление сетевыми проходами.
- Настроить права доступа для каждой роли.
- Хранить пароли в хешированном виде с применением так называемой соли.
- Организовать защищённый удалённый доступ.
- Управлять обновлениями.
- Мониторить и документировать.
- Обезличивать важные данные при работе с БД в тестовом режиме.
На что должен обращать внимание разработчик, чтобы защитить приложение от взлома?
Позаботиться о безопасности сервиса лучше на самых ранних этапах его разработки. В этом помогут проекты от сообщества OWASP, например руководства «Проактивная защита: Топ-10 требований OWASP» (набор практик для изначального повышения безопасности приложения) и рейтинг 10 самых опасных угроз безопасности веб-приложений OWASP Top 10. Также важным является включение безопасности как составляющей цепочки CI/CD вашего приложения, например использование SAST и DAST-решений. Причём необязательно сразу покупать и внедрять коммерческие решения, ведь существуют и вполне достойные варианты из мира свободного ПО.
Тарас Иващенко , руководитель группы продуктовой безопасности Ozon
По моему опыту, один из главных шагов к безопасности приложения — это ограничение функциональности для каждого пользователя по принципу need-to-know. Этот принцип возник в военной среде, однако полезен и в разработке: соблюдая его, вы не даёте пользователю получать больше информации, чем ему нужно.
Не менее важны процессы код-ревью и независимого анализа защищённости.
Для второго можно привлекать собственную команду безопасности, обращаться в специализированные компании или добавить приложение в программу bug bounty, чтобы сотни исследователей со всего мира непрерывно искали за вас баги.
Также важно изучать уязвимости чужого кода, который вы вносите в проект: посмотрите issue на GitHub, проверьте продукт в базе уязвимостей. Есть замечательный проект наших коллег Vulners, который агрегирует данные по существующим уязвимостям из различных источников.
Алексей Кузнецов , руководитель направления анализа защищённости BI.ZONE
На заключительных этапах разработки не будет лишним позаботиться о защите кода от чтения и дизассемблирования. Здесь тоже имеются проверенные временем методики: от простой обфускации до применения ассемблерных вставок и продвинутых средств защиты от отладчиков. Вообще, хорошей практикой является «чистка» кода перед отправкой его в продакшн.
Пользователю ведь никак не помогут комментарии, объясняющие, как работает тот или иной вызов либо функция. А вот для атакующего это большое подспорье при анализе продукта. Кроме того, следует избегать прописывания различных конфиденциальных данных внутри самого кода. Например, не рекомендуется встраивать ссылки с данными авторизации на сервере для автоматического тестирования.
Дмитрий Курамин , эксперт Лаборатории практического анализа защищённости компании «Инфосистемы Джет»
А как обстоят дела с безопасностью мобильных приложений?
Безопасная разработка мобильного приложения включает три этапа.
Во-первых, важно заранее учитывать, что приводит к уязвимостям, и ещё во время разработки предусмотреть все меры профилактики.
Так, для предотвращения утечки данных необходимо использовать криптографические алгоритмы, многофакторную аутентификацию, генерировать непредсказуемые идентификаторы сессии и хранить авторизационные токены в наиболее безопасных частях операционной системы.
Безопасность передачи информации осуществляется за счёт подтверждения достоверности источников связи, корректных версий SSL и проверки согласования.
Права доступа к скрытым разделам приложения необходимо давать только узкому кругу ответственных за них специалистов.
Далее необходимо протестировать приложение на предмет наличия подобных уязвимостей. В основном используются методы белого и чёрного ящика.
Метод белого ящика (статистическое тестирование безопасности SAST) подразумевает проверку разработчиком, имеющим доступ к коду. Метод чёрного ящика предполагает анализ только пользовательского опыта, без оценки кода. Тестировать можно вручную или с помощью специальных сервисов.
И последнее, перед собственно отработкой выявленных уязвимостей расставьте приоритеты.
В первую очередь устраните ошибки, при которых работа приложения невозможна. Затем идут критические баги: зависание системы или временные падения. После смотрите на ошибки, не влияющие на работу, например, недочёты дизайна. В самом конце устраняйте мелкие баги.
Рекомендую использовать параметризованные запросы к базе данных, не конструировать запросы внутри системы, для доступа к БД использовать отдельную учётку и не забывать про журналы безопасности.
Павел Кузнецов , руководитель мобильной разработки IT-компании DD Planet
Резюмируя
Чтобы понять, как обеспечить безопасность приложения, следует изучить наиболее опасные уязвимости, учесть это на стадии разработки и тестирования, при выявлении — устранить и обязательно задокументировать все найденные проблемы, чтобы избежать их в дальнейшем. Не стоит также забывать об анализаторах и безопасности самой среды разработки.
Если же вы не до конца разобрались во всех нюансах, ищете дополнительные инструменты и полезные ссылки, советуем заглянуть в нашу статью о защите веб-приложения, которая вобрала в себя максимум полезной информации.
Источник: tproger.ru