Quis custodiet ipsos custodes?

Disclaimer

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

четверг, 7 апреля 2016 г.

В поисках пользы от внутреннего аудита. Часть 2 Аналитификация

Итак, продолжаем предыдущий пост и переходим ко второму блоку - использование технологий.
Использование (точнее не использование) технологий внутренним аудитом, еще больше баян более проверенная временем тема. Технологии анализа данных развиваются семимильными шагами. На основе анализа данных возникают целые новые многомиллионные направления бизнеса. Данные уже называют "новой нефтью". И только аудиторы-староверы не продвинулись за последние десять лет дальше сводных таблиц в Excel. Я ничего не имею против этого замечательного продукта, но это всего лишь один из инструментов, которые можно использовать. И, к большому сожалению, он имеет далеко не такой широкий функционал, как хотелось бы.  Примечательно, что,  согласно многочисленным исследованиям, руководители внутреннего аудита "понимают важность" вопроса развития использования аналитики для нужд внутреннего аудита и "планируют внедрить в течение нескольких лет". Но, взглянув на исследования предыдущих годов (и предыдущих, и предыдущих), видно, что воз и ныне там. И, в отличие от предыдущей темы, тут пенять не на кого. Точнее причины, конечно, есть. Это и "отсутствие методологии", и "отсутствие навыков и знаний", и "трудности в выборе правильного инструментария". Все эти трудности каждый год оказываются непреодолимыми, а аналитические способности функции - неизменными. И закрадывается подозрение, что причина одна - не хочется менять устоявшиеся подходы. 
Но, предположим, что менять все-таки хочется. С чего начать?  Какой инструмент выбрать? Какие знания нужны?  Для этого нужно ответить для себя на несколько вопросов. Для начала  - "что мы хотим получить в результате?". А в результате мы хотим получить ответы на вопросы, которые больше всего волнуют акционеров, аудиторский комитет и менеджмент. Плюс свое видение о потенциальных и существующих рисках для компании. Ну, да. Те самые вопросы, которые формируют нам аудиторский план. Пока ничего нового. От вопроса "что мы хотим получить?" плавно переходим к вопросу "как?". Вернее, сначала к "что мы хотим анализировать?" для получения ответов, на интересующие нас вопросы. И тут нас встречают первые сложности. Когда задаешь аудитору вопрос "а ты проанализировал X в рамках анализа Y?", он говорит, что пытался, но "данных нет" или "данные плохие и неполные". И в большинстве случаев это вовсе не означает, что данных, необходимых для анализа, нет. Просто нет привычных и понятных для аудитора структурированных данных. Т.е. данных, имеющих четкую, как правило, табличную, структуру. Таких как выгрузки из информационных систем, данных в виде таблиц Excel и т.д. А неструктурированную информацию, которая кроется в сообщениях электронной почты, документах, на сайтах и т.д. в свободной форме, в графическом и других цифровых форматах (например, аудио или видео), аудитор не рассматривает. Потому, что не знает как ее можно качественно обработать за приемлемый срок.  Вот у нас и обнаружилась первая область для потенциального улучшения - анализ неструктурированных данных. Но прежде, чем перейти к вопросу при помощи чего их анализировать, давайте разберемся со структурированными данными. Казалось бы - чего в них разбираться?  Загнал в Excel (или, если много, то в SQL Server) и анализируй до упаду. Однако "традиционные" методы, используемые аудитом для анализа - сравнение, группировка, объединение и фильтрация, достаточны для получения далеко не для всех ответов на поставленные перед аудитом вопросы. И, в дополнение к "традиционным" методам, нам понадобится широкий арсенал методов статобработки. Вот и вторая область для потенциального улучшения - методы обработки данных. Кстати, эта область касается и неструктурированных данных. Тут метод "традиционного" подхода занимает поиск по ключевым словам, а к "продвинутым" текст-майнинг и визуализация неструктурированных данных.
Понимая что (вид данных) мы хотим анализировать и как (методы), уже не так сложно определиться с инструментарием. Ниже приведу несколько видов инструментов, из которых можно сформировать свой арсенал.  Некоторые инструменты имеют узкую специализацию, другие представляют собой универсальные решения, поэтому  деление на виды достаточно условное.


