Scientific journal
Fundamental research
ISSN 1812-7339
"Перечень" ВАК
ИФ РИНЦ = 1,674

METHODS FOR OPERATIONAL RISK ANALYSIS IN RELEASE MANAGEMENT OF BANKING SOFTWARE

Petrosyan G.S. 1
1 Plekhanov Russian University of Economics
This article is dedicated to the operational risk measurement across release planning, building, testing and deployment. The author considers the problem of ensuring that any changes in IT infrastructure can be performed without degradation of existing services, which is one of the main objectives of the release management process. Activities and practices aimed at the mitigation of IT operational risks across multiple releases are provided. Mathematical model for estimating the IT risk in the context of release management, based on Value at Risk approach, is provided in the research. To confirm the result, calculations are made by means of R programming language. Results of the paper can be useful for release managers, risk managers, support, deployment and test engineers.
IT release
operational risk
automates banking system
software testing
operational value at risk

В настоящее время происходит интенсивное развитие и усложнение банковских информационных систем и технологий, также наблюдается тенденция к сокращению релизного цикла, повышение скорости разработки и обеспечение возможности выпуска релиза в любой момент. Растёт популярность гибких методологий (Agile) [1], а также методологии DevOps (development and operations) [2] среди российских банков и их технологических подразделений. В условиях сокращения скорости вывода новых продуктов на рынок и повышения гибкости внедрений (release anytime) банки сталкиваются с проблемой поддержки текущих показателей надёжности автоматизированных систем и минимизации операционных IT-рисков. По этой причине управление релизным циклом банковского программного обеспечения не может рассматриваться отдельно от соответствующих технологических рисков, которые может привнести установка нового релиза.

Операционный IT-риск – это риск ущерба текущей деятельности банка в виде убытка или недополученного дохода, вызванный используемыми информационными технологиями и IT-процессами [3]. Примерами последствий инцидентов операционного IT-риска могут служить неверно рассчитанные платежи по кредитам, сбои в работе карточного процессинга в часы пиковой нагрузки, ошибки при расчете комиссионного вознаграждения банка при переводе денежных средств. Подобные ошибки способны привести к серьёзным денежным и репутационным потерям для различных организаций.

Cогласно методологии ITIL [4] управление IT-релизами – это процесс, отвечающий за планирование и контроль сборки, тестирования и развёртывания релизов, а также за внедрение нового функционала без нарушения целостности существующих IT-сервисов.

В современной литературе по управлению IT-процессами, включая методологию ITIL, слабо отражена проблема интеграции процесса управления релизами и процесса управления рисками. Цель данной статьи заключается в описании основных подходов к управлению IT-рисками в рамках релизного цикла банковского ПО, а также в разработке математической модели прогнозирования операционных IT-рисков перед внедрением новых версий программного обеспечения. При построении математической модели использован аппарат теории вероятностей, математической статистики и методов Монте-Карло. Представленная модель реализована с использованием языка программирования R.

Методы предотвращения реализации IT-рисков

Приведём основные мероприятия и практики, направленные на выявление и предотвращение реализации IT-рисков при внедрении нового функционала ПО, а также на снижение вероятности наступления рискового события либо минимизации его последствий в случае реализации.

  • Перед выпуском каждая доработка должна проходить обязательное тестирование. Также должен быть протестирован старый функционал, который мог быть затронут изменениями (регрессионное тестирование). Задача тестирования ПО – проверка соответствия реального и ожидаемого поведения программного обеспечения. Обязательным условием проведения тестирования критичного банковского ПО является развёртывание и использование отдельных тестовых сред [5].
  • Пилотирование нового функционала на промышленном контуре без тиражирования на все географические локации, отделения банка или устройства самообслуживания [3]. Данный подход предназначен для проверки работоспособности каждой следующей версии релиза в условиях реальных данных и ведет к уменьшению операционных рисков, а также к сокращению сроков вывода на рынок новых банковских услуг.
  • Использование систем мониторинга за сбоями в финансовых транзакциях, а также обеспечение возможности отката нового функционала с промышленного контура в случае обнаружения сбоев.
  • Непрерывный сбор статистических данных по инцидентам операционного риска, последующий анализ и выявление типовых рисков, которые имеют сходные сценарии реализации и могут быть предотвращены общими мероприятиями. При функциональном тестировании и при приемо-сдаточных испытаниях каждого релиза рекомендуется проводить тесты, покрывающие типовые риски.

Модель прогнозирования ущерба от IT-инцидентов

