본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

보안

보안로그, 통합하면 패턴이 보인다!

2015.06.22

미국 서부의 유타(Utah)주에는 아치스(Arches) 국립 공원이 있습니다. 그 곳에 가면 놀라울 정도로 크고 다양한 형태의 아치 모양 바위들을 구경할 수 있는데요. 이 기암괴석들은 오랜 세월 풍화 작용에 의해 형성되었다고 합니다. 지금 이 시각에도 어딘가에서는 강한 바람에 씻기고 깎이며 새로운 아치가 만들어지고 있을지도 모르겠네요.

<아치스 국립공원 – Delicate Arch>

이처럼 오랜 시간 바람에 부딪치고 깎이다 보면 거대한 바위에도 구멍이 생기듯이 기업의 보안도 마찬가지입니다. 오랜 시간 위협이 지속되면 구멍이 생기기 마련이죠. 또한 근래에는 보안 위협의 형태가 더욱 지능화/고도화되고 있는 상황인데요. 따라서 단일 시스템 혹은 단기간의 보안 데이터만으로는 외부로부터의 침입 혹은 내부 정보의 유출 탐지가 어려운 상황입니다.

따라서 복합적이면서도 장기간에 걸쳐 발생하는 위협을 탐지하기 위해 빅데이터 기술 도입이 빠르게 증가하고 있습니다. 그리고 그 결과 낮은 투자 비용으로 고성능의 데이터 처리가 가능한 분석 환경을 구성할 수 있게 되었죠.

최근 국내 시장에서도 빅데이터 기반의 통합 보안로그 분석 시스템 구축 사례들이 많아지고 있는데요. 오늘은 이와 같은 시스템 구축을 위해 다양한 원천 시스템에서 발생하는 데이터를 어떻게 수집하고, 어떤 과정을 거쳐 처리하는지 살펴보겠습니다.

보안로그의 수집 및 분석 과정을 살펴볼까요?

보안로그의 수집 및 분석 과정은 일반적으로 시나리오 정의 → 데이터수집 → 분석 → 모니터링의 과정으로 진행됩니다. 지금부터는 각 단계의 세부 내용을 살펴보도록 하겠습니다.

1) 시나리오 정의

이 단계는 어떤 행위자가 어떠한 경로를 통해 침입 또는 내부 정보 유출을 시도할 가능성이 있는지에 대한 가설을 세우는 단계입니다. 경우에 따라서 시나리오 정의를 데이터 수집 이후에 수행하거나 데이터 수집과 병행하여 진행하기도 하는데요. 이 작업을 하면 수집해야 할 대상 데이터를 선별하여 불필요한 데이터 수집으로 인한 자원 낭비를 사전에 방지할 수 있습니다. 그 결과 시스템 구축 기간 및 비용을 절감할 수 있죠.

반면 데이터 수집을 시나리오 정의에 앞서 수행하면 다양한 데이터 소스를 자유롭게 탐색할 수 있는 환경을 제공할 수 있는데요. 이를 통해 사전에 미처 생각하지 못했던 시나리오나 패턴까지 도출할 수 있는 기반을 마련하는 것이 가능합니다.

시나리오는 단일/복합/패턴 시나리오 형태로 구분할 수 있는데요. 우선 단일 시나리오는 단일 데이터 소스 내에서 이상 행위를 탐지하는 것이고, 복합 시나리오는 2개 이상의 데이터 소스 내에서 이상 행위를 탐지하는 것입니다. 그리고 패턴 시나리오는 특정 기간 동안 이상 행동이 반복되거나 정상 행동 패턴에서 벗어난 이상 행위를 탐지하는 시나리오를 말하는데요. 이러한 시나리오는 주로 각 기업의 보안 업무 담당자들에 의해 정의되며, 경우에 따라서는 보안 컨설팅 과정을 거쳐 진행되기도 합니다.

2) 데이터 수집

시나리오가 정의되면 시나리오 구현에 필요한 데이터를 수집하게 됩니다. 수집 대상 데이터는 주로 회사 내부에서 외부로 발송된 이메일/웹 접속/파일 전송/VPN(Virtual Private Network)접속 이력 등인데요. 보안에 직접적인 연관이 있는 보안 로그들과 인사/자산 정보 등 행위자 고유 식별을 위한 기본 정보 등이 수집 대상이 되는 것입니다.

그리고 보유하고 있는 시스템 현황 분석과 데이터 수집 방안, 데이터 보관 정책 정의, 행위자 고유 식별 정보 연계 방안 등에 대한 정의가 데이터 수집 단계에서 이루어지기도 합니다.

수집 대상 시스템의 로그 생성 주기, 전송 프로토콜, 시나리오 분석 요구 사항, 사내 네트워크 가용 용량 등 인프라 상황 등에 따라 데이터의 수집은 매우 다양한 형태로 이루어질 수 있습니다. 이러한 다양한 변수에 따라 가장 적절한 형태의 수집 주기 및 방식 등이 결정됩니다. 데이터 수집 주기와 방식이 결정되면 실제 데이터 수집 작업을 수행하게 되는데요. 이때 사용되는 주요한 툴을 잠시 소개해 드리겠습니다.

<로그 데이터 처리 과정>

하둡(Hadoop) 기반의 빅데이터 영역에서 데이터 수집에 가장 많이 활용되는 툴(Hadoop Ecosystem)은 아파치 플룸(Apache Flume, 이하 Flume)과 아파치 스쿱(Apache Sqoop, 이하 Sqoop)입니다.

Flume은 Agent(에이전트)를 원천 시스템에 설치하여 데이터를 수집하는 Agent 방식과 Agent 설치 없이 원천 시스템에서 Syslog나 FTP(File Transfer Protocol) 등의 방식으로 데이터를 저장할 서버로 전송하여 수집하는 Agentless(에이전트리스) 방식을 모두 지원합니다.

Flume이 다양한 프로토콜을 통한 수집을 지원하는 툴이라고 한다면 Sqoop은 RDB(Relational database)와 같은 데이터베이스에서 SQL(Structured Query Language)을 통한 데이터 수집에 특화된 툴이라고 할 수 있습니다. Hadoop 분산 환경에 따라 분산 서버의 개수 혹은 그 이상의 개수만큼 데이터를 병렬로 수집할 수 있다는 점에서 빅데이터 처리에 매우 최적화된 툴이라고 보시면 됩니다.

보통 데이터 수집 요구 사항에 따라 Flume과 Sqoop을 적절히 선택하여 사용하게 되는데요. 보다 안정적인 수집 처리를 위해 Apache Kafka, RabbitMQ, ZeroMQ와 같은 메시징 큐를 추가로 구성하기도 합니다.

데이터 수집 툴이 선정된 이후 데이터를 수집하는 단계에서 각 데이터를 어떤 방식으로 저장할지에 대한 결정이 필요한데요. 행위자를 식별할 수 있는 고유 식별 정보를 해당 데이터에 추가하여 저장하는 방식과 분석에 필요한 데이터를 필터링하여 저장하는 방식, 또는 전체 데이터를 저장하는 방식 등을 선택할 수 있습니다.

일반적으로 로그를 통합하고 분석하는 전 과정에서 데이터 수집 단계가 가장 많은 시간과 노력이 들어가는 단계인데요. 데이터 수집과 저장을 얼마만큼 요구 사항에 맞게 잘 설계하고 구조화하느냐에 따라 분석 용이성이나 성능에 많은 영향을 끼칠 수 있습니다. 따라서 신중한 검토와 설계가 필요한 단계라고 할 수 있습니다.

3) 분석(시나리오 구현)

데이터 수집이 끝나면 수집된 데이터를 활용하여 시나리오를 구현하게 됩니다. 시나리오에 정의된 데이터의 모니터링 주기, 동시에 처리해야 할 데이터 범위, 키워드 검색 요구 사항 등에 따라 다양한 툴을 선택하여 시나리오를 구현할 수 있죠.

