본문 바로가기

더 괜찮은 개발자가 되기위한/정보시스템 운영

시스템운영에 필요한 보안 지식

□ 시스템운영에 필요한 보안 지식


○ 네트워크 보안장비


네트워크 보안장비 종류


네트워크 보안장비는 네트워크 트래픽을 통해 유입되는 공격을 사전에 예방하거나 실시간 차단하는 시스템이다. 방화벽, IDS, IPS로 각각 발전했으나 최근에는 각각의 기술이 통합하는 추세로 보안장비의 경계가 모호해지고 있다. 모든 네트워크 보안 장비를 구입하기 어려운 중소 기업의 경우 세 가지 기능을 모두 지원하는 UTM(Unified Threat Management)의 도입이 증가하는 추세이다. 최근에는 방화벽, IDS, IPS에서 나오는 데이터를 통합 모니터링하고 관리하기 위해 ESM(Enterprise Security Management) 도입이 증가하고 있다.


방화벽


방화벽

(출처: https://www.cisco.com)


방화벽은 정보시스템을 방어하는 일차 관문이다. 방화벽이 제공하는 가장 기본적인 기능은 패킷 필터링 기능이다. 정보시스템 내부로 들어오는 패킷 자체만을 보고 미리 등록된 정책에 따라 기계적으로 패킷을 걸러주는 것이다. 하지만 패킷 필터링 방식은 속도가 빠르다는 장점이 있지만 헤더가 조작된 패킷을 차단할 수 없다는 단점이 있다. 그래서 프락시 방식이 등장했다. 서비스별로 별도의 프락시 데몬이 존재해서 어플리케이션 레벨까지 검사하는 것이다. 이 방식은 보안은 강화됐지만 어플리케이션을 검사하기 위한 시스템 부하가 상당히 커졌다. 그래서 등장한 것이 스테이트풀 인스펙션(Stateful Inspection) 방식이다. 중간에 상태 테이블(State Table)을 두고 정상으로 증명된 패킷을 상태 테이블에 저장해 두고 다음에 들어오는 패킷을 상태 테이블에 있는 패킷과 비교해 보는 것이다. 어플리케이션 레벨까지 올라갈 필요성이 많이 감소했기 때문에 보안성을 높이면서 시스템 부하도 감소시킬 수 있다.


침입탐지시스템 IDS


침입탐지시스템(IDS : Intrusion Detection System)은 비정상적인 트래픽을 탐지하고 알려주는 역할을 하는 시스템이다. 방화벽인 일차적으로 아이피와 포트 기반으로 공격을 차단한다면 IDS는 이차적으로 공격 패턴을 저장하고 데이터베이스 중심으로 공격을 감지하고 알려주는 역할을 한다. 일반적으로 IDS는 공격을 실시간으로 차단하는 기능보다는 탐지하는 분야에 특화되어 있는 장비이다.


IDS는 패킷의 흐름을 방해하지 않는 방식으로 동작한다. 이것을 패킷 미러링이라고 하는데 방화벽에서 백본 스위치로 흘러가는 패킷은 그대로 놔두고 복사본을 만들어서 정보를 분석하게 된다. IDS는 장비 내부에 물리적으로 장애가 발생하더라도 패킷 흐름에 방해가 되지 않도록 구성되어 있다.


IDS


IDS 6개의 부분으로 구성되는데 가장 앞 단에는 먼저 정보 수집 기능이 있다. 네트워크 카드와 연결되어 패킷을 받아들이고 분석을 위한 복사본을 만드는 역할을 한다. 다음으로 정보 분석 기능이 있는데 공격 패턴을 저장하고 있는 패턴 DB를 참조해 패킷의 정상 여부를 판단한다. 정보 저장 기능은 탐지한 공격에 대한 내용을 로그 파일로 저장하는 기능을 한다. 이벤트 보고 기능은 공격을 탐지했을 때 관리자에게 이메일, 메신저, SMS를 통해 알려주는 기능을 한다. 대시보드를 통해 공격 탐지 현황을 시각화하기도 한다. 마지막으로 패턴 생성 기능은 패킷을 분석해서 새로운 공격 패턴을 패턴 DB로 업데이트 하거나 관리자가 직접 패턴을 추가 또는 삭제할 수 있는 기능을 제공한다.


침입차단시스템 IPS


침입차단시스템(IPS : Intrusion Protection System)은 유해 트래픽을 실시간으로 감지하고 차단하는 시스템이다. IDS가 유해 트래픽의 탐지에 초점을 맞췄다면 IPS를 탐지 뿐 아니라 즉시 차단하는 기능을 갖추고 있다. IPS IDS와는 달리 패킷을 미러링해서 탐지하지 않고 네트워크에 패킷을 직접 분석하다. 따라서 IPS가 패킷을 감시할 수 있는 수준은 IDS에 비해 제한적일 수 밖에 없다. 일반적으로 기업에서는 IPS IDS를 동시에 운영하면서 실시간 차단과 심층 분석의 두 가지 목적을 모두 달성하고 있다.


IPS


IPS IDS와 마찬가지로 패턴 DB를 참조해서 입력 패킷을 분석한다. IDS 처럼 다양하고 복잡한 패턴을 검색하지는 않지만 네트워크 트래픽에 방해되지 않을 수준으로 패킷을 검사한다. 패턴 DB와 일치하는 패킷은 내부 네트워크로 전달하지 않고 패킷을 폐기한다


규모가 큰 기업이라면 방화벽, IDS, IPS 등이 모든 네트워크 방어 장비를 구비할 수 있지만, 중소 규모의 기업에서는 도입하고 유지하는 비용이 부담이 될 수 있다. 이런 기업을 위해 세가지 기능을 하나로 합쳐 단일 장비로 만든 UTM(Unified Threat Management) 장비가 출시되어 있다. 특화된 장비를 따로 도입하는 것보다 성능을 다소 떨어지지만 보안에 많은 비용을 투자하기 어려운 소규모 기업을 중심으로 도입이 늘고 있다.

 

○ 어플리케이션 보안장비 웹방화벽


웹방화벽은 웹어플리케이션을 대상으로 시도되는 공격을 차단하는 시스템이다. 기존의 보안 장비는 네트워크 계층의 공격을 차단하는데 초점을 맞추고 있는 반면에 웹방화벽은 어플리케이션에 있는 컨텐츠를 살펴보고 공격 패턴을 찾아낸다


웹방화벽 기능


웹방화벽은 크게 두 가지 기능을 한다. 첫 번째는 공격 차단 기능인데 웹 서버와 웹 어플리케이션을 공격하는 다양한 시도를 차단할 수 있다. 웹어플리케이션을 선택적으로 사용자에게 보여줄 수 있으며 HTTP 패킷에 심어져 들어오는 SQL Injection, XSS, CSS, 버퍼 오버플로우와 같은 다양한 공격을 차단할 수 있다. 두 번째는 정보보호 기능인데 웹 서버의 결과 값에 들어있는 주민등록번호와 신용카드 번호 같은 개인정보를 웹방화벽에서 차단할 수 있다. 웹 서버 응답 결과를 선택적으로 보여줄 수 있는 기능도 제공한다.

 

○ 데이터암호화 기술 SSL


SSL(Secure Socket Layer)은 공개키 기반으로 웹서버와 브라우저 사이에 오가는 데이터를 암호화하는 기술이다. SSL은 웹서버에 인증서만 설치하면 브라우저에 별도의 프로그램 설치 없이 데이터를 간편하게 암호화할 수 있다. 웹에서 일반 데이터는 HTTP로 시작하는 URL을 통해 주고받고 SSL로 암호화된 데이터는 HTTPS로 시작하는 URL을 통해 주고 받는다.


SSL 동작 방식


SSL 사용하기 위해서는 먼저 SSL 인증서를 설치해야 한다. 인터넷에서 무료로 제공하는 사설 인증서를 사용할 수 있지만 브라우저 창에 보안경고창이 뜨기 때문에 공인된 SSL 인증서를 사용하는 것이 좋다. 인증서 비용은 백만원 내외이기 때문에 구입에 큰 부담은 없다. SSL 인증서가 설치된 후 사용하는 과정에서 벌어지는 브라우저와 웹서버 간에 복잡한 과정은 개발자와 사용자 모두 모르게 진행이 된다. 단지 개발자는 암호화가 필요한 페이지는 HTTPS 프로토콜에 의해 호출되도록 지정하기만 하면 된다. HTTP는 일반적으로 80포트에 의해 서비스되고 HTTPS 443 포트에 의해 서비스 된다.  두 포트 모두 기본으로 설정되어 있기 때문에 URL뒤에 포트 번호를 따로 지정하지 않아도 된다.