Сообщение переводящее базу данных ис из одного устойчивого состояния в другое это

Обновлено: 05.07.2024

- Предотвращение выполнения запросов, работающих с незначительным количеством записей базы данных

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

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

Проблемы обеспечения управляемой избыточности и целостности данных.

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

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

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

Понятие транзакции, свойства транзакции, способы завершения транзакции.

Действие или серия действий, выполняемых одним пользователем или прикладной программой, которые осуществляют доступ или изменение содержимого базы данных – транзакция. Согласованное или целостное состояние БД – это такое состояние, которое полностью отображает предметную область, все данные достоверны и непротиворечивы. Транзакцией называют последовательность операций над базой данных, которая переводит ее из одного согласованного состояния в другое согласованное состояние. Транзакция рассматривается как единое целое, которое может быть выполнена либо целиком, либо не выполнена вообще.

- Это разовый прогон программы

- Это разовая единица работы

- последовательность операций, производимых над базой данных и переводящих базу данных из одного непротиворечивого (согласованного) состояния в другое непротиворечивое (согласованное) состояние.

Транзакция рассматривается как некоторое неделимое действие над базой данных, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы.

Транзакцией будет вся последовательность операций, включающая следующие операции:

- ввод нового заказа со всеми реквизитами заказчика

- подсчет стоимости заказа с формированием платежного документа типа выставляемого счета к оплате

- включение нового заказа в производство

Свойства транзакции (ACID)

- Свойство атомарности выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе

- Свойство согласованности гарантирует, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое — транзакция не разрушает взаимной согласованности данных




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

- Свойство долговечности трактуется следующим образом: если транзакция завершена успешно, то те изменения в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах (даже в случае последующих ошибок)

Способы завершения транзакций

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

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

- Предотвращение выполнения запросов, работающих с незначительным количеством записей базы данных

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

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

Проблемы обеспечения управляемой избыточности и целостности данных.

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

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

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

Понятие транзакции, свойства транзакции, способы завершения транзакции.

Действие или серия действий, выполняемых одним пользователем или прикладной программой, которые осуществляют доступ или изменение содержимого базы данных – транзакция. Согласованное или целостное состояние БД – это такое состояние, которое полностью отображает предметную область, все данные достоверны и непротиворечивы. Транзакцией называют последовательность операций над базой данных, которая переводит ее из одного согласованного состояния в другое согласованное состояние. Транзакция рассматривается как единое целое, которое может быть выполнена либо целиком, либо не выполнена вообще.

- Это разовый прогон программы

- Это разовая единица работы

- последовательность операций, производимых над базой данных и переводящих базу данных из одного непротиворечивого (согласованного) состояния в другое непротиворечивое (согласованное) состояние.

Транзакция рассматривается как некоторое неделимое действие над базой данных, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы.

Транзакцией будет вся последовательность операций, включающая следующие операции:

- ввод нового заказа со всеми реквизитами заказчика

- подсчет стоимости заказа с формированием платежного документа типа выставляемого счета к оплате

- включение нового заказа в производство

Свойства транзакции (ACID)

- Свойство атомарности выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе

- Свойство согласованности гарантирует, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое — транзакция не разрушает взаимной согласованности данных

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

- Свойство долговечности трактуется следующим образом: если транзакция завершена успешно, то те изменения в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах (даже в случае последующих ошибок)

Способы завершения транзакций

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

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

Транзакция А, которая изменяет содержимое базы данных переводит БД из одного устойчивого состояния в другое устойчивое состояние.

Устойчивым состоянием БД считается состояние, при котором выполняются все условия ограничения целостности.

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

Свойства транзакции:

A. Атомарность. Требует, чтобы все части транзакции были завершены, в противном случае транзакция отменяется. Другими словами, транзакция представляет собой отдельную, неделимую единицу работы.

B. Долговечность. Указывает на непрерывность устойчивого состояния БД. После завершения транзакции, БД должна переходить в устойчивое состояние и это состояние не должно нарушаться даже при сбоях системы.

C. Серилизуемость. Представляет собой возможность одновременного выполнения нескольких транзакций. Точнее под одновременным выполнением понимается их серилизованное, т.е. последовательное выполнение одна за другой.

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

По своей природе однопользовательская БД автоматически гарантирует изолированность и серилизуемость, поскольку в данный момент времени выполняется только одна транзакция. Свойства атомарности и долговечности должны обеспечиваться даже в однопользовательской СУБД.

Поддержка транзакции обеспечивается двумя SQL операторами:

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

