본문 바로가기

보안/네트워크

네트워크 보안 소개





네트워크 보안 용어


네트워크 보안

 - 컴퓨터 시스텝 보안 + 커뮤니케이션 보안


컴퓨터 시스템 보안 목표

 - 정보 자산을 비허가된 또는 악의적인 사용으로부터 보호

 - 컴퓨터 시스템 내에 저장된 정보를 비허가된 파괴, 수정, 유출로부터 보호


커뮤니케이션 보안 목표

 - 커뮤니케이션 동안 커뮤니케이션 중간자를 통해 비허가된 파괴, 수정, 유출로부터  정보를 보호




컴퓨터 보안과 네트워크 보안의 융합


네트워크 보안은 컴퓨터 보안 없이 이루어질 수 없다.


네트워크보안 연구자는 시스템 보안과 컴퓨터 보안 둘 다 모두 알 필요가 있다.




OSI 7 계층 모델과 TCP/IP 모델


레어이어란?

 - 추상화의 한 종류

 - 하위 레이어는 상위 레이어에게 서비스를 제공함


OSI 참조 모델

 - 레이어 7 (Application)

   - 어플리케이션의 커뮤니케이션 이슈들을 처리한다.

   - SIP (Session initiation Protocol), Hyper Text transfer Protocol(HTTP), File Transfer Protocol(FTP) 등


 - 레이어 6 (Presentation)

   - 상위 어플리케이션 레이어에게 데이터를 표현하는데 책임진다.

   - ASCII, ZIP, JPEG, TIFF, RTP, MIDI


 - 레이어 5 (Session)

   - 두 컴퓨터의 접촉을 초기화하는데 책임을 진다.

   - 커뮤니케이션 라인을 셋팅한다.

   - RPC (Remote Procedure Call), SSL (Secure Sockets Layer)


 - 레이어 4 (Transport)
   - 네트워크의 물리 위치를 나열하는 방법에 대해 정의한다.

   - 호스트 사이에서 연결을 설립하고 네트워크 메세징을 처리한다.

   - TCP (Transmission Control Protocol), UDP (User Datagram Protocol)


 - 레이어 3 (Network)

   - 네트워크 호스트 간에서 데이터를 전달하고 라우팅하는데 책임을 진다.

   - source 로부터 destination 호스트까지의 패킷을 전달한다.

   - IP (Internet Protocol)


 - 레이어 2 (Data Link)

   - 피지컬 채널 위에 있는 호스트 사이에서 연결을 설립한다.

   - Ethernet, Token Ring


 - 레이어 1 (Physical)

   - 비트를 전송에 적합한 물리적인 신호로 변환한다. 




 OSI

 설명 

 Application

 사용자의 OSI 환경에 대한 접근과 분리된 정보 서비스를 제공한다.

 Presentation

 데이터 표현에서의 차이로부터(Syntax) 어플리케이션 프로세스의 독립성을 제공한다.

 Session

 어플리케이션 간의 커뮤니케이션을 위한 제어 구조를 제공한다. 

 상호 동작하는 애플리케이션 사이에서(세션) 연결을 설립, 관리, 종료한다.

 Transport

 엔드 포인트 사이에서 신뢰할 수 있고 투명한 데이터 전송을 제공한다.

 엔드 투 엔드 에러 복구와 플로우 컨트롤을 제공한다.

 Network

 시스템 연결을 위한 기술 전환과 데이터 전송으로부터 상위 레이어에게 독립성을 제공한다.

 Data link

 Physical 링크에서 신뢰할 수 있는 정보 전달을 제공한다. 

 동기화, 에러 컨트롤, 플로우 컨트롤을 통해 블록(프레임)들을 전송한다.

 Physical

 물리적인 중간위치에서 구조화 되지 않은 비트 스트림 전송과 관련되어 있다. 

 피지컬 중간위치에 접근하는 기계적인, 전기적인, 기능적인, 절차적인 문자들을 처리한다.





DID, MLS


많은 보안 아키텍처와 개념은 OSI 7 계층 모델을 기반으로 한다.

 - DiD (Defense in Depth)

 - MLS (Multi layered Security)


