Электронная библиотека » Дуглас Хаббард » » онлайн чтение - страница 5


  • Текст добавлен: 25 октября 2023, 16:30


Автор книги: Дуглас Хаббард


Жанр: Личные финансы, Бизнес-Книги


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 5 (всего у книги 25 страниц) [доступный отрывок для чтения: 8 страниц]

Шрифт:
- 100% +
Глава 3. Моделируем немедленно!
Введение в практические количественные методы оценки в сфере кибербезопасности

Построй немного. Попробуй немного. Узнай много.

Контр-адмирал Уэйн Мейер, руководитель программы системы вооружений Aegis

В этой главе мы предложим простую отправную точку для разработки количественной оценки риска. Позже будут рассмотрены более подробные модели (начиная с главы 6) и более современные методы (начиная с главы 8). А пока начнем с модели, которая лишь заменяет обычную матрицу рисков. Это всего лишь способ зафиксировать субъективные оценки вероятности и воздействия, но сделать это вероятностно.

Чтобы все получилось, придется освоить несколько методов. Прежде всего вы познакомитесь с идеей субъективной оценки вероятностей (хотя упражнения для обучения такой оценке мы отложим до главы 7, пока потерпите). Также будет представлен очень простой метод моделирования, а работа по фактическому построению симуляции по большей части будет сделана за вас (пример будет представлен в таблице Excel, которую можно загрузить с сайта www.howtomeasureanything.com/cybersecurity).

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

Простая замена «один на один»

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

Единственное предлагаемое нами изменение в том, чтобы вместо использования шкал типа «высокий, средний, низкий» или «от 1 до 5» эксперты научились субъективно оценивать фактические величины, стоящие за такими шкалами, т. е. вероятность и воздействие в денежном выражении. В табл. 3.1 кратко описана возможная замена каждого элемента привычной матрицы риска с помощью метода, использующего вероятности в явном виде.

Таблица 3.1. Сравнение метода простой замены величин и матрицы рисков

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

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

Эксперт как инструмент

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

1. Определить список рисков. Классифицировать риски можно по-разному, но сейчас только укажем, что для обычной матрицы рисков составляется такой же список.

2. Определить конкретный период времени, в течение которого может возникнуть несущее риск событие (например: «Утечка данных из приложения Х произойдет в ближайшие 12 месяцев», «Потеря доступа к системе Х достаточно продолжительная, чтобы привести к снижению производительности в ближайшие пять лет» и т. д.).

3. Для каждого риска субъективно определить вероятность (от 0 до 100 %), с которой заявленное событие произойдет в указанное время (например: «Существует вероятность 10 %, что утечка данных из системы X произойдет в ближайшие 12 месяцев»).

4. Для каждого риска субъективно определить диапазон финансовых потерь в случае наступления события в виде 90 %-ного доверительного интервала (ДИ). Это достаточно широкий диапазон, позволяющий быть на 90 % уверенными, что фактические потери окажутся в его пределах (например: «Если произойдет утечка данных из приложения X, то с вероятностью 90 % можно предположить, что потери составят от 1 до 10 млн долл.»).

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


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

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

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

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

Вычисляя неопределенность

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

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

В 1940-х годах ряд математиков и ученых начали использовать подобные симуляции тысяч случайных испытаний для некоторых очень трудных математических задач. Станислав Улам, Джон фон Нейман и Николас Метрополис сумели применить данный метод на примитивных компьютерах, доступных в то время, чтобы помочь решить математические задачи, связанные с разработкой первой атомной бомбы. Ими было обнаружено, что при проведении тысяч испытаний в произвольном порядке можно вычислить вероятность различных результатов для модели, имеющей некоторое количество входных данных, характеризующихся высокой степенью неопределенности. По предложению Метрополиса Улам назвал этот компьютерный метод генерации случайных сценариев методом Монте-Карло – по известному месту для любителей азартных игр, в честь своего дяди, заядлого игрока1. В настоящем, когда имеется большая вычислительная мощность (в миллиарды раз превышающая практически по всем показателям ту, что была доступна в Манхэттенском проекте), симуляции по методу Монте-Карло используются для моделирования проектных и финансовых рисков, для создания моделей риска на электростанциях, в системе поставок, в страховании и, да, в кибербезопасности.

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

