2015. 10. 1.

파일 시스템의 무결성 점검


자료를 검색하던 중 정말 괜찮은 기사를 발견하게 되었다.
지금부터 내가 적는 내용은 기사의 내용을 정리한 내용임을 미리 밝혀둔다.

시스템 보안이라고 하면, 방화벽, 네트워크 설정, 서비스 관리, 사용자 정책 등에 대한 생각을 하게 된다. 드물지만 루트킷 점검과 같은 수동적 방어에 대해서도 고려하게 된다.

그러나 보안을 정말 중요시하는 시스템 관리자에게 있어서 정말 중요한 것은 '파일시스템 무결성 점검' 이다.

이 무결성 점검은 파일시스템의 상태추적, 그리고 허가를 받지 않은 변경사항이 있는지 주기적으로 검사하는 과정이 포함된다. 수상한 변화가 감지되면 침입자에 의한 것인지 검사한후 피해복구를 해야 한다.

리눅스나 유닉스 환경에서 가장 잘 알려진 파일시스템 무결성 점검 도구는 트립와이어 (tripwire)

트립와이어의 개념

  • 트립와이어는 개념적으로 매우 간단하다.
  • 파일시스템의 '스냅샷'을 찍은 데이터베이스를 유지한다. 이 데이터베이스는 파일시스템에서 어느 부분에서 허가 받지 않은 변경을 했는지 검사하는 정책에 의해 만들어진다.

트립와이어의 정책
  • 트립와이어의 정책은 일반적으로 스냅샷뿐만 아니라 파일시스템의 무허가 혹은 의심쩍은 변화를 규정하는 일련의 규칙도 제공한다. 트립와이어가 시스템을 점검하는 경우 정책을 활용하여 파일시스템의 현 상태를 검사하고 비교한 뒤 발견한 내용에 바탕을 둔 보고서를 생성한다.
  • 보통 트립와이어는 하루에 한번 수행되며, 주로 시스템 사용자가 들어와있지 않은 야간에 이뤄진다.

주의할 점

  • 트립와이어에는 두가지 문제점이 있다.
  • 첫번째는 편리함의 문제이다. 
    • 트림와이어의 보고서가 검토하기에 길고 지루할 수 있다는 사실에 기인한다.
    • 또한 트립와이어 정책에 의해 검사된 파일에 변화를 자주 가한다면 트립와이어 데이터베이스를 주기적으로 업데이트해야 한다는 사실에도 기인한다.
  • 두번째는 약점의 문제이다.
    • 파일시스템 무결성 검사가 실시간이 아니라 주기적으로 이뤄져야 한다는 사실에 기인한다.
    • 이유는 실시간 파일시스템 검사가 엄청난 시스템 자원을 요구하며 성능을 크게 떨어트리기 때문이다.
상세 트립와이어의 사용 명령어는 아래 참고 url 에서 확인할 수 있음.




<참고>

  • 리눅스 파일시스템의 [무결성 점검] - http://www.zdnet.co.kr/news/news_view.asp?artice_id=00000039144301&type=det&re=

Continue reading

2015. 8. 5.

ISO 심사원의 뇌 구조

웹 서핑 중 재미있는 글을 발견했습니다.

ISO 심사원의 뇌 구조를 확인하고 각각에 따른 심사 응대 방식을 설명하는 글입니다.

인증 심사에서 무엇을 기대할 것인가?

"만약 심사위원이 무슨생각을 하는지 이해한다면, 스트레스를 조금더 받지 않을까?"



심사위원의 뇌는 아래와 같이 8가지로 구분할 수 있습니다.

  • KNOWLEDGE
  • QUEST
  • ANNOYANCE
  • HAPPYNESS
  • EXPECTATIONS
  • PROHIBITED
  • AUTHORIZATION
  • KNOWLEDGE