Электронные таблицы 

Ну, тут все понятно. Проверенные временем решения а-ля Microsoft Excel известны каждому аудитору. Отличный инструмент для "традиционного" метода обработки не очень большого объема структурированных данных. Возможности стат. обработки тоже присутствуют, но количество специалистов (в аудите), знакомых с ними, относительно невелико. К недостаткам следует отнести производительность и относительно небольшой объем данных, которые можно комфортно обрабатывать. После нескольких сот тысяч строк данных, система начинает спотыкаться и тормозить. Проблема частично решается "костылем" в лице Power Pivot, который Microsoft вначале выпустила в виде отдельной бесплатной надстройки для версии 2010 года, а затем, в 2013 - в виде встроенного функционала. Надстройка достаточно шустро справляется с объемом данных более миллиона строк и позволяет "покрутить" данные в сводных таблицах. А, потратив немного времени на изучение встроенного языка DAX, возможности аналитики можно существенно расширить. Тем не менее, это скорее инструмент "традиционного" подхода. Хорош, но не самодостаточен.


Системы управления базами данных (СУБД) 

Эту категорию по-хорошему нужно было бы разделить на две. 
К первой отнести традиционные реляционные СУБД, такие как Microsoft Access, Microsoft SOL Server, Oracle, MySQL и т.д. Эта группа инструментов схожа с электронными таблицами. Т.е. анализ тех же структурированных данных теми же "традиционными" методами. Разница в возможности комфортной обработки гораздо большего количества данных. Специалистов в аудите, умеющих работать с данными в СУБД, по сравнению с электронными таблицами, гораздо меньше,  но обучение достаточно не сложное и, при необходимости, можно  специалиста   можно обучить за достаточно приемлемое время.
Ко второй категории я бы отнес более современное семейство NoSQL СУБД. Они отличаются большей гибкостью, поскольку им не присущи ограничения реляционных баз данных, а также большей производительностью и масштабируемостью. Под гибкостью я подразумеваю, в том числе, и возможность работать с неструктурированными данными. Среди семейства NoSQL хочу выделить два типа СУБД, потенциально интересных для нужд внутреннего аудита:

  • Первый тип - документо-ориентрированные СУБД (например, MongoDB). Предназначены для хранения иерархических структур и отлично справляются с задачами документального поиска.
  • Второй тип - СУБД на основе графов (например, Neo4j). Предназначены для анализа данных, имеющих большое количество связей. Хорошо подходят для задач по анализу социальных сетей (об этом немного ниже) и выявлению мошенничества. 


Встраиваемые аудиторские модули

Встраиваемые аудиторские модули (они же Embedded Audit Modules) - это функционал позволяющий выявлять в режиме онлайн транзакции, удовлетворяющие определенным критериям. Данный функционал является основой для построения процесса, так называемого непрерывного аудита (continuous auditing). Если на пальцах, то процесс выглядит так: 
  • мы определяем набор критериев для транзакций, которые нас интересуют
  • система в режиме онлайн выявляет такие транзакции и уведомляет о них аудит
  • аудит проводит дополнительные процедуры с выявленными транзакциями и делает вывод 
