У использования диапазонов для обозначения неопределенности вместо нереалистично точных конкретных значений есть свои преимущества. Скажем, при применении диапазонов и вероятностей нет нужды делать предположения, в которых вы не уверены. Однако плюс точных значений в том, что их легко складывать, вычитать, умножать и делить в электронной таблице. Если точно знать величину убытков каждого типа, можно без труда вычислить общие убытки. А поскольку для каждого типа у нас есть только диапазоны, то для вычислений придется использовать методы вероятностного моделирования.
Так каким же образом выполнять математические действия в электронной таблице, когда у нас не точные значения, а диапазоны? К счастью, есть проверенное практическое решение, которое можно применить на любом современном компьютере, – метод Монте-Карло. В симуляции по методу Монте-Карло с помощью компьютера генерируется множество сценариев, в качестве вводных данных для которых используются вероятности. В каждом сценарии для каждой из неизвестных переменных случайным образом задается конкретное значение. Затем эти значения подставляются в формулу для расчета выходных данных одного сценария. Процесс обычно охватывает тысячи сценариев.
В 1940-х годах ряд математиков и ученых начали использовать подобные симуляции тысяч случайных испытаний для некоторых очень трудных математических задач. Станислав Улам, Джон фон Нейман и Николас Метрополис сумели применить данный метод на примитивных компьютерах, доступных в то время, чтобы помочь решить математические задачи, связанные с разработкой первой атомной бомбы. Ими было обнаружено, что при проведении тысяч испытаний в произвольном порядке можно вычислить вероятность различных результатов для модели, имеющей некоторое количество входных данных, характеризующихся высокой степенью неопределенности. По предложению Метрополиса Улам назвал этот компьютерный метод генерации случайных сценариев методом Монте-Карло – по известному месту для любителей азартных игр, в честь своего дяди, заядлого игрока1. В настоящем, когда имеется большая вычислительная мощность (в миллиарды раз превышающая практически по всем показателям ту, что была доступна в Манхэттенском проекте), симуляции по методу Монте-Карло используются для моделирования проектных и финансовых рисков, для создания моделей риска на электростанциях, в системе поставок, в страховании и, да, в кибербезопасности.
Если у вас нет опыта работы с симуляциями по методу Монте-Карло, скорее всего, они кажутся вам сложнее, чем есть на самом деле. Они регулярно применяются авторами и многими их сотрудниками для решения различных практических задач в бизнесе. Нам не единожды приходилось видеть, как люди, у которых сама идея использования симуляций по методу Монте-Карло вызывала дискомфорт, после непосредственной работы с ними становились в итоге их ярыми сторонниками.
Давайте начнем с очень простой задачи и разберем инструменты для ее решения. Предположим, есть набор возможных событий, которые могут случиться за год. Для каждого события заданы степень вероятности и диапазон возможных убытков, в случае если оно произойдет. Пусть вероятность одних событий составляет 1 %, а других – более 10 %. В конкретном году может не произойти события, которое приведет к значительным убыткам, или их окажется несколько, возможно даже, что одно и то же событие случится несколько раз в течение года. Для последнего варианта также есть решение, но сейчас мы будем придерживаться простого сценария и моделировать событие как результат «или-или», происходящий не чаще одного раза в год. Матрица рисков, в любом случае, не учитывает подобный вариант (как и некоторые другие аспекты, о которых поговорим позже), так что простой сценарий делает пример ближе к принципу замены «один на один».
Далее в книге будет возможность подробнее остановиться на этом виде моделирования. Однако, чтобы помочь вам начать работу, мы предоставили несколько простых примеров в электронной таблице Excel, которую можно загрузить с сайта www.howtomeasureanything.com/cybersecurity. Вооружившись информацией из таблицы и более подробными материалами из следующих глав, вы сможете моделировать свою неопределенность и отвечать на вопросы вроде «Какова вероятность того, что в следующем году из-за кибератаки убытки составят больше, чем X?».
Для решения нашей задачи мы смоделируем тысячи сценариев для каждого риска. В каждом сценарии нужно лишь определить по каждому виду риска, произойдет ли событие и, если произойдет, каковы будут его последствия.
Начнем с определения того, произошло ли событие в отношении одного риска в одном сценарии. Для этого при моделировании можно случайным образом генерировать «1», если событие произойдет, и «0», если не произойдет, где вероятность получения «1» равна заявленной вероятности события. В редакторе Excel это можно записать следующим образом:
=ЕСЛИ(СЛЧИС() < вероятность_события;1;0)