Tags

하둡 보안 아키텍쳐와 Apache Knox의 역할 (New Features for Security and Apache Knox)

This article is based on Hortonworks Partner Contents and Expertise

빅데이터 및 하둡의 도입을 고려하는 데 있어서 가장 중요한 요소 중의 하나는 바로 데이터에 대한 보안에 대한 고려입니다.
두 가지 의미를 가진다고 볼 수 있겠습니다.
하둡 에코 시스템에서 하둡 클러스터 자체에 제공하고 있는 보안 기능과 이러한 보안 기능을 기업 내부의 보안 정책과 연동하는 부분이 그것입니다.

최근에 호튼웍스는 보안 업체의 인수를 포함하여 하둡 클러스터를 보안 측면에서도 안전한 시스템으로 만들기 위해서 많은 노력을 기울이고 있습니다.

기존의 하둡의 보안 논의에 대해서는 여러 기사를 통해서 소개를 드린 적이 있습니다.
하둡의 보안을 위한 체계
하둡에서 데이터 전송 시의 암호화

하둡의 보안 논의는 처음에는 주로 데이터 저장 및 전송 시의 암호화를 중심으로 논의가 되었다가 최근에는 하둡 클러스터의 전체 보안 체계를 구축하는 논의로 확대되고 있다는 점입니다.

그 중에서 핵심적인 역할을 하는 것이 Apache Knox라고 하는 일종의 API 게이트웨이 보안 솔루션입니다.

knox1
다이어그램에서 볼 수 있는 것처럼 Apache Knox는 하둡 클러스터와 의사소통하기 위한 ‘REST API Gateway’입니다.

이러한 게이트웨이를 통해서 하둡 클러스터에서 다음 네 가지의 중요한 역할을 담당합니다.
- Authentication (LDAP and Active Directory Authentication Provider)
- Federation/SSO (HTTP Header Based Identity Federation)
- Authorization (Service Level Authorization)
- Auditing

즉, 인증이나 권한 관리, 외부 인증 시스템과의 연동 및 ACL 등과 같은 보안 기능을 담당하는 요소가 되었습니다.

지난 주에 호튼웍스의 하둡 데이터 플랫폼 행사에서 Apche Knox에 대해 잘 설명이 되어 있는 슬라이드가 있어서 공유드립니다.
하둡의 보안에 대한 슬라이드

행사에서 나왔던 QnA 정리한 리스트가 있는 데 한 번 보시면 Knox의 역할에 대해서 참고하시기 바랍니다.

qna

그리고 호튼웍스 랩에서 보안 부분에 대한 정보를 모아서 소개하고 있으니 이 곳도 참조하시기 바랍니다.
Hortonworks Daba Lab

아파치 녹스는 하둡 클러스터의 보안은 물론이고 향후에 기업에 도입할 때 연동해야 할 보안 정책을 실행하기 위한 지점으로서도 중요하기 때문에 상세한 적용 방법과 연동 방법은 계속 업데이트하겠습니다.

———————————————————————————————————–
ASD Technologies는 호튼웍스(Hortonworks Inc)와의 Consulting Partnership을 통해서
빅데이터에 대한 도입 컨설팅 및 구축을 도와드리고 있습니다.

호튼웍스 파트너 홈페이지
ASD Technologies Korea 홈페이지

Contact Point : sunung@asdtech.co
———————————————————————————————————–

호튼웍스 하둡과 NoSQL 데이터베이스의 연동 방법 (Apache Accumulo case – Security)

This article is based on Hortonworks Partner Content and Expertise

지금까지 다양한 솔루션을 하둡과 연동하는 것의 의미와 방법에 대해서 소개를 드렸습니다.
자사의 솔루션을 하둡과 연동하는 것의 의미와 방법
엔터프라이즈 레벨 실시간 시스템의 최강 조합(하둡 + 인메모리 데이터베이스)
HIVE를 통해 다른 분석툴과 연동하는 방법