1. Достигнут оператор COMMIT. В этом случае все изменения записываются в БД. Этот оператор автоматически завершает транзакцию.

2. Достигнут оператор ROLLBACK, в этом случае все изменения отменяются и БД возвращается в предыдущее устойчивое состояние.

3. Достигнут конец программы, это событие эквивалентно выполнению оператора COMMIT.

4. Выполнение программы неожиданно прервано. Эквивалентно выполнению оператора ROLLBACK.

Транзакция начинает выполняться явно, как только встретится первый SQL оператор. В некоторых версиях SQL для начала выполнения транзакции используется специальный оператор, например: BEGIN TRANSACTION.

Аннотация: Приводится определение транзакции и ее свойств; представлены явные, неявные, автоматические и вложенные транзакции. Описываются средства обработки и управления транзакциями. Рассматривается механизм сохранения и отката транзакций. Вводится понятие параллельности в работе базы данных и методы управления параллельностью с использованием блокировок. Приводится описание уровней блокировок и уровней изоляции сервера. Выделяются основные и специальные типы блокировок.

Введение в транзакции

Концепция транзакций – неотъемлемая часть любой клиент-серверной базы данных .

Под транзакцией понимается неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации), приводящая к одному из двух возможных результатов: либо последовательность выполняется, если все операторы правильные, либо вся транзакция откатывается, если хотя бы один оператор не может быть успешно выполнен. Обработка транзакций гарантирует целостность информации в базе данных. Таким образом, транзакция переводит базу данных из одного целостного состояния в другое.

Поддержание механизма транзакций – показатель уровня развитости СУБД . Корректное поддержание транзакций одновременно является основой обеспечения целостности БД . Транзакции также составляют основу изолированности в многопользовательских системах, где с одной БД параллельно могут работать несколько пользователей или прикладных программ. Одна из основных задач СУБД – обеспечение изолированности , т.е. создание такого режима функционирования, при котором каждому пользователю казалось бы, что БД доступна только ему. Такую задачу СУБД принято называть параллелизмом транзакций .

Большинство выполняемых действий производится в теле транзакций . По умолчанию каждая команда выполняется как самостоятельная транзакция . При необходимости пользователь может явно указать ее начало и конец , чтобы иметь возможность включить в нее несколько команд.

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

ACID-свойства транзакций

Характеристики транзакций описываются в терминах ACID (Atomicity, Consistency, Isolation , Durability – неделимость , согласованность , изолированность , устойчивость ).

  • Транзакция неделима в том смысле, что представляет собой единое целое. Все ее компоненты либо имеют место, либо нет. Не бывает частичной транзакции . Если может быть выполнена лишь часть транзакции , она отклоняется.
  • Транзакция является согласованной , потому что не нарушает бизнес-логику и отношения между элементами данных. Это свойство очень важно при разработке клиент-серверных систем, поскольку в хранилище данных поступает большое количество транзакций от разных систем и объектов. Если хотя бы одна из них нарушит целостность данных, то все остальные могут выдать неверные результаты.
  • Транзакция всегда изолирована , поскольку ее результаты самодостаточны. Они не зависят от предыдущих или последующих транзакций – это свойство называется сериализуемостью и означает, что транзакции в последовательности независимы.
  • Транзакция устойчива . После своего завершения она сохраняется в системе, которую ничто не может вернуть в исходное (до начала транзакции ) состояние, т.е. происходит фиксация транзакции , означающая, что ее действие постоянно даже при сбое системы. При этом подразумевается некая форма хранения информации в постоянной памяти как часть транзакции .

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

Блокировки

Повышение эффективности работы при использовании небольших транзакций связано с тем, что при выполнении транзакции сервер накладывает на данные блокировки .

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

Блокировка представляет собой метод управления параллельными процессами , при котором объект БД не может быть модифицирован без ведома транзакции , т.е. происходит блокирование доступа к объекту со стороны других транзакций , чем исключается непредсказуемое изменение объекта. Различают два вида блокировки :

  • блокировка записи – транзакция блокирует строки в таблицах таким образом, что запрос другой транзакции к этим строкам будет отменен ;
  • блокировка чтения – транзакция блокирует строки так, что запрос со стороны другой транзакции на блокировку записи этих строк будет отвергнут, а на блокировку чтения – принят.

В СУБД используют протокол доступа к данным, позволяющий избежать проблемы параллелизма. Его суть заключается в следующем:

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

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

