네트워크 보안

보안 엔지니어 되기 - 2. 멀웨어(malware) 이해하기

ilovepython 2021. 11. 3. 13:31

멀웨어 (악성 소프트웨어) 식별하기
o Malware는 "Malicious Software"의 줄임말로 시스템에 피해를 줄수 있는 파일, 코드 또는 응용 프로그램을 의미한다.
o 멀웨어는 컴퓨터 사용자에게 유해한 모든 프로그램 또는 파일로 간주된다.
o 일반적으로 네트워크를 통해 전달되는 악성 소프트웨어는 감염, 탐색 및 도용을 기본으로 한다.
o 멀웨어는 공격자가 원하는 거의 모든 동작을 쉽게 수행할 수 있다.
o 멀웨어는 모든 유형의 악성 소프트웨어를 포함 할 수 있다.
o 악성 소프트웨어는 바이러스 (virus), 웜 (worm), 트로이 목마 (Trojans), 루트킷 (rootkits) 및 스파이웨어 (spyware) 등을 포함한다.

o 멀웨어는 애드웨어 (adware), scareware, 봇넷 (botnets), logic bombs, 키로거 (key loggers) 등도 포함한다.
o 많은 보안 분석 도구들은 패킷 캡처를 통해 네트워크 상에 활성화 되어 있는 멀웨어를 식별할 수 있다.
o Snort, NetFlow, IPS, Advanced Malware Protection, Cisco FirePOWER 등의 도구 등도 이와 같은 보안 분석 도구다.

 

자 그럼, 멀웨어 종류에 대해 조금 더 자세하게 알아보자.

 

주의: 바이러스가 다른 실행 프로그램에 기생하여 실행되는 데 반해 웜은 독자적으로 실행되며 다른 실행 프로그램이 필요하지 않다. 웜은 종종 컴퓨터의 파일 전송 기능을 착취하도록 설계된다. 컴퓨터 바이러스와 웜의 중요한 차이점은 바이러스는 스스로 전달할 수 없지만 웜은 가능하다는 점이다. (소스: https://ko.wikipedia.org/wiki/%EC%9B%9C)

 

바이러스 (Virus)

o 일반 응용 프로그램인 실행 파일에 첨부된 악성 코드 (malicious code). 사용자 또는 다른 프로그램이 실행을 해야한다.
o 바이러스를 활성화하려면 일종의 인간 또는 기타 응용 프로그램 상호 작용 (application interaction)이 필요하다.
o 바이러스의 전체 범주는 시스템 또는 데이터를 손상시키거나 파괴하도록 설계된다.

예) Mydoom, Sobig, Klez, ILOVEYOU, WannaCry, Zeus, Code Red 등

 

웜 (Worm)

o 웜은 자신을 복제하고 다른 시스템을 감염시키기 위해 확산되는 멀웨어.
o 웜은 컴퓨터 네트워크 상에서 자신을 복제하는 작은 프로그램이라고 생각하면 이해하기 쉽다.
o 웜은 사람이나 응용 프로그램의 상호 작용 없이도 시스템에서 시스템으로 이동할 수 있다.
o 웜이 실행되면 다시 복제하여 더 많은 시스템이나 컴퓨터를 감염시킬 수 있다.
o 웜은 사용자의 컴퓨터나 시스템 또는 컴퓨터 네트워크에 있는 파일과 데이터를 파괴한다.
o 웜은 일반적으로 운영 체제(OS) 파일을 대상으로 파일을 지우고 파괴한다.
o 웜은 일반적으로 컴퓨터 네트워크에 피해를 입히고 대역폭을 소모한다.

예) Morris Worm, ILOVEYOU, Nimda, Code Red, Melissa, MSBlast, Sobing, Storm Worm 등


애드웨어 (Adware)