하지만 최근에 그 확장성과 빠른 성능때문에 많은 주목을 받고 있는 NoSQL 데이터베이스와의 연동 트렌드에 대해서는 특별히 소개드린 적이 없습니다.
가장 큰 이유는 이미 HBase라고 하는 데이터베이스가 하둡 에코시스템의 중요한 부분으로서 긴밀하게 연동하면서 발전하고 있기 때문입니다.
HBase는 구글의 빅테이블의 설계를 구현하면서 Billion 단위의 많은 로우(Row)를 가진 큰 테이블을 처리할 수 있는 확장성을 가지고 있고 이미 여러 가지 레퍼런스를 통해서 그 효용성을 입증하고 있습니다.

이번에 호튼웍스와 ‘Apache Accumulo’의 개발자들이 독립한 회사인 ‘Sqrrl Inc’과의 제휴를 통해서 공개한 레퍼런스 아키텍쳐를 소개드리려고 합니다.

그렇다면 이미 검증된 HBase가 엔터프라이즈 레벨로 진화해 나가는 상황에서 역시 빅데이블의 철학을 계승한 또 하나의 NoSQL 데이터베이스와의 협력 혹은 연동이 필요한 이유는 무엇일까요?

Apache Accumulo는 최근에 3 ~ 4번 째로 가장 적용이 많이 되는 NoSQL 데이터베이스라고 합니다만 주로 금융회사나 정부 기관 및 의료 기관에서 급격히 보급되고 있는 빅테이블 클론입니다.
태생이 NSA(National Security Agency)에서 2008년에 시작된 프로젝트라는 것에서 부터 특히 보안 부분에 특화되었다는 인상을 받을 수도 있겠습니다.
그 시작점이 암시하는 것처럼 보안을 강화하고 성능을 높히기 위한 아키텍쳐를 가지고 있습니다.

빅데이터도 역시 데이터를 다루는 시스템이기 때문에 보안이라는 측면은 항상 양날의 칼과 같습니다.
일전에도 하둡의 저장 및 전송시의 암호화API Gateway를 통한 보안 시스템에 대한 글을 소개드렸습니다만 데이터베이스 관점에서 보안을 강화한다는 점은 역시나 중요한 출발점이 되겠습니다.

그래서 ‘Apache Accumulo’의 가장 큰 특징인 ‘Cell-level Security’에 대해서 간략하게 소개하겠습니다.
용어는 어려워 보이지만 컨셉은 간단합니다. 기존의 빅데이블 데이터 모델(Data Model)에 이 칼럼 혹은 ‘(Key, Value)’를 읽을 수 있는 권한을 명시한 다른 Key를 하나 더 추가한 것입니다.

유저가 쿼리(Query)를 실행시켜서 이 칼럼을 읽을 수 있으려면 위의 Key에 저장된 ‘보안 라벨’을 만족시켜야 한다는 컨셉입니다.
이것은 계속 변화하는 보안 정책에 맞춰서 각 칼럼의 ‘보안 라벨’의 값을 유연하게 지정함으로써 금융회사나 공공 기관 등의 보안 수준을 유지할 수 있게 해 주는 역할을 가지고 있습니다.
즉, 유저는 본인이 인증되어서 접근할 수 있는 칼럼에만 접근할 수 있도록 아주 세밀하게 보안 정책을 적용할 수 있습니다.

하둡 에코시스템이 빅데이터의 기반 플랫폼이 되면서 일전에 설명드린 하둡 파일시스템(HDFS)과 API 호출 레벨의 보안 플랫폼과 더불어서 에코 시스템 요소들의 전체적인 보안도 큰 고려 요소입니다.

호튼웍스는 Accumulo가 가지고 있는 이 아키텍쳐를 통해서 보다 보안 정책이 중요한 기업 고객들에게도 어플하려고 합니다.
실제로 미국의 의료기관에서는 ‘Affordable Care Act’에서 파생하는 엄격한 데이터 보안 정책이 요구되는 데 Accumulo는 이러한 데이터의 보안성을 유지하면서 데이터를 공유할 수 있는 레퍼런스를 많이 제공하면서 급격히 보급이 되었습니다.