Если в системе управления базами данных не реализованы механизмы блокирования, то при одновременном чтении и изменении одних и тех же данных несколькими пользователями могут возникнуть следующие проблемы одновременного доступа:

  • проблема последнего изменения возникает, когда несколько пользователей изменяют одну и ту же строку, основываясь на ее начальном значении; тогда часть данных будет потеряна, т.к. каждая последующая транзакция перезапишет изменения, сделанные предыдущей. Выход из этой ситуации заключается в последовательном внесении изменений;
  • проблема "грязного" чтения возможна в том случае, если пользователь выполняет сложные операции обработки данных, требующие множественного изменения данных перед тем, как они обретут логически верное состояние. Если во время изменения данных другой пользователь будет считывать их, то может оказаться, что он получит логически неверную информацию. Для исключения подобных проблем необходимо производить считывание данных после окончания всех изменений;
  • проблема неповторяемого чтения является следствием неоднократного считывания транзакцией одних и тех же данных. Во время выполнения первой транзакции другая может внести в данные изменения, поэтому при повторном чтении первая транзакция получит уже иной набор данных, что приводит к нарушению их целостности или логической несогласованности;
  • проблема чтения фантомов появляется после того, как одна транзакция выбирает данные из таблицы, а другая вставляет или удаляет строки до завершения первой. Выбранные из таблицы значения будут некорректны.

Для решения перечисленных проблем в специально разработанном стандарте определены четыре уровня блокирования . Уровень изоляции транзакции определяет, могут ли другие (конкурирующие) транзакции вносить изменения в данные, измененные текущей транзакцией , а также может ли текущая транзакция видеть изменения, произведенные конкурирующими транзакциями , и наоборот. Каждый последующий уровень поддерживает требования предыдущего и налагает дополнительные ограничения:

Транзакция это последовательное выполнение операций чтения и записи. Окончанием транзакции может быть либо сохранение изменений (фиксация, commit) либо отмена изменений (откат, rollback). Применительно к БД транзакция это нескольких запросов, которые трактуются как единый запрос.

Транзакции должны удовлетворять свойствам ACID

Атомарность. Транзакция либо выполняется полностью либо не выполняется вовсе.

Согласованность. При завершении транзакции не должны быть нарушены ограничения накладываемые на данные (например constraints в БД). Согласованность подразумевает, что система будет переведена из одного корректного состояния в другое корректное.

Изолированность. Параллельно выполняемые транзакции не должны влиять друг на друга, например менять данные которые использует другая транзакция. Результат выполнения параллельных транзакций должен быть таким, как если бы транзакции выполнялись последовательно.

Устойчивость. После фиксации изменения не должны быть утеряны.

Журнал транзакций

Журнал хранит изменения выполненные транзакциями, обеспечивает атомарность и устойчивость данных в случае сбоя системы

Журнал содержит значения, которые данные имели до и после их изменения транзакцией. Write-ahead log strategy обязывает добавлять в журнал запись о предыдущих значениях до начала, а о конечных после завершения транзакции. В случае внезапной остановки системы БД читает лог в обратном порядке и отменяет изменения сделанные транзакциями. Встретив прерванную транзакцию БД выполняет ее и вносит изменения о ней в журнал. Находясь в состоянии на момент сбоя, БД читает лог в прямом порядке и возвращает изменения сделанные транзакциями. Таким образом сохраняется устойчивость транзакций которые уже были зафиксированы и атомарность прерванной транзакции.

Простое повторное выполнение ошибочных транзакций недостаточно для восстановления.

Пример. На счету у пользователя 500$ и пользователь решает снять их через банкомат. Выполняются две транзакции. Первая читает значение баланса и если на балансе достаточно средств выдает деньги пользователю. Вторая вычитает из баланса нужную сумму. Допустим, произошел сбой системы и первая операция не выполнилась, а вторая выполнилась. В этом случае мы не можем повторно выдать деньги пользователю без возврата системы в изначальное состояние с положительным балансом.

Уровни изоляции

Чтение фиксированных данных (Read Committed)

Проблема грязного чтения (Dirty Read) заключается в том, что транзакция может прочесть промежуточный результат работы другой транзакции.

Пример. Начальное значение баланса 0$. Т1 добавляет к балансу 50$. Т2 считывает значение баланса (50$). Т1 отменяет изменения и завершается. T2 продолжает выполнение располагая неверными данными о балансе.

Решением является чтение фиксированных данных (Read Committed) запрещающее читать данные, измененные транзакцией. Если транзакция A изменила некоторый набор данных, то транзакция B при обращении за этими данными вынуждена ожидать завершения транзакции A.

Повторяемое чтение (Repeatable Read)

Проблема потерянных изменений (Lost Updates). Т1 сохраняет изменения поверх изменений Т2.