시스코의 DiD 모델


 1) 정책, 절차, 지각

 - 백업과 복구 전략에 관한 교육, 보안 정책, 절차


   가) 물리적 보안

    - 가드, 잠금, 접근 제한

       

       (1) 주변 보호

        - 방화벽, 라우터에 환경되는 접근 제한 목록(ACL), VPN

       

       (2) 내부 네트워크

        - 네트워크 분할, IDS 기반 네트워크


       (3) 호스트 보안

       

           (a) 서버 강화

            - OS 강화, 인증, 감사


           (b) 호스트 기반 방화벽

            - 인바운드 TCP/IP 포트 컨트롤


           (c) 바이러스 보호

            - 안티 바이러스 업데이트


           (d) 침입 예방

            - 제로데이 공격 방어


           (e) 패치 관리

            - 보안 업데이트 관리


       (4) 데이터 보안 

        - 엔드포인트 보안, 보호된 커뮤니케이션 경로(SSL, TLS, IPSec)


           (a) 어플리케이션 & 데이터

            - 강력한 암호, 파일 접근 제한 리스트(ACL)



마이크로소프트의 DiD 모델


 1) 정책, 절차, 지각

 - 어떤 조직의 보안 정략의 전반적인 운영 정책

 - 레이어가 없을 경우 전체 전략은 실패한다.


 2) 피지컬

 - 컴퓨터 내에서의 명백한 측면 : 서버 컴퓨터, 하드디스크, 네트워크 스위치, 전원, 기타등등


 3) 주변

 - 협력 IT 기관 시설과 외부 유저, 파트너, 인터넷과 같은 다른 네트워크를 연결하는 네트워크.


 4) 내부 네트워크

 - 협력 IT 시설 내에서의 네트워크


 5) 호스트 

 - 어플리케이션이 동작중인 컴퓨터


 6) 애플리케이션

 - 공격의 궁극적인 타겟인 데이터를 다루는 소프트웨어


 7) 데이터

 - 공격자의 궁극적인 타겟, 데이터베이스, 엑티브 디렉토리 서비스 정보, 문서 등을 포함함

      


벤더사의 많은 MLS 모델들이 존재한다.

 - 대게 MLS 모델은 보안 제품 또는 보는 것에 지향한 서비스를 제공한다.






그렇다면 네트워크 보안과 어떤 레이어가 관계되어 있을까?


데이터 레이어

 - 데이터 암호화 (새로운 암호/복호 알고리즘)

 - 포렌식, 안티포렌식

 - 거대한 양의 로그 분석 - 데이터마이닝


데이터베이스/애플리케이션 레이어

 - 데이터베이스 접근 제어 및 암호화

 - 웹 애플리케이션 방화벽 - SQL 인젝션, XSS

 - 소프트웨어 테스팅 - 퍼징

 - 리버스 엔지니어링


OS/플랫폼 레이어

 - 호스트 기반의 IDS/IPS - 비정상 탐지

 - 안티 바이러스 - 행위 기반


네트워크 레이어

 - IDS/IPS - 잘못된 사용 탐지, 비정상 탐지

 - 악성 코드, 스팸 메일 필터링


피지컬 레이어

 - 피지컬 보안 - 생물적

 - 패턴 인식 - 얼굴, 지문, 홍채, 모양, 적대적인 개체




보안 아키텍처


정보 보안의 3대 주요 프로세스

 - 보호 (보안장치)

 - 탐지 (모니터링)

 - 리엑션 (피드백)


정보보호의 트라이앵글

 - 기밀

 - 무결

 - 가용