호튼웍스는 이러한 Accumulo를 호튼웍스 데이터 플랫폼(Hortonworks Data Platform)에 통합하면서 아래와 같이 다양한 관점에서 보안성을 향상시켰습니다.
- Secure SQL search to enable real-time aggregations of multi-structured data
- Secure full-text search, using the Lucene syntax to enable keyword search
- Secure graph search, to enable exploration of how data is connected
- JSON support, to enable development of document-style data models
- High concurrency to power applications supporting large numbers of users
- A policy engine and labeling engine to simplify the application of fine-grained security labels to datasets and to enable both Attribute Based and Role Based Access Controls.
이러한 보안성 향성은 결국 Accumulo가 각 칼럼 별로 접근 권한을 유연하게 적용할 수 있다는 특징에서 나온다는 것을 바로 캐치할 수 있을 것입니다.

squirll

위 레퍼런스 아키텍쳐를 보면 기존의 HBase를 ‘Apache Accumulo’로 완전히 대체하는 것이 가능합니다.
이 연동을 통해서 보안에 민감한 금융 기관, 정부 기관, 의료 기관의 빅데이터 프로젝트에 중요한 컴포넌트의 하나로 적용될 수 있을 것으로 기대합니다.

호튼웍스 데이터 플랫폼은 ‘Apache Accumulo’에 대한 기술 지원도 함께 담당하고 있으니 연동 아키텍쳐에 대한 좀 더 자세한 사항은 아래에서 다운로드받아서 검토해 보기 바랍니다.
호튼웍스와 Apache Accumulo의 레퍼런스 아키텍쳐 <-- 다운로드

-----------------------------------------------------------------------------------------------------------------------------
ASD Technologies는 호튼웍스(Hortonworks Inc)와의 Consulting Partnership을 통해서
빅데이터에 대한 도입 컨설팅 및 구축을 도와드리고 있습니다.

ASD Technologies는 펜타호(Pentaho Inc)와의 Consulting and Distribution Partnership을 통해서
빅데이터에서 비즈니스 인사이트를 얻기 위한 방법을 함께 모색하고 있습니다.

호튼웍스 파트너 홈페이지
ASD Technologies Korea 홈페이지

Contact Point : sunung@asdtech.co
—————————————————————————————————————————–

호튼웍스 하둡 플랫폼으로 서버 로그 데이터를 분석하여 보안 위협을 감지하는 방법

This article is based on Hortonworks Partner Content and Expertise

최근에 빅데이터를 활용한 실시간 보안 위험 감지 및 분석 시스템에 대한 관심이 급격히 커졌습니다.
물론 기업 보안의 영역에는 그 동안 많은 독립적인 시스템들이 존재해서 그 역할을 해 왔지만 최근에 그러한 독립적인 시스템에 대한 효용성이 도마에 오르는 듯 합니다.

보안 위협은 단순히 외부의 공격이나 접근 시도 뿐만 아니라 기업 내부 혹은 일정한 권한을 가진 파트너사와 같이 전체적인 곳에서 발생하기 때문에 단순히 네트워크에 앞 단에 구성된 보안 시스템은 그 정도 일부만을 담당할 뿐이라는 것이 전문가들의 공통된 지적인 듯 합니다.

앞으로의 보안 시스템은 IT 시스템 전체의 보안 요소를 분석할 수 있는 포괄적인 관점이 필요하다는 것으로 의견이 모아지는 듯 합니다.
즉, 네트워크에 대한 다양한 공격 시도에서 부터 내부 ID의 서버 접근이나 데이터의 흐름 등 전체적인 데이터로 부터 이상 현상을 탐지해야 한다는 접근 방법입니다.

호튼웍스 등 하둡 전문 업체들은 이 분야에서 하둡이 가진 포괄적인 데이터 처리 능력이 활용될 수 있을 것으로 보고 있으며, 최근에는 다양한 보안 전문 업체들과 협업하여 이른바 ’360 degree security’에 대한 솔루션을 경쟁적으로 개발하고 있습니다.

