from enum import Enum from django.db.models import TextChoices from django.utils.translation import gettext_lazy class TlpEnum(TextChoices): """Traffic Light Protocol.""" WHITE = 'TLP:WHITE', gettext_lazy('Non-confidential') GREEN = 'TLP:GREEN', gettext_lazy('Limiting the transmissions of communicable') AMBER = 'TLP:AMBER', gettext_lazy('Limited distribution within the organization') RED = 'TLP:RED', gettext_lazy('Not for distribution') class NotificationCategoryEnum(TextChoices): """Category for notifications.""" INCIDENT = 'Уведомление о компьютерном инциденте', gettext_lazy('Notification of a computer incident') ATTACK = 'Уведомление о компьютерной атаке', gettext_lazy('Notification of a computer attack') VULNERABILITY = 'Уведомление о наличии уязвимости', gettext_lazy('Notification of vulnerability') class EventTypeEnum(TextChoices): """Information Security event types""" # Incident INVOLVING_INTO_MALWARE_INFRASTRUCTURE = ( 'Вовлечение контролируемого ресурса в инфраструктуру ВПО', gettext_lazy('Involving the controlled resource into the malware infrastructure') ) SLOWDOWN_DUE_TO_DDOS = ('Замедление работы ресурса в результате DDoS-атаки', gettext_lazy('Slowdown of the resource due to DDoS attack')) INFECT_MALWARE = 'Заражение ВПО', gettext_lazy('Infect malware') CAPTURE_NETWORK_TRAFFIC = 'Захват сетевого трафика', gettext_lazy('Capture network traffic') USING_FOR_PHISHING = ('Использование контролируемого ресурса для фишинга', gettext_lazy('Using a controlled resource for phishing')) COMPROMISE_ACCOUNT = 'Компрометация учетной записи', gettext_lazy('Account compromise') UNAUTHORIZED_CHANGE_INFORMATION = ('Несанкционированное изменение информации', gettext_lazy('Unauthorized change of information ')) UNAUTHORIZED_DISCLOSURE_INFORMATION = ('Несанкционированное разглашение информации', gettext_lazy('Unauthorized disclosure of information')) PUBLICATION_PROHIBITED_INFORMATION_RU = ( 'Публикация на ресурсе запрещенной законодательством РФ информации', gettext_lazy('Publication on the resource of the information prohibited by the legislation of the Russian ' 'Federation') ) SENDING_SPAM_FROM_RESOURCE = ('Рассылка спам-сообщений с контролируемого ресурса', gettext_lazy('Sending spam messages from a controlled resource')) SUCCESSFUL_EXPLOITED_MALWARE = 'Успешная эксплуатация уязвимости', gettext_lazy('Successful exploited malware') # Attack DDOS = 'DDoS-атака', gettext_lazy('DDoS-attack') AUTHORIZATION_ERROR = 'Неудачные попытки авторизации', gettext_lazy('Unsuccessful attempts by authorization') ATTEMPT_INJECT_MALWARE = 'Попытки внедрения ВПО', gettext_lazy('Attempt inject malware') ATTEMPT_EXPLOITED_MALWARE = 'Попытки эксплуатации уязвимости', gettext_lazy('Attempt exploited malware') FRAUDULENT_INFORMATION = ('Публикация мошеннической информации', gettext_lazy('Publication of fraudulent information')) NETWORK_SCANNING = 'Сетевое сканирование', gettext_lazy('Network scanning') SOCIAL_ENGINEERING = 'Социальная инженерия', gettext_lazy('Social engineering') # Vulnerability VULNERABLE_RESOURCE = 'Уязвимый ресурс', gettext_lazy('Vulnerable resource') class ActivityStatusEnum(TextChoices): """Incident response status.""" TAKEN_ACTION = 'Меры приняты', gettext_lazy('Take action') RESPONSE_ACTIVITIES = 'Проводятся мероприятия по реагированию', gettext_lazy('Performance activities are held') REOPEN_RESPONSE_ACTIVITIES = ('Возобновлены мероприятия по реагированию', gettext_lazy('Response renewing measures')) class AffectedSystemCategoryEnum(TextChoices): """Information about categories CII (Critical Information Infrastructure).""" RESOURCE_NOT_CII = ('Информационный ресурс не является объектом КИИ', gettext_lazy('Information resource is not an object of CII')) CII_WITHOUT_RELEVANCE_CATEGORY = ('Объект КИИ без категории значимости', gettext_lazy('Object CII without a category of significance')) CII_WITH_RELEVANCE_CATEGORY_3 = 'Объект КИИ третьей категории значимости', gettext_lazy('Object CII third category') CII_WITH_RELEVANCE_CATEGORY_2 = ('Объект КИИ второй категории значимости', gettext_lazy('Object CII secondary category')) CII_WITH_RELEVANCE_CATEGORY_1 = 'Объект КИИ первой категории значимости', gettext_lazy('Object CII first category') class AffectedSystemFunction(TextChoices): """Scope of functioning subject.""" NUCLEAR_POWER = 'Атомная энергетика', gettext_lazy('Nuclear power') BANKING_AND_OTHER_FINANCIAL_SPHERE = ('Банковская сфера и иные сферы финансового рынка', gettext_lazy('Banking sphere and other financial markets ')) MINING_INDUSTRY = 'Горнодобывающая промышленность', gettext_lazy('Mining industry') STATE_OR_MUNICIPAL_AUTHORITY = 'Государственная/муниципальная власть', gettext_lazy('State/municipality authority') HEALTH = 'Здравоохранение', gettext_lazy('Health') STEEL_INDUSTRY = 'Металлургическая промышленность', gettext_lazy('Steel industry') SCIENCE = 'Наука', gettext_lazy('Science') DEFENCE_INDUSTRY = 'Оборонная промышленность', gettext_lazy('Defense industry') EDUCATION = 'Образование', gettext_lazy('Education') SPACE_INDUSTRY = 'Ракетно-космическая промышленность', gettext_lazy('Rocket and space industry') COMMUNICATION = 'Связь', gettext_lazy('Communication') MEDIA = 'СМИ', gettext_lazy('Media') FUEL_AND_ENERGY_COMPLEX = 'Топливно-энергетический комплекс', gettext_lazy('Fuel and Energy Complex') TRANSPORT = 'Транспорт', gettext_lazy('Transport') CHEMICAL_INDUSTRY = 'Химическая промышленность', gettext_lazy('Chemical industry') OTHER = 'Иная', gettext_lazy('Other') class ImpactEffect(TextChoices): """Impact of integrity, availability, confidentiality.""" HIGH = 'Высокое', gettext_lazy('High') LOW = 'Низкое', gettext_lazy('Low') NO = 'Отсутствует', gettext_lazy('Is missing') class ActivityType(Enum): """Type of activity.""" MALWARE_CONTROL_CENTER = 'Центр управления ВПО' MALWARE_INFRASTRUCTURE = 'Элемент инфраструктуры ВПО' MALWARE_SPREAD_SOURCE = 'Источник распространения ВПО' NOT_DEFINED = 'Тип не определен' class NotificationStatusEnum(TextChoices): """Notification status.""" CHECK_NCIRCC = 'Проверка НКЦКИ', gettext_lazy('Check NCIRCC') CREATED = 'Создано', gettext_lazy('Created') REGISTERED = 'Зарегистрировано', gettext_lazy('Registered') ADDITION_REQUIRED = 'Требуется дополнение', gettext_lazy('Addition required') DECISION = 'Принято решение', gettext_lazy('Decision') ARCHIVED = 'Отправлено в архив', gettext_lazy('Archived')