Knowlege - 심사원이 어떤 스탠다드에 능한가?
  • Fact
    • 심사위원은 오직 한개의 스탠다드로 심사를 할 것이다. (ex, ISO 27001)
    • 대부분의 심사원들은 여러 ISO 기준에 대한 지식이 있을 것이다.(ISO 9001, ISO 14001,, ISO 20000, etc )
  • Tip
    • 큰 그림을 그리기 위해 심사위원의 지식과 경험을 활용하라. 각각의 스탠다드는 당신에게 적합할 것이다. 즉, 운영능력이 향상 될 것이다. 
Quest - 심사위원은 무엇을 바라는가?
  • Fact
    • 심사위원은 아래의 사항등을 평가할 것인다.
      • 필수 문서를 모두 가지고 있는지
      • 활동(activities)과 문서가 스탠다드에 부합하는지
      • 수행되고 있는 활동이 문서(정책,지침, 등) 와 부합하는지
  • Tip
    • 조직내에서 필요하지 않는, 부합하지 않는 정책과 절차를 만들지 마십시오. 또한 개정된 문서는  모든 인원이 자세히 검토할 필요가 있습니다.

ANNOYANCE - 그들은 무엇에 짜증을 느끼는가?
  • Fact
    • 인증심사원들도 사람이다. 때문에 담당자들이 적극적으로 심사에 임하지 않고, 방어 자세를 취한다면 짜증을 느낄 것이다.
  • Tip
    • 심사위원의 질문을 회피하지 마세요. (어차피 무엇을 숨기고 있는지 바로 알아차릴 겁니다.)
    • 거짓말을 하지마세요. (만약에 거짓말이 발각되면, 당신은 모든 신뢰를 잃게 될것 입니다.)
    • 시간을 끌지 마세요. (심사위원을 일부로 이리저리 끌고 다니며 시간을 소모하지 마세요)

Authorization - 인증을 위해 심사위원이 무엇을 하는가?
  • Fact
    • 심사기간내에, 심사위원은 인증범위 내의 인원들에게 지적을 할 수 있습니다. 또한 어떤 문서도 볼 수 있으며, 조직내의 부지에도 갈 수 있습니다.
  • Tip
    • 인증범위 내의 모든 인원에게 심사 준비를 하라고 당부해 놓는다. 그리고 범위내 문서를 확실히 검토한다.
PROHIBITED - 심사위원이 못하는 것은 무엇인가?
  • Fact
    • 심사위원은 담당자들이 불평하지 않을 만한 명백한 증거가 없거나, 문서나 스탠다드의 요구사항에 부합하지 않는 것을 '부적합'으로 지정할 수 없다.
  • Tip
    • 만약 요구사항에 기재되어 있지 않거나, 애매한 사항을 발견하게 되면, 이 부분에 대해서는 심사위원에게 주장할 합당한 논거를 준비해야 한다. 

EXPECTATIONS - 심사위원은 무엇을 기대할 것인가
  • Fact
    • 인증심사는 초기심사가 끝이 아니다.
  • TIP
    • 성공적으로 심사를 마친 이후에도, 시스템과 문서를 지속적으로 관리해야 한다. - 심사위원은 다음에 왔을때 이 부분을 유념해서 확인 할 것이다. 
