이번 글에서는 네트워크 보안에 대해 간단하게 정리하고자 한다.
원래 인터넷은 미국의 군사용 네트워크로 만들어졌다.
군 내부적으로 데이터를 주고받기 위해 만들어졌다보니, 당연히 군 내부에서 폐쇄적으로 사용이 되었기에 처음에는 보안에 관심이 없었다. (서로 알고있는 군 관계자끼리 데이터를 주고 받았기 때문이다)
하지만 인터넷이 밖으로 나와 상업적 목적에 의해 세계적으로 보급되기 시작하면서 보안 문제가 대두되기 시작했다.
인터넷이라는 인프라를 통해 흐르는 데이터를 임의로 조작하거나, 데이터의 흐름을 통제하여 이익을 얻고자 하는 사람들이 등장했다.
따라서 이 문제를 해결하기 위해 보안 솔루션이 등장하기 시작했다.
초기 인터넷은 보안 개념을 고려하여 설계되지 않았기 때문에, 이후에 나온 보안 개념은 이 인터넷의 기존 프로토콜 위에 추가적으로 올리는 형식으로 만들 수 밖에 없었다. (별로 보안적으로 좋은 관점은 아니다)
그래서 인터넷 프로토콜의 모든 계층에서 보안 이슈가 발생할 수 밖에 없다.
이 글에서는 어떻게 인터넷을 공격하는지, 또 어떻게 방어하는지 몇가지 개념을 정리한다.
공격 방법
Packet Sniffing
sniffing(스니핑)은 '엿본다' 라는 의미이다.
따라서 말 그대로 인터넷이라는 통로를 오가는 패킷 데이터를 공격자가 몰래 훔쳐본다는 뜻이다.
우리가 현재 사용하고 있는 인터넷은 switched internet 이라고 해서 목적지를 지정해서 해당 목적지에만 데이터를 보내는 방식을 사용하고 있다.
하지만 wireless 인터넷이나 shared Ethernet은 목적지가 정해져있지 않아, 네트워크에 있는 모든 사용자에게 broadcast 방식으로 데이터를 보내기도 한다. (이런 종류를 broadcast media 라고 한다.)
브로트 캐스트는 말 그대로 네트워크 안에 있는 모두에게 데이터를 보내기 때문에 이 네트워크 안에 들어만 온다면 누군가가 보낸 데이터를 자신도 받아서 훔쳐볼 수 있다. (비밀번호같은 민감한 데이터도 볼 수 있다..)
wireshark 라는 무료 프로그램을 사용해서 패킷 내용을 들여다볼 수 있다.
Fake Identity (IP Spoofing)
두번째 공격 방식은 IP Spoofing 이다. spoofing 이라는 단어는 '조작' 한다는 의미이다.
말 그대로 IP 를 조작해서 이 데이터를 다른 컴퓨터가 보낸 데이터인 것처럼 속이는 행위를 말한다.
DoS (Denial of Service)
최근 롤 대회에서 유행했던 그 사고와 관련된 보안용어다.
이름 그대로 '서비스 거부 공격' 이라고 한다.
제일 유명한 유형은 DDos (Distributed Denial of Service) 분산 DoS 공격이다.
말 그대로 공격자가 이곳 저곳에 분산되어 있다는 뜻이다.
이 공격은 서비스를 제공하는 서버 컴퓨터에 압도적으로 많은 수의 요청을 보내 정상적으로 서비스를 이용하려는 사용자가 서비스를 제대로 제공받을 수 없도록 막는 공격이다.
이때 많은 수의 요청을 컴퓨터 하나에서 보내기는 쉽지 않아 Bot 이라고 부르는 (한국에선 좀비 PC 라고 함) 악성코드에 감염시킨 컴퓨터를 특정 시점에 일제히 같은 서버에 요청을 보내도록 시켜서 공격한다.
일제히 같은 동작을 하도록 시키려면 모든 Bot 들이 같은 네트워크로 연결되어있어야 하는데, 이를 botnet 이라고 부른다.
방어 방법
위와 같은 공격들은 아래와 같은 방법으로 방어할 수 있다.
authentication (인증)
자기 자신이 누구인지 인증한 상태로 데이터를 주고 받는 것이다.
우리가 흔히 어떤 서비스에 ID/PW로 로그인하는 것이 인증의 일종이다.
사실 핸드폰에 꽂는 USIM 도 Universal Subscriber Identity Module 의 약자로서 기능이 제한된 작은 컴퓨터의 일종이다.
이 컴퓨터는 핸드폰을 사용하는 사용자의 이동통신망 가입정보를 저장하고 있다.
따라서 이 심을 사용해 사용자를 식별할 수도 있다.
confidentiality (기밀성)
내용을 말 그대로 숨긴다는 뜻이다.
대표적인 방법은 암호화하여 내용을 제 3자가 알아볼 수 없게 만드는 것이다.
integrity check (무결성 확인)
무결성은 지금 보내는 데이터가 훼손되거나 조작되지 않았다는 것을 확인하는 방법이다.
대표적인 방법은 디지털 서명이다.
해시함수를 사용해서 지금 보내는 데이터에 어떤 해싱을 했을 때 같은 값이 나오는지 확인해서 훼손/조작 여부를 확인한다.
access restrictions (접근 제한)
어떤 사이트 서버에 접근을 할 때, 고객으로써 접근하는 것과 사이트 관리자로써 접근할 때 할 수 있는 행위의 범위는 당연히 다를 것이다.
이렇게 특별한 권한이 있어야만 접근할 수 있도록 제한하는 것을 접근 제한이라고 한다.
대표적인 예시는 패스워드로 막혀있는 VPN이다.
VPN은 가상 사설 네트워크를 의미한다.
인터넷이 누구나 접근 가능한 공공망이라면, 사설망은 회사 내부 사람들만 접근할 수 있도록 제한하는 방식으로 특정한 사람들만 접근할 수 있게 제한한 네트워크를 의미한다.
이때 특정한 사람을 식별하기 위해 암호화 기술을 사용하여 사용자를 인증한다.
firewalls (방화벽)
외부에서 유해한 목적을 가지고 들어오는 트래픽을 자동으로 차단하는 시스템을 말한다.
외부에서 해킹을 시도하는 중국 IP나 우회 IP등을 차단하는 것도 방화벽이 담당한다.
'CS > 컴퓨터 네트워크' 카테고리의 다른 글
[컴퓨터 네트워크] 8. Application Layer (1) : 어플리케이션 계층 개요 (0) | 2024.04.11 |
---|---|
[컴퓨터 네트워크] 7. Protocol layers (0) | 2024.04.10 |
[컴퓨터 네트워크] 5. Performance (loss, delay, throughput) (0) | 2024.04.05 |
[컴퓨터 네트워크] 4. Network Core : Internet Structure (0) | 2024.03.20 |
[컴퓨터 네트워크] 3. Network Core : Packet Switching (0) | 2024.03.15 |