Считается, что на начальных фазах жизненного цикла ПО на 1000 строк исходного кода приходится 1–3 ошибки, которые приводят к дефектам вычислительного процесса [6]. Программа, состоящая из нескольких сотен строк, может иметь тысячи альтернативных путей выполнения. По этой причине отделы тестирования сталкиваются с проблемой неосуществимости исчерпывающего тестирования (exhaustive testing). Это означает, что невозможно найти 100 % дефектов в той или иной системе. Однако существует возможность, используя статистические данные, приближенно оценить число пропущенных дефектов и, как следствие, ущерб.

Опишем метод оценки, который базируется на модели Value at Risk (VaR).

Модели VaR, изначально разработанные в конце XX в. для оценки рыночного риска, могут также быть использованы в управлении операционными рисками для расчёта стоимостной меры операционного риска OpVar (Operational Value at Risk) [3].

Определим стоимостную меру операционного риска (operational value at risk, OpVar) IT-релиза t как значение потерь RLt (release losses) от инцидентов операционного риска в данном релизе, которая не будет превышена с вероятностью α.

petr03.wmf. (1)

В формуле (1) множество petr04.wmf – это множество всех возможных значений ущерба u в рассматриваемом релизе.

Потери от операционных рисков – это дискретный во времени случайный процесс, что является фундаментальным отличием OpVar от рыночных моделей VaR, в которых цена актива рассматривается как непрерывный случайный процесс.

Введём понятия интенсивности и критичности операционного риска.

Интенсивность (frequency) риска определим как количество Nt дефектов, привнесенных релизом t, t = 1,2,…, T.

Под критичностью (severity) риска будем понимать величину Li финансовых потерь, которые повлёк за собой дефект i, i = 1,2,…, Nt.

Предположим, что интенсивность риска имеет распределение Пуассона c математическим ожиданием λ, а частные потери от дефекта i (критичность риска) подчинены логнормальному [8] распределению с параметрами μ и σ2:

petr05.wmf,

petr06.wmf.

Также сделаем предположение, что случайные величины Nt и Li являются независимыми.

Совокупные потери за релиз t могут быть рассчитаны по следующей формуле:

petr07.wmf. (2)

Функция распределения случайной величины RLt может быть представлена в следующем виде:

petr08.wmf.

Вывод точной формулы для petr09.wmf является трудноразрешимой задачей [7], и в данной статье будет предложена модель оценки OpVar, основанная на методе Монте-Карло.

Пусть имеется массив статистических данных по IT-инцидентам для серии релизов. Методом максимального правдоподобия [8] можно оценить математическое ожидание petr10.wmf для распределения Пуассона, а также параметры petr11.wmf и petr12.wmf для логнормального распределения:

petr13.wmf, (3)

petr14.wmf, (4)

petr15.wmf. (5)

В формуле (3) petr16.wmf – статистические данные по количеству дефектов на релиз, в формулах (4) и (5) petr17.wmf – данные по величине ущерба на дефект (в руб.).

Очевидно, что статистические данные по инцидентам будут отсутствовать на ранних этапах проекта по разработке банковского ПО. Для ПО, которое используется в промышленной эксплуатации больше 3–5 лет, статистика также может отсутствовать или может быть неточной. В таких случаях для прогнозирования параметров интенсивности и критичности операционного риска (то есть параметров petr18.wmf, petr19.wmf и petr20.wmf) следует использовать статистические данные по смежным проектам либо метод экспертных оценок.

Используя метод Монте-Карло, сгенерируем N случайных величин, распределенных по Пуассону с параметром petr21.wmf: petr22.wmf.

Затем смоделируем потери, подчиненные логнормальному распределению с параметрами petr23.wmf и petr24.wmf, и, таким образом, получим совокупную матрицу интенсивности и критичности операционного риска (aggregated frequency and severity):

petr25.wmf.

Заметим, что разные строки матрицы AFS содержат различное число элементов, причём некоторые строки могут не содержать ни одного элемента.

Сложим элементы матрицы AFS по строкам и получим вектор совокупных потерь в разрезе N релизов:

petros02.wmf.

Упорядочим получившиеся суммы по возрастанию:

petr26.wmf.

Для расчёта OpVar найдём номер k*, такой, что petr27.wmf.

Исходя из (1) и из того, что все сценарии равновероятны:

petr28.wmf.

Отсюда

petr29.wmf, petr30.wmf,

иначе petr31.wmf.

Поэтому:

petr32.wmf.

Окончательно получим, что

petr33.wmf. (6)

Также можно рассчитать OpCVar (operational conditional value at risk) – математическое ожидание ущерба при условии, если он превысит значение VaR:

petr34.wmf. (7)

Расчёт показателя Value at Risk с использованием языка R