그렇다면 무엇을 보호할 것인가?

 - 자산


 설명


 보안의 3대 프로세스로 프로텍션, 디텍션, 리엑션이 있다.


 프로텍션은 기본적으로 사고 및 침입이 안 일어나도록 조치를 하는 것이다.

 그렇더라도 뚫고 들어오는 것이 있나 확인하는 것이 디텍션이고

 침해가 발생했을 때 어떻게 할 것인가가 리엑션이다. 여기에는 리커버리도 포함된다.


 프로텍션

 프로텍션에서 떠올릴 수 있는 대표적인 장비는 파이어월이다. 

 이 시스템울 내부에서만 엑세스할 수 있도록 커피그 하고 외부에서 이 서버에 접속을 할 수 없도록 보호조치한다. 


 디텍션

 그렇다하더라도 뚫고 들어올 경우 : 예를 들어 어쩔 수 없이 열어야할 포트를 가지고 들어올 경우(DNS를 위해 52, 53을 여는 경우) 이 때에는 이 포트에 대한 엑세스가 정상인지 아닌지를 확인해야 한다. 대표적으로 IPS 또는 좀 더 진화한 웹 어플리케이션 방화벽이 이 단계의 역할을 수행한다.


 리엑션

그런데 들어오면 안될 녀석이 들어올 경우 이 아이피를 얼른 끊어내야 한다. 지금 맺어져있는 TCP 세션을 킬하던가, 이 아이피는 상당히 위험한 아이피이니 영구히 막아야할 경우 방화벽에 알려주어 악성 IP로 설정해야 한다. 만약 내 시스템을 해킹해서 백도어를 깔거나 파일을 삭제할 경우 디지털 포렌식 조치가 들어간다.



 이 프로텍션, 디텍션, 리엑션도 기밀, 무결, 가용성에 대해 3가지로 분리할 수 있다.


 프로텍션 - 기밀성

 무엇을 지키냐에 따라 달라질 것이다. 디스크에 있는 파일은 툴을 이용해 암호화를 할 수도 있고 네트워크 상에서 스팸 메일을 막고 싶을 경우 엑세스 리스트를 적용해서 막을 수도 있을 것이다. 데이터베이스를 보호하고 싶을 경우 데이터베이스 테이블 단위의 도구를 이용해 보호할 수 있다.


 프로텍션 - 무결성

 대표적인 도구는 암호화도구이다. 디텍션을 하는 과정에서 같이 적용하는 경우가 크다. 파일의 해쉬를 정기적으로 확인하여 바뀔 경우 운영자에게 알릴 수 있다. 


 프로텍션 - 가용성

 안티 디도스 도구를 쓰거가 서버의 이중화도구를 사용할 수 있다.


 디텍션 - 기밀성

 데이터베이스의 경우 디비 설정 시 접근 제한을 할 수 있다. 엑세스 컨트롤을 깨질 경우 실시간으로 감지하는 솔루션이 존재한다. 미리 정해 놓은 룰셋외에 다른 쿼리가 들어올 경우 경고를 띄워준다. 네트워크의 공격이 들어오는지 확인하고 싶을 때 IPS를 사용할 수 있다.


 디텍션 - 무결성

 무결성이 깨진 것을 확인하는 것은 티비파이어가 존재한다.


 디텍션 - 가용성

 가용성은 CPU, 메모리, 디스크 모니터링 도구가 존재한다.


 리엑션 - 기밀성

 기밀성을 깨진 것을 탐지한 다음에 피드백하는 도구가 존재하는데 예를들어 인크립션 키가 노출되었을 경우 키 매니지먼트 시스템을 이용해 대응할 수 있다. 네트워크 중간에 어떤 브릿지가 존재하여 이를 막아야할 경우 아이피 엑세스 컨트롤 변경 조치를 이용할 수 있다.


 리엑션 - 무결성

 무결성이 깨졌을 경우 CRC같은 것을 이용해 원본을 복구할 수 있다.


 리엑션 - 가용성

 가용성을 위해 메모리 증설, 시스템 증설 등을 할 수 있다.



 하지만 이 조치를 모두 취할 수는 없다. 편익을 살펴보아야 하는데 예를 디텍션의 기밀성을 위해 침입탐지 시스템을 회사에 도입할 때 도움이 얼마가 될 지 계산을 해야한다. 이것을 통해 무엇을 얻을 수 있는가도 확인해야한다. 

 

 이것을 안 하고 웹 애플리케이션 방화벽을 들어 놓을 수도 있고 코딩을 할 때 시큐어 코딩을 해서 방어할 수 도 있다. 여기서 돈을 계산하는 것은 리스크 애널리시스, 시큐리티 ROI를 계산하는 영역으로 넘어가게 된다. 투자대비 호용으로 보면 될 것 같다. 