Это можно использовать для нужд комплайенса, финансового мониторинга, обнаружения случаев мошенничества, дополнительного контроля высокорисковых транзакций и т.д.
Не смотря на уже почтенный возраст инструмента, популярность его использования среди аудиторов относительно не высока. На мой взгляд, причиной такой ситуации является необходимость существенно менять аудиторские процессы для  нужд непрерывного аудита. Для того чтобы это эффективно работало, нужно не только досконально разобраться в процессе и определить критерии для мониторинга, но и организовать возможность выделения ресурсов для тестирования в тот момент, когда транзакции были обнаружены. К тому же процесс периодически меняется, равно как и присущие ему риски. Значит, что и критерии мониторинга нужно оперативно пересматривать. Теперь умножаем все это на количество интересующих нас процессов, и ресурсов на классический аудит по плану у нас уже не остается. Поэтому и желающих ввязываться  не так много.
Несмотря на существенные недостатки в виде необходимости перестраивания процессов, подход имеет и большое преимущество в виде возможности оперативного реагирования на события. Поэтому не стоит спешить отказываться от него. Во-первых, его можно внедрить только в отдельных процессах, представляющих наибольший интерес. Например, в закупках. Во-вторых, этот метод отлично подходит для целей внутреннего контроля. Суть та же, только в конце цепочки не аудитор, а исполнитель контроля. 


Аналитика текстовой информации и поиск по ключевым словам

Данное направление имеет отличный потенциал, поскольку практически все компании давно перешли на электронный документооборот и стараются  по максимуму держать свои данные в цифровом виде. Это документы, договора, электронная почта... Чего там только нет! И оставить этот ворох информации без внимания было бы кощунством. 
В свое время, даже "традиционные" методы обработки текстовой информации, такие как поиск по ключевым словам и извлечение данных из текстовых документов давали отличный результат. Системы на подобии Monarch ворошили по определенным правилам кучу текстовых выписок и других документов и собирали это все в табличный вид, удобный для быстрой обработки. Это экономило недели времени на обработку информации и сохраняло здоровой относительно здоровой психику.
На текущий момент существует около сотни (а может и больше) решений для аналитики текстовой информации. Этот специализированные системы, вроде GATE, Natural Language Toolkit (NLTK); вэб-сервисы, вроде  AlchemyAPI; модули расширений к более универсальным решениям вроде Rapidminer, Orange, WEKA, KNIME, о которых речь чуть ниже; пакеты для специализированных языков обработки данных, вроде mt для R.
К своему стыду должен признаться, что использование "продвинутых" методов данного вида инструментов пока что находятся у меня на стадии изучения. Известные мне "продвинутые" методы аналитики текстовой информации полезны для других областей, вроде PR или маркетинга. Но выбросить этот вид из обзора было бы не правильно. Лучше я напишу отдельный пост после завершения изучения на тему того, какие еще возможности открывают современные методы аналитики текстовой информации для внутреннего аудита.


Системы анализа социальных сетей и web

Казалось бы - какое отношение социальные сети и вэб имеют к задачам внутреннего аудита? Во-первых, в данном случае, под социальной сетью подразумеваются не только ресурсы на подобие Facebook, LinkedIn и т.д., но вообще любые наборы объектов (компании, люди) и их взаимоотношений. Да, не совсем определение из википедии, но о терминах не спорят - о них договариваются. И анализ таких взаимоотношений дает очень интересные результаты, особенно в проектах по расследованию мошенничества. Во-вторых, и из в классическом понимании социальных сетей можно раздобыть много полезной информации. Пример из практики - тот же Facebook, в свое время, дополнил аудит процесса закупок весьма интересными фактами о взаимоотношениях сотрудников компании и контрагентов и позволил выявить наиболее результативную зону для анализа. Результаты были весьма впечатляющие (увы, это все детали, которые мне позволяет озвучить NDA).
А если взять данные внутри компании, дополнить их данными из открытых баз всевозможных реестров государственных служб, которых уже несколько сотен, да добавив информацию из социальных сетей, можно выявлять и потенциально недобросовестных сотрудников, и недоброкачественных контрагентов, да мало ли что. 
Подобных решений, как всегда много. Тут и СУБД на основе графов, о которых я говорил выше, и коммерческие решения на подобие i2 от IBM, и дополнения к многоцелевым системам анализа и пакеты для специализированных языков программирования, о которых речь чуть ниже, есть и бесплатные решения вроде NodeXL или Gephy. Последний меня впечатлил, когда я слушал курс Иллинойского университета по визуализации данных. В качестве одной из практических работ предлагалось выполнить визуализацию какого-нибудь графа. Я, не мудрствуя лукаво, выгрузил список своих контактов и их взаимосвязи с Facebook.  Gephy в несколько кликов проанализировав взаимосвязи моих контактов, сгруппировал их, четко разделив по группам взаимоотношений - друзья, родственники, коллеги и т.д. Причем коллег по компаниям, а в отдельных случаях еще и по департаментам внутри компании. Притом, что информации о принадлежности изначально не было - система вывела закономерности на основе взаимосвязей и отношений.
Короче, инструментарий для извлечения данных из интернета, консолидации, анализа и визуализации результатов очень полезен. 