Пример. Начальное значение баланса 0$ и две транзакции одновременно пополняют баланс. T1 и T2 читают баланс равный 0$. Затем T2 прибавляет 200$ к 0$ и сохраняет результат. T1 прибавляет 100$ к 0$ и сохраняет результат. Итоговый результат 100$ вместо 300$.

Проблема неповторяемого чтения (Unrepeatable read). Повторное чтение одних и тех же данных возвращает разные значения.

Пример. Т1 читает значение баланса равное 0$. Затем Т2 добавляет к балансу 50$ и завершается. Т1 повторно читает данные и обнаруживает несоответствие с предыдущим результатом.

Повторяемое чтение (Repeatable Read) гарантирует что повторное чтение вернет тот же результат. Данные прочитанные одной транзакцией запрещено менять в других до завершения транзакции. Если транзакция A прочла некоторый набор данных, то транзакция B при обращении за этими данными вынуждена ожидать завершения транзакции A.

Упорядоченное чтение (Serializable)

Проблема фантомного чтения (Phantom Reads). Два запроса выбирающие данные по некоему условию возвращают разные значения.

Пример. T1 запрашивает количество всех пользователей баланс которых больше 0$ но меньше 100$. T2 вычитает 1$ у пользователя с балансом 101$. T1 повторно выполняет запрос.

Упорядоченное чтение (Serializable). Транзакции выполняются как полностью последовательные. Запрещается обновлять и добавлять записи, подпадающие под условия запроса. Если транзакция A запросила данные всей таблицы, то таблица целиком замораживается для остальных транзакций до завершения транзакции A.

Планировщик (Scheduler)

Устанавливает очередность в которой должны выполняться операции при параллельно протекающих транзакциях

Обеспечивает заданный уровень изолированности. Если результат выполнения операций не зависит от их очередности, то такие операции коммутативны (Permutable). Коммутативны операции чтения и операции над разными данными. Операции чтения-записи и записи-записи не коммутативны. Задача планировщика чередовать операции выполняемые параллельными транзакциями так, чтобы результат выполнения был эквивалентен последовательному выполнению транзакций.

Механизмы контроля параллельных заданий (Concurrency Control)

Оптимистический основан на обнаружении и разрешении конфликтов, пессимистический на предотвращении возникновения конфликтов

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

При пессимистическом подходе первый пользователь захвативший данные препятствует получению данных остальным. Если конфликты редки разумно выбрать оптимистическую стратегию, так как она обеспечивает более высокий уровень параллелизма.

Блокировка (Locking)

Если одна транзакция заблокировала данные, то остальные транзакции при обращении к данным обязаны ждать разблокировки

Блок может накладываться на базу данных, таблицу, ряд или аттрибут. Совместный захват (Shared Lock) может быть наложен на одни данные несколькими транзакциями, разрешает всем транзакциям (включая наложившую) чтение, запрещает изменение и монопольный захват. Монопольный захват (Exclusive Lock) может быть наложен только одной транзакцией, разрешает любые действия наложившей транзакции, запрещает любые действия остальным.

Взаимоблокировкой считается ситуация когда транзакции оказываются в режиме ожидания, длящемся бесконечно долго

Пример. Первая транзакция ждет освобождения данных захваченных второй, в то время как вторая ждет освобождения данных, захваченных первой.

Оптимистическое решение проблемы взаимоблокировок позволяет взаимоблокировке произойти, но затем восстанавливает систему откатывая одну из транзакций, участвующих во взаимоблокировке

С определенной периодичностью производится поиск взаимоблокировок. Один из способов обнаружения — по времени, то есть считать что взаимоблокировка произошла если транзакция выполняется слишком долго. Когда взаимоблокировка найдена, то одна из транзакций откатывается, что дает возможность другим транзакциям участвующим во взаимоблокировке завершиться. Выбор жертвы может быть основан на стоимости транзакций или их старшинстве (Wait-Die и Wound-wait схемы).

Каждой транзакции T присваивается временная метка TS содержащая время начала выполнения транзакции.

Если TS(Ti) = W-TS(Q), то чтение выполняется и R-TS(Q) становится MAX(R-TS(Q), TS(T)).

Когда транзакция T запрашивает изменение данных Q возможны два варианта.


В статье рассмотрена проблема идентификации нарушений безопасности в информационной системе предприятия посредством анализа и классификации событий системы. Проанализирована динамика нарушений безопасности информации в организации. Сделан вывод, что основными последствиями инцидентов являются утечка информации. Предложен и формализован подход к классификации состояний ИС по критерию безопасности на нормальные, аномальные и опасные.