자산(Assert), 위협(Threat), 위험(Risk), 취약점(Vulnerability), 보호(Safeguard)간의 관계


Risk 관리의 목표 : Risk를 줄이는 것


Risk = Threat * Assert 가치 * vulnerability 심각도

(Risk = Threat * Assert value * vulnerability severity)






설명


 한국말로 옮기면 위험이나 위협이나 그 말이 그 말 같다. 보안을 바라보는 2가지 관점이 존재한다.


 보안을 전체적으로 보는 것과 오브젝트단위로 보는 것이 있는데, 오브젝트 단위로 보는 것이 네트워크 보안을 발전시켰다. 여기서 중요한 것은 자산이다. 보통은 인포메이션 자산을 말하는데 모든 자산을 태어날 때부터 취약점을 가지고 태어난다. 사람으로 예를들어 폐, 심장이 안 좋은채로 태어날 수 있다. 폐가 안좋으면 약이나 운동을 통해 취약점을 어느 정도 예방할 수 있는데 이것을 세이프 가드라 한다. 보호조치라고 해석할 수 있다. 네트워크의 기밀성을 보호하기 위한 세이프가드로 파이어월이 있을 수 있다. 데이터베이스 자산에 있어서 접근 제어가 뚫리는지 확인하는 세이프 가드로는 DB 엑세스 모니터링 도구가 있을 수 있을 것이다. 


 무엇으로부터 보호를 하는 것인가? 지구상에 존재하는 다양한 위협으로부터 보호하는 것이다. 위협은 일종의 세균(홍역)같은 것이다. 그런데 이 것을 들이마셔서 발동되면 위험이 된다. 물론 이 세균을 안 마실 경우 나랑 관계 없으므로 위협이 된다. 위험(리스크)은 항상 확률을 포함한 함수의 형태로 표현된다. 정확하게 얘기를 한다면 내가 홍역이라는 세이프가드를 가지고 있지 않으면 이에 대한 취약점이 가지고 있고 이것을 마시게 되어 발현될 확률은 30퍼센트라고 표현할 수 있다. 예를 들어 물난리가 나 전산실이 침수될 경우 비라는 쓰레쉬홀드가 있어 이것을 10프로 확률로 표현할 수 있을 것이다. 그렇다면 전산실도 당연 보호조치를 할 것이다. 이것을 세이프가드라 한다.


 모든 자산에는 가치가 있다. 전산실에 있는 시스코 장비는 1억5000만원이라 할 때 수많은 세이프가드를 이용해 보호를 해야한다. 이 때 네트워크의 무결성, 물에 대한 침수, 1억분의 확률의 정전이 발생할 수도 있을 것이다. 이때 어느 것을 우선순위로 두어야할 것인가. 발생할 확률 * 위험이 터졌을 때 자산의 순 피해액을 계산해서 높은 것을 방어해야 할 것이다. 이 때 이 확률을 구하는 것이 매우 힘들다. 


 정책이 보이지 않는 중요한 변수가 나타날 수도 있다. 이것보다 더 상위의 디렉션을 원할 경우 보안 전략이 있을 수 있다. 예컨데 모바일 플랫폼이 급격히 확산되어 비용 대비 효율은 떨어지지만 모바일 앱에 대한 전수검사는 무조건 해야된다고 보자. 앱에 대한 결함이 있을 확률은 매우 낮지만 이것을 해야한다는 결정이 될려면 비용 대비 효율성보다 뛰어넘는 무언가가 있어야 한다. 이것이 바로 보안 정책이다. 이것을 매꾸어나가는 것이 전체적인 시큐리티이다. 


 오브젝트 단위 뿐만 아니라 전체적인 시각으로 보안을 바라보아야한다.