o Adware는 Advertising-Supported Malware의 컴퓨터에서 사용되는 약자다.
o 애드웨어는 광고를 실행하여 해커에게 수익을 창출하는 방식으로 작동한다.
o 애드웨어(Advertising-Supported Malware)는 모든 유형의 광고 지원 소프트웨어를 의미한다.
o 애드웨어는 사용자의 컴퓨터에서 사용자의 의사와 상관없이 자동으로 광고를 재생, 표시 또는 다운로드한다.
o 소프트웨어가 설치되거나 응용 프로그램이 사용 중이면 애드웨어가 알아서 재생된다.

예) Fireball, Appearch, DollarRevenue, Gator, DeskAd 등

 

랜섬웨어 (Ransomware)

o 웜처럼 전파되지만 피해자의 하드 드라이브에 있는 개인 파일을 암호화하도록 설계된다.
o 랜섬웨어는 하드 드라이브와 시스템 또는 컴퓨터의 모든 파일을 암호화하여 작동한다.
o 랜섬웨어는 시스템의 특정 파일이나 모든 파일 또는 마스트 부트 레코드를 암호화할 수 있다.
o 랜섬웨어는 암호 해독 키를 제공하는 대가로 지불을 요구한다.
o 더 최근에는 많은 PC를 파괴하는 Ransomware 2017 WannaCry 공격이 시작되었다.
o 랜섬웨어는 기업 또는 개인에게 엄청난 피해를 입힌다.

예) Reveton, CryptoLocker, CryptoWall, Pyeta, Nyeta, Bad Rabbit 등

 

트로젼 (Trojans, Trojan Horse)

o 일반 응용 프로그램이나 프로그램처럼 보이지만 악성 프로그램으로 분류된다.
o 일반 미디어 파일 또는 컴퓨터 파일처럼 보인다.
o 트로젼에는 악성 페이로드가 포함되어 있으며 페이로드는 악의적인 행위를 하는 것을 돕는다.
o 페이로드는 공격자가 시스템에 무단으로 액세스할 수 있도록 하는 백도어를 제공한다.
o 한 가지 일을 하는 척하지만 실제로 로드되면 다른 악의적인 일을 수행한다.
o 몇 가지 트로이 목마 범주는 명령 쉘 트로이 목마, 그래픽 사용자 인터페이스(GUI) 트로이 목마 등의 형태로 실행된다.
o 원격 액세스 트로이 목마 (RAT - Remote Access Trojan)를 통해 공격자는 시스템 또는 PC를 완전히 제어할 수 있다.
o 이러한 유형의 트로이 목마 뒤에 있는 아이디어는 랜섬웨어라고도 하며 사용자 데이터를 숨기고 볼모로 삼아 금전적 이득을 취하기 위한 목적이 대부분이다.
o 보안 소프트웨어 비활성화 프로그램 트로이 목마는 바이러스 백신 또는 방화벽을 공격하고 죽이도록 설계된다.
o 서비스 거부(DoS), 이 트로이 목마는 DoS 서비스 거부를 유발하도록 설계되었다.
o 특정 서비스를 중단시키거나 전체 시스템을 오프라인으로 전환하도록 설계할 수도 있다.
o 위험하며 기밀성 (confidentiality), 무결성 (integrity) 및 가용성 (availability)의 손실을 초래한다.
o 가장 흔한 표적은 신용 카드 데이터 및 은행 정보다.

o 두번째로 흔한 표적은 사용자/시스템의 암호다.

o P2P 네트워크 및 The Pirate Bay와 같은 파일 공유 사이트는 일반적으로 모니터링되지 않는다.
o 그리고 트로이 목마가 합법이든 불법이든 침투하면 확산 될수 있는 활률이 높다.

o 인스턴트 메시징, 인터넷 릴레이 채팅, 이메일 첨부 파일 및 브라우저 확장 프로그램 등에서도 나타난다.

예1) HTTP/HTTPS 트로이 목마, 문서 트로이 목마, 변조 트로이 목마, 봇넷 트로이 목마, VNC 트로이 목마.

예2) 원격 액세스 트로이 목마, 데이터 숨김 트로이 목마, 뱅킹 트로이 목마, DoS 트로이 목마, FTP 트로이 목마.