Ключевые слова: информационная безопасность, инцидент, событие, защита информации, оценка риска, аномалия, злоумышленник, атака

Сегодня практически каждая организация в процессе управления и осуществления своей деятельности использует объекты информационной инфраструктуры и сети связи для хранения, обработки и передачи больших объемов электронной информации различной формы, ценности и категории доступа. Информационная система (ИС) является базовым компонентом информационной инфраструктуры, в которой циркулирует наиболее значимая конфиденциальная информация различного вида: персональные данные, коммерческая тайна, служебная и профессиональная тайна, сведенья об изобретениях и ноу-хау. Данные аналитики, представленные в отчетах компании Infowatch [1], показывают, что при эксплуатации ИС с каждым годом расчет число утечек конфиденциальной информации (см. рисунок 1). В 2016 году число зафиксированных утечек превышает на 16 % количество зафиксированных утечек за аналогичный период 2015 года, а за последние 10 лет количество утечек увеличилось в 5 раз (см. рисунок 1).


Рис.1. Динамика роста числа утечек конфиденциальной информации за последние 10 лет, данные компании Infowatch

Основными причинами утечек являются преднамеренные действия и атаки злоумышленников, а также халатность и ошибки сотрудников организации, в 33 % источниками нарушений являлись внешние воздействия, в 67 % — действия внутренних нарушителей. Как показано в [2], действия злоумышленника при проведении атаки на информационные ресурсы, данные и объекты ИС представляют собой сложный, многоступенчатый, часто ветвящийся процесс, который сопровождается рядом событий, происходящих в ИС. Данные события возникают на системном и сетевом уровнях, носят нежелательный характер и влияют на состояние информационной безопасности (ИБ) ресурсов и подсистем ИС. Совокупность множества взаимосвязанных событий безопасности образуют сценарий инцидента безопасности, который, оставаясь долго незамеченным, наносит существенный ущерб организации и может стать причиной возникновения новых нарушений. Для предотвращения подобного сценария развития ситуации, своевременного обнаружения инцидента безопасности, его локализации и минимизации рисков необходимо проводить регулярный мониторинг событий ИС и классифицировать ее состояния по критерию безопасности.

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

При решении задачи классификации текущего состояния ИС — ST, в соответствии с подходом работы [3], предлагается выделить три возможных состояния ИС, которые описываются кортежем — ISState = (см. рисунок 2):

– нормальное состояние (Snorm) — указывает на отсутствие в ИС подозрительной активности, аномальных событий и соответствует штатному режиму ИС, не требует проведения каких-либо внеплановых мероприятий по защите информации;

– аномальное состояние (Sanorm) — указывает на присутствие в системе подозрительной аномальной активности, ошибок пользователей, снижение производительности и других отклонений от штатного режима работы, не имеющих явных признаков нарушения безопасности, требует дополнительного контроля и мониторинга дальнейшего развития ситуации;

– опасное состояние (Sdang) — указывает на наличие событий безопасности, признаков обнаруженной атаки, сбоев и отказов программно-аппаратных подсистем ИС, требует немедленной реакции службы безопасности и применение средств и механизмов, направленных на блокирование и локализацию угрозы, а также снижение рисков.


Рис. 2. Множества состояний ИС

Классификация состояния ИС осуществляется по правилу (см. формулу 1)


(1)

D:\РАБОТА\Пушкарская\рис отношения мужде множествами.jpg

Рис. 3. Схема классификации событий ИС на основе базовых шаблонов


Классификация , осуществляется следующим образом (формула 2).


(2)

Таким образом, при классификации ИС по критерию безопасности нужно учитывать, что аномальное состояние ИС является пограничным и требует детального изучения. Причинами аномального состояния являются [4–6]:

– временное санкционированное отклонение от штатного режима работы, например, расширение программно-аппаратной платформы ИС, появление новых пользователей, сдача отчетов и увеличение объема передаваемой в сети информации, осуществление планового резервирования, тестирование политики безопасности;

– отклонение, вызванное отказом средств или подсистем ИС, появлением новой уязвимости или действием злоумышленника, например, предварительное сканирование ИС, внедрение вредоносного программного обеспечения, блокирование серверов (DDos — атаки), нарушение логических связей или переполнением буфера или стека.

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


Рис. 4. Ориентированный граф перехода состояний ИС

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

Основные термины (генерируются автоматически): критерий безопасности, аномальное состояние, классификация состояний ИС, действие злоумышленника, защита информации, информационная безопасность, информационная инфраструктура, конфиденциальная информация, подсистема ИС, штатный режим работы.

Читайте также: