-Virus(바이러스)
정상적인 파일이나 부트 섹터를 감염시켜 악의적인 행동을 하는 것. 주로 저장 매체를 통해 감염된다고 한다.
예를들어 프로그램에 흔히 사용되는 dll 파일을 감염시키거나 운영체제 process 등의 파일을 수정해 복제해버릴 수도 있다. 감염시키기 위해서는 감염시킬 파일들을 수정해야 하므로 파일을 읽고 쓰는 api들이 많이 사용될 것 같다.
-Warm(웜)
그 유명한 모리스 웜 악성코드가 해당되는 악성코드 유형이다.
바이러스와 비슷하게 자기 자신을 복제를 하지만 그 대상이 다른 컴퓨터라는 점의 차이가 있다. 이메일, p2p 사이트 등 인터넷이나 네트워크를 통해 확산을하며, 사용자가 이메일이나 p2p에서 해당 악성 파일을 다운 받는다면, 시스템에 해당 악성코드가 설치되고 이 악성코드는 또 다른 컴퓨터로 확산해 나간다.
마치 질병, 바이러스 감염을 보는 것 같다. (1명의 숙주가 2명을 감염시키고, 이 2명은 4명을 감염시키고, 이 4명은...)
-Trojan House(트로이 목마)
이름이 그리스 로마 신화에 나오는 트로이 목마에서 유래한 유형의 악성코드로 밖으로 드러난 목적과 다르게 동작하거나, 시스템 안에 잠복해 있다가 특정 조건이 성립하면 악성 행위를 시작한다.
백도어 기능을 가지고 있기도 하며, warm, virus처럼 복제, 확산 등 자기 복제는 하지 않는 것 같다.
Ahnlab V3, 알약 등을 통해 악성코드가 감지됐을 때 가장 많이 보이는 유형이다. 진단 악성코드명이 Trojan으로 많이 시작된다.
-Backdoor(백도어)
공격자의 접근을 허용할 목적으로 컴퓨터에 자기 자신을 설치하는 악성코드. 이 백도어를 서버에 심어둔다면 매번 권한 상승을 할 필요 없이 무인증으로 높은 권한을 가지게 된다.
정말 간단한 예로 시스템 내의 취약점을 이용해 root 권한을 얻고, root 권한으로(setuid) /bin/sh를 실행시켜주는 프로그램을 빌드해 숨겨두는 방법이 있다. 이렇다면 언제든지 서버에 접속해 인증 없이 root 권한을 얻을 수 있다.
성(시스템)에 절차 없이(인증 없이) 들어갈 수 있는 뒷문을(backdoor) 만든다라고 비유하면 될 것 같다.
-Botnet(봇넷)
동일한 악성코드에 감염되어, 공격자의 C&C(명령 제어 서버)의 명령에 따라 일괄적으로 동작하게 만드는 악성코드다.
흔히 DDoS 공격에 사용되는 봇넷 네트워크를 구축하는데 쓰이는 것이 봇넷 악성코드다.
-Downloader(다운로더)
다른 악성코드를 다운로드할 목적만으로 사용되는 악성코드. 이 유형의 악성코드가 실행되면 단순히 외부 서버에서 실질적으로 악성행위를 수행할 악성코드를 다운해주는 역할을 하는 것 같다.
인터넷, 서버, 다운로드 관련 api가 쓰일 것 같다.
-Dropper(드로퍼)
이 악성코드는 악성행위를 수행할 파일을 자기 자신 안에 숨겨두고, 해당 프로그램이 실행됐을 때 숨겨둔 악성 파일을 시스템에 설치하고 실행시킨다.
이 악성코드를 분석할 때는 Resource Hacker 같은 프로그램을 이용해서 숨겨져 있는 파일을 추출해 분석하면 될 것 같다.
-Rootkit(루트킷)
최고 관리자를 의미하는 단어 root와 kit를 합친 말로 백도어와 비슷하게 root 권한으로 접속해서 악성행위를 할 수 있게 해주는 소프트웨어의 집합을 의미하다. 또한 자기 자신의 존재를 은닉시키도록 설계됐기 때문에 피해자는 이 rootkit을 쉽게 탐지할 수 없으며, 이를 이용해 공격자의 접속 정보나 로그 등을 지워 타겟이 공격당하고 있음을 눈치채지 못하게 하기도 한다.
-Spyware(스파이웨어)
Spy + Software의 합성어로 마치 스파이처럼 피해자의 컴퓨터에서 정보를 수집해 공격자한테 전달해주는 것이다. 공격자는 이 정보를 사용자의 동의 없이 유출하거나 판매할 수도 있다. 키로거, 스니퍼, 패스워드 해시 수집기 등이 여기에 해당된다.
이 악성코드는 어떤 프로그램을 설치할 때 동의서에 표시되어 설치되기도 하고, 설치 마법사에서 "귀하의 배터리 성능을 향상 시켜줄 OO 소프트웨어도 같이 설치하겠습니까?" 같은 문구와 함께 체크박스에 체크가 되어 있어 아무 생각 없이 계속만 누르다가는 악성코드가 설치되기도 한다.
어떤 프로그램을 설치할 때는 꼭 조심하자. 계속 버튼만 눌렀다가는 우리의 정보가 노출될 수도 있다..
위는 3DP Chip이라는 PC 드라이버 등을 찾아서 편리하게 설치하게 해주는 툴인데, 보면 설치 과정에서 이 소프트웨어와 전혀 관련 없는 Avast Free Antivirus를 설치할 것이냐고 묻고 있다. 이 Avast Free Antivirus가 악성행위를 하는지는 잘 모르겠으나 어쨌든 여기서 아무 생각없이 수락을 눌렀다가는 악성행위를 할 수도 있는 알 수 없는 프로그램이 컴퓨터에 설치될 수 있는 것이다.
구글링을 해본다면 이 Avast Free Antivirus가 설치된 많은 사용자들은 이게 왜 깔려 있는지를 모르고 있는 것을 볼 수 있다. 아마 위와 같은 방법으로 설치됐을 것이다.
혹시 모르니 확실하게 하고 넘어가겠다. 나는 Avast Free Antivirus가 악성코드라고 얘기하는 것이 아니다. 위에서 적은 "OO 소프트웨어도 같이 설치하시겠습니까?"의 예시를 목적으로 작성한 것이며, 사용자가 설치하려는 프로그램과 전혀 관련 없지만 설치하게끔 유도하는 것을 지적하는 것이다. 절대 Avast Free Antivirus가 악성코드라고 얘기한 것이 아니다!!
-Adware(애드웨어)
지금까지 내가 살면서 가장 흔하게 본 악성코드 유형이다. 스파이웨어(spyware)와 유사하게 어떤 소프트웨어를 설치 시에 같이 추가로 설치되기도 한다. 이 악성코드는 광고 노출만을 목적으로 한다.
나 역시 어렸던 시절 멋도 모르고 친구 따라 인터넷에서 파일들을 다운받다가 여러 번 걸려본 적이 있는데, 진짜 화가 날정도로 광고들을 뱉어 된다;; 인터넷을 여는 순간 11번X, G마X, 쿠X 등등의 홈페이지가 여러 개 띄워지고 중간중간 팝업으로 오른쪽 아래에서 등장하는 등 굉장히 짜증나는 악성코드다.
-Scareware(스케어웨어)
이름 그대로 사용자를 겁주는 악성코드로, 보통 실질적인 악성 행위를 하진 않지만 사용자를 겁줘 공격자가 원하는 행위를 수행하도록 한다.
예를들어 "귀하의 컴퓨터(스마트폰)가 악성코드에 감염됐습니다. 이 「백신」을 다운받아 악성코드를 제거하세요!" 같은 문구를 띄워 사용자를 겁먹게 한 다음 유료 백신을 구매하도록 하는 것이다. (이 유료 백신은 단순히 이 스케어웨어를 제거해주고 끝난다.)
이 악성코드는 인터페이스가 눈에 보여야지 효과적이기 때문에 주로 gui일 것이다.
-참고 링크
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=aepkoreanet&logNo=221537036949
-참고 서적
실전 악성코드와 멀웨어 분석
파이썬으로 배우는 Anti-Virus의 구조와 원리
'Old (2021.01 ~ 2021.12) > Malware' 카테고리의 다른 글
Lab01-01.exe / Lab01-01.dll (0) | 2021.07.27 |
---|---|
악성코드 분석에 참고할만한 Dll, API 정리 (0) | 2021.07.27 |