그래서 이번에는 이러한 포괄적인 데이터 보안을 적용하는 데 있어서 가장 핵심적인 데이터인 서버 로그 데이터를 하둡에서 어떻게 처리하고 인사이트를 신속하게 얻을 수 있는 지에 대해 살펴 보고자 합니다.

먼저 간단한 데모 영상을 보면서 전체적인 흐름을 파악해 보겠습니다.

요약하자면, 호튼웍스 데이터 플랫폼을 활용하여 ‘raw’ 서버 로그 데이터를 정제하고 엑셀을 이용하여 손쉽게 분석하는 것이 전체 시나리오입니다.
먼저 서버 로그 데이터의 속성을 한 번 다시 검토해 봅시다.
서버 로그 데이터는 네트워크와 서버의 운영에서 발생하는 이벤트 데이터를 저장한 로그파일들이기 때문에 단순히 전체 시스템의 성능을 파악하는 용도 뿐만 아니라 보안 관리를 위해서도 특히 유용한 데이터입니다.

서버 로그 데이터의 다양한 적용 사례
기업에서는 서버 로그 데이터 분석을 통해서 크게 아래 와 같은 두 가지 질문에 대한 답을 신속하게 얻을 수 있습니다.
1. Security : 만약에 보안 누스(Security breach)가 의심스러운 상황이라면 서버 로그 데이터를 어떻게 활용하여 이러한 부분을 정확히 식별하고 원인을 지정할 수 있을 것인가?
2. Compliance : 대기업의 경우에는 다양한 법규 혹은 지침에 의해서 시스템을 관리해야 합니다. 시스템 감사와 같은 상황에서 이러한 룰(Rule)이 정확히 지켜 지고 있는 지 혹은 문제가 발생하는 지에 대해서 어떻게 식별하고 근거를 만들 수 있을 것인가?

서버 로그 분석 샘플을 실행하기 위한 프로세스
1. 대량의 로그 데이터를 수집하고, 병합하고, 하둡 클러스터로 효율적으로 이동시키기 위해서 플룸(Flume)을 설치하고 세팅한다.
2. 서버 로그 데이터를 발생시킨다.
3. 서버 로그 데이터를 엑셀로 임포트한다.
4. 엑셀 파워 뷰와 같은 툴로 로그 데이터를 시각화(Visualization)한다.
(샘플 예제에서는 다른 요소들을 배제하고 가장 핵심적인 과정만 수행합니다.)

Step 1 : 분석을 위해서 샘플 로그 파일을 받아 놓습니다.

샘플 서버 로그 파일

<-- 다운로드 받으세요.
'호튼웍스 샌드박스'로 테스트하기 위해서 압축을 풀어서 저장합니다.

Step 2 : 아파치 플룸(Flume)을 세팅하고 론칭합니다.
아파치 플룸(Flume)은 대량의 로그 데이터를 수집해서 하둡 파일시스템(HDFS)로 효율적으로 읽어 들이기 위한 분산 프레임워크라고 보시면 되겠습니다.
아키텍쳐적으로는 데이터 소스의 데이터를 다른 저장소로 스트리밍하기 위한 심플한 구조를 가지고 있습니다.
아파치 플룸은 데이터 플로우가 중간에 실패하거나 하는 상황에 대해서 빠르게 복구하는 데 중점을 두고 있어서 대량의 로그 파일을 이동하는 데 가장 적합하고 유용한 툴입니다.

플룸은 보통 다음과 같이 활용합니다.
- 다양한 데이터 소스로부터 데이터를 수집하여 하둡 파일시스템(HDFS)으로 읽어 들인다.
- 대용량의 웹로그 데이터를 실시간으로 수집한다.
- 입력되는 데이터가 하둡 파일시스템(HDFS)에 원활하게 저장할 수 없을 만한 속도로 들어 오면 자동으로 읽는 속도를 조정한다.
- 데이터 이동시의 문제를 확인해서 재실행 등의 방법으로 데이터 이동을 보장한다.