실시간 모니터링 구현에는 아파치 스톰(Apache Storm, 이하 Storm), 아파치 스파크(Apache Spark, 이하 Spark), 아파치 H베이스(Apache HBase, 이하 HBase) 등의 활용이 가능한데요. Storm, Spark, HBase는 각기 다른 특징을 갖기 때문에 요구 사항에 맞는 적절한 툴을 선정하여 시나리오를 구현하는 것이 요구됩니다.

실시간 분석의 경우 대개 많은 메모리를 필요로 합니다. 따라서 비교적 고성능 하드웨어가 필요할 수 있는데요. 이 때 실시간 분석 요구 사항이 필수 구현 대상인지 아닌지의 신중한 검토가 필요합니다. 그 이유는 과도한 스펙의 하드웨어 구성으로 비용 낭비가 발생할 수 있기 때문이죠.

실시간 분석 요구 사항이 아닌 배치(Batch) 처리가 필요한 부분은 하둡 맵리듀스(Hadoop MapReduce, 이하 MapReduce), 아파치 하이브(Apache Hive, 이하 Hive), 아파치 피그(Apache Pig, 이하 Pig)와 같은 툴을 활용할 수 있습니다. MapReduce를 통한 구현은 Hadoop의 MapReduce라는 분산 병렬 처리 프레임워크를 활용하여 자바(Java)로 프로그래밍을 하는 것을 말합니다.

MapReduce 프레임워크를 활용하면 분산 병렬 처리에 필요한 기본적인 기능을 개발자가 신경 쓰지 않아도 프레임워크에서 처리해 주기 때문에 개발자는 비즈니스 로직에 집중할 수 있게 됩니다. 하지만 그렇다고 해도 MapReduce를 활용한 자바 개발 자체는 많은 학습과 노력이 필요한데요. MapReduce의 이러한 단점을 보완하기 위해 만들어진 툴이 Hive, Pig와 같은 스크립트 기반의 분산 병렬 처리 도구들이라고 할 수 있습니다.

Hive를 통해 RDB(Relational Database)에 사용되는 SQL(Structured Query Language)과 같은 형태로 스크립트를 작성하면 이를 Hive가 해석해 MapReduce와 같이 분산 병렬 처리가 가능한 프로그램으로 전환해 줍니다. 즉 Hive, Pig를 활용하면 개발자는 SQL과 같은 친숙한 인터페이스를 통해 분산 병렬 처리 로직을 구현할 수 있게 되는 것이죠.

Hive, Pig 이외에도 Impala, Apache Tajo 등이 비슷한 역할을 해 주는 툴이라고 할 수 있는데요. 이러한 툴을 활용하면 여러 데이터 간의 연관 분석이나 장기간의 대용량 데이터 분석을 손쉽고 안정적이고 빠르게 수행할 수 있게 됩니다.

<Big Data Landscape>

최근에는 대용량 데이터의 빠른 탐색을 위해 아파치 솔라(Apache Solr, 이하 Solr)나 엘라스틱서치(Elasticsearch)와 같은 검색 툴을 활용하기도 합니다. Solr나 Elasticsearch는 구글 혹은 네이버와 유사한 검색 엔진을 통해 데이터를 빠르게 검색할 수 있는 환경을 제공해 주는데요. 이를 통해 수개월에서 수년 간의 대용량 데이터도 수십 초 이내에 검색이 가능합니다.

또한 분석 단계에서는 사전에 정의된 시나리오에 대한 구현뿐만 아니라 검색 명령이나 스크립트를 통해 저장된 데이터를 탐색하여 새로운 패턴을 찾아내거나 기 정의된 시나리오를 고도화하는 작업들도 이루어지게 됩니다.

4) 모니터링 (시각화)

분석 과정에서 생성된 결과를 시각화하거나 주기적인 모니터링을 통해 주요 이벤트에 대한 알림을 발생시켜 보안 위협을 빠르게 인식하고 대처하는 것은 매우 중요합니다. 하지만 매일 모니터링 해야 하는 수많은 시나리오에 대한 분석 결과를 담당자가 반복적으로 조회하거나 실행하는 것은 매우 비효율적인 작업이라고 할 수 있습니다.

