Введение
Меры, предпринятые для повышения безопасности приложения
Application security (short AppSec) includes all tasks that introduce a secure software development life cycle to development teams. Its final goal is to improve security practices and, through that, to find, fix and preferably prevent security issues within applications. It encompasses the whole application life cycle from requirements analysis, design, implementation, verification as well as maintenance. Web application security is a branch of information security that deals specifically with the security of websites, web applications, and web services. At a high level, web application security draws on the principles of application security but applies them specifically to the internet and web systems. The application security also concentrates on mobile apps and their security which includes iOS and Android Applications
Web Application Security Tools are specialized tools for working with HTTP traffic, e. g., Web application firewalls.
Безопасность приложений (сокращенно AppSec) включает в себя все задачи, направленные на внедрение безопасного жизненного цикла разработки программного обеспечения в работу команд разработчиков. Её конечная цель – улучшение практик безопасности и, как следствие, обнаружение, исправление и, по возможности, предотвращение уязвимостей в приложениях. Она охватывает весь жизненный цикл приложения, начиная с анализа требований, проектирования, разработки, верификации и заканчивая сопровождением. Безопасность веб-приложений – это область информационной безопасности, специализирующаяся на защите веб-сайтов, веб-приложений и веб-сервисов. В общем смысле, безопасность веб-приложений опирается на принципы безопасности приложений, но применяет их конкретно к интернет- и веб-системам. Безопасность приложений также уделяет внимание мобильным приложениям и их защите, включая приложения для iOS и Android. Инструменты безопасности веб-приложений – это специализированные средства для работы с HTTP-трафиком, например, веб-приложения-брандмауэры.
Application security (short AppSec) includes all tasks that introduce a secure software development life cycle to development teams. Its final goal is to improve security practices and, through that, to find, fix and preferably prevent security issues within applications. It encompasses the whole application life cycle from requirements analysis, design, implementation, verification as well as maintenance. Web application security is a branch of information security that deals specifically with the security of websites, web applications, and web services. At a high level, web application security draws on the principles of application security but applies them specifically to the internet and web systems. The application security also concentrates on mobile apps and their security which includes iOS and Android Applications
Web Application Security Tools are specialized tools for working with HTTP traffic, e. g., Web application firewalls.
Подходы
Различные подходы позволяют выявлять разные наборы уязвимостей в безопасности приложения и наиболее эффективны на разных этапах жизненного цикла программного обеспечения. Каждый из них предполагает различные компромиссы между затратами времени, усилий, средств и количеством обнаруженных уязвимостей. Анализ архитектуры. До начала написания кода архитектура и дизайн приложения могут быть проанализированы на предмет проблем безопасности. Распространенной практикой на этом этапе является создание модели угроз. Анализ безопасности с доступом к исходному коду (whitebox security review), или анализ кода. Это глубокое понимание приложения инженером по безопасности посредством ручного изучения исходного кода и выявления дефектов безопасности. Благодаря пониманию логики приложения можно обнаружить уязвимости, специфичные для данного приложения. Аудит безопасности без доступа к исходному коду (blackbox security audit). Он выполняется путем тестирования приложения на наличие уязвимостей без использования исходного кода. Автоматизированные инструменты. Многие инструменты безопасности могут быть автоматизированы путем интеграции в среду разработки или тестирования. Примеры включают автоматизированные инструменты DAST/SAST, интегрированные в редакторы кода или платформы CI/CD. Платформы для координационного раскрытия уязвимостей. Это решения для безопасности приложений, основанные на привлечении хакеров, предлагаемые многими веб-сайтами и разработчиками программного обеспечения, позволяющие пользователям получать признание и вознаграждение за сообщения об ошибках.
Инструменты для тестирования безопасности
Методы тестирования безопасности выявляют уязвимости или слабые места в приложениях. Эти уязвимости делают приложения подверженными эксплуатации. В идеале, тестирование безопасности должно проводиться на протяжении всего жизненного цикла разработки программного обеспечения (SDLC), чтобы уязвимости могли быть устранены своевременно и тщательно. Существует множество автоматизированных инструментов для обнаружения уязвимостей в приложениях. Распространенные категории инструментов, используемых для выявления уязвимостей приложений, включают: Статическое тестирование безопасности приложений (SAST) анализирует исходный код на предмет уязвимостей безопасности в процессе разработки приложения. По сравнению с DAST, SAST можно использовать еще до того, как приложение станет исполняемым. Поскольку SAST имеет доступ ко всему исходному коду, это подход "белого ящика". Это может дать более детальные результаты, но может привести к большому количеству ложных срабатываний, которые необходимо проверять вручную. Динамическое тестирование безопасности приложений (DAST, часто называемое сканерами уязвимостей) автоматически обнаруживает уязвимости путем обхода и анализа веб-сайтов. Этот метод обладает высокой масштабируемостью, легко интегрируется и работает быстро. Инструменты DAST хорошо подходят для борьбы с атаками низкого уровня, такими как ошибки внедрения, но не подходят для обнаружения уязвимостей высокого уровня, например, логических или бизнес-логических ошибок. Инструменты фаззинга обычно используются для входного тестирования. Интерактивное тестирование безопасности приложений (IAST) оценивает приложения изнутри, используя программную инструментацию. Это сочетает в себе преимущества методов SAST и DAST, а также обеспечивает доступ к коду, HTTP-трафику, информации о библиотеках, бэкэнд-соединениям и конфигурационной информации. Некоторые продукты IAST требуют проведения атаки на приложение, в то время как другие можно использовать в ходе обычного тестирования качества. Самозащита приложений во время выполнения расширяет существующие приложения для обеспечения обнаружения и предотвращения вторжений изнутри среды выполнения приложения. Сканеры зависимостей (также называемые анализом состава программного обеспечения) пытаются обнаружить использование программных компонентов с известными уязвимостями. Эти инструменты могут работать по требованию, например, во время сборки исходного кода, или периодически. Абстракция – это идея упрощения сложных вещей. Тестирование безопасности приложений как услуга (ASTaaS): в этом сценарии организация привлекает внешнюю компанию для проведения всех тестов для своих приложений. ASTaaS обычно сочетает в себе статические и динамические методы безопасности, включая тестирование на проникновение и оценку интерфейсов прикладного программирования (API). Resin – это новый инструмент для повышения безопасности приложений и снижения уязвимостей. Он позволяет разработчикам определять правила, определяющие, как данные должны перемещаться по приложению, чтобы предотвратить проблемы безопасности. Это достигается с помощью объектов политики для определения правил, отслеживания данных для мониторинга потока данных и объектов фильтрации для проверки правил в определенных точках потока данных.
Static Application Security Testing (SAST) analyzes source code for security vulnerabilities during an application's development. Compared to DAST, SAST can be utilized even before the application is in an executable state. As SAST has access to the full source code it is a white box approach. This can yield more detailed results but can result in many false positives that need to be manually verified. Dynamic Application Security Testing (DAST, often called Vulnerability scanners) automatically detects vulnerabilities by crawling and analyzing websites. This method is highly scalable, easily integrated and quick. DAST tools are well suited for dealing with low level attacks such as injection flaws but are not well suited to detect high level flaws, e. g., logic or business logic flaws. Fuzzing tools are commonly used for input testing. Interactive Application Security Testing (IAST) assesses applications from within using software instrumentation. This combines the strengths of both SAST and DAST methods as well as providing access to code, HTTP traffic, library information, backend connections and configuration information. Some IAST products require the application to be attacked, while others can be used during normal quality assurance testing. Runtime application self protection augments existing applications to provide intrusion detection and prevention from within an application runtime. Dependency scanners (also called Software Composition Analysis) try to detect the usage of software components with known vulnerabilities. These tools can either work on demand, e. g., during the source code build process, or periodically. Abstraction is the idea of making more complex things less complex. Application security testing as a service (ASTaaS): In this scenario, the organization enlists an external company to perform all testing for their applications. ASTaaS usually combines static and dynamic security methods, including penetration testing and evaluating application programming interfaces (APIs). Resin is a new tool for improving application security and reducing vulnerabilities. It allows developers to specify rules about how data should flow through an application to prevent security issues. This is done using policy objects to define the rules, data tracking to monitor the data flow, and filter objects to check the rules at specific points in the data flow.