- 분산 아키텍쳐로 입력되는 데이터의 양에 따라서 수평적으로 확장할 수 있다.

대량의 로그 데이터의 이동을 ‘보장’하기 위한 안정적인 시스템을 직접 개발하는 것은 아주 어려운 일이므로 플룸(Flume)이 가진 아키텍쳐를 활용하면 대량의 데이터 소스에서 나오는 데이터 로그를 원활하게 하둡 파일시스템(HDFS)로 읽어 들일 수 있습니다.

DevGuide_image00

위 다이어그램은 일반적인 데이터가 플룸(Flume)을 통해서 흘러가는 단계를 보여 주고 있습니다.
데이터 로그를 수집하고자 하는 데이터 소스에 플룸(Flume) 에이전트가 깔리고 옮길 목적지를 지정하면 전체적인 과정을 플룸이 안정적으로 운영합니다.
플룸을 세팅하는 자세한 사항은 플룸 프로젝트 페이지에서 확인하세요.

Step 3: 플룸(Flume) 실행하기
호튼웍스 샌드박스가 윈도즈에 인스톨되었다고 가정하고 SSH로 하둡 클러스터에 접속하겠습니다.

Host Name (or IP address): 127.0.0.1
Port: 2222

그리고 ID와 패스워드를 입력해서 호튼웍스 샌드박스에 접속합니다.

아래와 같은 명령으로 실행시킵니다.

flume-ng agent -c /etc/flume/conf -f /etc/flume/conf/flume.conf -n sandbox

Step 4: 샘플 서버 로그 데이터를 발생시키기
이제 샘플 데이터를 발생시키기 위해서 간단한 파이썬(Python) 스크립트를 실행시키고 이 데이터에 대해서 HCatalog를 이용해서 테이블 뷰를 만들겠습니다.

HCatalog는 여러 번 소개드렸던 것처럼 데이터셋에 일종의 테이블 뷰(Vew)를 연관시켜서 이 데이터를 어떻게 해석할 것인지의 틀을 부여하는 모듈입니다.

먼저 샘플 예제의 ‘generate_logs.py’ 스크립트를 호튼웍스 샌드박스로 복사합니다.
예를 들어 WinSCP를 사용한다면 아래와 같이 진행하세요.

그 다음에 위의 스크립트를 실행시키면 샘플 데이터 로그 파일이 생성됩니다.

이제는 HCatalog를 이용해서 테이블 뷰를 만듭니다.

hcat -e "CREATE TABLE FIREWALL_LOGS(time STRING, ip STRING, country STRING, status STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LOCATION '/flume/events';"

생성된 테이블 뷰는 HUE와 같은 웹 관리 콘솔을 통해서 확인할 수 있습니다.

Step 5: 서버 로그 데이터를 엑셀로 임포트하기
많은 사용자들이 엑셀을 통해서 데이터를 분석하기 때문에 다른 비싼 BI툴보다도 오히려 엑셀과 연동함으로써 손쉽게 결과를 분석할 수도 있습니다.
자세한 연동 방법은 다른 블로그에서도 설명을 드린 것처럼 직관적입니다.

호튼웍스 ODBC driver는 엑셀뿐만 아니라 다른 BI툴도 기존에 익숙한 표준적인 방식으로 연동할 수 있게 해 줍니다.

Step 6: 데이터를 시각화하기
데이터를 시각화하면 네트워크 데이터를 분석해서 이슈를 포괄적으로 이해하는 데 많은 도움이 됩니다.
만약에 DOS(Denial of Service) 공격을 분석하고자 한다면 대략 다음과 같이 데이터를 검토해 볼 수 있겠습니다.

  • 나라 별로 네트워크 트래픽을 리뷰하기
  • 특정한 나라를 확대해서 자세히 살펴 보기
  • 공격 IP 어드레스의 리스트를 만들기

파이어월 로그 데이터”<firewall_logs>” 테이블을 열어서 Status 칼럼을 클릭해서 ERROR를 체크하고 나서OK를 클릭하면 인증이 되지 않은 IP어드레스의 리스트를 볼 수 있습니다.
이 데이터는 바로 파이어월에 업데이트해서 이러한 IP어드레스를 차단하는 등의 후속 작업에 활용할 수 있습니다.