HAPPINESS - 심사위원이 어떨때 행복해 하는가?
  • Fact
    • 원칙적으로 심사위원은 고객사 담당자와 상담(컨설팅) 할 수 없도록 되어 있다. - 즉 현재 직면한 문제의 해결방안에 대해 설명할 수 없다.
  • Tip
    • 인간관계를 긍정적으로 발전시켜라
      • 명확하고 적절게 답변하라
      • 문제를 숨기려하지말고 인정하라
      • 심사위원의 의견을 물어보라
    • 그렇게 한다면, 심사위원은 단순히 부적합 사항을 던져주지는 않을 것이다.  (대화도중, 몇몇 부적합 사항에 대한 가이던스를 제공해줄 것이다. 이것은 엄밀히 말하면 컨설팅은 아니다. 하지만 많은 시간을 절약할 수 있다.













Continue reading

2015. 4. 20.

백업 주기는 어떻게 정해야 할까요

"백업주기를 어떻게 정해야 할까요?"

실제로 전산담당자에게 이와 같은 질문을 하면, "보안책임자의 의지에 따라" 혹은 "특별한 이유가 없이.." 와 같은 많은 답변을 받을 수 있습니다. 

백업주기는 이렇게 추상적인 개념으로 정해지는 것이 아닙니다. 백업은 전산적인 측면에서 봤을때 반드시 수행해야 할, 그리고 가장 중요한 업무 중 하나 입니다. 그렇기 때문에 이러한 백업의 주기는 반드시 정확한 분석으로 정해져야 합니다. 또한 이러한 분석은 해당 데이터의 비즈니스 측면의 가치에 기반하여야 합니다. 

그러면 백업 주기를 정하는 계산법은 무엇일까요?

우선 그전에 아래의 개념을 이해해야 합니다. 
  • 복구 지점 목표 ( RPO ; Recovery Point Objective ) / 최대 데이터 손실 ( Maximum Data Loss ) 
  • 비즈니스 영향 분석 ( BIA ; Business Impact Analysis )
** 비즈니스 연속성에 관련한 국제 표준인 ISO 22301에서는 ‘복구지점목표(RPO)'와 ‘최대 데이터 손실' 은 같은 의미라고 표현하고 있습니다.


1. BPO / Maximum Data Loss / BIA

1) 복구 지점 목표(RPO)

'복구 지점 목표’ 는 각종 재해상황에서 수용할 수 있는 최대 허용 데이터 손실을 의미합니다. 기본적으로 다음의 질문을 통해 복구 지점 목표’를 구할 수 있습니다.
  • “얼마정도의 데이터를 손실하여도 (사업적으로) 감당할 수 있는가?
  • “즉, 수용할 수 있는 데이터 손실이 어느정도 인가?"

2) 업무 연속성 평가 (Business Impact Analysis)

위의 ‘복구지점목표(RPO)’를 분석하는 가장 쉬운 방법이 바로 '비즈니스 영향 분석(BIA)’ 입니다.’비즈니스 영향분석(BIA)’를 간단하게 정의하면 ‘장애나 재해로 인한 운영상의 주요 손실을 가정하여, 시간흐름에 따른 영향도 및 손실평가를 조사하여 BCP를 구축하기 위한 핵심 절차 입니다.(여기서 BCP란, Business Impact Analysis의 약자로서 업무 영향 분석을 의미합니다)

'비즈니스 영향 분석’은 조직내 모든 대상 (데이터베이스, 어플리케이션, 파일 또는 서비스, etc) 를 대상으로 진행 될 수 있습니다. 각각의 담당자들은 인터뷰 혹은 질문서를 통해서 ‘수용할 수 있는 수준의 최대 데이터 손실’ 수치화 하여 값을 도출하게 됩니다. 보통 시간을 기준으로 하지만, 트랜잭션, 레코드로도 도출될 수 있습니다.

BIA 분석에 대한 핵심 명제는 ‘회사 입장에서의 잠재적인 데이터 손실’ 입니다. 이것은 금적적인 손실도 될 수 있고, 범법, 명성 등과 같은 영향도 포함됩니다. 이 기준을 수행할때는 기존에 수행하고 있던 백업주기를 고려하면 안되며, 오직 지금 수행하고 있는 백업이 깨지게 되었을때, 얼마동안의 손실을 수용할 수 있는가 입니다. 도출된 ‘복구지점목표(RPO)는 24시간이 될 수도 있고, 2시간이 될 수도 있습니다. 

2. 그러면 백업 주기는 어떻게 정해야 할까요?

다시 처음으로 돌아와서, 백업 주기 수립 방법에 대해 이야기 해보도록 합니다. 은행을 예로 들어서 설명하도록 하겠습니다. 은행의 핵심 업무 활동이 '대출 프로세스' 와 '지불 프로세스’라고 가정해 보고, 각각의 '복구지점목표(RPO)'를 추측해보도록 하겠습니다. 