예3) 소프트웨어 비활성화 트로이 목마 및 비밀 채널 트로이 목마는 트로이 목마 등.


스파이웨어 (Spyware)

o 스파이웨어는 컴퓨터 멀웨어의 한 종류이며 많이 사용되는 네트워크 용어다.
o 컴퓨터 사용자가 PC에서 수행하는 활동을 모니터링한다.
o 주요 목적은 PC 사용자의 개인 정보를 수집하는 것이다.
o 일반적으로 사용자가 프리웨어 소프트웨어를 인트넷에서 다운로드하면서 딸려서 들어온다.
o 스파이웨어는 트로이 목마 멀웨어와 유사한 또 다른 형태의 악성 코드다.

예)CoolWebSearch (CWS), Gator (GAIN), 180search Assistant, ISTbar/AUpdate, Internet Optimizer, BlazeFind, Hot as Hell 등

 

루트킷 (Rootkits)
o 루트킷은 멀웨어를 허용하도록 특별히 설계된 소프트웨어 모음을 의미한다.

o 루트킷이라는 용어는 "루트"와 "킷"이라는 두 단어의 조합에서 파생되었다.
o 루트킷은 시스템, 컴퓨터 또는 컴퓨터 네트워크에 정보를 수집한다.
o 사용자가 의심스러운 점을 눈치채지 못하도록 백그라운드에서 작동한다.
o 백그라운드의 루트킷은 여러 유형의 맬웨어가 시스템에 침투할 수 있도록 한다.
o 루트(root)는 Unix 및 Linux 운영 체제 등에서 관리자 계정을 의미한다.
o 키트(kit)는 위협 행위자가 무단 루트/관리자 액세스를 얻을 수 있는 프로그램을 의미한다.

루트킷 종류) Kernel-mode Rootkit, Bootkit, User-mode Rootkit, Virtual Rootkit, Firmware Rootkit 등

 

키로거 (Keyloggers)
o 키로거는 키스트로크 로거 소프트웨어 또는 하드웨어로 네트워크에서 사용되는 용어다.
o 키보드를 사용하여 입력한 모든 정보를 기록하는 소프트웨어가 키로거다.
o 키로거는 수집된 정보를 저장하고 공격자에게 보낸다.
o 공격자는 암호 또는 신용 카드 세부 정보와 같은 민감한 정보를 추출한다.

o 키로거, 피싱 및 사회 공학은 현재 사이버 사기에 사용되는 주요 방법이다.

예) Backdoor.Coreflood

키로거 종류) API-based, Form Grabbing-Based, Kernel-based, Hardware, Acoustic keyloggers

참조: https://softwarelab.org/what-is-a-keylogger/

 

스케어웨어 (Scareware)
o Scareware는 피해자를 속이도록 설계된 맬웨어 일종이다.
o 피해자를 속여 쓸모없는 소프트웨어를 구매하고 다운로드하도록 한다.
o 잠재적으로 위험한 소프트웨어를 다운로드하도록 피해자를 속인다.
o Windows 시스템 메시지와 유사한 팝업을 생성하는 Scareware가 많다.
o 일반적으로 바이러스 백신 또는 스파이웨어 방지 소프트웨어 또는 멀웨어를 의미한다.
o 일반적으로 방화벽 응용 프로그램이나 레지스트리 클리너를 팝업시키면서 동작한다.
o 사용자의 시스템에 감염된 파일과 문제가 많다는 메세지를 팝업으로 띄운다.
o 사용자에게 컴퓨터 또는 시스템 문제를 해결하기 위해 소프트웨어를 구입하라는 메시지를 표시한다.
예)SpySheriff, XPAntivirus/AntivirusXP, ErrorSafe, Antivirus360, Antivirus2009, PC Protector, Mac Defender, DriveCleaner, WinFixer, WinAntivirus, Spyware Protect 2019 등

 

