Open/Closed Principle или Принцип открытости/закрытости. Более подробно читаем про этот принцип в Open Closed Principle
Offensive security engineer (или просто можно услышать оффенсив) это специалист в области информационной безопасности, который занимается наступательной стороной защиты. Если defensive security (blue team) строит оборону — мониторит системы, настраивает защиту, ловит атаки, то offensive security (red team, pentest) наоборот, имитирует злоумышленника:
- Проводит тесты на проникновение (penetration testing).
- Ищет уязвимости в приложениях, сетях, инфраструктуре.
- Моделирует атаки (red teaming) для проверки готовности компании.
- Эксплуатирует найденные дыры (в контролируемых условиях).
- Докладывает результаты и помогает закрыть уязвимости.
Идея в том, что нападающий думает как хакер, но действует в рамках правил и этики, чтобы компания могла заранее понять, где её слабые места.
OCP или Принцип открытости/закрытости является частью сокращения SOLID, это вторая буква в этом сокращении.
Принцип открытости/закрытости означает, что программные сущности должны быть:
- открыты для расширения: означает, что поведение сущности может быть расширено путём создания новых типов сущностей.
- закрыты для изменения: в результате расширения поведения сущности, не должны вноситься изменения в код, который эту сущность использует.
Это из области ООП - объектно ориентированного программирования и по английски это звучит, как overloading. Это возможность в одном классе создавать несколько методов с одинаковым именем, но разными параметрами (разным количеством или типами аргументов).
В следующем примере у класса сразу три метода Sum и это нормально, потому что у них параметры имеют разные типы данных или разное количество параметров:
class Overloading
{
public int Sum(int a, int b)
{
return a + b;
}
public double Sum(double a, double b)
{
return a + b;
}
public int Sum(int a, int b, int c)
{
return a + b + c;
}
}
У первых двух версий Sum два параметра, но они имеют разные типы. Третья версия Sum отличается не только типами данных, но и количеством - их три
Не все языки поддерживают перегрузку методов. В C# есть перегрузка методов.
Penetration test или тест на проникновение — это контролируемая проверка безопасности систем, при которой специалисты намеренно пытаются найти и эксплуатировать уязвимости так, как это сделал бы хакер. Подробнее тут: Пентест
Product Backlog — это упорядоченный список всех задач, требований, улучшений и исправлений, которые нужно реализовать в продукте. Это центральный элемент гибкой (agile) разработки, особенно в Scrum.
Простыми словами. Product Backlog — это "список всего, что нужно сделать" для того, чтобы продукт стал полноценным и удовлетворял потребности пользователей и бизнеса.
Читайте также про Бэклог
Purple Team (Фиолетовая команда) — это группа объединяющая усилия Red Team (наступление) и Blue Team (оборона), с целью улучшения общей безопасности организации через тесное сотрудничество между атакующими и защищающими сторонами.
Purple Team не обязательно отдельная команда, а мост между Red и Blue, который помогает:
- превратить атаки Red Team в обучающие сценарии для Blue Team,
- обеспечить обмен знаниями между командами,
- улучшить процессы поиска уязвимостей и реагирования.
Термин Red Team пришел из военной среды и определяет «дружественную» атакующую команду. В кибербезопасности это группа специалистов, целью которых является тестирование системы на безопасность, используя такие же методы, как и хакеры.
Ещё можно увидеть определение, что это наступательное тестирование защиты. Оно также отражает суть, потому что использование методов хакера подразумевает наступательное тестирование.
Отличие Red Team операций от классического пентеста в первую очередь в регламенте действий и упреждении защищаемой стороны, но в целом используются схожие подходы к тестированию на безопасность.
Основные цели команды:
1. Проникновение в сеть/систему
использование уязвимостей (например, фишинг, эксплойты, социальная инженерия).
2. Достижение целей — получение доступа к данным, саботаж или демонстрация других возможных последствий успешной атаки.
Release Backlog — это список задач и требований, которые планируется реализовать к определённому релизу (выходу новой версии продукта).
Простыми словами: Release Backlog — это то, что должно быть готово к конкретной дате выпуска продукта или его новой версии. Это как "чек-лист фич", которые команда хочет включить в ближайший релиз.
Читайте также про Бэклог
Один из принципов SOLID и это первая буква S в этом сокращении, а переводится как Принцип единой ответственности. Один из спорных принципов, потому что его объяснение менялось. Изначально Боб Мартин (дядюшка Боб) дал такое поредение:
A class should have one, and only one, reason to change (Класс должен иметь лишь одну причину для изменений)
И вот тут каждый начал воспринимать такое расплывчатое заявление по-разному.
Чуть позже дядя Боб дал уже немного другое объяснение:
A module should be responsible to one, and only one, actor (Модуль должен отвечать перед одним и только одним актором)
Есть и другие попытки объяснить принцип, потому что он стал очень популярен благодаря сокращению SOLID и вообще доверию к дядюшке Бобу, но каждое объяснение или попытку определить этот принцип не делало картину чище.