'대출 프로세스'는 아마 24시간 동안의 손실을 감수할 수 있을 것입니다. 이유는, 사고 발생 후 고객이 자신의 정보를 다시 요청하였을때 해당 데이터를 재생성하기가 매우 어렵기 때문입니다. 하지만 '지불 프로세스'의 경우 아주 작은 단일 트랜잭션의 손실 조차도 감수할 수 없을 것 입니다. 이유는 보통 지불프로세스는 트랜잭션으로 이루어진 하나의 큰 볼륨이기 때문입니다.

결론은 아주 간단합니다. 이러한 업무영향분석(BIA)를 통해 ‘복구목표시간(RPO)’을 24시간으로 정한다면, 백업은 하루에 한번은 수행되어야 합니다. ‘복구목표시간(RPO)’이 두시간 이면, 백업을 두시간마다 한번씩 수행해야 한다는 것이고, RPO가 제로라면, 흔히 말하는 미러사이트를 구축해서 실시간으로 데이터를 복제해야 할 것입니다. 

하지만 언제나 가격이 문제가 될 수 있습니다. 혹은 두시간 마다 한번씩 백업을 하는 것은 불가능하다고 반문할 수도 있습니다. 하지만 명심해야 하는 기본적인 사실은 조직내 중요 데이터를 모두 잃었을 경우, 비즈니스 전체에 회복할 수 없을 만큼의 큰 손실이 발생한다는 것이 분명하다는 것입니다. 

Continue reading

2015. 4. 16.

현대인의 삶의 일부가 된 '암호화'

현재 시대를 디지털 유니버스(Digital Universe)라고 부른다고 한다. 스마트폰의 발전과 함께 기하급수적인 양의 정보가 생성되고 있으며, 지금까지 약 4.4조 기가바이트의 정보가 생성되었고 지금까지도 Facebook, Twitter, Instagram, Youtube 등에서 데일리로 엄청난 양의 데이터가 생성되고 있다. <참고 사이트>

여기서 우리가 절대로 간과해서는 안될 사항이 바로 ‘암호학’이다. (참고 : 암호학의 현재와 미래)
데이터를 암호화를 하지 않는다는것은, 기밀 데이터를 아무런 보호대책없이 모든 사람들이 볼수 있는 공유폴더에 올려놓는 것과 같다고 볼 수 있다. 왜? 암호화되지 않은 데이터는 누구나 볼 수 있기 때문이다. 혹자는 너무 비약이 심하다고 할수도 있겠다. 하지만 결코 비약이 아니다.  

우리가 어떤 데이터를 PC에 저장하고 있든, 다른 원격지의 대상에게 전송하든간에, 해당 데이터는 악의적인 사용자에게 언제든지 탈취 당할 수 있다. 데이터를 전송하기 위한 다양한 방법이 있지만, 악의적인 해커 역시 다양한 기술을 사용하여 데이터를 탈취 할 수 있다. 

이번 포스팅에서는 암호학의 중요성을 강조하기 위해 우리가 실제 사례들 예로 들면서, 1) 악의적인 공격자가 어떻게 우리의 데이터에 접근할 수 있는지 2) 그들을 대비하기 위해, 데이터에 수행되어야 하는 조치는 무엇인 있는지 에 대해 정리해 보도록 한다.

우리가 가지고 있는 정보들의 형태는 아래와 같이 5가지 종류로 분류될 수 있다.
  • USB 디바이스
  • 하드 드라이브 (PC / 데스크탑)
  • 클라우드에 동기화된 파일 (Dropbox / SpiderOak)
  • 클라우드에 저장되는 데이터베이스 서버
  • 모바일 폰

1. 온라인 및 오프라인에서의 데이터 저장 위험