Системы визуального анализа 

Визуализация данных - это прекрасный инструмент не только для презентации результатов в простой и понятной форме, но еще и для самого анализа данных. Большое количество решений на подобии Microstrategy, Spotfire, QlikView, Tableau позволяют  "покрутить"  данные в различных представлениях и разрезах и увидеть тренды, взаимосвязи, исключения и аномалии не всегда настолько очевидные при работе с цифрами. Плюс процесс выполняется гораздо быстрее и удобнее. Это не значит, что визуальный анализ может полностью заменить другие виды, но для многих сможет стать достойной альтернативой. Согласно многочисленным опросам и дискуссиям, лидирующее место среди подобных решений занимают QlikView и Tableau. Лично мне больше нравится последний, поскольку мне он кажется более удобным в использовании. Но это - дело вкуса.


Аналитические системы, стат. анализ и пакеты для дата-майнига 

Данный вид, пожалуй, следует разделить на несколько подвидов: 

  • Пакеты анализа данных для аудиторских задач, так называемое Generalized Audit Software на подобие ACL, TopCAATs или iDEA. В свое время появились как улучшенная альтернатива электронным таблицам. На тот момент были очень неплохи. И ограничения по объему данных не было (если конечно было достаточно времени для обработки больших объемов). И операции с данными выполнялись не написанием формул (хотя такой функционал был), а при помощи удобных мастеров. И самое главное - все действия писались в виде протокола команд, который потом можно было использовать в качестве скрипта для повторения такого же набора действий с другим набором данных. Это здорово сокращало время на повторяющихся процедурах. Но, к сожалению, системы так и остались на "традиционном" походе.
  • Системы анализа данных на базе визуального программирования на подобии WEKA, Rapidminder, KNIME, Orange. Более интересные и продвинутые решения, чем предыдущий вид. Разнообразные  дополнения и расширения имеют очень широкий функционал возможностей, которые можно объединять в одной обработке данных. Например, обработать набор документов, извлекая из него набор необходимых данных, объединить их с данными из другого источника, обработать полученный массив и визуализировать результат. И все это описывается достаточно быстро, за счет визуального программирования. Другими словами - перетаскивая блоки мышкой по экрану и добавляя нужные параметры. Отличный баланс  между функционалом и простотой использования.
  • Пакеты стат. обработки. Ну что тут еще добавить? Пакеты статистического анализа вроде  SPSS, Statistica, Stata, PSPP давно пользуются большой популярностью среди широкого круга профессий. В аудиторских кругах популярность не очень высокая. Объясняется в основном недостатком специалистов, понимающих как использовать методы статистической обработки для целей аудита.  
  • Специализированные и общие языки программирования. Пожалуй, самый мощный и универсальный видов решений, позволяющий решать практически любые задачи по обработке данных. Все, что описано в возможностях других видов инструментов, можно смело включить в описание возможностей данного вида, добавив в конце "и гораздо больше...". Безусловными лидерами в данном направлении являются R, Python и SAS. В свое время, прочитав множество обзоров и сравнений, я убедился в том, что SAS уступает первым двум инструментам и решил сосредоточиться на них. R - создавался как специализированный язык обработки данных, Python - язык программирования общего назначения. Все остальные отличия, преимущества и недостатки относятся, скорее, к религиозным вопросам. На мой взгляд - это два абсолютно равнозначных инструмента. Для каждого из них разработаны несколько тысяч готовых пакетов функций обработки данных, при помощи которых можно решить практически любую задачу. Ну, может быть в R чуть-чуть лучше реализована визуализация. Разумеется, что ничто в этом мире не достается бесплатно. И ценой за этот функционал является большое количество времени, необходимого для обучения пользованию инструментом. Сложность изучения ни много ни мало равнозначна времени изучения любого другого языка программирования. 


