본문 바로가기

[+] Information/[-] ETC

In-Memory Computing and Forensic

 * 인메모리에 대한 기술적 문서가 아직 많이 존재하지 않아 내용이 부실할수도 있으니 이해 부탁드립니다. 또 보안과 포렌식의 부분은 통상적 이야기가 아닌 개인적 견해가 많이 있습니다.


1. 인메모리 컴퓨팅 개요

이 글에서 주제로 다룰 것은 In-Memory 컴퓨팅 기술이다. 조금은 생소하게 들릴수도 있고 또 어떤사람은 어느정도 알고 있는 이야기 일수도 있다. 사실 In-Memory 기술은 이번에 새로 개발 된 신기술이 아니다. 10여년 전부터 사용되었던 기술이고 우리 일상생활에서도 알게 모르게 사용되고 있던 기술이다. 우리의 피부로 와닿지 않아 알지 못하고 있었을 뿐이다. 일단 인메모리가 무엇인지 간단하게 정의를 보도록 하자.


 - 시스템의 메인메모리에 애플리케이션 등의 데이터 등을 디스크 대신 저장 해 실시간 처리를 가능하게 하는 기술


현재 많이 쓰이고 있는 HDD와 일반 메모리를 비교 했을 때(SSD도 많이 쓰이는 추세지만 아직까지는 HDD가 많이 쓰인다.) 입출력의 속도 차이는 실제 10배 이상 차이가 나는데 메인메모리에 대용량 데이터를 저장 해 처리 함으로써 처리 속도도 그만큼 빨라지는 것이다. 

인메모리는 어떤 곳에서 주로 사용 되었고 앞으로 사용 될까? 예전부터 증권 시세 분석, 통신사 과금 데이터 처리 등에서 사용 되었고 현재는 빅데이터에서도 필수적인 기술로 손꼽히고 있다. 빅데이터의 관심으로 인해 IT 트렌트로 뽑힌 이유도 있긴하지만 제일 큰 이유는 하드웨어의 가격이 이전에 비해 저렴해 졌기 때문이다. 이전의 컴퓨터에서 사용 되는 하드웨어 장비들의 가격은 고가이었지만 요즘은 저렴한 가격에 훌륭한 퍼포먼스를 가진 하드웨어를 쉽게 구입 할 수 있어 인메모리가 지금에서야 관심을 받고 있는 것이다. 또 부가적으로 실시간으로 데이터를 처리하는 서비스와 기술들이 늘어난 이유도 있다. 현재 가장 활발하게 인메모리 기술을 활용하는 곳은 데이터베이스 분야이다. 인메모리를 활용 해 데이터베이스 자체를 메모리에 올려두어 입출력을 빠르게 해 데이터의 분석/저장/제공을 빠른 속도로 지원하고 있다.


2. 보안과 포렌식

데이터가 급증하고 그에 따른 분석 기술과 분석 기술을 뒷받침하는 기술들이 생김에 따라 데이터는 효율적으로 분석되고 사용된다. 하지만 이렇게 편해짐에 따라 뒤 따라오는 위험또한 커지기 마련이다. 현재로서 두 가지로 나누어져 있는 저장소가 하나로 합쳐짐에 따라 보안의 위협은 더 커졌다고 볼 수 있다. 현재로서는 대부분의 대용량 데이터가 디스크에 저장된다. 하지만 인메모리 시스템의 경우 디스크가 아닌 메모리에 저장이 된다. 과연 이 데이터들은 안전할까? 특히 인메모리가 제일 많이 사용되고 있는 데이터베이스 분야에서 데이터의 무결성이란 제일 중요한 데이터의 보안성 중 하나이다. 그런데 메모리에 올라간 데이터의 무결성을 완전하게 입증 할 수 있을까? 라는 의문이 든다. 물론 인메모리 기술을 사용하여 데이터베이스를 구축하는 회사에서도 이를 신경쓰고 개발 및 검증을 했을 것이다. 하지만 인메모리 기술이란 메모리의 여러가지 기능을 충족시켜 메모리의 안정성 및 기능을 모두 업그레이드 시킨 기술이 아니다. 언제 어떻게 어떤 입/출력에 의해 메모리에 crash가 일어 날 수 있다는 것이 문제이며, 또 crash가 일어남으로써 메모리에 저장되어 있는 데이터베이스 데이터들의 무결성이 완전하게 보장될까 라는 것이 문제이다. 또 메모리는 조작이 쉬운면도 있어 데이터의 무결성을 의심케 한다.

이제 포렌식 측면에서 살펴보자. 포렌식 수행과정에서 분석대상에는 메모리와 디스크의 파일시스템이 주를 이룬다. 그런데 포렌식에서 다루는 메모리의 구조와 인메모리의 구조는 조금의 차이를 보인다. 데이터가 저장되는 형식 조금 다르다. 인메모리 데이터베이스의 경우 디스크에 데이터베이스가 구성되 데이터를 저장하던 레코드 방식이 아닌 칼럼 방식으로 데이터를 저장하기 때문에(인덱스 검색으로 데이터 검색을 빠르고 효율적으로 하기 위해) 데이터베이스 구조가 일반 데이터베이스 구조와는 대동소이하며 일반적 메모리는 paging 방식을 취해 데이터를 관리하고 있지만 인메모리의 경우 데이터를 효율적으로 압축하여 메모리에 저장하고 있어 현재의 메모리 분석 방법론으로 접근을 하는 것에는 한계가 있어 보인다.