본문 바로가기

IT 살이/03. 관리 - 보안 관리

03. CIA Triad + 2 보안 모델 설명

정보 보안의 목표을 생각해보자. CIA Triad 모델이라는 것은 CIA 즉, Confidentiality(기밀성), Integrity(무결성), Availability( 가용성 )을 확보할 수 있다면 외부의 공격, 위험, 취약점등을 극복할 수 있다는 것을 말하고 있다. 그러나 대부분의 모델은 CIA 모델에 더해서 관리상의 보안활동인 보안감사 그리고 부인방지(nonrepudiation)라는 카테고리를 추가해서 모델을 보완하고 있다. 이 카테고리는 모든 보안 공격, 위험, 취약성에 대비하기 위한 전반적인 보안 활동을 분류하기 위한 모델로서 기업에서는 필요한 보안활동을 이 카테고리로 분류해서 체계적으로 관리할 수 있을 것으로 보인다. 

 

1) 기밀성 Confidentiality

 

- 허용되지 않는 사용자(시스템)에게는 데이터, 정보를 공개하지 않는다는 원칙이다.

- 민간한 개인 정보 및 파일의 암호화, 비밀번호 해시화 등이 기밀성을 유지하기 위한 방법으로 사용된다.

 

2) 무결성 Integrity

허가되지 않는 사용자(시스템)에 의해 데이터가 변경되는 것을 방지한다는 원칙이다. 

 

☞ 신원확인(identification)

 

무결성이 보장되기 위해서는 사용자(시스템)이 반드시 식별되어야 한다는 것을 의미한다. 사용자의 신원을 식별하는 정보가 필요한데, 신원을 확인하는 절차를 "신원확인(identification)"이라 한다. 

시스템에서는 사람, 조직, 하드웨어 장치, 어플리케이션 등 다양한 엔터티(entity)들이 자원에 대한 접근 요청을 한다. 자원은 어플리케이션에 따라서 웹 서비스, 웹 사이트, 웹 사이트읙 특정 UI 또는 데이터, 컨텐츠 또는 다른 장비도 될 수 있다.

 

☞ 인증(Authentication, AuthN)

 

"신원확인"은 "인증(authentication)"과는 다르다. "인증"은 사용자가 주장하는 신원을 가졌는지를 확인하는 절차이다. 예를 들어 "아이디"/ "패스워드"를 사용자가 입력하면, 어플리케이션은 "아이디"를 통해서 해당 사용자의 신원을 밝히는 작업을 한다. 그런 다음 "패스워드"를 통해서 사용자(시스템)이 실제로 주장하는 신원임을 확인하게 된다. 

개념적으로 "신원확인"--> "인증"으로 진행되어야 한다. 그러나 사용자 입장에서는 인증 프로세스만 경험(로그인)하게 된다. 인증 프로세스는 식별자를 통해 엔터티의 신원을 발견하고 엔터티에서 제공한 자격증명(일반적으로 암호화된 패스워드)에 대한 유효성 검사를 통해 신원을 확인하는 프로세스이다. 

 

자격증명 유형에도 여러가지가 있다.

지식기반 - 'something you know'를 기반으로 인증. 암화, PIN 번호등

소유기반 - 'something you have'를 기반으로 하는 인증. 인증서 또는 스마트카드, USB 동글(dongle) 등

개체특성기반 - 'something you are'를 기반으로 하는 인증. 생체인증(지문,홍채,DNA시퀀스 등)

행위기반 - 'something you do'를 기반으로 하는 인증. 서명, 움직임,음성 등

 

이중 인증(Two factor 인증, TFA, 2FA)  - 타입이 다른 2개를 선택해서 인증하는 메커니즘, 생체인증보다 강함

이 외에도 인증과 관련된 분야는 아주 방대하다. 기기인증도 있고, AAA같은 프로토콜(Authentication, Authorization Account), 통합인증( SSO, 커버로스 )등

 

☞ 권한부여(Authorization, AuthZ)

 

인증을 거치고 나면 "권한부여(Authorization)"를 하게 된다.

- 접근제어모델 : Role-based

- 접근통제기술

- OAuth

 

