Purple Team (Фиолетовая команда) — это группа объединяющая усилия Red Team (наступление) и Blue Team (оборона), с целью улучшения общей безопасности организации через тесное сотрудничество между атакующими и защищающими сторонами.
Purple Team не обязательно отдельная команда, а мост между Red и Blue, который помогает:
- превратить атаки Red Team в обучающие сценарии для Blue Team,
- обеспечить обмен знаниями между командами,
- улучшить процессы поиска уязвимостей и реагирования.
Термин Red Team пришел из военной среды и определяет «дружественную» атакующую команду. В кибербезопасности это группа специалистов, целью которых является тестирование системы на безопасность, используя такие же методы, как и хакеры.
Ещё можно увидеть определение, что это наступательное тестирование защиты. Оно также отражает суть, потому что использование методов хакера подразумевает наступательное тестирование.
Отличие Red Team операций от классического пентеста в первую очередь в регламенте действий и упреждении защищаемой стороны, но в целом используются схожие подходы к тестированию на безопасность.
Основные цели команды:
1. Проникновение в сеть/систему
использование уязвимостей (например, фишинг, эксплойты, социальная инженерия).
2. Достижение целей — получение доступа к данным, саботаж или демонстрация других возможных последствий успешной атаки.
Один из принципов 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 и вообще доверию к дядюшке Бобу, но каждое объяснение или попытку определить этот принцип не делало картину чище.
в программировании — мнемонический акроним, введённый Майклом Фэзерсом (Michael Feathers) для первых пяти принципов, названных Робертом Мартином в начале 2000-х, которые означали 5 основных принципов объектно-ориентированных проектирования и программирования.
SQL (Structured Query Language или язык структурированных запросов) -декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.
В общем случае SQL (без ряда современных расширений) считается языком программирования неполным по Тьюрингу. Большинство производителей баз данных создали свои расширения для SQL, такие как Transact-SQL у Microsoft или PL/SQL у Oracle.
С помощью SQL можно:
- создавать базы данных и таблицы
- читать добавлять, изменять, удалять данные
SQL injection или внедрение SQL кода - один из распространённых и опасных способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.
За счёт внедрения своего SQL кода в код сайта хакер может получить возможность изменять, удалять или читать произвольные данные.
Базы данных могут позволять работать с файловой системой и если права настроены небезопасно, то хакер сможет создавать или изменять файлы. Таким образом с помощью SQL инъекции можно произвести даже атаку deface.
Внедрения SQL чаще всего связана с некорректной обработки входных данных, используемых в SQL-запросах. Нельзя напрямую добавлять к SQL запросам данные, которые передал в программу пользователь:
"SELECT * FORM Table WHERE Name = " + name;
Вместо конкатенации строк везде нужно использовать параметры:
"SELECT * FORM Table WHERE Name = @name";
Таким образом можно очень легко защититься от SQL Injection – везде использовать только параметризированные запросы.
Это сокращение может расшифровываться как Single Responsibility Principle или Принцип единой ответственности. Более подробно читаем здесь: Single Responsibility Principle.
XSS превращается в Cross-Site Scripting. Есть мнение, что для термина используют сокращение XSS, чтобы не было путаницы с каскадными таблицами стилей, использующими сокращение CSS.
Это тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода, который будет выполнен в браузере пользователя и взаимодействии этого кода с веб-сервером злоумышленника.
Я эту атаку называю Frontend инъекцией, но это лично моё название и оно никак не является официальным.
Смысл атаки в том, что инъекция происходит в код фронтенд технологий – HTML, JS или даже CSS.
С помощью внедрения в JavaScript хакеры могут воровать сессии или обходить какие-то ограничения на сервере, чтобы реализовывать другие атаки на сервер.
You Aren't Gonna Need It - тебе это не понадобится. Я встречал несколько объяснений этого принципа – не создавать лишние функции, не проектировать лишнего.
Когда программисты начинают писать новый код, то могут на всякий случай создать какой-то функционал. Не делайте то, что не нужно сейчас, потому что не факт, что это понадобится в будущем. В будущем могут быть совершенно другие требования.
Если делать что-то заранее, то это трата время на разработку, отладку и излишнее усложнение проекта.
Не делайте, что не нужно сейчас, вам это не понадобится в будущем.
Защищает, обнаруживает и реагирует на атаки. Более подробно читает про Blue Team