개발하는 프로 국밥러
article thumbnail

IT 엔지니어를 위한 네트워크 입문

고재성, 이상훈님의 책을 보며 정리한 내용입니다.

문제가 될 시 해당글 삭제하겠습니다.


보안의 개념과 정의

정보 보안의 정의

  • IT 에서 다루는 보안 : 다양한 위협으로부터 보안을 보호하는 것
  • 3대 보안 정의(보안의 필수요소)
    • 기밀성
      • 인가되지 않은 사용자에게 정보를 보지 못하도록 하는 것
    • 무결성
      • 정확하고 완전한 정보 유지에 필요한 모든 작업
      • 누군가 정보를 고의로 회손 했을 때, 그것을 파악해 정보가 전달되거나 유지되지 못하도록 하는 것
    • 가용성(권한!)
      • 정보가 필요할 때 접근을 허락하는 일련의 작업
      • 우리가 유지하는 정보에 대해서 온전한 상태를 유지하는 것이 정보 보안인데, 어떤 이유에서라도 인가 된 사용자가 정보를 사용할 수 없는 상황이라면 정보 보안에 실패한 것.

네트워크 정보 보안

  • 정보를 침해하는 행동을 기술적으로 방어 작업(1차 목표)
  • 송수신 과정에서 생기는 사고를 막기 위한 작업(2차 목표) → 패킷 노출 등 ..

네트워크 보안의 주요 개념

  • 네트워크 보안의 목표는 외부 네트워크로부터 내부 네트워크를 보호하는 것.
  • 기본적인 네트워크 보안 개념
    • Trust Network : 신뢰할 수 있는 네트워크
    • UnTrust Network : 신뢰할 수 없는 네트워크
    • DMZ(DeMilitarized Zone) : 우리가 운영하는 내부 네트워크이지만 신뢰할 수 없는 사용자에게 공개해야 하는 네트워크
      트러스트 네트워크와 언트러스트 네트워크의 중간 지점!
  • 트래픽의 방향과 용도에 따른 분류
    • 인터넷 시큐어 게이트웨이(Internet Secure GateWay)
      : 트러스트 or DMZ 네트워크에서 언트러스트 네트워크로의 통신을 통제 (1:다)
      • 인터넷에 수 많은 서비스가 있으므로 그에 대한 정보와 요청 패킷을 적절히 인식하고 필터링하는 기술이 필요하다.
      • 내부 사용자가 인터넷으로 통신할 때 보안을 제공, 통제하기 위해 사용
    • 데이터 센터 시큐어 게이트웨이(Data Center Secure Gateway)
       : 언트러스트 네트워크에서 트러스트 or DMZ 네트워크로의 통신을 통제 (다:1)
      • 상대적으로 고성능이 필요하고, 외부의 직접적인 공격을 막아야 하기 때문에, 인터넷 관련 정보보다 공격 관련 정보가 더 중요하다.
      • 외부 사용자 용 서비스를 만들어 외부에 공개할 때 필요한 보안 장비이다.

네트워크 보안 정책 수립에 따른 분류

  • 네트워크 보안 정책 수립에 따른 분류
    • 화이트리스트 : 방어에 문제가 없다고 명확히 판단되는 통신만 허용하는 방식
    • 블랙리스트 : 공격이라고 명확히 판단되거나, 문제가 있었던 IP 리스트나 패킷 리스트 기반으로 데이터베이스를 만들고 그 정보를 이용해 방어하는 방식
  • 대부분의 네트워크 장비는 화이트리스트, 블랙리스트 모두 사용할 수 있다.
  • 최근 보안 위협이 증가하며 화이트리스트 기반 정책이 많이 사용되고 있다.
    → 하지만 통신 정보를 상세히 알아야 하고, 세부적인 통제가 필요하기에 인력이 많이 들어간다.