1) USB 디바이스
주말에 잔업을 처리하기 위해서, 회사에서 사용하는 정보를 USB에 넣어 집으로 가던 중 USB를 분실하게 될 수도 있다. 이때 USB가 암호화 되어 있지 않은 경우, 악의적인 사용자가 해당 데이터를 악의적인 용도로 사용 할수도 있다. 이를 대비하기 위해 안전한 패스워드 기준을 준수하여, USB 디바이스를 암호화하여야 한다. <참고 : 안전한 패스워드 기준> 네트워크를 이용하여 데이터를 전송하는 경우에도 안전한 암호 알고리즘으로 암호화 하여야 한다. <참고 : 안전한 암호알고리즘> 암호화 되지 않은 채널을 통해 데이터를 전송할 경우, 해커가 쉽게 데이터를 획득할 수 있다.

2) 하드 디스크
지금 본인이 사용하고 있는 PC 또는 데스크탑에는 굉장히 중요한 정보들이 많이 있을 것이다. 악의적인 사용자가 PC를 훔쳐가서 하드 드라이브로 접근하게 되면 모든 데이터가 노출되게 된다. 컴퓨터에 암호를 걸면 되긴하지만 이 역시 문제가 되지 않는다. 공격자는 Live - CD  와 같이 다른 환경에서 쉽게 하드드라이브를 마운트 할 수 있다. 다른 사람이 로그온하는 것을 막기 위해 사용되는 패스워드는 오직 다른 컴퓨터 사용자가 ‘로그인 하는 것’ 만 막아줄 뿐이다. 이러한 종류의 위험을 방지하기 위해서는, 하드 드라이브를 적절한 벙법으로 암호화 해야한다. 최대의 보안을 적용하기 위해 사용하고 있는 OS 역시 암호화하여야 한다.

3) 클라우드에 동기화된 파일
하드 드라이브에 있는 파일들을 다음과 같은 파일동기화 서비스를 통해 동기화 할 수도 있다.
  • Google Drive
  • Dropbox
  • SugerSync
  • Amazon Cloud Drive
  • Micro OneDrive
  • SpiderOak
  • Wuala
(이외에도 많은 서비스들이 있으며, 위는 그들중 몇개 일 뿐이다. )

파일은 선택하여 로컬 컴퓨터와 클라우드 서비스 모두에서 동기화(synchronized) 되도록 하는 서비스 이다. 문제는 서비스에 따라, 클라우드에 동기화된 파일들이 암호화 되고 그렇지 않을 수 있다는 것이다. 예를 들면, Dropbox 는 파일을 클라우드에 저장할때 암호화하고 있지 않다. 반면 SpiderOak 는 암호화해야 한다.SpiderOak 클라이언트들은 클라우로 파일을 올릴때 로컬에서 파일을 암호화 작업을 수행해야 한다. 그렇기 때문에 암호화된 파일만이 클라우드 데이터 서버로 보내지는 것이다.

4) 클라우드에 저장된 데이터베이스 서버
시스템 관리자는 종종 SQL/NoSQL 데이터베이스를 설치해야 하는 경우가 있다. SQL/NoSQL은 데이터를 저장하기 위해 몇몇 어플리케이션에 의해 사용된다. 대부분의 username, password는 데이터베이스에 저장되는데, 즉 그 말은 데이터베이스는 민감한 정보를 가지고 있다는 것이다. 또한 코멘트, 사진, 비디오, 사용자 정보들까지 아주 다양하다. 때문에 안전한 워크플로우 및 운영을 보장하기 위해, 데이터베이스이 강조되는 것이다. 문제는 데이터베이스가 클라우드에 저장되어 있을 경우 다소 확장된다. 클라우드에서 DB 관련한 설치, 운영, 확장(Scailing) 작업을 보다 쉽게 할 수 있게 하는 다양한 종류의 서비스가 있다. (예를 들면, Googe Cloud SQL, Amazon Relational Database Service(Amazon RDS))