Технологии "Больших данных" 

После голубых кристаллов и нано-технологий маркетологи увидели потенциал в "больших данных". В результате "большие данные" превратились в красивую обертку и приобрели мифические свойства всесильного подорожника  сильно преувеличенные возможности открывать неизведанное в больших массивах данных. 
Ситуацию очень наглядно пописывает уже несколько побитая фраза:
Большие данные - как подростковый секс. Каждый говорит об этом, никто толком не знает, как это делается, и каждый уверен, что все остальные это делают. Поэтому все говорят, что тоже этим занимаются…
На самом деле - это всего лишь технологии для распределенной обработки очень больших объемов данных. Чуда не произошло. Это - всего лишь больший объем данных, которые тоже можно обработать. 
Для целей внутреннего аудита решения, вроде Hadoop, представляют, в основном, академический интерес. Хотя бы потому, что у внутреннего аудита не бывает (за очень редким исключением) задач, связанных с обработкой такого большого массива данных. За все время мне удалось найти лишь несколько упоминаний использования технологии "больших данных" в аудиторских проектах. При этом каждый раз присутствовали факты, вызывающие у меня определенные сомнения в ценности данных упражнений. Наличие внешних консультантов и фокус описания более на объеме обработанных данных, нежели на полученных результатах говорит не о полезности таких процедур, а о желании этих самых консультантов продать дорогой масштабный проект. 


Аудио / видео поиск и аналитика 

Данный вид включил для расширения кругозора. Поскольку аудио- и видеоматериалы - это тоже данные, которые можно обрабатывать.  Причем без специализированных средств - это достаточно трудоемкий процесс, поскольку, если нам не известно время события,  нужно прослушать / просмотреть материалы от начала до конца без возможности поиска. К счастью, данные задачи крайне редко возникают у внутреннего аудита. В голову приходят только анализ аудиозаписей заседаний комитетов (если такие велись) или записей звонков клиентов / контрагентов. В этом случае может помочь решение вроде NICE или Nexidia (кстати, сейчас это уже "и", поскольку одна купила другую).
Задач по анализу видео - еще меньше. В голову приходит только анализ записей видеокамер наблюдения.  Да, современные системы распознавания относительно неплохо справляются с потоковым видео, но только если картинка хорошего качества. Если используются дешевые китайские камеры - чуда не произойдет. Ни одна система из сильно зашумленной размытой картинки низкого разрешения не сделает "как в кино"  при помощи секретного нано-алгоритма разборчивую картинку. Другое дело, если используется современная "умная" система видеонаблюдения, которая сама распознает наличие людей, машин, распознает на них (машинах) номера и т.д.  Тогда обработка записей занимает гораздо меньше времени. Можно пропускать места, где "ничего не происходить", делать поиск, например, моментов, где в поле зрения появляется идентифицированный объект и т.д. Правда, стоимость такой системы уже совсем другая.