네트워크 정보 보안의 발전 추세와 고려 사항

  • 네트워크 보안 장비는 외부와 내부로 나뉜다.
    • 외부 : 인프라스트럭처, 서비스 등의 대변화로 인해 보안이 발전해야 하는 경우
    • 내부 : 해킹 기술 발전에 대응하다 보니, 새로운 보안 장비와 서비스가 개발되어 발전하는 경우
  • 네트워크 보안 장비와 서비스를 이해하기 위해서 인프라스트럭처의 변화, 해킹 기법의 발전 모두 이해해야 한다.

⇒ 발전 추세와 트랜드를 모두 알아야 발전하는 해킹 기법에 발맞춰 보안을 강화할 수 있다!

방화벽

방화벽의 정의

  • 방화벽 : 네트워크 중간에 위치에 해당 장비를 통과하는 트래픽을 사전에 주어진 정책 조건에 맞추어 허용하거나 차단하는 장비
    • 네트워크에서 보안을 제공하는 장비를 넓은 의미에서 방화벽으로 볼 수 있지만,
    • 너무 많은 장비가 있고, 범주가 너무 넓다.
    • 일반적으로 방화벽은 네트워크 3,4 계층에서 동작하며 세션을 인지하는 상태 기반 엔진(SPI) 으로 동작.

초기 방화벽

  • 방화벽은 상태 기반 엔진(SPI) 을 가지고 있어야 한다. (하지만 초기부터 있었던 건 아니다)
  • 초기 방화벽에는 패킷의 인과 관계를 인지하지 못하고, 장비에 등록된 정책만으로 단순히 패킷을 필터링 했다.
    → 이런 초기 방화벽을 스테이트리스(Stateless), 패킷 필터(Packet Filter) 방화벽이라 불렀다.
  • 패킷이 장비에 들어오면, 해당 패킷이 방화벽에 설정된 정책과 일치하는 것이 있는지 확인한다.
    → 이때 참고하는 조건을 5-Tuple 이라고 한다.
    → 5-Touple 은 Source IP, Destination IP, Protocol No, Source Port, Destination Port 5가지 주요필드를 뜻한다.
    (IP, Protocol, Port)
  • 단점
    • 이러한 방식은 지정된 구간에서 단순한 정책을 정의할 때는 문제가 없지만, 인터넷 통신같이 불특정 다수 기반의 정책의 정의할 때는 룰셋이 복잡해지고 보안이 약화되는 문제점이 있다.
    • 통신은 대부분 양방향으로 이루어지는데 패킷 필터 엔진은 이런 양방향성을 인지하지 못하고 단순히 패킷이 정책에 맞는지 만 확인한다.
    • 또한, 패킷 단위의 필터링이기에 5-Tuple 외의 3,4 계층 헤더를 변조해 공격하면 적절한 방어가 불가능하다.
  • 장점
    • 다른 세대의 방화벽 엔진들보다 부하가 적고 간단히 동작한다. 이러한 장점 때문에, 네트워크 장비에서 사용되거나 현대적인 일부 방화벽에서 특수한 기능을 위해 남겨 놓는다.

현대 방화벽

  • 기존 패킷 필터 방화벽이 상태 값 없이 순수한 정책만으로 제어하던 한계를 극복하기 위해!! 개발된 것이
    상태 기반 방화벽(Stateful Inspection Firewall) 이다.
  • 현재 우리가 ‘방화벽’이라고 부르는 모든 장비는 세션 기반으로 동작하는 상태 기반(SPI) 엔진을 탑재하고 있다.
  • 내부 사용자가 외부 특정 웹페이지에 접속할 때 3 Way Handshake 를 거친 후 HTTP 요청과 응답을 거치게 되는데, 패킷 필터 방화벽에서 이런 트래픽을 처리하기 위해서는 방화벽 입장에서 모든 도착지 IP 를 열어놔야 하고, 웹사이트 입장에서 목적지 서비스 포트를 모두 열어 놔야 한다. (내부에서 외부 호출 시 랜덤 포트를 지정하기 때문,,)
  • 하지만 이런 정책은 보안상 매우 취약하다;;
    → 때문에, 패킷 상태를 인지해 패킷의 인과관계를 파악할 수 있는 상태 기반 SPI 엔진이 나오게 되었다.

