Авторы: Чуприн В.И., Чернышова А.В., Губенко Н.Е.
Источник: Сайт магистра ДонНТУ Чуприна В.И.
Чуприн В.И., Чернышова А.В., Губенко Н.Е. Анализ проблем безопасности архитектуры распределённых NoSQL приложений на примере программного каркаса Hadoop. В статье выделены основные характеристики хранилищ для обработки больших массивов данных. Проанализированы особенности архитектуры распределенных приложений на примере программного каркаса Hadoop. Изучены существующие компоненты приведенного каркаса. Предложена альтернатива стеку технологий, поставляемому по умолчанию. Выделены основные проблемы архитектурной и операционной составляющих. Предложены рекомендации по оптимизации подсистемы безопасности на основе приведенных проблем.
Ключевые слова: Kerberos, SSL, TLS, Hadoop, NoSQL, Большие данные, HDFS, MapReduce
В статье рассмотрены основные принципы безопасности систем в области обработки Больших данных
, проанализированы встроенные компоненты и слабые стороны этих систем.
Цель работы – выделить проблемы сегмента приложений, который использует решения для обработки больших объемов информации с точки зрения безопасности, а также предложить варианты решения приведенных проблем.
Рассматриваемая в статье совокупность вопросов является актуальной по двум причинам. Во-первых, проекты с Большими данными
часто встречаются в корпоративной среде. Во-вторых, большинство из систем не используют ничего, кроме паролей пользователей.
Существует множество систем, которые позволяют хранить очень большие объемы данных, а также предоставляют возможности по формированию запросов и поддержанию целостности. Рассмотрим основные характеристики репозиториев данных:
Hadoop – проект фонда Apache Software Foundation, свободно распространяемый набор утилит, библиотек и программный каркас для разработки и выполнения распределённых программ, работающих на кластерах из сотен и тысяч узлов. Используется для реализации поисковых и контекстных механизмов многих высоконагруженных веб-сайтов. Разработан в рамках вычислительной парадигмы MapReduce, согласно которой приложение разделяется на большое количество одинаковых элементарных заданий, выполняемых на узлах кластера и естественным образом сводимых в конечный результат.
Hadoop состоит из трёх подпроектов:
Стандартная установка Hadoop состоит из набора демонов или резидентных программ на различных сетевых серверах. Некоторые из демонов могут запускаться на одном сервере, другие – на нескольких. Существуют следующие демоны:
Для приложений обработки больших массивов данных характерны следующие черты:
Перемещение вычислений дешевле, чем перемещение данныхявляется ключевой парадигмой обработки
Больших данных. Данные обрабатываются везде, где доступны ресурсы, что позволяет распараллеливать вычисления. Однако, такой подход создает сложную среду с большим количеством мест для возможных атак и усложняет проверку безопасности внутри распределенного кластера с широким набором разнородных платформ.
Шард– срез горизонтально сегментированных данных - общий для нескольких серверов. Это автоматизированное перемещение данных по множеству машин делает очень трудным процесс получения информации, где расположены данные и сколько копий имеется в заданный момент времени. Это идет в разрез с традиционной централизованной моделью защиты данных, в которой одна копия данных ограждена различными системами безопасности, пока она не используется для обработки.
Большие данныереплицируются на множество узлов и перемещаются по мере необходимости.
Контейнернаямодель безопасности не применима.
Больших данныхпредоставляют ограничения доступа на уровне схемы, однако отсутствует тонкое дробление. Можно логически имитировать метки безопасности и другие расширенные возможности в NoSQL окружениях, но это требует дополнительного проектирования пользовательского приложения для создания этих функций.
Больших данныхпочти нет встроенных средств обеспечения безопасности. Помимо авторизации на уровне служб и поддержки веб-прокси для узлов JobTracker, отсутствуют какие-либо средства, предназначенные для защиты хранилищ данных, приложений или основных возможностей Hadoop. Все NoSQL дистрибутивы построены в соответствии с моделью веб-сервисов, с малым количеством или полным отсутствием средств борьбы с десятком основных угроз выделенных Open Web Application Security Project, поэтому большинство API доступа к хранилищам уязвимы к хорошо известным атакам.
Приведенные выше проблемы не являются специфическими для Больших данных
, но NoSQL решения подвержены им по своей природе из-за распределенной архитектуры, использующей простую модель программирования на основе каркаса открытых сервисов. Чтобы добавить средства обеспечения безопасности в среду Больших данных
, они должны также легко масштабироваться, как и сам распределенный каркас. Большинство сторонних средств не масштабируются таким образом. Поскольку управление безопасностью не встроено в поставляемые дистрибутивы, сторонние решения создают несоответствие между Hadoop/NoSQL окружением и сопутствующими средствами безопасности. Поставщики безопасности приспосабливают свои существующие решения, предусматривающие применение в контрольной точке, где данные и команды попадают в кластер, а не перемещаются внутри кластера. Лишь немногие традиционные продукты безопасности могут полностью интегрироваться и динамически масштабироваться с кластерами Hadoop.
Ниже приведен обзор наиболее распространенных угроз для систем управления данными. Хранение данных в NoSQL кластерах обычно регулируется законом, и должно быть защищено соответствующим образом. Нападения на корпоративные системы и кражи данных широко распространены и каркасы управления данными должны предотвращать их. Большие данные
предполагают все те же слабые места, характерные для традиционных информационных систем. Проблема заключается в выборе вариантов, которые работают в распределенной среде. Администраторы кластеров должны учитывать управление безопасностью для следующих областей:
Приведенные выше проблемы являются ключевыми при построении безопасной архитектуры распределенного приложения. Далее приведены возможные варианты их решения:
Chefили
Puppet.
Результатом анализа можно считать следующие рекомендации:
Приведенные методы позволяют защититься от базовых атак с минимальными изменениями архитектуры приложений и бизнес процессов.
1. Hadoop // Википедия [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org/wiki/Hadoop
2. Securing Big Data: Security Recommendations for Hadoop and NoSQL Environments // Securosis. [Электронный ресурс]. – Режим доступа: https://securosis.com/assets/library/reports/SecuringBigData_FINAL.pdf
3. Чак Л., Hadoop в действии. М.: ДМК Пресс, 2012. – 424 c.
4. Tom White: The Definitive Guide. М.: O'Reilly Media / Yahoo Press, 2012. – 628 c.
5. Alex Holmes, Hadoop in Practice. М.: Manning Publications, 2012. – 536 c.