5) 모바일 폰 
그러나 가장 중요한 것은, 모바일폰에 저장된 정보이다. 휴대폰 분실에 대한 사건사고는 굉장히 많이 보고 듣고 겪어 보았을 것이다. 휴대폰을 분실하게 되면 기기에 저장되어 있는 데이터도 같이 분실하게된다.
대부분의 사람의 경우 사진, 비디오, 전화번호 등과 같은 전화번호를 분실한 사실에 걱정할 것이다. 이와 같은 사례를 대비하여 행해져야할 가장 중요한 일은 데이터를 백업하는 것이다. 이는 굉장히 중요한 고려사항이다. 그리고 몇몇 사람들은 기기에 저장되어 있는 사생활 데이터가 유출되지 않을까 걱정하기도 할것이다. (이에 대한 솔루션은 아래에서 이야기하겠다.)

2. 온라인 및 오프라인에서의 데이터 보안 방안

지금부터는 '유출 또는 분실된 데이터를 읽으려는 행위를 막는 방법' 에 대해 이야기한다. 이는 데이터를 훔치려는 공격자를 막는 방법에 대해 이야기하는 것이 아니다. 위와 같은 방법으로 공격자가 데이터를 획득한 다는 가정에서, 데이터 보호를 위한 방법에 대해 이야기 하는 것이다.

1) USB 디바이스
USB 디바이스를 적절히 암호화하기 위해서는, 다음과 같은 소프트웨어를 사용할 수 있다.
  • DiskCryptor
  • VeraCrypt
  • BoxCryptor
** 반면, TrueCrypt 는 사용하면 안된다. 이는 지원이 종료된 것으로, 더이상 지원하지 않을 계획이라고 한다. 즉, 안전하지 않다는 것이다.

2) 하드 드라이브
하드 드라이브를 암호화하기 위해서는, OS시스템에 따라 소프트웨어를 선택해야한다
  • Linux : DM-Crypt LUKS
  • Windows : BitLocker
3) 클라우드 
클라우드에 서비스를 선택할때, 암호화 업로드를 지원하는지 또한 'Zero-Knowledge'를 지원하는지를 확인해야 한다. (Zero-Knowledge : http://en.wikipedia.org/wiki/Zero_knowledge) 지금 현재는 Dropbox 는 해당 기능을 지원하지 않기때문에, 대안으로 SpiderOak 를 사용해야 한다. 

4) 클라우드에 저장된 데이터베이스 서버
클라우드 업로드된 DB 보안을 위해서는 다음과 같은 소프트웨어를 사용할 수 있다.
  • ClearDB
5) 모바일 폰
대부분의 안드로이드 모바일 폰은 자체적으로 암호화를 지원한다. 안드로이드 ‘Setting’ 의 ‘Encrypt’ 에서 암호화를 진행할 수 있다.

3. 결론
지금까지 데이터를 보호함에 있어 '암호화'가 얼마나 중요한 요소인지 살펴보았다. USB 디바이스든 클라우드든 암호화가 필요한것은 마찬가지이며, 암호화만 제대로 수행해도 악의적인 공격자가 인가받지 않은 데이터에 접근하지는 못할 것이다.

또한 클라우드에 서비스를 사용할때, 해당 데이터는 언제든지 악의적인 공격자에 의해서 탈취당할 수 있다는것을 항상 인지해야 한다. 때문에, 데이터를 보호할 수 있는 최대한의 방안을 적용해야 하며, 그 보안 방안이 암호화가 되는 것이다. 

우리는 ‘보안’ 과 ‘보안을 보장하기 위해 투자하는 시간’, 이 두 요소의 균형을 어떻게 조율할지 진지하게 고민해 볼 필요가 있다.소 잃고 외양간 고친다’ 라는 말의 의미를 정확히 되새기며, 각자의 삶을 대상으로 '보안'과 ‘투자시간'과의 균형을 조절해보는 시간을 갖도록 해보자.

Continue reading

Popular Posts

Recent Posts

Powered by Blogger.