방화벽 동작 방식

  • 방화벽이 패킷을 처리하는 순서
  1. 장비에 패킷이 들어오면 우선 세션 상태 테이블을 확인한다.
  2. 조건에 맞는 세션 정보가 테이블에 있을 때 포워딩 테이블(라우팅, ARP 포함) 을 확인한다.
  3. 조건에 맞는 세션 정보가 세션 테이블에 없을 때, 방화벽 정책을 확인한다.
  4. 방화벽 정책은 맨 위의 정책부터 확인해 최종 정책까지 확인 후 없을 때 암시적인 거부 규칙을 참고해 차단된다.
  5. 허용 규칙이 있으면 내용을 세션 테이블에 적어 넣는다.
  6. 포워딩 테이블을 확인한다.
  7. 조건에 맞는 정보가 포워딩 테이블에 있을 때, 적절한 인터페이스로 패킷을 포워딩한다.
  8. 조건에 맞는 정보가 포워딩 테이블에 없을 때, 패킷을 폐기한다.
  • SPI 엔진을 가진 방화벽은 세션 인지 기능이 있어 단순히 5-tuple condition 만 확인하는 것이 아니라, OSI 3,4 계층의 세부적인 필드도 함께 확인한다.
  • 세션을 추가로 인지하고, 세션 테이블에 저장하므로 세션을 로깅하기가 쉽다.
    → 대부분의 방화벽은 통신 전체의 세션을 로그로 저장할 수 있다.
    보안 사고 시 이런 세션 로그를 기반으로 어떤 통신에 문제가 있는지 확인할 수 있다.

방화벽의 한계
→ 공격, 방어 기술이 계속적으로 발전된다.

  • 상태 기반 방화벽 개발로 인해 많은 공격을 쉽게 방어할 수 있게 되었다.
    → 전문적인 지식으로 한정된 네트워크에서만 힘들게 유지해온 패킷 기반 방화벽과 달리 매우 간단한 정책만으로 방화벽을 유지할 수 있게 되었다.
  • 이를 공격하기 위한 해킹 방법도 발전되어 왔는데, 공격 목표가 계정 탈취에서 서비스 중단 쪽으로 바뀌고, DDoS 공격이 새로운 트렌드가 되었다.
  • 이후 취약점은 대부분 애플리케이션이나 애플리케이션 프로토콜에서 보유하고 있어서 애플리케이션 영역을 검사하지 못하는 방화벽으로써는 대응이 불가 했다.
  • 이런 취약점을 해결하기 위해 등장한 보안 장비가 IPS 이다.

IPS(Intrusion Prevention System),

IDS(Intrusion Detection System)

  • 방화벽은 네트워크 보안을 위해 기본적으로 구축해야 하는 필수 솔루션 이지만, 3,4 계층 방어만 가능하기에 애플리케이션 계층 방어는 할 수 없다.
  • 이러한 애플리케이션 계층 공격을 탐지 방어하기 위한 IPS, IDS 가 개발되었다.

IPS, IDS 정의

  • IDS : 침입 탐지 시스템
    → 공격자가 시스템을 해킹할 때 탐지 목적으로 개발된 시스템
    → 방어보다 탐지에 목적이 있다.
  • IPS : 침입 방지 시스템
    → 공격이 발견되면 직접 차단하는 능력을 갖춘 장비이다.
    → 트래픽이 지나가는 인라인 상에 장비를 배치해 이상 트래픽을 차단한다.

IPS, IDS 동작 방식

패턴 매치 방식

  • 기존 공격이나 취약점을 통해 공격 방식에 대한 데이터베이스를 습득하고 그 최신 내용을 유지하다가 공격을 파악하는 기술.
  • 이런 패턴 매치 방식이 IPS 에 대부분을 차지하기 때문에, IPS 는 많은 공격 데이터베이스를 보유해야 하고 최신 공격 방식을 공격 데이터베이스에 신속하게 반영하는 것이 중요하다.

어노말리 공격 방어

  • 패턴 매칭 기반 방어가 유효하려면 실제로 공격이 들어오기 전에 해당 공격에 대한 패턴 디비가 확보되어 있어야 한다.
  • 하지만, 이 방식은 극미한 변화만 생겨도 대처가 어려웠고, 인터넷상으로 빠르게 퍼져나가는 공격 턴을 적절한 타이밍에 막아내기가 어려웠다.
  • 초기 공격이 인터넷에 퍼져가는 시간이 한달이었다면, 알고리즘의 발전으로 4시간이면 인터넷에 퍼지게 되었다.
  • 이를 해결하기 위한 방법이 어노말리 방법으로, 분명한 공격으로 판단되지 않아도 특정 기준 이상의 행위를 이상하다고 판단하고 방어하게 된다.
  • 어노말리 방법은 두가지로 나뉜다.
    • 프로파일 어노말리
      • 프로파일 어노말리는 관리자가 정해 놓은 기준과 다른 행위가 일어나면 공격으로 판단한다.
      • 평소와 다른 행위에 초점을 맞춘다.
    • 프로토콜 어노말리
      • SPI 방화벽과 NAT 기능이 대중화되면서, 해커가 직접 일반 사용자의 PC 를 쉽게 공격할 수 없게 되었다.
      • 이를 해결하기 위해 해커들은 웹서버나 이메일에 악성 코드를 올려놓고 내부 사용자가 악성 코드를 사용하게 유도해 좀비 PC 를 만들었다.
        → 이 때 좀비 PC 는 정상적인 서비스 요청으로 보여 일반 방화벽에서는 탐지가 어렵다.
      • 이때 프로토콜 어노말리 기법의 IPS 가 사용된다.
      • 실제 해당 서비스 포트에서 동작하는 프로토콜이 아닌 다른 프로토콜을 사용하는 경우가 흔한데, 이를 인지해 적절히 패킷을 제어하는 기법을 프로토콜 어노말리 기법이라 한다.

IPS, IDS 한계와 극복(NGIPS)

  • IPS 는 근본적인 문제가 있는데, 네트워크 상에서 빠른 속도로 애플리케이션 레벨까지 확인하기 위해서 플로우 엔진을 사용해야 한다.
  • 플로 엔진은 패킷을 모아 데이터 형태로 변환해 검사하는 것이 아닌, 패킷이 흘러가는 상황을 모니터링 해 공격을 탐지함으로 IPS 장비를 비교적 쉽게 우회할 수 있다.
  • IPS 는 오탐이 많이 발생하므로 초기에 설치된 환경에 맞는 튜닝 작업을 오래 해주어야 하고 별도의 관제 인력과 장비를 모니터링하고 환경에 맞는 최적화 작업을 지속적으로 수행해야 한다는 문제점을 가지고 있다…
  • 최근 기존 IPS 기능을 향상 시켜 해당 문제를 해결한 NGIPS 개념의 장비가 출시되었다.

DDoS 방어 장비

  • 기존 공격은 직접 공격해 관리자 권한을 탈취하는데 초점이 맞추어져 있었다면, 방화벽 대중화 이후 공격은 정상적인 서비스가 불가능하도록 방해하는 데 초점이 맞추어져 있다.
    → 이 공격 방식은 DoS(Denial of Service) 공격이라고 한다.
  • 하지만 해커 단독으로 하나의 서비스를 불가능하게 만드는데는 제한이 많기 때문에, 다수의 공격자를 만들어 동시에 DoS 공격을 하는 분산형 DDoS 공격 방식으로 발전했다.
    → 이 공격 방식을 대처하기 위해서 DDoS 방어 장비가 발전했다.

DDoS 방어 장비 동작 방식

  • DDoS 공격을 탐지해 공격을 수행하는 IP 리스트를 넘겨주면 방어 장비나 ISP(Internet Service Provider) 내부에서 이 IP 를 버리는 것이 가장 흔한 DDoS 방어 기법이다.
  • DDoS 방어 장비의 주요 차단 방법인 프로파일링 기법
    • 평소 데이터 흐름을 습득해 일반적인 대역폭, 세션량, 초기 접속량, 프로토콜별 사용량 등을 저장한다.
    • 습득한 데이터와 일치하지 않는 과도한 트래픽이 발생한다면 알려주고 차단한다.
    • 습득한 데이터는 다양한 날짜와 다양한 요소를 모니터링 한다.
  • 보안 데이터베이스 기반으로 방어하는 것
    • IP 평판 데이터베이스를 공유해 DDoS 공격으로 사용된 IP 기반으로 방어 여부를 결정하거나 특정 공격 패턴을 방어하는 방법

볼류메트릭 공격

→ 가장 빈번한 DDoS 공격 타입

  • 볼류메트릭 공격은 회선 사용량이나 그 이상의 트래픽을 과도하게 발생시켜 해당 회선을 사용하지 못하도록 방해하는 공격이다.
  • DDoS 장비는 회선을 공급해주는 ISP 내부나 사용자 네트워크 최상단에 위치시켜서 이 공격을 완화시켜야한다.
  • 혼자 방어할 수 없는 공격도 많으므로 회선을 공급하는 ISP 와 공조해 방어할 필요가 있다.

좀비 PC 를 이용한 볼류메트릭 공격

  • 볼류메트릭 공격은 특정 시간, 특정 타깃을 공격하는 형태로 발생한다.
    → 해당 공격을 위해서 미리 악성 코드에 감염되어 해커가 컨트롤 할 수 있는 좀비 PC 를 많이 확보해야 한다.
  • 이런 볼류메트릭을 방어할 수 있는 DDoS 장비를 보유하는 것도 중요하지만, 혼자서는 대부분 관리가 불가능하다.
    ISP 를 통한 방어나, Cloud DDoS 솔루션( 최근 트랜드 ! )을 통해 서비스 네트워크로 트래픽이 직접 도달하지 못하도록 조치해야 한다.

VPN(Virtual Private Network)

  • 물리적으로 전용선이 아닌 공중망을 이용해 논리적으로 전용망처럼 망을 구성하는 기술이다.
    → 전용선에 비해서 비용절감!
    → 논리적으로 직접 연결된 것 같은 통로를 터널(Tunnel) 이라고 하며 VPN 을 이용하면 터널을 이용해 직접 연결한 것처럼 동작한다.
  • VPN 은 인터넷과 같은 공중망을 전용선과 같은 사설망처럼 사용하기 위해 도입하므로 강력한 보안을 제공해야 한다!

VPN 동작 방식

  • VPN 은 가상 네트워크를 만들어주는 장비로 터널링 기법을 사용한다.
    터널링 기법 : 패킷을 터널링 프로토콜로 감싸 통신하는 기법.
  • 일반적으로 VPN 이라 부르는 프로토콜은 터널링에 보안을 위한 다양한 기술이 포함되어 있다.
    VPN 프로토콜 = 터널링 프로토콜 + 보안기술
    → 패킷을 암호화, 인증, 무결성 체크하는 보안 기능을 이용해 인터넷이 노출되어도 해커나 기관이 감청하지 못하도록 보호할 수 있다. (IPSEC, SSL)
  • VPN 구현 3가지 방식
    • Host to Host 방식
      • 두 호스트 간 직접 VPN 터널을 연동하는 기법
    • Network to Network 방식
      • 가장 일반적인 방법
      • 두 종단 네트워크를 연결하는 방법으로 IPSEC 프로토콜 스택이 가장 많이 사용됨.
    • Host 가 Network 로 접근할 때 보호
      • 모바일 사용자가 일반 인터넷망을 통해 사내망으로 연결하는 경우이며, IPSEC 과 SSL 프로토콜이 범용적으로 사용된다.
profile

개발하는 프로 국밥러

@gugbab2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!