COMPUTER NETWORKING A Top-Down app 8th

[Network] 1-6. Networks Under Attack

patrick-star 2023. 6. 15. 22:25
728x90

네트워크 보안 분야는 bad guys들이 어떻게 컴퓨터 네트워크를 공격하고 그 공격에 어떻게 방어해야 하는지에 대해 배우고
더 나아가 처음부터 이러한 공격에 면역인 새로운 아키텍처를 설계하는 방법에 대해 다루고 있다.

이 책에서는 네트워크 보안 이슈를 앞에서 다뤄볼 것이다.

아직은 컴퓨터 네트워킹과 인터넷 프로토콜의 전문가가 아니기 때문에 여기서는 요즘에 잘 알려진 보안 관련 문제들을 살펴보면서 시작할 것이다.

간단한 질문에서 시작한다.

  • 무엇이 잘못될 수 있는가?
  • 컴퓨터 네트워크는 어떻게 취약한가?
  • 오늘날 더욱 흔해진 공격의 유형은 어떤 것인가?

Bad guys가 인터넷을 통해 내 호스트에 악성 SW를 설치할 수 있다.

우리는 인터넷으로 기기에 접속한다. 왜냐하면, 인터넷으로 부터 또는 인터넷에서 데이터를 받거나 송신하기 때문이다.

주고받는 데이터 중에서 malware(악성 SW)가 존재할 수 있다. 일단 malware가 기기를 감염시키면 모든 나쁜 짓들을 할 수 있다. (파일 지우기, 개인정보를 빼내는 스파이 웨어 설치하기)

이렇게 공격받은 호스트는 수천 개의 유사하게 공격받은 기기들의 네트워크에 가입될 수도 있다. 이러한 네트워크를 botnet이라 하고 bad guys들이 스팸 이메일 배포 또는 대상 호스트에 대한 분산 서비스 거부(DDoS) 공격을 위해 제어하고 활용한다.

오늘날 많은 malware는 자가 복제(self-replicating)를 한다. 일단 하나의 호스트를 감염시키면 그 호스트로 부터 인터넷을 통해 다른 호스트를 찾는 방식으로 복제한다. 이런 방식으로 엄청나게 빠르게 malware가 퍼져나간다.

Bad guys가 서버와 네트워크 인프라를 공격할 수 있다.

DoS(Denial-Of-Service) 공격 : 네트워크, 호스트, 도는 인프라의 다른 요소들을 기존의 정당한 사용자가 사용하지 못하도록 하는 공격. 웹 서버, 이메일 서버, DNS 서버 등이 DoS 공격의 표적이 될 수 있다.

전 세계에서 발생한 주요 DoS 공격을 시각화한 사이트

대부분의 DoS 공격은 3가지 카테고리로 나뉜다.

1) Vulnerability attack (약점 공격)

약점 공격은 대상 호스트에서 실행 중인 취약한 애플리케이션 또는 운영 체제에 몇 가지 정교하게 작성된 메시지를 전송하는 것을 포함한다. 만약 취약한 애플리케이션 또는 운영 체제로 올바른 패킷 시퀀스가 전송된다면, 서비스가 중지되거나 더 나쁜 경우 호스트가 충돌할 수 있다.

2) Bandwidth flooding :

공격자가 원하는 타겟에게 패킷을 엄청나게 많이 퍼부어준다. 그러면, 많은 패킷들이 타겟의 접속 링크가 막히면서 정상적인 패킷들이
서버에 도달하지 못하도록 한다.

3) Connection flooding :

공격자가 대상 호스트에서 많은 수의 반개방(half-open) 또는 완전히 개방된(open) TCP 연결을 설정한다.
호스트는 이러한 가짜 연결로 인해 지나치게 지연되어 정상적인 연결을 받아들이지 못할 수 있다.

이 중에서 bandwith flooding에 대해서 좀 더 자세히 살펴보자.
서버가 R bps의 접속 속도를 갖는다면 공격자는 피해를 끼치기 위해서 대략 R bps 속도로 트래픽을 전달할 것이다.

그런데 여기서 R 값이 굉장히 크다면, 공격 source 1개는 서버에 충분한 피해를 끼치지 못할 것이다.
게다가, 모든 트래픽이 단일 출처에서 발생하는 경우 상위 라우터는 공격을 감지하고 해당 출처로부터의 모든 트래픽을 서버에 가까워지기 전에 차단할 수 있다.