☞ 전송 계층 보안

 

데이터의 무결성을 보장하기 위해서는 인증과 권한부여만으로는 부족하다. 네트워크를 통해서 전달되는 데이터 보호가 필요하다. 이런 무결성 보장은 "전송계층 보안"을 통해서 처리한다. 

 

- SSL/TLS - HTTPS

- 메일 보안

 

☞ 최신 보안 위협

- OWASP( Open Web Security Project ) 등

 

3) 가용성 Availability

 

위협

- DoS, DDoS, 무차별 대입( brute-force)

 

☞ 대응

- 특정 목적의 하드웨어, 소프트웨어 도입

- IT 관리 및 운영

- 네트워크 이중화, HA

 

4) 보안감사

 

- IT운영관점에서의 보안 활동

- 로깅(Logging), 감사(Auditing), 추적(Tracing)은 어플리케이션에서 발생한 이벤트들을 기록한다.

- 기술적으로는 동일하지만 목적은 서로 다르다.

 

보안감사는 개발생명주기(SDLC, Systems Development Life Cycle)의 개발 단계에서는 사용자의 요구사항에 부분적으로만 포함되는 것이 일반적이다.따라서 보안 감사가 유지 보수 단계에서 주로 반영이 되는데, 이 보안 감사를 요구하는 사람들은 로깅, 감사, 추적의 개념을 잘 구분해서 요구하지 않는다. 따라서 요구사항을 받는 입장에서 구분해서 아키텍처와 설계에 반영해야 한다. 

 

☞ 로깅

- 어플리케이션에서 발생하는 정상적인 이벤트뿐만 아니라 오류 또는 예외와 같은 비정상적인 이벤트를 기록할 수 있다. 

- 목적은 주로 서비스 수준 계약(SLA)을 보장하고, 운영 통계 정보를 얻는 것같은 운영 목적이 있다. 

- 일반적으로 특정 이벤트의 로그를 모니터링하고 어플리케이션 지원 팀에 해당 이벤트에 대한 경고를 알려야 한다. 

- 이런 성격의 로깅은 주로 비기능적인 요구사항으로 나온다.

 

☞ 감사(감사 로깅)

- 사용자의 인증 및 권한 부여 실패에 대한 이벤트 또는 사용자가 보호된 자원에 접근해서 변경하는 이벤트같은 보안 관점의 이벤트들의 로그 캡처를 목적으로 하는 전문적인 로깅

- 로깅이 이벤트 자체에 대한 상세 정보를 기복하는데 반하여, 감사는 이벤트에 대한 원인이 있는 사용자 혹은 이벤트를 발생시킨 사용자의 신원은 기록한다.

- 비즈니스의 성격에 따라서, 어플리케이션에서는 감사 로그를 많이 만들기도 하고, 몇가지 중요한 정보들에 대해서만 남기기도 하고 전혀 만들지 않기도 한다.

- 감사 로깅은 어플리케이션의 특성에 따라서 기능적인 요구사항 혹은 비기능적인 요구사항이 된다.( 보안 솔루션이라면 기능적인 요구사항으로, 업무 어플리케이션이라면 비기능적인 요구사항으로 될 수도 있을 것이다)

 

☞ 추적

- 추적은 어플리케이션의 코드 실행에 대한 정보(발자취)를 기록하는 데 목적이 있는 특별한 로깅이다.

- 디버깅 코드를 사용하는 프로그래머에 의해서 사용되며, 어플리케이션 혹은 개발팀만을 위한 도구로 볼 수 있다.

- 사용자 행동과는 관련없기에 일반적으로 기능적인 혹인 비기능적인 요구사항으로 고려되지 않는다.

 

5) 부인방지

-누군가가 무언가를 했던 것을 부인하지 못하게 하는 방법이다.즉 실세계에서의 인감도장과 동일한 효과를 내는 전자서명을 이용한다.

-실세계의 빠알간 도장 인주 대신에 주로 X.509인증서를 기반으로 한 디지털 서명을 문서에 남겨 부인 방지를 보장한다.

 

이젠 CIA+2 모델을 조직에 적용하는 방법에 대해서 알아봐야 겠지