Список не претендует на полноту, а, скорее, является некой стартовой точкой. По каждому из видов инструментов можно без особых усилий найти полсотни и больше альтернативных решений и формировать из них свой арсенал. Сделать набор из узкоспециализированных инструментов, остановиться на сбалансированных по "возможности/сложность обучения" аналитических системах или замахнуться на специализированные языки программирования - вопрос желания, возможностей и предпочтений.
Выбрав инструментарий и имея представление о том, что мы будем анализировать и какими методами, вопрос "кто это будет делать?", т.е. вопросы комплектации команды специалистами соответствующих навыков, является уже чисто техническим вопросом. Если у вас в команде есть ИТ-аудиторы, то, помимо своих основных функций, они могут составить неплохую стартовую основу.  
Итак, разобравшись с вопросами "что мы хотим получить?", "как?", "при помощи кого?", "кто все это будет делать?" остается последний и самый главный вопрос - "зачем оно мне все это нужно?". Ведь в развитие аналитики нужно хорошенько вложиться - потратить прилично времени (а также денег и нервов) на определение того, что нужно анализировать, на выбор инструментария, на убеждение руководства в том, что это все необходимо и полезно, на приобретение (если платное решение) и развертывание инструментария, на подбор персонала, на обучение персонала. В результате хорошо поставленной аналитики можно претендовать на следующие блага:
  • Сокращение аудиторского цикла. Нормально поставленная аналитика занимает меньше времени на проведение процедур по сравнению с "традиционным" подходом. Значит, аудит можно сделать быстрее и быстрее донести до стейкхолдеров ответы на их вопросы. 
  • Более широкое покрытие рисков. Во-первых, за счет сокращения аудиторского цикла. Меньше времени на проверку - больше проверок. Во-вторых, за счет более широкой обработки данных. Некоторые риски (например, мошенничество) можно выявить, только тестируя всю популяцию. Выборка ничего не покажет. Точнее сказать, вероятность бесконечно мала. Да и обрабатывая всю популяцию, сразу получаешь полную картину проблемы, а не догадки на основе экстраполяции выборки. 
  • Более качественный и полезный результат. За счет более глубокой проработки данных выявляются интересные закономерности, не лежащие на поверхности. Стейкхолдерам будет гораздо интереснее узнавать такие вещи вместо очевидных и всем известных фактов, полученных по результатам тестирования контролей. К тому же, современные мощные средства визуализации делают процесс донесения большого количества колонок цифр при помощи графических образов гораздо проще. Что в свою очередь упрощает и улучшает взаимодействие со стейкхолдерами.
Кстати, как и с любой другой большой задачей, тут работает подход "как съесть слона?"  - по частям. Абсолютно не обязательно сразу замахиваться на тотальное внедрение всего и везде. Начинаем с одного, наиболее проблемного процесса и отрабатываем на нем подходы. Получаем первые результаты. Вот уже и аргументация для стейколдеров на тему "почему это нужно и полезно" и опыт. Дальше - отрезаем следующий кусок.
В сухом остатке, улучшение аналитики - процесс громоздкий и непростой. Но оно того стоит. No pain - no gain.

 





5 комментариев:

  1. Очень скрупулезная и обширная статья, спасибо.

    ОтветитьУдалить
  2. Возникла необходимость сравнить несколько объемных документов по принципу диссернета (кто что у кого списал). Какой софт это может сделать?

    ОтветитьУдалить
  3. Вопрос не совсем релевантный к тематике статьи.
    Есть софт типа Advego Plagiatus или Double Content Finder.
    Есть куча онлайн сервисов. Все это находится в гугле за 2 минуты. Если хочется что-то сделать самому - R, Python или Rapidminder.

    ОтветитьУдалить
  4. Почему же, как раз о потребности внутреннего аудита в технологиях. За подсказку спасибо, однако)) Если бы все только гуглили, умерли бы форумы, интернет бы поскучнел.

    ОтветитьУдалить
    Ответы
    1. Если не секрет - откуда у аудита задача по поиску плагиата?

      Удалить