Давайте начнем с очень простой задачи и разберем инструменты для ее решения. Предположим, есть набор возможных событий, которые могут случиться за год. Для каждого события заданы степень вероятности и диапазон возможных убытков, в случае если оно произойдет. Пусть вероятность одних событий составляет 1 %, а других – более 10 %. В конкретном году может не произойти события, которое приведет к значительным убыткам, или их окажется несколько, возможно даже, что одно и то же событие случится несколько раз в течение года. Для последнего варианта также есть решение, но сейчас мы будем придерживаться простого сценария и моделировать событие как результат «или-или», происходящий не чаще одного раза в год. Матрица рисков, в любом случае, не учитывает подобный вариант (как и некоторые другие аспекты, о которых поговорим позже), так что простой сценарий делает пример ближе к принципу замены «один на один».

Далее в книге будет возможность подробнее остановиться на этом виде моделирования. Однако, чтобы помочь вам начать работу, мы предоставили несколько простых примеров в электронной таблице Excel, которую можно загрузить с сайта www.howtomeasureanything.com/cybersecurity. Вооружившись информацией из таблицы и более подробными материалами из следующих глав, вы сможете моделировать свою неопределенность и отвечать на вопросы вроде «Какова вероятность того, что в следующем году из-за кибератаки убытки составят больше, чем X?».

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

Введение в генерацию случайных событий и воздействий в Excel

Начнем с определения того, произошло ли событие в отношении одного риска в одном сценарии. Для этого при моделировании можно случайным образом генерировать «1», если событие произойдет, и «0», если не произойдет, где вероятность получения «1» равна заявленной вероятности события. В редакторе Excel это можно записать следующим образом:

=ЕСЛИ(СЛЧИС() < вероятность_события;1;0)

Например, если вероятность события равна 0,15, то эта формула будет выдавать результат «1» (означающий, что событие произошло) в 15 % случаев. В Excel при каждом новом вычислении (по нажатию клавиши F9) будет получаться новый результат. Повторив операцию тысячу раз, вы увидите, что событие произойдет примерно 150 раз. Обратите внимание, что так будет для каждого отдельного риска, указанного в симуляции. То есть, если у вас 100 рисков, у каждого из которых различная вероятность, и вы запустите 1000 сценариев, то эта маленькая формула будет рассчитана 100 000 раз.

Для определения воздействия необходимо генерировать не просто «0» или «1», а континуум значений. Это можно сделать с помощью одной из обратных функций вероятности редактора Excel. Некоторые функции вероятности в Excel позволяют определить вероятность конкретного результата при определенном распределении вероятности. Например, НОРМРАСП(x;среднее; стандартное_откл;1) покажет вероятность того, что нормальное распределение с заданными средним значением и стандартным отклонением даст значение, равное x или меньше. Обратная же функция вероятности выдаст значение x с учетом вероятности.

В Excel обратная функция вероятности для нормального распределения выглядит так:

=НОРМОБР(вероятность; среднее; стандартное_откл)

(Примечание: в последних версиях Excel также используется функция НОРМ.ОБР, но НОРМОБР тоже работает.) Если заменить аргумент «вероятность» на функцию СЛЧИС(), то получится нормально распределенное случайное число с указанным средним значением и стандартным отклонением. Стандартное отклонение – своего рода мера ширины распределения вероятности, но на самом деле эту величину специалистам очень трудно определить интуитивно. Лучше просто попросить эксперта назвать 90 %-ный доверительный интервал, как описывалось ранее. ДИ можно использовать для вычисления необходимых параметров среднего значения и стандартного отклонения на основе верхнего и нижнего пределов (ВП и НП) диапазона потенциальных убытков, предоставленного экспертом.

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


Рис. 3.1. Сравнение логнормального и нормального распределений


На рис. 3.1 показан пример подобного распределения в сравнении с нормальным. Обратите внимание, что логнормальное распределение, в отличие от нормального, выглядит однобоким или «перекошенным». При логнормальном распределении не может получиться нулевое или отрицательное число, но у него имеется хвост справа, допускающий получение очень больших значений в результатах. Именно поэтому логнормальное распределение часто реалистично отражает вероятность различных сумм убытков. Нормальное распределение достаточно широкое, чтобы охватить некоторые экстремальные события, однако оно может также выдавать нелогичные отрицательные результаты на другом конце шкалы (не может быть отрицательного количества взломанных учетных записей или отрицательного времени простоя системы). Вот почему логнормальное распределение используют еще и для моделирования различных величин, которые не могут быть отрицательными, но способны (хотя и редко) оказываться очень большими.

Для получения логнормального распределения в примере, представленном на сайте книги, применяется следующая формула Excel:

