이번 시간에는 악성코드에 관하여 알아보는 시간이 되겠습니다.
과제 발표에 사용한 ppt 파일을 첨부하겠습니다. 현재 진행하고 있는 과제는 AI 스쿨의 리팩토링 보안직무 과정의 일부입니다. 만약 해당 과정에 더 관심이 있으시다면 AI스쿨의 공식 카페에 방문하여 더많은 정보를 확인해 주시기 바랍니다.
https://cafe.naver.com/itscholar
1. 악성코드란 무엇인가?
악성코드란, 정상적인 목적으로 만들어진 코드가 아니라 사용자에게 피해를 입힐 목적으로 작성된 모든 코드들을 통칭하는 것입니다. 이렇게 악의적인 목적으로 작성된 코드에 장비가 노출된다면 장비 사용에 여러가지 지장이 발생할 수 있기 때문에 악성 코드를 사전에 방지, 탐지, 격리 제거하는 일이 아주 중요하다고 볼 수 있습니다.
영어로는 Malicious Code 아니면 Malware라고 불리는데 여기서 Malicious Code 같은 경우 "악성 코드"라는 의미에 가장 부합하는 단어이지만 실제로는 Malware라는 단어가 더 많이 사용됩니다.
2. 악성코드의 탐지.
악성코드를 격리하거나 제거하기 위해서는 악성코드를 탐지하는 일이 선행되어야 합니다. 우리가 컴퓨터에서 흔히 사용하는 백신, 안티바이러스와 같은 프로그램들이 이 기능을 수행합니다. 이러한 프로그램들은 악성 코드를 감지하기 위한 모형을 내장하고 있는데, 이런 모형들이 악성 코드를 오탐하거나 미탐하는 일은 문제가 될 가능성이 매우 높기 때문에 정확한 탐지를 하는 것이 항상 중요합니다.
- Confusion Matrix(정오분류표)
[이미지 1]
정오분류표는 악성코드를 탐지하는 모형의 정확도, 정밀도, 민감도, 특이도 등을 평가하기 위한 도표를 말합니다. 이 도표 상에는 모형이 악성코드를 정상적으로 탐지하는 정탐, 정상적인 파일을 악성코드로 분류하는 오탐, 악성코드를 정상적인 파일로 감지라는 미탐 등이 존재합니다. 이런 각각의 경우를 True/False , Positive/Negative라는 두가지 잣대로 총 네가지의 경우를 분류합니다. 여기서 True/False는 실제 값과 모형의 판단이 일치하는지, Positive/Negative는 악성코드가 존재하는지에 대한 판단입니다. Positive/Negative같은 경우 약간 헷깔릴 수 있지만 누군가 코로나 검사에서 양성이 나온 경우 코로나에 걸린 것이라는 사실을 참조하신다면 이해가 쉬울 것 입니다.
- 정탐
정상탐지입니다. 악성코드를 악성코드라고 분류하고, 정상 파일을 정상 파일로 분류하여 악성코드는 격리/제거되고 정상파일은 정상적으로 사용할 수 있는 상황입니다. 여기서 TN(True Negative)은 모형이 정상 파일을 정상 파일로 감지하여 파일이 사용 가능한 상태를 말하고, TP(True Positive)는 모형이 악성 코드를 악성 코드로 감지하고 격리 혹은 제거를 한 상태를 말합니다.
- 오탐
오탐은 일명 과밍탐지입니다. 모형이 정상적인 파일을 악성코드라 여기고 격리 혹은 제거한 상태를 말합니다. 정오분류표 상에서는 FP(False Positive)가 여기에 해당합니다. 오탐의 경우 미탐보다 사고가 발생할 가능성이 낮다고 여겨지지만 오탐 역시 거대한 보안 사고로 이어질 수 있습니다. 2022년 8월에 발생했던 알약 오진 사태가 바로 그것입니다. 얄약이 정상적인 윈도우 OS 시스템 파일을 악성코드라고 진단하고 해당 파일들을 격리하는 일이 발생했는데, 이로 인해서 컴퓨터의 부팅 불능 사태를 야기한 적이 있습니다.
- 미탐
미탐은 탐지 실패입니다. 모형이 악성코드를 정상적인 파일로 감지해서 악성 코드가 컴퓨터 시스템 내부를 자유롭게 활보하는 상태입니다. 정오분류표 상에서는 FN(False Negative)가 여기에 해당합니다. 정보 보안에서는 최악의 상황입니다. 하지만 악성코드 제작 기술이 지속적으로 발달하고 있기에 필연적으로 발생할 수 밖에 없는 상태이기도 합니다.
3. 악성코드의 종류.
전통적으로 악성코드는 컴퓨터 바이러스, 트로이 목마, 웜 이라는 3분류로 설명할 수 있었습니다. 하지만 악성코드 제작 기술의 발달로 위의 분류체계가 상당히 유명무실해졌습니다. 그렇기에 위의 세가지 기준에 더해 새로 발생한 여러 악성코드 유형을 설명하도록 하겠습니다.
- 컴퓨터 바이러스.
컴퓨터 바이러스는 마치 현실에 존재하는 바이러스가 다른 세포를 감염시키는 방식으로 살아가듯이, 컴퓨터 내부에 존재하는 파일들을 감염시켜 자기 복제를 하는 식으로 작동하는 악성코드입니다. 2000년대 초반에 활동하던 I LOVE YOU 바이러스를 대표적인 예시로 들 수 있습니다. I LOVE YOU 바이러스는 피해자가 I LOVE YOU라는 이름이 적힌 메일을 연다면, 피해자 컴퓨터의 파일을 감염시켜 파일의 내용물을 I LOVE YOU로 바꾸어 버리는 식으로 작동했습니다. 이렇게 감염된 파일은 내용이 바닥부터 변조되어 복구할 수 없고 삭제할 수 밖에 없는 상태가 됩니다.
컴퓨터 바이러스는 작동한다면 피해자들에게 커다란 피해를 안겨주지만 최근에는 안티바이러스, 백신 프로그램들이 발전하여 순순한 형태의 컴퓨터 바이러스는 찾아보기 어렵게 되었습니다.
- 트로이 목마
트로이 목마는 트로이 전쟁에서 나온 목마 이야기에서 개념을 따온 악성코드입니다. 겉으로는 정상적인 파일인 것처럼 행동하지만, 실제로는 악성 코드를 함유하고 있어 컴퓨터에 악영향을 미치는 계열의 악성 코드입니다. 프로그램 개발자가 개발 단계에서부터 악성코드를 포함시켜 배포하는 경우와 상용 프로그램의 크랙 버전에 악성코드를 잠복시키는 방법, 아니면 아예 상용프로그램을 사칭하는 방식으로 만들어진 트로이 목마가 존재합니다.
- 웜
웜은 바이러스와 유사하게 다른 컴퓨터를 감염시키기 위해서 자가복제를 하는 악성코드입니다. 웜은 컴퓨터 바이러스와 비슷하게 자가복제를 한다는 특징이 있지만 차이점이 존재합니다. 웜은 스탠드얼론 소프트웨어로 자가복제에 다른 파일이 필요하지 않습니다. 원의 자가 복제는 감염시킨 컴퓨터와 연결된 네트워크를 통해서 다른 컴퓨터를 감염시키는 방식으로 나타납니다. 이를 위해서 컴퓨터가 아닌 네트워크상에 상주하는 형태의 웜도 존재합니다.
웜은 그 특징들 때문에 전통적인 3분류 방식의 악성코드 중에서도 원형을 간직하고 있는 악성코드입니다.
- 스파이웨어
스파이웨어란 스파이처럼 사용자의 컴퓨터 내부에 숨어 사용자의 정보를 다른 곳에 보내는 악성코드를 의미합니다. 스파이웨어는 사용자의 컴퓨터에 몰래 설치된 후, 컴퓨터 내부에 저장된 파일 정보, 웹캠, 컴퓨터 사용 패턴, 비밀번호, 개인정보등을 수집하여 다른곳에 보내게 됩니다.
- 백도어
백도어는 프로그램 개발 중에 의도적으로 만들어진 보안 허점입니다. 백도어가 존재하는 프로그램은 이 백도어를 통한 공격에 치명적인 피해를 입을 수 있기 때문에 백도어를 감지하고 제거하는 일은 아주 중요하다고 할 수 있습니다.
- 루트킷
루트킷은 피해자 컴퓨터의 루트 권한(최고 관리자 권한)을 탈취하기 위해서 사용하는 악성코드입니다. 루트권한은 우리가 안드로이드/IOS 스마트폰을 사용할 때 루팅/탈옥을 통해서 얻는 권한입니다. 루팅이나 탈옥같은 경우 사용자가 기기를 더 자유롭게 사용하기 위해서 행하는 행위라면, 루트킷은 사용자가 아닌 타인이 이런 루트권한을 얻어 악의적으로 사용하는 것이 목적이라고 볼 수 있습니다.
루트권한을 얻은 악성코드는 시스템 전체에 대한 완전한 권한을 얻습니다. 루트킷은 이를 통해 루트킷이 설치되었다는 사실은 물론 다른 악성코드 들이 설치되었다는 사실을 조작하여 은폐할 수 있습니다. 이를 이용한다면 피해자 컴퓨터에 백도어, 트로이 목마, 스파이웨어 등을 설치하고 이렇게 설치된 악성코드들이 모두 정상적인 파일로 보이게 만들 수 있기 때문에 조심해야 합니다.
- 키로깅
[이미지 2]
키로깅은 피해자의 키보드가 입력한 값을 모두 기록하고 전송하는 악성코드입니다. 해커는 피해자가 키보드를 통해 입력한 모든 것들을 살펴본 뒤 그 중에 피해자의 개인정보, ID, 비밀번호, 계좌 정보, 카드 결제 정보 등을 수집할 수도 있습니다.
- 크립토마이너
크립토마이너는 암호화폐 채굴 유행이 과열되면서 새로 나타난 유형의 악성코드입니다. 이 악성 코드는 피해자 컴퓨터에 몰래 설치된 뒤, 암호화폐를 채굴하게 만드는 특징이 있습니다. 암호화폐 특징상 채굴에 막대한 연산력이 필요하기 떄문에 피해자 컴퓨터의 성능 저하, 부품 수명 감소등의 피해를 입히는 악성코드입니다.
- 랜섬웨어
[이미지 3]
랜섬웨어는 Ransom(인질) + Malware(악성코드)로, 사용자의 파일을 암호화해 인질로 잡고 돈을 요구하는 악성코드입니다. 대표적인 랜섬웨어로는 2017년에 유행했던 워너크라이가 있습니다. 이 랜섬웨어는 피해자 컴퓨터의 파일을 암호화 시키고, 비트코인을 입금해야 파일의 암호화를 풀 수 있는 키 코드를 주겠다고 말하고, 일정 시간이 흐르면 파일을 삭제하겠다고 협박하여 수익을 창출했습니다. 당시 적지 않은 기업들이 이에 돈을 낸 것으로 알려졌습니다.
- 애드웨어
피해자 컴퓨터에 광고를 보내 수익을 얻는 악성 코드입니다. 다른 악성 코드들 처럼 사용자 동의를 받지 않고 설치되는 경우도 존재합니다만, 최근에는 상용 프로그램 설치시 은밀하게 추가 설치 버튼을 잘 보이지 않는 곳에 배치하여 설치를 유도, 악성코드의 요건을 회피하는 모습을 보입니다.
- 브라우저 하이재커
브라우저 하이재커는 인터넷 브라우저의 권한을 탈취하여 브라우저의 설정을 열람, 변경하거나 악성코드에 감염된 페이지를 강제로 접속하게 하여 사용자의 개인정보를 훔치는 방식으로 작동합니다.
- 가짜 백신
가짜 백신이란 백신, 안티바이러스 프로그램처럼 보이도록 만들어진 악성코드입니다. 가짜백신은 허위로 악성코드를 진단했다고 알리고 악성코드를 치료하기 위해서는 결제를 해야 한다고 속이고 결제를 유도하는 방식으로 작동합니다.
'AI 스쿨 리팩토링 보안직무 과정' 카테고리의 다른 글
11주차 과제 - VIRUSTOTAL (0) | 2022.12.19 |
---|---|
10주차 과제 - 보안관제 (0) | 2022.12.19 |
8주차 과제 - Firewall, IPS, IDS, DDoS (0) | 2022.12.18 |
7주차 과제 - 계층별 프로토콜 (하) (1) | 2022.12.18 |
6주차 과제 - 계층별 프로토콜 (상) (0) | 2022.12.18 |
댓글