논리 폭탄 (Logic Bomb)
o 논리 폭탄은 이벤트에 대한 응답으로 트리거되는 악성 코드다.
o 소프트웨어에 포함되어 있으며 애플리케이션 실행 또는 특정 날짜/시간에 도달했을 때 터진다.
o 공격자는 다양한 방법으로 논리 폭탄을 사용하여 데이터나 시스템을 파괴할 수 있다.
o 가짜 애플리케이션이나 트로이 목마에 임의의 코드를 삽입할 수도 있다.
o Logic Bomb은 사기 소프트웨어를 실행할 때마다 실행된다.
o 공격자는 스파이웨어와 논리 폭탄의 조합을 사용해 신원을 도용 할 수도 있다.

참조: https://en.wikipedia.org/wiki/Logic_bomb 

 

봇넷 (Botnet)

o botnet은 bot과 net의 두 단어로 구성된 합성어다.
o 따라서 Bot은 로봇의 약자이며 Net은 네트워크에서 나온 말이다.
o 악성코드를 작성하고 운영하는 사람이 모든 컴퓨터에 수동으로 로그온할 수는 없다. 대신 많은 시스템을 감염시켜 봇넷을 사용해 많은 수의 시스템을 관리합니다.
o 봇넷은 멀웨어를 네트워크 상에 있는 시스템을 감염시키는데 사용한다.
o 사이버 범죄자는 특수 트로이 목마 바이러스를 사용하여 여러 사용자 PC의 보안을 침해 할 수 있다.
o 사이버 범죄자는 각 컴퓨터를 제어하고 감염된 모든 PC를 관리한다.
o 사이버 범죄자는 감염된 모든 컴퓨터 봇을 원격으로 관리하고 구성한다.

예) EarthLink Spammer, Storm (2007), Cutwail (2007), Grum (2008), Kraken (2008), Mariposa (2008), Methbot (2016), Mirai (2016) 등

 

DoS(서비스 거부, Denial of Service) 공격
o DoS 공격은 서비스 요청이 많은 네트워크 서버에 대한 공격 유형이다.
o DoS 공격으로 인해 서버가 충돌하고 합법적인 사용자는 서비스를 거부당한다.
o DDoS는 (Distributed Denial of Service) Attack의 약자로 DoS 공격의 한 유형이다.
o 다른 지리적 지역의 많은 공격 컴퓨터에서 발생하는 DDoS.
o 좀비와 봇넷은 주로 DDoS(분산 서비스 거부) 공격에 사용된다.
o DoS 및 DDoS 공격 유형 모두 사용자가 서비스를 사용할 수 없게 만들 수 있다.

o 클라우드는 많은 사용자 및 조직이 공유하기 때문에 DoS 공격에 더 취약하다 말할 수 있다.
예) 죽음의 핑 (Ping of Death), 스머프 공격 (Smurf Attack), TCP SYN, CDP 플러드 (CDP Flood), 버퍼 오버플로 (Buffer Overflow), ICMP 플러드 (ICMP Flood) 등.

 

SQL 인젝션 (SQL injection)
o SQL 인젝션은 데이터베이스를 파괴할 수 있는 코드 주입 기술을 말한다.
o 액세스 권한을 얻기 위한 가장 일반적인 웹 해킹 기술 중 하나다.
o 웹 페이지 입력을 통해 SQL 문에 악성 코드를 배치하는 것을 목적으로 삼는다.
o 인젝션 공격으로 악성 SQL 문을 실행할 수 있다.
o 공격자는 SQL 주입 취약점을 사용하여 애플리케이션 보안 조치를 우회할 수 있다.
o SQL 주입(SQLi)은 데이터베이스의 레코드를 추가, 수정 및 삭제하는 데에도 사용된다.
o SQL 주입 공격은 취약한 클라우드 기반 애플리케이션을 악용하여 SQL 명령을 전달하도록 허용한다.

예) SQL Injection (SQLi), Bind SQL Injection

참조: https://www.acunetix.com/websitesecurity/sql-injection/

 

