Словарь ИТшника

Словарь постоянно развивается и растёт. В этом словаре собраны термины и сокращения по программированию, безопасности и другим темам.

Purple Team

Безопасность

Purple Team (Фиолетовая команда) — это группа объединяющая усилия Red Team (наступление) и Blue Team (оборона), с целью улучшения общей безопасности организации через тесное сотрудничество между атакующими и защищающими сторонами.

Purple Team не обязательно отдельная команда, а мост между Red и Blue, который помогает:

- превратить атаки Red Team в обучающие сценарии для Blue Team,

- обеспечить обмен знаниями между командами,

- улучшить процессы поиска уязвимостей и реагирования.

Red Team

Безопасность

Термин Red Team пришел из военной среды и определяет «дружественную» атакующую команду. В кибербезопасности это группа специалистов, целью которых является тестирование системы на безопасность, используя такие же методы, как и хакеры. 

Ещё можно увидеть определение, что это наступательное тестирование защиты. Оно также отражает суть, потому что использование методов хакера подразумевает наступательное тестирование. 

Отличие Red Team операций от классического пентеста в первую очередь в регламенте действий и упреждении защищаемой стороны, но в целом используются схожие подходы к тестированию на безопасность. 

Основные цели команды:

1. Проникновение в сеть/систему

использование уязвимостей (например, фишинг, эксплойты, социальная инженерия).

2. Достижение целей — получение доступа к данным, саботаж или демонстрация других возможных последствий успешной атаки.

Single Responsibility Principle

Программирование

Один из принципов 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 и вообще доверию к дядюшке Бобу, но каждое объяснение или попытку определить этот принцип не делало картину чище. 

SOLID

Программирование

- Single responsibility

- Open–closed

- Liskov substitution

- interface segregation 

- Dependency inversion

в программировании — мнемонический акроним, введённый Майклом Фэзерсом (Michael Feathers) для первых пяти принципов, названных Робертом Мартином в начале 2000-х, которые означали 5 основных принципов объектно-ориентированных проектирования и программирования.

SQL

Программирование

SQL (Structured Query Language или язык структурированных запросов) -декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.

В общем случае SQL (без ряда современных расширений) считается языком программирования неполным по Тьюрингу. Большинство производителей баз данных создали свои расширения для SQL, такие как Transact-SQL у Microsoft или PL/SQL у Oracle. 

С помощью SQL можно:

- создавать базы данных и таблицы

- читать добавлять, изменять, удалять данные

SQL Injection

Безопасность

SQL injection или внедрение SQL кода - один из распространённых и опасных способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.

За счёт внедрения своего SQL кода в код сайта хакер может получить возможность изменять, удалять или читать произвольные данные. 

Базы данных могут позволять работать с файловой системой и если права настроены небезопасно, то хакер сможет создавать или изменять файлы. Таким образом с помощью SQL инъекции можно произвести даже атаку deface

Внедрения SQL чаще всего связана с некорректной обработки входных данных, используемых в SQL-запросах. Нельзя напрямую добавлять к SQL запросам данные, которые передал в программу пользователь:

"SELECT * FORM Table WHERE Name = " + name;

Вместо конкатенации строк везде нужно использовать параметры:

"SELECT * FORM Table WHERE Name = @name";

Таким образом можно очень легко защититься от SQL Injection – везде использовать только параметризированные запросы. 

SRP

Программирование

Это сокращение может расшифровываться как Single Responsibility Principle или Принцип единой ответственности. Более подробно читаем здесь: Single Responsibility Principle

XSS

Безопасность

XSS превращается в Cross-Site Scripting. Есть мнение, что для термина используют сокращение XSS, чтобы не было путаницы с каскадными таблицами стилей, использующими сокращение CSS.

Это тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода, который будет выполнен в браузере пользователя и взаимодействии этого кода с веб-сервером злоумышленника. 

Я эту атаку называю Frontend инъекцией, но это лично моё название и оно никак не является официальным. 

Смысл атаки в том, что инъекция происходит в код фронтенд технологий – HTML, JS или даже CSS. 

С помощью внедрения в JavaScript хакеры могут воровать сессии или обходить какие-то ограничения на сервере, чтобы реализовывать другие атаки на сервер. 

YAGNI

Программирование

You Aren't Gonna Need It - тебе это не понадобится. Я встречал несколько объяснений этого принципа – не создавать лишние функции, не проектировать лишнего. 

Когда программисты начинают писать новый код, то могут на всякий случай создать какой-то функционал. Не делайте то, что не нужно сейчас, потому что не факт, что это понадобится в будущем. В будущем могут быть совершенно другие требования. 

Если делать что-то заранее, то это трата время на разработку, отладку и излишнее усложнение проекта. 

Не делайте, что не нужно сейчас, вам это не понадобится в будущем. 

Голубая команда

Безопасность

Защищает, обнаруживает и реагирует на атаки. Более подробно читает про Blue Team

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне