Network Security (1)

임정환·2023년 6월 7일
0

Internet Protocol & Denial of Service

BGP Security

인터넷은 네트워크들의 네트워크이다. 여기서, 네트워크들은 AS ( 같은 라우팅 정책안에 위치한 네트워크) 들의 모임이라고 생각해 볼 수 있다. 우리가 통신을 할때, 패킷들은 이런 AS들의 라우팅 정책에 따라서 목적지를 향해 가게 되는데 만일 악의적인 라우팅이 발생하게 되면 패킷은 영영 도착지에 가게 되지 못할수도 있다.

  • RPKI
    라우팅에 대한 증명서 발급을 통해 유효한 라우팅인지 검사할 수 있다.
    하지만, 악의적인 공격자가 중간에 위치하여 유효한 라우팅이지만 엉뚱한 곳을 라우팅하는 경우는 방지할 수 없다.

DNS Security

DomainNameServer란 우리가 브라우저에 www.naver.com을 입력하는 순간 브라우저는 DNS에 해당 도메인과 매핑된 IP 주소를 받아오게 된다. 만일 이때, 공격자가 자신이 만든 피싱 사이트의 IP 주소로 매핑을 바꿔놓거나 중간에서 패킷을 바꿔치기 한다면 우리는 전혀 엉뚱한 피싱 사이트에 접속하게 될 수 있다.

  • DNSSEC
    DNS 레코드에 대한 디지털 서명을 통해 신뢰할 수 있는 레코드인지 판별할 수 있다.
    하지만, 서명 검증에 대한 리소스가 많이 필요하기 때문에 이를 악이용 하여 DOS 공격을 실행할 수 있다.

  • DoH (DNS Over Https)
    암호화 프로토콜 TLS가 적용된 https 통신을 통해 DNS 패킷의 바꿔치기를 원천적으로 차단할 수 있다.

Packet Amplification ( 패킷 증폭 )

우리가 사용하는 TCP/IP 네트워크에서 TCP는 클라이언트와 서버 사이의 연결을 설정한 후 통신을 시작한다. 이 때, 연결
설정을 위해 3-way handshake를 하게 된다.

  • SYN flooding
    공격자가 서버에 TCP SYN 패킷을 무수히 많이 보낸다. 서버의 경우, SYN을 수신할 경우 TCP ACK,SYN을 재송신하고 ACK가 오길 기다린다. 만일, ACK가 오지 않을 경우 리소스가 낭비되게 되는점을 이용한 DOS 공격이다.
    SYN Cookie , TCP SYN/ACK를 송신할 때 State정보를 쿠키에 담아 송신하고 연결상황을 폐기하는 기법 , 을 통해
    flooding 공격을 방지할 수 있다.
  • Syn reflection
    공격자가 B가 송신한 패킷으로 위조하여 서버에 무수히 많은 syn을 송신한다. 이에 대한 ACK를 B가 수신하게 되고
    DOS 공격을 당하게 된다.

Malware

멀웨어 탐지 기법

  • 스캐너
    소프트웨어 특정한 비트 스트림이 존재할 경우 ( 악성 프로그램으로 알려진 ) 이를 멀웨어로 판단하는 방법이다.
    알려져 있는 멀웨어를 탐지할 수 있지만, 알려져 있지 않은 멀웨어는 탐지할 수 없다.
    • Polymorphic Malware
      악성 프로그램 작성자도, 이런 스캐너 기반의 멀웨어 탐지를 피하기 위한 방법을 발견했다. 바로 프로그램이
      복사되고 전파될 때 마다 암호화 Key를 변경해가면서 이진 파일을 암호화 시킨다. 하지만, 이 역시 결국은
      복호화 하는 코드가 존재하기에 이를 Scan하여 탐지가 가능하다.
    • Metamorphic Malware
      위의 폴리모르픽에서 한 단계 발전한 단계이다. 매 복사시마다, 자신을 디스어셈블 후 DeadCode나 JMP 등을 삽입하여 리어셈블한다. 이는 스캔 기반의 탐지로는 탐지가 불가능하다.
  • 변화 감지
    정상 파일에 대한 해시 체크섬을 저장한 후, 변화가 발생할 경우 이를 악성이라고 판단한다. 변화를 탐지하므로,
    악성코드가 존재하는 파일을 없다고 진단하는 경우는 없지만 파일은 계속 변화하기 때문에 악성코드가 없지만 있다고 오진단 하는 경우는 존재할 수 있다.
  • 이상 감지
    프로그램의 이상한 행동을 감지하는 방식이다. 제일 어려운 부분은, '과연 무엇이 이상 작동인가?'를 정의하는 부분이다.

방화벽

의심스러운 Packet을 필터링하는 기법이다. 정해진 표준 규약이 없고, Conceptual 하기 때문에 어떠한 계층에서 어떻게
구현할지는 전적으로 프로그래머의 몫이다. 구현 레이어에 따라 크게 3가지 방식이존재한다.

  • Packet filter ( 3계층)
    패킷의 헤더를 검사하여 필터링한다. 가장 빠르다. 하지만, NAT장비를 사용중일 경우 ip캐치가 어렵고 IP 스푸핑 또한 방지할 수 없다. 또한, TCP ACK Scan을 방지할 수 없다.

    위의 예시에서 볼 수 있듯이, TCP 프로토콜을 무시하고 바로 ACK를 보내게 되면 Packet filter는 연결의 State를 모르는 상태이므로 일단 통과시킨다. 만일 해당 포트가 작동중이라면, RST 패킷을 응답받고 이를 통해 포트 스캐닝을 할 수 있다. Packet filter에 State를 추가함으로서 해결할 수 있다.
  • Circuit Gateway ( 4계층 )
    패킷 필터보다는 느리지만, State가 추가되어 연결상태를 확인할 수 있으며 따라서 TCP Scan을 방지할 수 있다.
    Application Data를 볼 수 없다는 단점도 존재한다.
  • Application Proxy ( 5계층 )
    가장 느리다. 하지만, application에 대한 전체 패킷을 볼 수 있고 검사할 수 있다는 장점이 존재한다.

DMZ

민감한 내부 인트라넷을 인터넷에 연결하기 조금 싫을 수가 있다. 하지만 그러자니, 메일 서버 등 인터넷이 필요한 부분도 존재한다.

위와 같이 일종의 중립지역을 설정함으로서 인터넷과 통신하는 웹 서버, DNS 서버, Mail 서버 등을 DMZ에 위치할 수 있다.

Networkin Tools for Monitoring

IDS ( 침입 감지 시스템 )

만일 네트워크에 공격자가 침입했다면, 어떻게 감지할 수 있을까?

  • Misuse detection (오용 감지)
    정상적인 사용자의 행동을 모델링하여 의심스러운 활동이 감지되면 침입당했다고 판정한다. 예를 들어, '3일 연속 출금이 발생했다' 와 같은 행동이 발생하면 평소 사용자의 행동에 반하므로 침입으로 판정한다.
    모델링 한 것이 가장 좋은 예가 될 것이다.
  • Anomaly detection (이상 감지)
    사용자의 패턴이 모델링이 안될 경우 사용한다. 일정한, 임계점을 넘길 경우 침입당했다고 판정한다. 이 역시,
    과연 어디까지 이상 행동인가를 정의하기 어려운 문제점이 존재한다.
profile
CS 박제

0개의 댓글

관련 채용 정보