= ЛОГНОРМОБР(СЛЧИС();среднее ln(X);стандартное_отклонение ln(X)),

где:

стандартное_отклонение ln(X) = (ln(ВП) – ln(НП))/3,29)

среднее ln(X) = (ln(ВП) + ln(НП))/2)

Таким образом, если нами получен 90 %-ный ДИ для воздействия от 100 000 до 8 млн долл., тогда среднее и стандартное отклонение, которые должны использоваться в функции ЛОГНОРМОБР (т. е. среднее значение и стандартное отклонение логарифма исходного распределения), будут равны:

среднее ln(x) = (ln(8000000) + ln(100000)) / 2 = 13,7

стандартное_отклонение ln(x) =

(ln(8000000) – ln(100000)) / 3,29 = 1,33

Определение убытков от события, у которого вероятность возникновения составляет 5 %, а воздействие – от 1 до 9 млн долл., можно записать так:

= ЕСЛИ(СЛЧИС() < 0,05; ЛОГНОРМОБР(СЛЧИС(); (ln(9000000) + ln(1000000)) / 2;

(ln(9000000) – ln(1000000)) / 3,29); 0)

В большинстве случаев (95 %) эта функция будет выдавать ноль. И только в 5 % случаев она сгенерирует значение, которое с вероятностью 90 % попадет в диапазон от 1 до 9 млн долл. Обратите внимание, что, поскольку это 90 %-ный ДИ, существует вероятность 5 %, что значение окажется ниже нижнего предела (но выше нуля, так как логнормальное распределение может давать только положительные значения), и вероятность 5 %, что оно будет выше верхнего предела, иногда намного выше. Так, если в приведенном выше примере событие происходит, то существует вероятность 1 %, что убытки могут превысить 14,2 млн долл.

Логнормальные распределения следует применять осторожно. Экстремальные значения убытков заданного 90 %-ного ДИ могут оказаться нереалистичными, если верхний предел во много раз превысит нижний. Так происходит, когда эксперт, оценивающий значение, ошибочно решает, что верхний предел представляет собой наихудший вариант, а это не так. Верхний предел 90 %-ного доверительного интервала допускает с вероятностью 5 %, что значение будет больше. Экстремальные результаты также чувствительны к нижнему пределу. Если 90 %-ный ДИ составляет от 10 000 до 1 млн долл., то верхний предел оказывается в 100 раз больше нижнего. В этом случае существует вероятность 1 %, что убытки в 2,6 раза превысят заявленный верхний предел (составят 2,6 млн долл.). Если же 90 %-ный ДИ составляет от 1000 до 10 млн долл., то убытки с вероятностью 1 % будут больше верхнего предела более чем в 6,7 раза (67 млн долл.).

Если числа кажутся слишком большими, измените ширину диапазона или просто ограничьте сгенерированное значение некоторым максимумом. При желании обозначить, что 10 млн долл. – это максимальный убыток, можно использовать функцию =МИН(убытки;10000000), чтобы в результате получить наименьшую сумму из убытков или 10 млн долл.

В приложении А представлены и другие распределения, более подходящие для решения тех или иных типов проблем. Там же указаны формулы Excel для распределений с описанием, когда уместно применять каждое из них. Позже мы еще затронем тему выбора распределения.

Суммирование рисков

Для большого количества событий и воздействий можно составить таблицу наподобие табл. 3.2, чтобы смоделировать все убытки для всех событий (пример можно скачать с сайта www.howtomeasureanything.com/cybersecurity).

В приведенном примере интерес представляет общая сумма убытков: 23 345 193 долл. Теперь остается лишь провести еще несколько тысяч испытаний, чтобы увидеть, каким будет распределение убытков. Каждый раз при пересчете таблицы в итоговой сумме будет появляться новое значение (если вы работаете в MS Office на ПК, то команда «пересчитать» должна запускаться нажатием клавиши F9). Если бы вы сумели каким-то образом записать каждый такой результат нескольких тысяч испытаний, то получили бы итог симуляции по методу Монте-Карло.

Таблица 3.2. Пример наступления события риска кибербезопасности, выполненный в Excel