이상 샘플 데모를 간단하게 설명했지만 이 과정에서 하둡이 다양한 데이터 소스의 데이터를 신속하게 처리할 수 있다는 기능은 독립적인 보안 시스템이 아니라 보안에 영향을 미칠 수 있는 모든 시스템들의 로그를 함께 분석할 수 있다는 가능성을 보여 주고 있습니다.

예제에서 본 것처럼, 파이어월의 데이터 뿐만 아니라 내부의 접속 시도, 접속 IP, 접속한 시간 및 접속해서 했던 각종 Activity 로그 등을 종합적으로 판단함으로써 ’360 degree security’에 활용될 수 있겠습니다.

이 분야는 현재 다각도로 논의되고 있고 계속 발전하는 곳이기 때문에 한국의 보안 기업들도 하둡 기반의 포괄적인 보안 솔루션의 개발이라는 목표에 힌트가 되었으면 합니다.

—————————————————————————————————————————–
ASD Technologies는 호튼웍스(Hortonworks Inc)와의 Consulting Partnership을 통해서
빅데이터에 대한 도입 컨설팅 및 구축을 도와드리고 있습니다.

ASD Technologies는 펜타호(Pentaho Inc)와의 Consulting and Distribution Partnership을 통해서
빅데이터에서 비즈니스 인사이트를 얻기 위한 방법을 함께 모색하고 있습니다.

호튼웍스 파트너 홈페이지
ASD Technologies Korea 홈페이지

Contact Point : sunung@asdtech.co
—————————————————————————————————————————–

하둡의 보안을 강화하려는 노력 (Apache Knox Gateway 0.3.0: Another release of perimeter security for Hadoop)

This is based on Hortonworks Blog

하둡이 엔터프라이즈 데이터 플랫폼으로 받아들여 지면서 그 보안 체계의 중요성도 점점 커져 가고 있습니다.
이전의 데이터 전송 시의 암호화에 대한 방법은 소개를 드렸습니다.

물론 데이터 전송 및 저장 시의 암호화도 보안에 있어서 중요한 부분이지만 앞 단에서 더 중요한 부분이 있습니다.
대부분 하둡 시스템과 연동해서 데이터를 처리하는 어플리케이션의 경우에는 webHDFS와 같이 표준 REST API를 이용합니다.
따라서 이 단계에서의 보안 시스템은 일차적으로 중요한 의미를 갖습니다.

아파치 Knox 프로젝트는 하둡을 위한 일종의 REST API 게이트웨이(REST API Gateway)의 역할을 담당합니다.

아파치 Knox는 LDAP등과 같은 디렉토리 서비스에 대한 인증 연동 및 서비스 요청에 대한 권한 관리 등의 기능을 담당함으로써 API를 통해서 들어오는 요청에 대한 보안 체계로서의 역할을 담당할 수 있는 모듈입니다.

이번 업그레이드를 통해서 지원하는 중요한 기능은 다음과 같습니다.
1. LDAP authentication for REST calls to Hadoop
2. Secure Hadoop cluster (i.e. Kerberos) integration
3. HBase integration (non-Kerberos)
4. Hive JDBC integration (non-Kerberos)
5. Simple ACL based Service Level Authorization

그리고 호튼웍스에서 아파치 Knox를 연동하기 위한 튜토리얼(Tutorial)을 공개했으니 참조하시기 바랍니다.
아파치 Knox 튜토리얼 <-- 다운로드

-----------------------------------------------------------------------------------------------------------
ASD Technologies는 호튼웍스(Hortonworks Inc)와의 Consulting Partnership을 통해서
빅데이터에 대한 도입 컨설팅 및 구축을 도와드리고 있습니다.

호튼웍스 파트너 홈페이지
ASD Technologies Korea 홈페이지

Contact Point : sunung@asdtech.co
———————————————————————————————————–