보안 관련 용어 알아보기 malware/virus/worm/DDos/sniffing/spoofing
1. 네트워크 통신 보안 용어
네트워크 통신에 있어서 보안은 굉장히 중요한 주제이기 때문에 보안을 철저히 신경써야 한다는 것은 누구나 아는 사실일 것이다. 요즘에는 공격에도 다양한 종류가 있어서 이에 대한 다양한 용어에 대해 알아볼 필요가 있다.
1) malware:
malware는 나쁜 공격을 총체적으로 이르는 말이다. 기기에 침투해서 기기를 감염시키고 하는 행위들을 malware라고 한다. mal은 접두사로 나쁘다는 뜻인데 그렇기 때문에 나쁜 것들을 지칭해서 이르는 말이다. 아래 설명하는 공격행위를 모두 포괄하는 넓은 단어라고 할 수 있다.
2) virus:
우리가 흔히 알고 있는 바이러스는 자가 복제 기능을 가진 malware 중에 대표적인 예시이다. 바이러스의 대표적인 특징은 user interaction이 있어야 실행된다는 것이다. 다시 말해 대상이 되는 device, program에 일단 침투가 되면 그 프로그램이 실행되어야 그것이 비로소 활성화되는 것이다. User interaction이 있어야 malfunction이 되는 것이다. 그 중에 하나의 예시로 이메일로 바이러스가 침투해있는 것을 들 수 있다. 그 경우 사용자가 이메일을 열어봤을 경우에 바이러스가 퍼지게 되는 것이다. 그런데 자가복제기능을 가지고 있기 때문에 첨부파일에 있던 악성코드가 활성화되어서 이메일 시스템에 온갖 receiver들에 대해 전부 자기를 복제해서 똑 같은 메일을 뿌리게 된다. 바이러스의 자기복제기능도 중요하지만 대상이 되는 파일이 실행될 때만 문제가 되는 것을 기억하는 것이 더 중요하다.
3) worm:
worm도 바이러스와 유사하지만 가장 큰 차이로는 user experience가 없어도 실행될 수 있다는 것이다. 네트워크에 연결되어있고 취약한 어플리케이션이 돌고 있으면 거기에 침투되어 스스로 실행될 수 있다.
4) spyware:
spyware은 이름 그대로 spy 적인 성격을 가지고 있다. 사용자가 모르게 들어와서 그 컴퓨터에 있는 주요정보를 수집해서 spyware를 침투시킨 해커에게 보고하는 성격이다. spy처럼 몰래 침투해서 주요 정보 keystroke 계속 분석하거나 비밀번호를 입력할 때 몰래 정보를 수집하는 식으로 이루어진다.
5) botnet:
인터넷에 연결되어 있으면서 해를 입은 여러 컴퓨터들의 집합을 지칭한다. 아래 DDos 공격에서 사용되는 용어이다. 즉 botnet은 하나의 컴퓨터가 아니라 여러 컴퓨터들의 집합이며, 이들은 모두 사이버범죄자가 악성 소프트웨어를 이용해 빼앗은 좀비 컴퓨터로 구성되어 있다. 쉽게 말해서 공격자가 주변의 많은 컴퓨터에게 악성코드를 심고 그것에 의해 감염된 컴퓨터의 집합체라고 이해하면 될 것 같다.
6) DDos: Distrubited denial-of-service
타겟을 하나 정하고 디도스 공격을 한다고 한다. 디도스 공격을 하기 전에 타겟 주변에 있는 많은 컴퓨터(호스트들)를 감염시켜놓는다. 이것들이 위에서 언급했던 botnet을 형성한다고 얘기하는 것이다. 그러면 감염된 Botnet의 각 컴퓨터들이 타겟으로 쓸데없는 패킷을 보낸다. 그러면 타겟 컴퓨터입장에서는 너무 많은 트래픽이 한꺼번에 들어오기 때문에 정상적인 서비스를 거부하고 못하는 것이다. 그래서 이것을 정상적인 서비스의 거부라고 해서, Denial of Service라고 하는 것이다. 이런 공격을 하는 것을 것을 여러 botnet을 통해서 하는 것이기 때문에 Distributed Dos 공격이라고 부른다.
7) Sniffing:
어떤 컴퓨터가 destination computer로 데이터를 보내게 되면 주변의 악성 공격자가 지나가고 있는 트래픽을 몰래 훔쳐보는 행위를 일컫는다. 이렇게 몰래 트래픽을 훔쳐보면서 민감한 정보들 (개인정보, 보안 비밀번호 등등)을 얻을 수 있는 것이다. 공유매체 사용하는 Ethernet이나 무선처럼 공중에 뿌리는 것( broadcast 매체)의 경우 정보를 공중에다가 뿌릴 수밖에 없는데 그러면 지나가는 모든 packet들은 몰래 들을 수 있다. 이렇기 때문에 sniffing이라는 행위가 발생하는 것이고 따라서 무선에서는 유선보다 보안이 어려운 것이 사실이다. 이러한 sniffing은 passive한 성격을 띄고 있기 때문에 더 감지하기도 어렵다. 그래서 이렇게 sniffing이 발생할 행위를 염두해 두고 암호화하여서 정보를 보내는 것이 필요할 때가 있다.
8) Spoofing:
예를 들어 컴퓨터 A와 컴퓨터 B와에는 신뢰관계가 구축되어 있어서 컴퓨터 B가 보낸 것이라면 컴퓨터 A는 검사를 하지 않는 상황이 있다고 가정해보자. 그런데 만약 악의적인 사용자 컴퓨터 C가 파일을 보내면서 자신이 아니라 source B가 보내는 것처럼 가장하면서 source B의 주소를 보내기도 한다. 이러면 컴퓨터 A는 컴퓨터 B로부터 온 줄 알고 추가 검사를 하지 않은 채로 파일을 받게 된다. 이런 식으로 spoofing이란 악의적인 사용자가 다른 사용자인척 가장하고 무엇인가를 보내는 상황을 지칭한다. 그래서 spoofing을 방지하기 위해서는 end-point authentication, 즉 정말 이 메세지가 거기로부터 온 것인지에 대한 검사를 철저히 해주어야 한다.