Продемонстрируем предложенный алгоритм расчёта OpVar на примере. Пусть имеются статистические данные за 14 релизов банковской автоматизированной системы (таблица), и требуется спрогнозировать потери от IT-инцидентов для внедряемого в настоящий момент релиза 15.

Для оценки параметров petr35.wmf, petr36.wmf и petr37.wmf выполним скрипт (рис. 1) на языке программирования R [9].

Получим:

petr38.wmf, petr39.wmf, petr40.wmf.

Рассчитаем показатели OpVar и OpCVar, используя R.

Листинг программы имеет следующий вид:

events_number<-10000 #1. Количество разыгрываемых сценариев

lambda<-fitdist(freq_hist, distr=»pois», method=»mle»)$estimate #2. Параметр λ распределения Пуассона

lnorm_mean<-coef(fitdist(sev_hist, distr=»lnorm», method=»mle»))[1] #3. Параметр μ логнормального распределения

lnorm_sigma<-coef(fitdist(sev_hist, distr=»lnorm», method=»mle»))[2] #4. Параметр σ логнормального распределения

alpha=0.95 #5. Доверительный уровень

k<-floor(alpha*events_number) #6. Параметр k* для расчёта OpVar

freq_sev_matrix<-list() #7. Генерация матрицы AFS (aggregated frequency and severity)

for(i in 1:events_number){

sev_vector <- c();

t<-rpois(1, lambda)

if(t>=1){

for(j in 1:t){

sev_vector<-append(sev_vector, rlnorm(1, meanlog=lnorm_mean, sdlog=lnorm_sigma));

}

}

freq_sev_matrix[[i]]<-sev_vector

}

total_sev_vector <- c(); #8. Вектор из сумм строк матрицы AFS

for(i in 1:events_number){

total_sev_vector<-append(total_sev_vector, sum(freq_sev_matrix[[i]]))

}

sorted_total_sev_vector<-sort(total_sev_vector) #9. Сортировка координат вектора из сумм строк матрицы AFS

var<-sorted_total_sev_vector[k] #10. Расчёт Var/CVar

above_var<-sorted_total_sev_vector[c((k+1):events_number)]

cvar<-mean(above_var)

print(var)

print(cvar)

Статистические данные по IT-инцидентам

№ релиза

Кол-во дефектов

Ущерб от дефектов, руб.

1

4

1586,74; 17379,30; 7416,71; 777,15

2

2

2863,54; 380513,40

3

2

314524; 15612,34

4

1

14857,74

5

4

141454,40; 97545,28; 3145,53; 6556,40

6

1

11428,18

7

4

83540,83; 24519,78; 14995,63; 908,42

8

1

136772,20

9

2

37441,59; 137692,50

10

2

22281,86; 1505342

11

0

12

3

132279,50; 64807,78; 365711,60

13

1

9411,29

14

3

176826,20; 4368,12; 7258,91

 

petr1.tif

Рис. 1. Оценка максимального правдоподобия в среде RStudio

petr2.tifРис. 2. Выполнение скрипта для расчёта OpVar и OpCVar

На рис. 2 изображены результаты выполнения программного кода в среде RStudio.

Исходя из рис. 2 потери для внедряемого релиза 15 могут быть выражены в следующих показателях:

petr41.wmf руб.

petr42.wmf руб.

Изобразим графически упорядоченные значения потерь petr43.wmf, а также величину OpVar (рис. 3). Для этого необходимо выполнить следующий скрипт:

plot(sorted_total_sev_vector, axes = FALSE, type=»l», ylim=c(0,2000000), xlab=»номер сценария», ylab=»величина ущерба (руб.)»,) # 1. Построение основного графика

axis(1, pos=0) # 2. Построение оси OX

axis(2, pos=0, las=1) # 3. Построение оси OY

points(k,0, pch=19) # 4. Отметим на графике OpVar

text(k, 0, k, pos=3)

points(k, var, pch=19)

text(k, var, «OpVar», pos=2)

petr3.tif

Рис. 3. Упорядоченные значения потерь по 10000 сценариям

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

petros01.wmf.

Рассчитаем OpVar для релиза 25:

petr44.wmf руб.

petr45.wmf руб.

Отсюда можно сделать вывод, что новые методы тестирования привели к сокращению максимального ожидаемого ущерба на 237 248 руб.

Заключение

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

В статье описаны способы минимизации IT-рисков на всех этапах жизненного цикла IT-релизов; разработана математическая модель оценки рисков, основанная на методе Value at Risk. Предложенная автором модель сопровождается практическим примером, а также программным кодом R.