따라서 효과적인 시각화, 자동화를 통해 업무에 집중할 수 있도록 하는 지원이 필요한데요. 확인해야 될 이상 패턴이나 징후에 대해 신속하게 확인 가능한 환경을 제공하여 보안 담당자가 보다 다양한 위험 패턴을 탐색하고 새로운 위협 인자를 찾아낼 수 있도록 해야 합니다.

이러한 시각화와 자동화를 위해 사용될 수 있는 주요한 툴 중, 시각화와 관련된 툴은 Tableau, Pentaho, Qlickview 등의 상용 소프트웨어나 D3.js, Highchart 등을 활용한 웹 화면 등이 있습니다. 이때 시각화에 대한 요구 사항과 예산에 따라 상용 소프트웨어를 사용할지 웹 화면과 같은 조회 화면을 직접 개발할지를 선택하게 됩니다.

뿐만 아니라 주기적인 데이터의 모니터링을 위해서는 상용 툴에 내장된 스케줄링 기능을 활용하거나 Apache Oozie, Spring Batch 등을 활용하여 직접 구현하는 방법을 선택할 수도 있습니다. 또한 보다 고도화된 분석을 위해 R과 같은 통계 툴을 활용하여 패턴을 분석하거나 이상 징후를 탐지하는 시나리오도 이 단계에서 고려해 볼 수도 있을 것 같습니다.

LG CNS, 통합 보안로그 분석을 지원하다

지금까지 보안로그를 수집, 분석하기 위해 고려해야 할 항목과 대표적인 툴을 간략히 살펴보았습니다.

빅데이터 기반의 통합 보안로그 분석 이전에도 이미 SEM(Security Event Management), SIM(Security Information Management), SIEM(Security Information and Event Management)과 같은 이름으로 보안로그에 대한 유사한 분석은 이루어져 왔습니다.

하지만 이러한 솔루션들의 높은 도입 비용과 지속적인 데이터 증가에 따른 성능 제약 등의 문제로 인해 비용 대비 효율적이면서도 고성능인 빅데이터 기반의 통합 보안로그 분석 수요가 증가하게 되었죠.

빅데이터 기반 시스템의 도입은 성능과 비용 등의 측면에서 장점이 많은 것은 사실입니다. 그러나 모든 영역에서 빅데이터 기반 솔루션이 전통적인 솔루션보다 우세하다고 할 수는 없죠. 따라서 수집, 분석 대상 데이터의 규모와 기능, 성능 요구 사항, 유지 보수 체계, 예산 규모 등을 종합적으로 판단하여 기업 환경에 가장 적합한 형태의 솔루션 도입이 이루어져야 할 것 입니다.

<LG CNS Big Data Solutions Suite>

G CNS는 전통적인 보안 솔루션을 기반으로 한 보안 분석에서부터 빅데이터 기반의 데이터 수집, 분석, 모니터링에 이르는 통합 보안로그 분석이 가능한 솔루션을 개발, 공급에 이르기까지 다양한 형태의 통합 보안로그 분석을 지원하고 있습니다. 위 그림의 ‘LG CNS Big Data Solutions Suite’에서 보이는 Smart LAP도 그 중 하나입니다.

‘구슬이 서 말이어도 꿰어야 보배’라는 말이 있습니다. 과거에는 서 말의 구슬을 한 그릇에 담는 것 조차 불가능했다면 이제는 빅데이터 기술의 발달로 손쉽게 데이터를 통합, 저장할 수 있는 환경이 되었습니다.

하지만 ‘모아 놓은 구슬을 꿰는 작업’, 즉 통합된 데이터에서 새로운 위험 패턴을 찾아 내고 모니터링하며 분석을 고도화해 가는 노력을 게을리한다면 모아 놓은 데이터는 한낱 쓸모 없는 구슬에 불가할 것 입니다. 가치 있는 보배를 만들기 위한, 그리고 빅데이터 기술의 선도를 위한 LG CNS의 노력은 앞으로도 계속됩니다. 기대해 주십시오.

LG CNS 페이스북 바로가기 : http://on.fb.me/1H9YUdq

글 | LG CNS 빅데이터기술지원팀

챗봇과 대화를 할 수 있어요