SONAR — защита на основе поведения
SONAR — это решение, обеспечивающее защиту от угроз, которая основывается на поведении угроз, а не на их «внешнем виде». SONAR является основным движком защиты на основе поведения антивирусных решений компании Symantec
Миллионы пользователей обманом открывают вредоносные программы, маскирующиеся под видеоплееры или антивирусные продукты, которые не предлагают заявленных возможностей, но заражают компьютер пользователя и заставляют его платить за несуществующие функции.
Загрузки методом «Drive-by» и распространенные веб-атаки незаметно заражают пользователей, посещающих популярные сайты. Некоторые программы устанавливают руткиты или внедряют вредоносный код в системные процессы. Современное вредоносное ПО может с легкостью обходить, уже недостаточную для защиты конечного пользователя, файловую защиту.
Почему именно защита на основе поведения?
В 2010 году, Symantec обнаружила более 286 миллионов вариантов вредоносных программ и заблокировала более 3 миллиардов атак. В условиях продолжающегося роста вредоносного ПО и его вариантов, Symantec увидела необходимость в создании инновационного подхода, который позволит предотвратить вредоносные инфекции- автоматически и бесшумно, вне зависимости от того, чем занят пользователь и каким образом вирус проник в его систему. Insight Reputation Technology и поведенческая технология Symantec Online Network for Advanced Response (SONAR) компании Symantec, являются двумя из таких подходов.
Защита на основе поведения является более рентабельной по сравнению с файловой эвристикой, поскольку она одновременно может оценивать большие масштабы программ как опасных, так и не представляющих угрозы.
Защита на основе поведения обеспечивает эффективную и неинвазивную защиту от угроз «нулевого дня». SONAR — это решение, обеспечивающее защиту от угроз, которое основывается на поведении угроз, а не на их «внешний виде». SONAR является основным движком защиты на основе поведения компании Symantec: классифицирующий движок, сделанный на основе искусственного интеллекта, авторских поведенческих сигнатур и поведенческого механизма блокировки на основе политики. Все эти компоненты соединены в одно целое, и они обеспечивают лучшую в индустрии безопасности защиту от угроз.
Основными направлениями защиты, которые обеспечивает поведенческая технология Symantec, являются:
— Направленные атаки, включая Advanced Persistent Threats (APT), троянские программы, шпионское ПО, кейлоггеры и общие угрозы «нулевого дня»;
— Загрузки методом drive-by, веб-атаки;
— Атаки типа «Социальной инженерии»: FakeAV (поддельные антивирусы), вредоносные генераторы ключей и кодеки;
— Боты и ботнеты:
— Non-Process and Injected Threats (NPTs)
— Угрозы «нулевого дня»;
— Угрозы, пропущенные другими слоями защиты
— Угрозы, использующие технику руткитов.
В каких случаях осуществляется поведенческая защита?
Независимо от того, запускает ли пользователь вредоносное приложение умышленно, или же оно производит автоматическую попытку установки, SONAR блокирует программу в режиме реального времени, после того, как она была запущена и/или пытается внедрить себя в запущенные процессы (технология NPT). Обеспечивая защиту от Hydraq/Aurora, Stuxnet и вредоносного ПО, такого как Tidsrev и ZeroAccess, она зарекомендовала себя как одну из самых важных технологий защиты конечных точек.
Как это работает? Классификационный движок, основанный в области Искусственного Интеллекта
Symantec создала одну из самых больших баз данных поведенческих профилей во всем мире, имея около 1.2 миллиардов экземпляров приложений. Анализируя поведение хороших и плохих файлов, используя метод машинного обучения, Symantec способна создавать профили для приложений, которые еще не были созданы. Опираясь почти на 1400 различных поведенческих атрибутов и богатый контекст, которые компания получает от других компонентов, таких как Insight, IPS, AV-движок, классификация SONAR способна быстро обнаружить вредоносное поведение и принимать меры по остановке вредоносных приложений до того, как они нанесут ущерб. В 2011 году более 586 миллионов исполняемых DLL-файлов и приложений, были проанализированы с помощью технологии SONAR.
Non-process Based Threat Protection
Современные угрозы не всегда являются отдельными исполняемыми файлами. Зачастую, они пытаются скрыться при помощи инъекций в широко известные запущенные процессы, приложения или другие компоненты, тем самым скрывая свою вредоносную деятельность под видом доверенных процессов (к примеру, системных), или же доверенных приложений. В качестве примера, при выполнении вредоносного приложения, оно может внедрить вредоносный код в запущенные процессы, такие как explorer.exe (процесс оболочки Рабочего стола), Iexplorer.exe (браузер Internet Explorer) или зарегистрировать вредоносные компоненты в качестве расширений для подобных приложений. SONAR предотвращает выполнение кода, введенного в целевой процесс, путем классификации источника, пытающегося сделать инъекцию. Он также классифицирует, и при необходимости останавливает вредоносный код, загружаемый в целевой или доверенный процесс.
Политика Поведенческой блокировки
Загрузка методом «Drive-by» работает, используя уязвимости в браузерных плагинах, таких как Adobe Reader, Oracle Sun Java и Adobe Flash. После того, как уязвимость была обнаружена подобной загрузкой, она может использовать уязвимое приложение в своих целях, т.е. для запуска любого другого приложения. Создавая определение политики Поведенческой блокировки, Symantec может блокировать вредоносные поведения, такие как «Adobe Acrobat не должно создавать другие исполняемые файлы» или «этой DLL запрещена инъекция в процесс explorer.exe», тем самым защищая систему. Это может быть описано как блокировка поведения на основе политики и правил. Эти политики/определения SONAR создаются командой Symantec STAR и автоматически задействованы в блокирующем режиме и не требуют управления. Это предотвращает подозрительное поведение «хороших» приложений, и автоматически защищает пользователей.
Сигнатуры Behavioral Policy Enforcement (BPE — поведенческое применение политик)
Возможность развития в соответствии с непрерывно изменяющимися угрозами, является неотъемлемой частью технологий SONAR, поэтому защита продуктов компании Symantec имеет возможность ориентироваться на угрозы даже завтрашнего, еще не наступившего дня. Когда Symantec обнаруживает новое семейство угроз, такие как новые руткиты, трояны, FakeAV или другие типы вредоносных программ, она может создать новые поведенческие сигнатуры для обнаружения подобных семейств угроз, и доставить их вместе с обновлениями. Поэтому, компании совершенно не обязательно обновлять код самого продукта. Это так называемые поведенческие сигнатуры SONAR Enforcement Policy. Эти сигнатуры можно довольно быстро написать, протестировать и доставить пользователю, и именно они дают SONAR «гибкости» и «адаптивности», что позволяет ей дать ответ на некоторые классы возникающих угроз, имея при этом очень низкий уровень ложных срабатываний.
Так как же работают BPE-сигнатуры?
Давайте взглянем на приложение, которое запускается для выполнения.
1) Оно создает определенные компоненты в директории TEMP
2) Добавляет свои записи в реестр
3) Меняет hosts-файл
4) Оно не имеет интерфейса
5) Оно открывает связи на «высоких» портах
Любая из этих форм поведения сама по себе не может быть «плохой», но в целом ее поведенческий профиль расценивается, как плохой. STAR-аналитик создает правило, в котором указывает, что если имеется определенная последовательность поведения исполняемых файлов с определенными характеристиками Репутации Insight, то продукт должен остановить этот процесс и выполнить откат изменений. SONAR умеет создавать виртуальную песочницу вокруг зараженного, но вполне законного приложения и тем самым может предотвратить любые вредоносные действия зараженного приложения, которое способно нанести вред компьютеру пользователя. Это является совершенно новой парадигмой в сфере конечной защиты пользователя. Она работает за счет использования данных, которые показывают действия приложения, а не его внешний вид.
Автоматическое Восстановление вредоносных файлов с помощью песочницы
Защита на основе поведения в режиме реального времени отслеживает и помещает в песочницу приложения, процессы и события во время того, как они происходят. Системные изменения могут быть отменены с целью предотвращения вредоносной активности.
Мониторинг приложений и процессов в режиме реального времени
SONAR отслеживает и защищает более 1400 аспектов всех запущенных приложений, DLL-файлов и процессов, предоставляя защиту в режиме реального времени, по мере их выполнения.
STAR Intelligence Communication Bus
Технология защиты SONAR не работает сама по себе. Движок обменивается данными с другими сервисами защиты при помощи протокола STAR Intelligence Communication (STAR ICB). Движок Сетевой IPS, соединяется с движком Symantec Sonar, а затем с движком Внутренней Репутации (Insight Reputation). Это позволяет предоставить более информативную и точную защиту, какую не может предоставить практически ни один продукт.
По материалам Symantec
Простые сценарии использования Sonarqube
На сегодняшний день это один из, или же самый известный способ автоматического анализа кода и его ревью. Популярностью он обязан тому, что этот сервис бесплатен и доступен, а так же для его установки не требуется много усилий. Интерфейс выглядит современно и понятно. Sonarqube, хоть и написан на java, не ест много ресурсов 🙂
«Тестирование программы может весьма эффективно продемонстрировать наличие ошибок, но безнадежно неадекватно для демонстрации их отсутствия.»
Эдсгер Вибе Дейкстра
Sonarqube Deploy
Самый простой и популярный способ работы с таким сервисами — найти образ на dockerhub и задеплоить с помощью docker-compose файла. Линк на его образ.
Но тут же кроется нюанс — Docker Host Requirements, так как sonarqube использует встроенный Elasticsearch и для корректной работы сервиса, необходимы указанные границы системных лимитов:
sysctl -w vm.max_map_count=524288 sysctl -w fs.file-max=131072 ulimit -n 131072 ulimit -u 8192
Мой репо в Gitlab и Github с docker-compose.yml файлами. В Makefile есть единая инструкция для этих команд.
Назначение volumes:
- sonarqube/data , файлы с данными, тут лежат индексы эластика и еще некоторые вещи, которые Sonar хотел бы держать у себя на полке
- sonarqube/logs , логи веб процессов, сервисов которые использует Sonar
- sonarqube/extensions , для собственных плагинов (которые содержат правила анализа для всех языков)
Из коробки он имеет уже достаточно плагинов для анализа, но если вы нашли что-то кастомное или сделали сами , добавить это достаточно просто — просто поместить в volume с extensions.
Более подробно об установке я рассказываю в видео — Начало работы с Sonarqube.
В видео, я показываю, как сконнектить Sonar с Gitlab, для анализа проектов оттуда. Вместе с этим можно настроить возможность авторизоваться в Sonar используя учетные записи Gitlab.
Необходимо помнить о том, что хорошей практикой завести в Gitlab учетную запись для Sonarqube, и брать токен доступа оттуда, дабы при возникновении проблем с вашей собственной записью не потерять накопленный анализ и не настраивать все заново. Но всегда необходимо будет добавлять этого пользователя в проекты, и давать права не ниже Reporter.
Простые способы анализа проектов
Проект из Gitlab
Кому удобнее визуальная подача информации — ниже видео на эту тему. Посмотреть так же можно по ссылке.
Переводя на текст, могу сказать,что все что вам необходимо это:
- Связать Gitlab и Sonarqube, с помощью Access token пользователя.
- Проверить, что есть возможность инициализировать анализ репозиториев (появляется их список после того, как вы в главном меню вы добавляйте проект:
- Выбрать репозиторий и нажать «Set Up»
- Далее выбрать свою CI/CD систему и действовать по инструкции.
- Создать в репозитории файл sonar-project.properties. С указанием ключа и параметра, мониторящего связь с Sonarqube.
- Добавить две переменные окружения: SONAR_TOKEN и SONAR_HOST_URL
- Последний шаг: включить в CI файл stage со сканом
Мануальное добавление любого проекта
Здесь все по схожему сценарию, наибольшую роль играет файл sonar-project.properties .
- Для начала, в том же месте нужно добавить проект. Только теперь нам нужна кнопка Manually
- После этого необходимо создать ProjectKey (уникальный идентификатор проекта) и DisplayName (имя для проекта , которое будет отображаться в списке). Они могут быть разные.
- Далее нужно создать токен доступа, и назвать его так как вам нужно, он так же будет отображаться в профиле вашего пользователя и удалить его можно будет только оттуда
- Следующий шаг — выбрать стэк/сценарий для анализа,и следовать инструкции. В конце для вас будут представлены данные для properties файла проекта,либо команды для ручного запуска скана.
Составляющие sonar-project.properties файла
Файл из которого Sonarqube черпает инструкции для его работы. Самое полное описание возможных конфигов для проекта в докуметации к сервису. Привожу небольшую табличку с наиболее часто встречающимися.
Конфиг
Описание
Уникальный ключ для проекта, заведенный в Sonarqube
Sonar is the Clean Code solution for your DevOps workflow
The number of developers worldwide is projected to reach 27.7 million in 2023. Take these 27.7 million individuals, and let’s say, for example, they each write ten lines of code daily. That’s 277 million lines of code written every day. This continuous development machine is moving faster than ever, which means your DevOps workflow is working overtime to ensure that your piece of the 277 million is pushed smoothly to production without issue.
As the number of developers and lines of code multiplies, the space for issues to fall through the cracks is growing. Pressure to deliver is at an all-time high, and sacrificing quality in the name of new features has become a familiar topic of conversation. Developer productivity remains the focus, while technical debt is overlooked. This strategy may suffice in the short term but is not a long-term solution. Bad code and poor quality create fragility and risk in your codebase and ultimately leave your developer team members feeling defeated if they’re forced to keep their focus on fixing mistakes.
So how can you course correct? How can you rid yourself of bad code, optimize your DevOps workflow, increase developer productivity and delivery velocity, and support developer satisfaction? While it may seem like a daunting task, developers need the right tools, time, and processes embedded into their DevOps workflow to perform at their peak, overcome bad code, and create software that has lasting value.
Clean Code aims to derive value from your DevOps workflow
If you’re wondering what Clean Code is, it’s when a codebase reaches a problem-free state where all code is fit for development and fit for production. Clean Code encompasses coding best practices that are universally understood and implemented across the organization. It encourages developers to write consistent code that’s of the highest quality. Clean Code ensures that the bad code and poor quality practices from the past are gone and that your DevOps workflow is working better than ever before.
Clean Code aims to solve several challenges encountered during the coding process:
- Maintainability: Clean Code ensures that code is easy to read, understand, and modify. This makes maintenance more efficient and less error-prone.
- Scalability: Clean Code aims to produce code that can be easily scaled up or down to meet changing requirements and delivery demands.
- Collaboration: When all developers use consistent Clean Code practices, they can work more collaboratively on the same codebase and increase productivity.
- Debugging: Clean Code makes it easier to debug errors because there is less inconsistency, and code is more extensible, making it easier to pinpoint faults.
Overall, Clean Code aims to streamline your DevOps workflow so that your organization can yield the best possible results from your software.
Sonar is setting the standard for Clean Code
Sonar is the solution for developers and teams to achieve a Clean Code state in your codebase through systematic development and delivery. When Sonar seamlessly integrates into your DevOps workflow, you can:
- Reduce risk exposure: Flag security issues early in the development workflow before they become problematic. You can also monitor these issues with Sonar’s enterprise reporting, security and regulatory compliance (OWASP Top 10, CWE Top 25, SANS Top 25) reporting, and executive portfolios.
- Sustain software performance: Your software stays operable when running on Clean Code that’s easy to understand, review, repair, and enhance. Sonar supplies vertical and horizontal scalability that supports high availability and redundancy.
- Achieve more innovation, less rework: Ensure you’re only merging quality code with the unique Clean as You Code methodology. This remediates old issues while writing new code without dedicating time and money to technical debt.
- Attract and retain top developer talent: Let developers flex their expertise on their code and focus on new projects. Sonar enables developers to apply Clean Code standards by proactively flagging issues and helping them understand and fix them without leaving their coding flow.
Sonar stays with you from IDE with our free extension, SonarLint, to CI/CD, whether you’re on-premise with SonarQube or in the cloud with SonarCloud.
While you code, SonarLint acts like a spell checker. It proactively detects coding issues and performs on-the-fly analysis to detect common mistakes, bugs, and security vulnerabilities, while teaching you clean coding practices as you write code.
When it’s time to merge, SonarQube and SonarCloud will provide your team instant pull request feedback. By detecting problems early in the development workflow, issues are never added to your codebase thanks to a clear go/no-go Clean as You Code-compliant quality gate that blocks the merge whenever code doesn’t meet your defined requirements.
Clean Code starts today with Clean as You Code
Achieving a Clean Code state may initially sound overwhelming, but Sonar makes it simple and effective with Clean as You Code. Clean as You Code is a methodology that enables developers and organizations to optimize the quality of their codebase by focusing solely on added or changed code. This approach progressively improves the overall quality of the entire codebase with minimal cost and effort. Developers can dedicate less time to technical debt and rework and spend more time on accelerating new features and delivery.
The Clean as You Code methodology can be leveraged across any organization and integrated into any DevOps workflow regardless of software maturity, level of developer experience, and internal complexity. By creating consistent coding standards with prescribed quality gates, developers can keep their future code clean, regardless of language or platform, project age or size, or existing code complexity.
Of the millions of lines of code written every day, ensure that yours are the ones of the highest quality. With the power of Clean Code in your corner, you reduce risks, save time and money, increase developer productivity and confidence, and sustain the life of your software.
Join millions of developers and hundreds of thousands of organizations in making their code an asset with Clean Code from Sonar.
При подготовке материала использовались источники:
https://www.comss.ru/page.php?id=1632
https://habr.com/ru/articles/652607/
https://www.sonarsource.com/blog/sonar-clean-code-for-your-devops-workflow/