DDoS(Distributed DoS) 공격에서는 위 그림과 같이 공격자(attacker)여러 개의 source(zombie)를 조종해서 각각의 source가
타겟에게 많은 양의 트래픽을 보내도록 한다. 이렇게 되면, 전체 트래픽 속도가 R에 근접하게 되고 서비스를 마비시킨다.

DDoS 공격은 하나의 호스트에서 이뤄지지 않기 때문에 탐지하기도 어렵고 막기도 어렵다.

컴퓨터 네트워크에서 DoS 공격을 어떻게 방어할 수 있을까? 이에 대한 3가지 방법이 있는데 이후에 다루도록 하자.

The Bad Guys Can Sniff Packets

널리 퍼진 무선 인터넷 접속은 굉장히 편리하며 이동 사용자를 위한 멋진 새로운 응용 프로그램을 가능하게 한다.

하지만 이는 주요한 보안 취약성을 만들어냅니다. 무선 송신기 주변에 수동 수신기(passive receiver)를 배치함으로써, 전송되는 모든 패킷의 사본을 얻을 수 있다. 이 패킷들은 민강한 개인정보를 갖고 있는 패킷이다.

이렇게 모든 패킷의 사본을 저장하는 수동 수신기packet sniffer라고 한다.

Sniffer는 유선 환경에서도 배치될 수 있다.
유선 브로드캐스트 환경에서 packet sniffer은 LAN을 통해 전송되는 브로드캐스트 패킷의 복사본을 얻어낼 수 있다.
게다가, 기관의 액세스 라우터나 인터넷 액세스 링크에 접근 권한을 획득한 악의적인 사용자는 조직과 오고 가는 모든 패킷의 사본을 만드는 스니퍼를 설치할 수도 있을 것이다. 그렇게 복사된 패킷은 마찬가지로 민감한 정보를 갖고 있다.

Packet을 몰래 엿보는(sniff) SW는 무료로 이용할 수 있고 상품을 통해서도 이용할 수 있다. 대표적인 프로그램으로 WireShark가 있다.

패킷을 엿보는 프로그램(packet sniffer)는 패킷에 직접 침투하는게 아니라서 발견하기 굉장히 어렵다.
그래서 무선으로 패킷을 보낼 때 분명 다른 누군가가 나의 패킷을 복사해서 저장하고 있을 수 있다는 사실을 인지하고 있어야 한다.
패킷 엿보기에 대한 방법으로 암호화가 있는데 이에 대해서는 chatper 8에서 다룬다.

The Bad Guys Can Masquerade as Someone You Trust

cf) Masquerade : 위장하다

임의의 패킷을 만들어서 인터넷을 통해 전송하는 건 굉장히 쉽다. 그리고 그 패킷은 의무적으로 목적지까지 전달되어야 한다.

ex) 의심을 하지 않은 수신기(인터넷 라우터)가 있다고 하자.

그 수신기는 패킷을 받아서 (사실은 가짜지만) 출발지 주소를 믿고 패킷에 내장되어 있는 커맨드들을 수행한다고 하자.

이와 같이 가짜 출발지 주소를 갖고 있는 패킷이 침투하는 기술을 IP Spoofing이라고 한다.
물론 이런 방법은 다른 사용자로 위장할 수 있는 많은 방법 중 하나이다.

이 문제를 해결하려면 종단 인증(end-point authentication)이 필요하다.
이 방법은 우리가 생각하는 곳에서 메시지가 발신되었는지 확실히 확인할 수 있는 메커니즘이다. chapter 8에서 자세히 다루겠다.

정리

인터넷이 어떻게 안전하지 않게 되는지를 알게 되었다.
왜냐하면, 인터넷은 기본적으로 서로 믿을 수 있는 사용자끼리의 그룹이라는 모델을 기반으로 만들어졌기 때문이다. 이러한 모델에서는 보안이 필요 없다.

하지만, 오늘날의 인터넷은 서로 믿을 수 있는 사용자라는 단어를 포함시킬 수 없다. 그럼에도 불구하고, 사용자들은 통신해야 할 필요가 있다. 그래서 보안과 관련된 3가지 공격 유형 뿐만 아니라 man-in-the-middle attack, malware 등의 공격에 대한 대비책도 알아야 한다.

상호 신뢰하는 사용자들 간의 통신은 규칙보다는 예외라는 사실을 염두해야 한다.