В Excel это проще всего сделать с помощью таблицы данных инструмента «Анализ „что если“». Можно запускать сколько угодно испытаний и видеть результаты каждого, и при этом не придется тысячи раз копировать табл. 3.2. Таблица данных позволяет пользователю Excel увидеть, как будет выглядеть серия ответов в формуле, если менять по одному параметру за раз. Например, у вас есть очень большая электронная таблица для расчета пенсионного дохода, включающая текущие нормы сбережений, рост рынка и ряд других факторов. Возможно, вы захотите посмотреть, как изменится оценка продолжительности проекта, если менять размер ежемесячных сбережений со 100 до 5000 долл. с шагом в 100 долл. В таблице данных автоматически отобразятся все результаты, как если бы вы вручную каждый раз самостоятельно изменяли этот один параметр и записывали результат. Этот метод применяется в электронной таблице, которую можно скачать с сайта www.howtomeasureanything.com/cybersecurity.

Таблица 3.3. Таблица данных Excel, показывающая 10 000 сценариев убытков из-за нарушения кибербезопасности

Чтобы узнать больше о таблицах данных в целом, изучите основы на страницах справки в Excel, но нами используется немного измененный вариант таблицы-образца. Обычно требуется ввести значение в поле «Подставлять значения по столбцам в» или в поле «Подставлять значения по строкам в» (в нашем случае можно было бы использовать только поле «Подставлять значения по столбцам в»), чтобы указать, какое значение таблицы данных будет многократно меняться для получения различных результатов. В данном же примере не требуется определять, какие входные данные менять, потому что у нас уже есть функция СЛЧИС(), меняющая значение каждый раз при пересчете. Таким образом, наши входные значения – просто произвольные числа, отсчитываемые от 1 до количества сценариев, которое мы хотим запустить.

Существует важный момент, касающийся количества испытаний при моделировании событий нарушения кибербезопасности. Нам часто приходится иметь дело с редкими, но обладающими большим воздействием событиями. Если вероятность события составляет всего 1 % в год, то 10 000 тестов в большинстве случаев приведут к 100 таким событиям за указанный срок, но этот показатель может немного варьироваться. При данном количестве испытаний он может произвольно варьироваться от ровно 100 (точно так же, как при подбрасывании монетки из 100 раз не обязательно выпадет ровно 50 орлов). В этом случае результат будет находиться между 84 и 116 примерно в 90 % случаев.

Теперь для каждого из случаев, когда происходит событие, нужно смоделировать убытки. Если у убытков длинный хвост, то при каждом запуске симуляции по методу Монте-Карло могут наблюдаться значительные отличия. Под длинным хвостом имеется в виду, что, вполне возможно, убытки будут больше среднего. Например, у нас может быть распределение убытков, где наиболее вероятным исходом являются убытки в 100 000 долл., но существует 1 %-ная вероятность крупных убытков (50 млн долл. или более). Однопроцентный наихудший сценарий в риске, вероятность которого всего лишь 1 % в год, – это, прежде всего, ситуация, которая может произойти с вероятностью 1/100 × 1/100, или 1: 10 000 в год. И поскольку 10 000 является заданным количеством тестов, то в какой-то симуляции это наихудшее событие может произойти один или несколько раз за 10 000 испытаний, а в какой-то может не произойти ни разу. Это значит, что каждый раз при запуске симуляции по методу Монте-Карло можно наблюдать, что среднее общее значение убытков немного меняется.

Самым простым решением здесь для специалиста, использующего метод Монте-Карло, которому не хочется слишком утруждаться, станет проведение большего числа испытаний. Разброс значений от симуляции к симуляции уменьшится, если провести 100 000 тестов или 1 млн. Вы удивитесь, как мало времени это занимает в Excel на достаточно быстром компьютере. У нас заняло несколько секунд проведение 100 000 тестов, так что затрачиваемое время не кажется серьезным ограничением. Мы даже выполнили в старом добром Excel миллион сценариев с несколькими крупными вычислениями, и на это потребовалось не более 15 минут. Однако, по мере того как события становятся все более редкими и значимыми, применяются более эффективные методы, чем увеличение числа испытаний в разы. Но пока не будем усложнять задачу и просто бросим дешевые вычислительные мощности на решение проблемы.

Теперь у нас есть способ генерации тысяч результатов в симуляции по методу Монте-Карло с помощью стандартного Excel (без каких-либо надстроек или кода Visual Basic для выполнения расчетов). Учитывая, насколько широко используется Excel, почти наверняка у любого аналитика из сферы кибербезопасности есть инструменты для его применения. А полученные данные можно использовать для другого важного элемента анализа риска – количественной визуализации риска.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 | Следующая
  • 0 Оценок: 0

Правообладателям!

Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.

Читателям!

Оплатили, но не знаете что делать дальше?


Популярные книги за неделю


Рекомендации