교차 사이트 스크립팅 (cross Site Scripting)
o XSS는 Cross-Site Scripting Errors의 약자로 일종의 코딩 오류다.
o 악의적인 당사자가 브라우저에서 소프트웨어 실행을 트리거할 수 있는 경우에 사용된다.
o 사이트 간 스크립팅은 웹 애플리케이션에서 발견되는 일종의 보안 취약점으로 볼 수 있다.
o XSS는 공격자가 다른 사용자가 보는 웹 페이지에 클라이언트 측 스크립트를 삽입한다.
o XSS 공격의 일반적인 목적은 세션 ID 또는 로그인 정보와 같은 쿠키 데이터를 수집하는 것이다.
o 클라우드 기반에 인증된 사용자로 액세스하기 위해 악용되는 쿠키를 훔치는 데 XSS를 사용한다.

예) Reflected XSS, Stored(Persistent) XSS 및 DOM 기반 XSS 등 세 가지 주요 범주로 나뉜다.

 

피싱 (phising)
o 피싱은 사용자 데이터나 정보를 훔치는 데 자주 사용되는 일종의 사회 공학적 공격입니다.
o 로그인 자격 증명 및 신용 카드 번호를 훔치는 사회 공학 공격입니다.
o 사기성 이메일 및 웹사이트를 사용하여 개인 정보를 수집하려는 방법입니다.
o 위장된 이메일을 무기로 사용하여 사용자 데이터나 정보를 훔치는 사이버 공격입니다.

예) The Fake Invoice Scam, Email Account Upgrade Scam, Advance-fee Scam, Google Docs Scam, PayPal Scam, Message From HR Scam, Dropbox Scam 등

참조: https://blog.usecure.io/the-most-common-examples-of-a-phishing-email

 

맨인더미들 (man in the middle)
o MITM(Man in the Middle)은 대화 중간에 껴 있는 사람을 의미한다.
o 메시지 가로채기(Man-in-The-Middle) 공격에서 공격자는 두 장치 사이에 자신을 배치한다.
o MITM은 두 장치 간의 통신을 가로채거나 수정하는데 사용된다.
o 공격을 통해 공격자는 비밀리에 통신을 가로챌 수 있다.
o 해커가 사용자와 앱 사이에 자신을 껴서 통신을 가로챈다.
o 공격자는 MITM 공격을 사용하는 다양한 이유와 방법을 가지고 있다.
o 신용 카드 번호 또는 사용자 로그인 자격 증명과 같은 것을 훔치는 데 사용된다.
o 두 디지털 시스템 간의 통신 가로채기를 포함.

예) ARP Cache Poisoning, DNS Cache Poisoning, HTTPS Spoofing, Wi-Fi Eavesdropping, Session Hijacking 등

참조: https://www.varonis.com/blog/man-in-the-middle-attack/

 

데이터 침해 (data breach)
o 데이터 유출에는 일반에 공개되어서는 안 되는 데이터가 포함될 수 있다.
o 여기에는 금융 정보, 개인 건강 정보 및 영업 비밀이 포함된다.
o 조직의 클라우드 기반 데이터 가치는 조직마다 다를 수 있다.
o 조직에서 인증 및 신원 관리가 제대로 이루어지지 않으면 데이터 유출이 발생한다.
o 기업은 모든 사용자의 직무 역할에 따라 데이터에 대한 액세스 권한을 적절하게 할당해야 한다.
o 일회용 비밀번호 및 전화 기반 인증은 2단계 인증 사용 추천.
o 자격 증명을 훔치는 것을 어렵게 만들어 클라우드 서비스를 보호해야된다.

o 개인 식별 정보 및 기타 지적 재산 침해 등.

예) Stolen Information, Ransomware, Password Guessing, Recording Key Strokes, Phishing, Malware or Virus, Distributed Denial-of-Service (DDoS) 등

 

다른 참조 사이트:

참조: 바이러스 및 랜섬웨어 예를 보여주는 사이트

https://geekprank.com/ 

참조: 시스코 What Is the Difference: Viruses, Worms, Trojans, and Bots? (번역본은 다음 포스트 참조) https://tools.cisco.com/security/center/resources/virus_differences