Code03-01.py

#cpu와 가까이 있는 메모리- 저장장치에서 가장 빠르다
#변수를 사용하면 메모리에 저장된다

#문자 "1" vs 숫자 1

# %d 10진수 정수
# print("100")
# print("%d" %100)
# print("100+100")
# print("%d" %(100+100))
# print("%d" %(100, 200))
# print("%d %d" %(100))
# %5d 다섯자리를 사용할 거다
# %0.5d 00123- 다섯자리 확보에 빈칸 영

# %f 실수
#print("%7.1f" %123.45)   123.5

print("%d" % 123) #숫자 그대로
print("%5d" % 123) #5칸 사용하고 오른쪽부터 입력
print("%0.5d" % 123) #5칸 사용하는데 오른쪽부터 입력 후 나머지는 0으로 채우기

print("%f" % 123.45) #소수점 아래 6자리까지 무조건 출력한다
print("%7.1f" % 123.45) #7자리 숫자 소수1까지(.도 한칸 차지한다)
print("%7.3f" % 123.45) #7자리 숫자 소수 3까지

print("%s" % "Python")
print("%10s" % "Python")


#결과값
# 123
#   123
# 00123

# 123.450000
#   123.5
# 123.450

# Python
#     Python

print("%d %5d %05d" % (123, 123, 123))
print("{0:d} {0:5d} {2:05d}".format(123,123,123)) #{순서: 형식}
#\n은 줄 넘기기

 

 

Code03-02.py

print("\n줄바꿈\n연습")
print("\t탭키\t연습")
print("글자가 \"강조\"되는 효과1")
print("글자가 \'강조\'되는 효과2")
print("\\\\\\ 역슬래시 세 개 출력")
print(r"\n\t\"\\를 그대로 출력") #print(r"")은 이스케이프 그대로 출력



#변수 = 그릇
#변수 가장 많이 사용하는 4가지 불/정수/실수/문자열
boolVar = True
intVar = 0
floatVar = 0.0
strVar = ""
print(type(boolVar), type(intVar), type(floatVar), type(strVar))
#<class 'bool'> <class 'int'> <class 'float'> <class 'str'>


var2 = 200
var1 = 100+ var2
print(var1)

print(bin(11), bin(0o11), bin(0x11))
print(oct(11), oct(0o11), oct(0x11))
print(hex(11), hex(0o11), hex(0x11))

# 0b1011 0b1001 0b10001
# 0o13 0o11 0o21
# 0xb 0x9 0x11

print() 함수에서 사용할 수 있는 서식
%d %x %o(정수-10,16,8진수)
%f(실수)
%c(한 글자)
%s(두 글자 이상인 문자열) 

 

Code03-03.py

print("    *    ")
print("   ***   ")
print("  *****  ")
print(" ******* ")
print("*********")
print(" ******* ")
print("  *****  ")
print("   ***   ")
print("    *    ")

 

 

Code03-04

sel = int(input("입력 진수 결정(16/10/8/2) : "))
num = input("값 입력 : ")

if sel == 16 :
    num10 = int(num, 16)#int(num, 16진수)
if sel == 10 :
    num10 = int(num, 10)
if sel == 8 :
    num10 = int(num, 8)
if sel == 2 :
    num10 = int(num, 2)


print("16진수 ==> ", hex(num10))
print("10진수 ==> ", num10)
print("8진수 ==> ", oct(num10))
print("2진수 ==> ", bin(num10))

 

 

Code03-05.py

## 함수 선언 부분##
def myFunc():
    print('함수를 호출함.')

## 전역 변수 선언 부분 ##
gVar = 100

## 메인 코드 부분 ##
if __name__ == '__main__':
    print('메인 함수 부분이 실행됩니다.')
    myFunc()
    print('전역 변수 값:', gVar)

 

 

practice03.py

a = 123
print(type(a))

a = 100 ** 100
print(a)

a = 0xFF
b = 0o77
c = 0b1111
print(a, b, c)

a = 3.14
b = 3.14e5
print(a, b)

a =10
b=20
print(a+b, a-b, a*b, a/b)

a, b = 9, 2
print(a ** b, a % b, a//b)

a =True
print(type(a))

a = (100 == 100)
b= (10> 100)
print(a,b)

a = "파이썬 만세"
print(a)
print(type(a))

print("작은따옴표는 ' 모양이다")
print('큰따옴표는 " 모양이다')

a = "이건 큰따옴표 \" 모양"
b = '이건 작은따옴표 \' 모양'
print(a)
print(b)

a = '파이썬 \n 만세'
print(a)

a = """파이썬
만세"""
#파이썬 \n 만세 로 비주얼스튜디오는 출력이 안된다
print(a)

 

 

selfstudy3-1.py

print("*********")
print(" ******* ")
print("  *****  ")
print("   ***   ")
print("    *    ")
print("   ***   ")
print("  *****  ")
print(" ******* ")
print("*********")

 

 

selfstudy3-2.py

sel = int(input("입력 진수 결정(16/10/8/2) : "))

# sel이 16, 10, 8, 2 중 하나가 아닐 경우 처리
if sel != 16 and sel != 10 and sel != 8 and sel != 2:
    print("16, 10, 8, 2 숫자 중 하나만 입력하세요.")
    exit()  # 프로그램을 종료함

# sel이 16, 10, 8, 2 중 하나일 때만 값을 입력받고 변환
num = input("값 입력 : ")

if sel == 16:
    num10 = int(num, 16)
elif sel == 10:
    num10 = int(num, 10)
elif sel == 8:
    num10 = int(num, 8)
elif sel == 2:
    num10 = int(num, 2)

print("16진수 ==> ", hex(num10))
print("10진수 ==> ", num10)
print("8진수 ==> ", oct(num10))
print("2진수 ==> ", bin(num10))

 

추가

 

변수명 규칙
-대 소문자 구분
-문자, 숫자, 언더바(_)를 시작하거나 포함할 수 있다/ 그러나 숫자로 시작은 안된다
-예약어는 변수명으로 쓰면 안된다(ex return) 

파이썬에서 변수의 데이터 형식은 값을 넣는 순간마다 변경될 수 있는 유연한 구조이다. 

비트
진수 표 넣기


바이트(8비트)
비트수-바이트수-표현개수-2진수-10진수-16진수
8비트=1바이트=2^8(256)=0~11111111=0~255=0~ff 

숫자형은 정수형과 실수형
16진수-0x
8진수-0o
2진수-0b
e15=10^5
**제곱
%나머지
//소수점을 버리는 

문자열은 양쪾에 "" or ''을 사용해줘야 하고
" ' " or ' " '을 사용하면 ' "이 출력된다
또는 "₩'" or "₩""을 사용하면 출력이 된다
""" """을 사용해도 나온다

'Language > Python' 카테고리의 다른 글

조건문  (1) 2024.10.24
연산자  (3) 2024.10.24
미리 만드는 쓸 만한 프로그램  (0) 2024.10.18
파이썬-함수  (1) 2024.03.15
파이썬-제어문  (3) 2024.03.15


-대화형
-한줄 한줄 바로 실행 

idle-저장가능 

변수는 메모리에 저장이 된다. 그러나 메모리에 저장된 것은 idle을 종료하면 모두 사라진다 

 

 

code02-01.py

a = 100
b =50
result = a + b
print(a,"+", b, "=", result)
result = a - b
print(a,"-", b, "=", result)
result = a * b
print(a,"*", b, "=", result)
result = a / b
print(a,"/", b, "=", result)

첫 줄이 100+50은 150이 아닌 10050으로 나온다
<-input()함수는 값을 입력받지만 모두 문자열로 취급하기 때문이

 

code02-02.py

a = input()
b = input()
result = a + b
print(a,"+", b, "=", result)
result = a - b
print(a,"-", b, "=", result)
result = a * b
print(a,"*", b, "=", result)
result = a / b
print(a,"/", b, "=", result)

# input("") -> ""에 문자를 넣어주면 print하고 input 받을 준비를 한다.
# input은 문자열로 받기 때문에 int를 넣어줘야 한다

 

 

code02-03.py

a = int(input())
b = int(input())

이를 해결하기 위해서는 int(input())을 하여
1단계로 input에 100을 입력 받고
2단계로 100을 숫자로 변경하여 a에 대입한다 

 

code02-04.py

a = int(input("첫 번째 숫자를 입력하세요 : ")) #a에 input(키보드의 입력값)의 값을 집어 넣는다.
b = int(input("두 번째 숫자를 입력하세요 : ")) #int가 input의 문자열을 숫자로 바꿔준다(ex. 1+2=12 -> 1+2=3)
result = a + b
print(a,"+", b, "=", result)
result = a - b
print(a,"-", b, "=", result)
result = a * b
print(a,"*", b, "=", result)
result = a / b
print(a,"/", b, "=", result)

input("adfa")에 들어간 ""말은 먼저 출력이 되고 input에 들어갈 입력값이 기다려진다

 

code02-05.py

import turtle

turtle.shape('turtle')

turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)

turtle.done()

 

 

code02-06.py

import turtle

#함수 선언 부분

#변수 선언 부분
myT = None

#메인 코드 부분
myT = turtle.Turtle()
myT.shape('turtle')

for i in range(0,8) : #0이상 8미만 0<= i <8
    myT.forward(200)
    myT.right(45)

turtle.done()

 

 

code02-07.py

import turtle
import random

#함수 선언 부분
def screenLeftClick(x, y):
    global r, g, b
    turtle.pencolor((r,g,b))
    turtle.pendown()
    turtle.goto(x, y)

def screenRightClick(x, y):
    turtle.penup()
    turtle.goto(x, y)

def screenMidClick(x, y):
    global r, g, b
    tSize = random.randrange(1, 10)
    turtle.shapesize(tSize)
    r = random.random()
    g = random.random()
    b = random.random()


#변수 선언 부분
pSize = 10
r, g, b = 0.0, 0.0, 0.0

#메인 코드 부분
turtle.title('거북이로 그림 그리기')
turtle.shape('turtle')
turtle.pensize(pSize)

turtle.onscreenclick(screenLeftClick, 1) #윈두오 창을 마우스로 클릭하면 함수명 함수가 작동한다. 1은 마우스 왼쪽 2는 가운데 3은 오른쪽을 지정한다
turtle.onscreenclick(screenMidClick, 2)
turtle.onscreenclick(screenRightClick, 3)

turtle.done()

 

 

selfstudy2-1.py

import turtle
import random

# 함수 선언 부분
def screenLeftClick(x, y):
    global r, g, b
    turtle.pencolor((r, g, b))
    turtle.pendown()
    turtle.goto(x, y)

    #midclick을 합쳐준다.
    tSize = random.randrange(1, 10)  
    turtle.shapesize(tSize)
    r = random.random()
    g = random.random()
    b = random.random()
   
   

def screenRightClick(x, y):
    turtle.penup()
    turtle.goto(x, y)

# 변수 선언 부분
pSize = 10
r, g, b = 0.0, 0.0, 0.0

# 메인 코드 부분
turtle.title('거북이로 그림 그리기')
turtle.shape('turtle')
turtle.pensize(pSize)

# 왼쪽 버튼과 가운데 버튼 기능 통합-> eft+mid -> left
turtle.onscreenclick(screenLeftClick, 1)  
turtle.onscreenclick(screenRightClick, 3)

turtle.done()

 

*추가

data = "안녕" + \
		"하세요?" +\
        "파이썬"
print(data)

#안녕하세요?파이썬

맨뒤에 /를 붙이면 다음과 같이 줄을 바꾸어 써도 한줄로 인식한다. 

함수 선언부분
-함수를 미리 만들어 필요할 때 사용하면 된다 

def 함수명(매개변수):
    global 사용할 전역 변수 

변수 선언부분
-사용될 전역 변수를 미리 선언해 놓는 곳이다
int a,b
a =0
b=0 

*보통 언어에서 변수를 사용하려면 선언부터 해야 하는데 자바스크립트나 파이썬 등 인터프리터 언어에서는 변수를 선언하지 않고도 사용해도 된다
*파이썬은 변수 선언이 필요하지는 않지만 ,가급적 변수에 초깃 값을 미리 대입시켜 놓는 게 바람직하다

'Language > Python' 카테고리의 다른 글

연산자  (3) 2024.10.24
변수와 데이터형  (1) 2024.10.21
파이썬-함수  (1) 2024.03.15
파이썬-제어문  (3) 2024.03.15
파이썬-자료형  (2) 2024.03.15

VMware 설치

VMware workstation pro 17 설치를 한다.

(pro는 유료판인데 30일 무료체험이 가능하고 기간이 지나도 snapshot 같은 유용한 기능은 사용 가능하다)

쭉 next나 install 눌러준다

아래 버튼으로 무료판 써주고

하게 되면 VMware을 설치했을 때의 화면이 나온다.

가상 운영체제 환경을 생성을 해주기 위해 create a new virtual machie을 클릭

 

가상환경 설치

 

개인적으로 너무 힘들었던 구간이다

 

뻘짓했던 기록

1) 맨 처음 윈도우 7 버전으로 설치하고 VMware tools 설치를 하기 위해 microsoft update catalog에 접속해서 보안 업데이트를 해야 하는데 인터넷이 접속은 되는데  microsoft update catalog에 접속이 안되고 크롬도 설치가 안 되는 상황이 발생했다...

 

2)윈도우8로 시도해봤는데 이번에는 인터넷이 접속이 안된다..

 

3)윈도우10을 공식 사이트에서 다운받아 설치를 했는데

계속된 블루스크린 현상...

 

->워크스테이션을 17 프로 말고 15로 설정시키고 실행하니 다행히 윈도우10이 설치가 되었다.

*2024/11/27 계속된 오류 끝에 진짜 이유를 찾아냈다.

기본으로 선택되어 있던 NVme를 해제하고 SCSI나 SATA로 선택해서 하길 추천한다.

 

(같이 사는 형이 다행히 보안 회사에 다니셔서 형님의 도움으로 결국 해결)

 

->시도는 안해봐서 그러는데 다른 버전들이 인터넷이 안되거나 한 이유는 네트워크 브릿지로 안 해서 그럴까라는 의심도 든다

 

*참고한 블로그

VMware에 윈도우 10 설치하기(feat. 가상머신 만들기) (tistory.com)

 

VMware에 윈도우 10 설치하기(feat.가상머신 만들기)

전문적인 프로그래밍 지식이나 학술적 목적을 가진 게 아니라 단순히 멀티클라이언트를 위해서 가상머신을 이용하려고 합니다. 그중에서도 윈도우 10이 설치된 VMware를 이용할 겁니다. 왜 VMware?

sgame.tistory.com

윈도우 10 ISO파일 만들기 (tistory.com)

 

윈도우 10 ISO파일 만들기

윈도우 10 ISO파일을 만들어서 여러곳에 쓰겠지만 저는 VMware에서 윈도우10을 설치할 목적으로 만들겠습니다. Windows 10 다운로드 Windows 10용 ISO 파일을 다운로드한 경우, 해당 파일은 선택한 위치에

sgame.tistory.com

https://hummingbird.tistory.com/6938

 

VMware 가상 환경에서 Windows 10 설치 중 "KMODE EXCEPTION NOT HANDLED" 블루스크린 해결 방법

VMware Workstation Pro 가상 프로그램을 이용하여 Windows 10 22H2 x86 운영 체제를 사용하던 중 예전부터 매월 제공되는 Windows 10 누적 업데이트 중 "SYSTEM THREAD EXCEPTION NOT HANDLED" 블루스크린(BSoD)이 발생하여

hummingbird.tistory.com

 

 

 

이것만 주의해 주고 나머지는 다 넥스트 누르면 된다.

중간에 네트워크 설정은 브릿지

 

그리고 내 드라이브에 용량이 부족해서 20gb로 설정

 

*2024/11/27 계속된 오류 끝에 진짜 이유를 찾아냈다.

기본으로 선택되어 있던 NVme를 해제하고 SCSI나 SATA로 선택해서 하길 추천한다.

 

 

마지막 finish 눌러주면 이런 화면이 뜨는데 다음 누르면서 설치해 주기

 

home 누르고 다운 받아주면 된다.

그러면 이렇게 가상환경 윈도우 10이 설치가 된다.

 

네트워크 확인

다른 사람들은 nat으로 하는 거 같던데 나는 하도 안돼서 bridge로 가니까 바로 인터넷 접속이 가능해졌다.

 

VMware Tools 설치

설치하는 이유는 

-훨씬 빠른 그래픽 성능

-개선된 마우스 성능

-Drag&Drop 기능 - host pc 에서 가상 pc로 파일을 바로 드래그하여 전달이 가능하다.

 

VM -> Manage -> Install VMware Tools를 선택해 주면 가상머신 D드라이브에 VMware Tools CD가 마운팅 된다.

나는 한번 설치해서 reinstall로 뜨긴한다.

 

윈도우 로고키 + R을 눌러 실행메뉴를 켜서 D:\setup.exe를 입력해 준다.

 

이런 화면이 뜬다. 계속 다음 눌러준다.

 

그러면 설치 완료!

 

재부팅하고 나면 속도도 빨라지고 호스트 pc에서 드래그로 파일을 가져올 수 있다.

필요한 악성 코드 분석 도구들을 호스트 pc에서 드래그로 가져와줬다.

 

Snapshot 기능

스냅샷 기능: 특정 시점의 데이터를 저장하고, 사용자가 원할 때 다시 저자왼 시점의 데이터로 복원할 수 있는 기능

 

스냅샷 기능의 사용 이유

악성코드 분석에서 악성코드 실행 후가상환경이 동작불능 상태가 되었을 때, 스냅샷 기능을 활용해 악성코드 실행 전 시점으로 복구하기 위해 주로 사용된다.(게임으로 치면 리폿? 이런 느낌인 듯)

 

 

첫 번째 버튼: Snapshot 추가

두 번째 버튼: 바로 전 Snapshot 했던 곳으로 이동

세 번째 버튼: Snapshot을 전체적으로 관리(삭제, 생성 등)

 

 

첫 번째 버튼을 클릭했을 때 나오는 이미지이다.

현재 스냅샷을 저장하고 싶으면 Take Snapshot 클릭을 하면 된다.

 

VM-Snapshot을 보면 Snapshot 1 상태로 특정 시점의 스냅샷이 저장된 걸 볼 수 있다.

 

종료

종료는 두 가지 방법이 있다.

1. 평소대로 윈도우 버튼으로 시스템 종료

2. 파일 exit 버튼

 

악성 샘플을 수집할 수 있는 사이트

 

    • Malware Bazaar
      • 악성 코드 샘플을 공유하는 플랫폼으로, 웹을 통해 업로드 및 다운로드할 수 있으며 API도 제공한다. 다양한 샘플들이 지속적으로 업데이트되어 연구 및 분석에 유용하다.
    • Malshare
      • 악성코드 샘플을 저장한 공용 디렉터리다. 누구나 접근할 수 있으며, 연구 목적으로 악성코드 샘플을 다운로드할 수 있다. 다양한 형태의 악성코드를 분석할 수 있는 자료들이 제공된다.
    • VirusShare
      • 방대한 악성코드 샘플을 제공하는 커뮤니티 기반의 웹사이트로, 연구자 및 분석가들이 샘플을 공유하고 분석하는 데 도움을 준다. 다만 등록된 사용자만 접근할 수 있는 구조다.
    • Malware Traffic Analysis
      • 악성코드 트래픽 및 샘플 분석을 위한 자료를 제공하는 사이트다. 다양한 트래픽 데이터와 함께 악성코드 샘플을 분석할 수 있어, 네트워크 보안 관점에서 유용하다.

참고 블로그

11. 샘플 분석 환경 구성 (velog.io)

 

11. 샘플 분석 환경 구성

VMware 설치 VMware Workstaion Pro 17 설치 (Pro는 유료판이지만 30일 무료체험이 가능하고 기간이 지나도 Snapshot 같은 유용한 기능은 여전히 사용 가능) Install 버튼을 누르고 쭉쭉 진행해주면... VMware 설치

velog.io

VMware에 윈도우 10 설치하기(feat.가상머신 만들기) (tistory.com)

 

VMware에 윈도우 10 설치하기(feat.가상머신 만들기)

전문적인 프로그래밍 지식이나 학술적 목적을 가진 게 아니라 단순히 멀티클라이언트를 위해서 가상머신을 이용하려고 합니다. 그중에서도 윈도우 10이 설치된 VMware를 이용할 겁니다. 왜 VMware?

sgame.tistory.com

 

 

ppt

[13주차]샘플 분석 환경 구성.pptx
4.82MB

'Security > 보안관제' 카테고리의 다른 글

악성코드 샘플 분석  (2) 2024.11.03
정적, 동적 Tool 실습  (4) 2024.10.26
악성코드 정적, 동적분석  (0) 2024.09.27
Virustotal  (0) 2024.09.19
보안관제란?  (4) 2024.09.05

악성코드 분석에는 크게 3가지로 나눌 수 있다 기초분석, 정적분석, 동적분석
기초분석도 악성코드를 실행시켜서 하는 형태가 아니기 때문에 정적분석 범위 안에 들어갈 수 있다.

 

정적 분석

  • 정적 분석악성코드를 실행하지 않고 악성코드의 코드와 리소스를 분석하는 방법이다. 코드 실행 없이 파일의 구조와 내용을 분석하여 악성코드가 어떻게 동작할지 예측한다.

정적 분석의 특징:

  • 파일의 해시 값, 문자열 패턴, 메타데이터 확인 가능: 파일의 고유한 해시 값을 통해 파일의 동일성 및 악성 여부를 확인할 수 있으며, 문자열 패턴을 분석해 악성 활동을 추정할 수 있다.
  • 비교적 안전: 악성코드를 실행하지 않기 때문에 비교적 안전하지만, 코드 자체가 위험 요소를 포함할 수 있어 혹시나 파일이 실행하는 경우가 발생할 수 있으므로 가상 환경에서 분석하는 것이 권장된다.
  • 난독화 대응 어려움: 악성코드가 난독화된 경우, 분석이 어려울 수 있다.

정적분석 방법

  • 해당 파일의 해시값 확인 후 원본 파일의 해시값과 비교하고 다르다면 변조된 것, 해시값을 Virustotal에 검색
  • 파일 패킹 여부 확인 및 PE 구조 확인을 한다.
  • 악성 코드가 사용하는 문자열 확인한다.
  • 리소스를 확인하여 악성 코드 실행 파일에 저장된 리소스 분석

동적 분석

  • 동적 분석은 악성코드를 실제로 실행하여 실행 전후의 상태를 분석하고, 악성코드의 실제 동작을 관찰하는 방법이다. 시스템 콜, 파일 수정, 네트워크 트래픽 등 실제로 실행되는 프로그램의 행동을 확인할 수 있다.

동적 분석의 특징:

  • 직관적인 분석: 실행 중인 악성코드가 시스템에서 어떤 동작을 하는지 명확하게 파악할 수 있다.
  • 가상 환경에서 분석: 악성코드를 직접 실행하기 때문에 반드시 가상 환경에서 진행해야 한다.
  • 반복 분석 필요: 악성코드는 환경에 따라 다르게 동작할 수 있어 2회 이상 분석을 통해 더 명확한 결과를 얻을 수 있다.

동적분석 방법

  1. Vmware 또는 VirtualBox 등 을 이용해 가상 샌드박스 환경을 구축한다.
  2. 의심스러운 파일을 관리자 권한으로 실행 후 생성되는 프로세스 확인
  3. 레지스트리 및 파일 변화 확인
  4. 패킷 캡쳐 툴로 네트워크 동작 확인

(미리 보는) 동적분석 Tool

  1. 프로세스 관련 Tool  - process explore
  2. 파일 및 레지스트리 관련 Tool - autoruns
  3. 네트워크 관련 Tool - wireshark

정적 분석과 동적 분석의 차이점

구분정적 분석동적 분석

분석 방법 악성코드 실행 없이 코드와 리소스를 분석 악성코드를 실행하여 실행 전후 상태를 분석
분석 대상 파일의 해시 값, 문자열, 메타데이터 분석 실행 후 시스템 콜, 파일 수정, 네트워크 트래픽 분석
분석 시간 비교적 빠름 실행 과정 모니터링으로 시간이 더 소요됨
위험성 비교적 안전하지만 가상 환경에서 진행 필요 악성코드 실행으로 시스템에 피해를 줄 수 있음
환경 의존성 실행 환경과 무관 실행 환경에 따라 다른 결과가 나올 수 있음
반복 분석 단일 분석 가능 2회 이상 반복 분석 필요

 

정적 분석과 동적 분석은 각각의 장단점이 있어, 보다 정확한 분석을 위해서는 두 방법을 병행하는 것이 좋다.

 

동적/정적 분석을 위한 Tool 조사 및 사용법

정적분석

  1. VirusTotal :
    • 백신에 따른 악성코드 확인과 해시값 조회를 통한 과거 검사 이력 확인을 할 수 있다.
    • 사용법: VirusTotal에 파일을 업로드하면, 여러 보안 엔진이 파일의 해시값을 통해 악성 여부를 분석한다.
  2. Exeinfo PE :
    • 해커들은 악성코드의 크기를 줄여 빠르게 유포하고 분석하기 어렵게 악성코드를 압호화 및 압축하는 패킹기법을 사용한다
    • PE 파일(옮겨 다니면서 실행시키는 파일) 분석 도구로, 파일의 패킹 여부와 파일의 구조를 분석한다.
    • 사용법: exe 파일을 프로그램에 드래그하면 패킹 유무 및 추가 정보를(어느 언어로 작성, 그립팅, 프로테틱 등) 확인할 수 있다.
    • PEiD도 비슷한 방식으로 사용되며 패킹 여부와 어떤 툴로 패킹을 하였는지 확인한다.
      내 컴퓨터에 있는 zoom.exe 파일을 분석해봤다.

  3. BinText :
    • 실행 파일 내에서 문자열을 나열하여, 중요한 정보를 찾는 도구이다.
    • 도메인 주소, ip주소, 실행파일, 명령어, 함수 등을 분석하여 악성코드와 관련된 정보가 있는지 확인한다.
    • 패킹이 되어있을 경우에는 제대로 된 정보가 나오지 않기 때문에 언패킹을 진행한 후에 사용해야 한다.
    • 사용법: 분석할 파일을 선택하고, 추출된 문자열을 통해 의심스러운 정보를 확인한다
      왼쪽이 문자열이다.

 

동적분석

  1. Process Explorer :
    • 시스템에서 실행 중인 모든 프로세스실시간으로 모니터링하는 도구이다.
    • 실행 중인 프로세스 파악 및 우선권 변경, 정지, 강제 종료등 조치 기능을 포함하고 있다.
    • 사용법: 실행한 후, 각 프로세스를 클릭하여 CPU, 메모리 사용량과 같은 상세 정보를 확인할 수 있다.
      실행중인 프로세스를 눌러보면 보이는 상세정보 창
  2. Autoruns :
    • 시스템 시작 시 자동으로 실행되는 모든 항목을 모니터링할 수 있는 도구이다. 악성코드의 지속성 유지 기법을 분석할 때 유용하다. 
    • 주의사항: 악성 코드 분석 시 어떤 부분이 변경되었는지 확인하기 위해 해당 악성 파일을 실행하기 전 스냅샷을 촬영하고 실행 후 스냅샷과 비교추천
  3. WireShark :
    • 네트워크 트래픽을 분석하는 도구로, 악성코드가 통신하는 서버나 전송되는 데이터를 모니터링할 수 있다.
    • 사용법: 네트워크 인터페이스를 선택하고 실시간 패킷을 캡처한 후 분석한다.

 

 

이러한 도구들을 활용하면 악성코드의 정적/동적 분석을 효과적으로 수행할 수 있다.

 

참고

악성코드 정적,동적분석 (velog.io)

악성 코드 정적 분석 ( 특징, 방법, 정적 분석 툴, 패킹, PE 구조) — Maker's security (tistory.com)

Wireshark란? / 설치법 :: hongPossible (tistory.com)

자세한 사용법 : 

정적 분석 Tool ( Exeinfo PE, PEiD ) 기능 및 사용 — Maker's security (tistory.com)

파일에 포함된 문자열 확인 툴 ( BinText, Strings ) 기능 및 사용법 — Maker's security (tistory.com)

프로세스 분석 툴 기능 및 사용법 ( Process Explorer, Process Monitor, System Explorer ) — Maker's security (tistory.com)

 

 

 

ppt

[12주차]악성코드 정적,동적분석.pptx
2.82MB

'Security > 보안관제' 카테고리의 다른 글

악성코드 샘플 분석  (2) 2024.11.03
정적, 동적 Tool 실습  (4) 2024.10.26
샘플 분석 환경 구성  (4) 2024.10.12
Virustotal  (0) 2024.09.19
보안관제란?  (4) 2024.09.05

VirusTotal - Home

 

VirusTotal

 

www.virustotal.com

 

1. VirusTotal의 기능

VirusTotal은 파일, URL, 도메인, IP 주소 등을 다양한 백신 엔진, 웹사이트 스캐너 및 도구들을 통해 분석하여 악성 여부를 판단해 주는 온라인 보안 서비스이다. 이 서비스는 다음과 같은 기능을 제공한다:

  • 파일 분석: 사용자가 업로드한 파일을 다수의 백신 엔진을 통해 분석하여 악성 여부를 판별.
  • URL 분석: 특정 웹사이트나 링크가 악성인지 검사하고 피싱, 멀웨어, 스팸 사이트 여부를 확인.
  • 도메인 및 IP 주소 분석: 도메인 이름이나 IP 주소에 대한 평판 정보 제공.
  • 악성코드 탐지 기록: 분석된 파일이나 URL의 과거 이력 및 탐지 기록을 확인 가능.
  • API 지원: VirusTotal API를 통해 자동화된 파일 분석 및 악성코드 탐지 기능을 구현할 수 있음.
  • 커뮤니티 기반 피드백: VirusTotal 커뮤니티의 사용자들이 제공하는 피드백과 평판 정보.

 

2. VirusTotal의 세부적인 사용 방법 (세부 내용 분석 및 활용 방안)

Virustotal은 사용법이 직관적으로 잘 표현이 되어 있어 쉽게 사용이 가능하다

  • 파일 업로드 분석:
    • 파일을 VirusTotal 웹사이트에 업로드하거나, API를 이용해 자동으로 분석할 수 있다.
    • 다수의 백신 엔진과 도구들이 해당 파일을 분석하고, 악성 여부를 결과로 제공한다.
    • 결과는 악성코드 탐지 여부(탐지된 엔진 수), 파일 해시값, 파일의 메타데이터 및 네트워크 연결 정보 등을 포함한다.

  • 파일탭에서 파일을 직접 업로드하여 악성 여부를 검사할 수 있다.

  1. 내 폴더에 있는 아무 파일을 집어 넣어서 검사해 본 결과 정상으로 결과가 나왔다.
  2. 좌측 상단에 0/64 동그라미는 64개의 백신 엔진들이(ex.안랩v3..) 검사하여 0개의 엔진이 해당 파일을 악성 코드로 탐지하였다는 결과이다.
  3. 아래에 여러 엔진들 이름과 'undetected'라고 적혀 있는 것은 해당 엔진이 정상 파일로 인식했다고 보면 된다.

 

출처:https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fckr2Ow%2FbtsIGkOf9LS%2FAAAAAAAAAAAAAAAAAAAAAFZg1Kz5wuEZUlKQQDs_BNeG2PYd0BjgEWCWQZRnw3Iq%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DaZdQLMJSQQyfcY8Npcd9IhbG0CI%253D

  • 이번에는 악성 코드 파일을 분석한 예시를 가져왔다.
  1. 이번에는 74개의 엔진에서 66개의 엔진이 악성코드를 감지했다.
  2. 안랩v3엔진은 트로이 목마를 감지한 것으로 본다.
  3. detail앱을 들어가면 더 자세히 내용을 알 수 있다.

 

출처:https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FxQAPo%2FbtsID4fte4F%2FAAAAAAAAAAAAAAAAAAAAADfYErS08faPmArPzZHx3XnBz8_dX82nw2b8atvfR-lc%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DFCNt5VghSK7ke3%252FQ8flyGm%252F5Gf0%253D

  • 디테일 탭을 들어왔을 때 화면이다.
  1. 다양한 해시 함수들로 해당 파일의 해시값을 확인 가능하다.( MD5, SHA-1, SHA-256 등과 같은 해시함수로 해당 파일의 해시값을 확인 할 수 있다.)
  2. history 메뉴에는 파일이 생성된 날짜, 처음 업로드 된 날짜, 마지막 업로드 된 날짜 등 확인이 가능하다
  3. Names 메뉴에서 해당 파일의 이름이 어떤 식으로 변경되어 왔는지도 확인이 된다.

 

  • URL 분석:
    • 웹사이트 링크를 입력하여 악성인지 확인한다.
    • 웹사이트가 멀웨어를 배포하거나, 피싱 목적으로 사용되는지 여부를 다수의 엔진을 통해 분석한다.
    • 악성 웹사이트로 확인될 경우, 해당 도메인 및 관련 IP 주소에 대한 정보가 함께 제공된다.

  1. 이번에는 파일이 아닌 웹사이트 링크를 시도 해봤는데 내 블로그로 검사해봤다.
  2. 문제 없이 0/96으로 나오는 걸 볼 수 있다.

 

  • 도메인 및 IP 주소 분석:
    • 도메인 또는 IP 주소를 입력하면 해당 주소의 신뢰도를 평가하고, 연결된 악성 활동 기록을 확인할 수 있다.
    • Whois 정보, 관련 도메인, 그리고 해당 IP 주소와의 관계를 파악하여 악성 활동 여부를 분석한다.

  • 위에 URL과 똑같은 방법으로 하면 된다.
  • Virus토탈은 방대한 데이터베이스를 가지고 있어서 이전에 검사한 파일의 경우 해시값을 입력해서 이전의 검사 기록을 확인 할 수 있다.

 

  • 주의사항
    • 바이러스 토탈에 업로드된 파일은 커뮤니티에 공개가 되기 때문에 기밀 또는 민감한 정보는 올리면 안된다.
    • 검사 결과를 맹신하지 말자! 
    • 파일을 압축하여 업로드할 경우 다양한 보안 제품에서 지원되지 않을 수 있음. => 압축하여 업로드 검사를 하고자 한다면 범용성이 있는 ZIP 파일 형식이 권장된다.
    • 검사 결과의 순서가 꼬일 수 있으므로 압축파일이 아닌 하나의 파일만 검사하는 것이 좋다

 

3. VirusTotal을 통한 분석 방법

악성코드 분석은 총 3가지 기초 분석, 정적 분석, 동적 분석으로 분류된다.

  • 기초 분석: 파일의 기본 정보와 메타데이터를 확인해 빠르게 의심 여부를 판단.
  • 정적 분석: 파일을 실행하지 않고 내부 코드와 구조를 분석해 악성 행위를 파악.
  • 동적 분석: 가상 환경에서 파일을 실행해 실제 동작과 악성 행위를 모니터링.

바이러스 토탈의 경우 기초 분석에 해당하며, 악성코드의 기초 정보를 확인한다.

  • 기초 정보 확인 후, 정적 분석, 동적 분석을 통해 해당 파일의 악성 여부를 판단해야 한다.
  • 바이러스 토탈의 결과를 맹신하지 않아야 하며 악성코드 분석 시 참고자료 정도로 생각하며 상세 분석을 한다.

참고

Virustotal 기능 및 사용법 / 악성코드 기초 분석 — IT-log (tistory.com)

Virustotal 기능 / Virustotal 사용법 / 악성 코드 기초 분석 / 바이러스 토탈 — Maker's security (tistory.com)

 

 

 

ppt

[11주차]virustotal.pptx
2.80MB

'Security > 보안관제' 카테고리의 다른 글

악성코드 샘플 분석  (2) 2024.11.03
정적, 동적 Tool 실습  (4) 2024.10.26
샘플 분석 환경 구성  (4) 2024.10.12
악성코드 정적, 동적분석  (0) 2024.09.27
보안관제란?  (4) 2024.09.05

보안관제란?

  • 보안관제는 기업이나 조직의 정보, 기술, IT 자산을 해킹이나 바이러스 등 사이버 공격으로부터 보호하기 위해 수행되는 지속적이고 체계적인 활동이다.
  • 보안관제의 주요 목표는 보안 위협을 실시간으로 탐지하고, 신속하게 대응하며, 장기적으로는 보안 사고를 예방하는 것이다.
  • 보안관제는 보안관제센터(SOC: Security Operations Center)에서 24시간 교대 근무 체제로 운영된다.

수행 원칙 3가지:

  • 무중단: 보안관제는 24시간 무중단으로 운영되어야 하며, 어떤 상황에서도 시스템의 가용성과 보안을 유지해야 한다.
  • 전문성: 보안관제는 고도로 전문화된 지식과 기술이 필요하다. 이를 위해 지속적인 교육과 훈련이 필수적이다.
  • 정보 공유: 보안 사고 발생 시, 관련된 모든 부서와 정보를 신속히 공유하여 공동 대응이 가능하도록 해야 한다.

출처:https://www.boannews.com/media/upFiles2/2023/08/925284394_241.jpg



보안관제 업무 절차

보안관제 업무 절차는 예방, 탐지, 대응, 보고, 공유 및 개선의 다섯 단계로 이루어진다.

  1. 예방 (Prevention):
    • 보안 위협을 사전에 차단하기 위한 조치를 취한다. 이는 보안 정책 수립, 취약점 점검 및 패치 적용, 사용자 교육, 방화벽 및 침입 방지 시스템 설정 등을 포함한다.
  2. 탐지 (Detection):
    • 실시간으로 네트워크 및 시스템 로그를 모니터링하여 보안 이벤트를 탐지하고, 이상 징후가 발견되면 즉시 분석하여 위협 여부를 판단한다.
  3. 대응 (Response):
    • 탐지된 위협에 대해 신속하게 대응한다. 공격이 확인된 경우, 시스템을 격리하거나 악성 코드를 제거하며, 네트워크 트래픽을 차단하는 등의 조치를 취한다.
  4. 보고 (Reporting):
    • 보안 사고와 대응 과정에 대해 상세한 보고서를 작성하여 내부적으로 공유하고, 필요 시 외부 관계자에게 보고한다.
  5. 공유 및 개선 (Sharing & Improvement):
    • 사고 이후, 관련 정보를 조직 내외부에 공유하고, 사고에서 얻은 교훈을 바탕으로 보안 정책과 절차를 개선한다. 추가적인 보안 테스트와 모의 훈련을 통해 보안 수준을 강화한다.

출처:https://cdn.prod.website-files.com/65f40252d97e8a476f9d7ad2/660ad15c4f965f687860e0dc_Control-tab02-img01.webp

 

보안관제의 유형 및 특징

보안관제는 주로 온프레미스클라우드 두 가지 환경에서 이루어지며, 각각의 환경에 따라 여러 유형으로 나뉜다.

온프레미스(On-Premise)

온프레미스 보안관제는 조직의 물리적인 인프라 내부에서 이루어지며, 다음과 같은 유형으로 구분된다:

  1. 원격관제 (Remote Monitoring):
    • 보안관제센터에서 원격으로 고객사의 IT 자산을 모니터링하고, 보안 이벤트를 탐지하고 대응한다. 이 방식은 고객사의 현장에 보안 전문가가 상주하지 않아도 되며, 경제적으로 효율적일 수 있다.
  2. 파견관제 (Onsite Monitoring):
    • 보안 전문가가 직접 고객사에 파견되어 현장에서 보안관제를 수행한다. 파견관제는 고객사의 특수한 요구나 민감한 데이터를 다루는 경우에 유용하며, 현장 상황에 대한 즉각적인 대응이 가능하다.
  3. 자체관제 (In-House Monitoring):
    • 고객사가 자체적으로 보안관제센터(SOC)를 구축하고 운영한다. 자체관제는 조직 내부에서 모든 보안 작업을 수행하며, 보안에 대한 완전한 통제를 제공한다. 그러나 높은 비용과 운영의 복잡성이 동반될 수 있다.

클라우드(Cloud)

클라우드 보안관제는 클라우드 인프라에 대한 보안을 관리하는 서비스이다. 클라우드 환경은 유연성과 확장성이 뛰어나지만, 그만큼 새로운 보안 위협이 존재할 수 있다. 클라우드 보안관제는 다음과 같은 특징을 가진다:

  1. 클라우드 관제 (Cloud Monitoring):
    • 클라우드 서비스 제공자가 제공하는 보안 도구와 서비스(예: AWS CloudTrail, Azure Security Center)를 통해 클라우드 환경의 보안을 모니터링하고, 위협을 탐지 및 대응한다. 클라우드 관제는 원격에서 이루어지며, 클라우드 자원의 동적인 특성에 맞춰 보안 정책을 적용하고 관리한다.

 

*원격 관제클라우드 관제의 차이점

  1. 공통점
    • 두 관제 방식 모두 원격으로 시스템을 모니터링한다는 점에서는 동일하다.
  2. 온프레미스(물리적 환경) vs 클라우드(가상 환경) 차이
    • 온프레미스: 물리적 환경에 기반하여 장비를 설치하고 운영하며, 추가로 구축할 경우 장비를 별도로 구입하고 설치하는 시간이 소요된다. 또한, 하드웨어 호환성 문제나 설치 공간, 전산센터 보안을 위한 보안요원이나 CCTV 등 물리적 요소를 고려해야 한다.
    • 클라우드: 가상 환경에서 장비를 실시간으로 생성, 삭제, 변경할 수 있으며, 이를 통해 보다 유연한 오케스트레이션이 가능하다. 클라우드에서는 물리적 장비 설치와 관련된 문제가 발생하지 않으며, 물리적 보안 요건도 온프레미스보다 간소화된다.
    • (오케스트레이션이란 IT 환경에서 여러 개의 시스템, 소프트웨어, 서비스 등을 자동으로 관리하고 조정하는 것을 의미한다. )
  3. 클라우드의 이점
    • 유연성: 필요할 때마다 실시간으로 리소스를 확장하거나 축소할 수 있어 관리가 더 효율적이다.
    • 비용 절감: 물리적 장비를 구입하고 유지보수하는 비용을 절감할 수 있다.
    • 보안 관리: 물리적 보안 요소가 줄어들어 관리할 부분이 간소화된다.

 

보안관제 업무 시 활용하는 웹 페이지에 대해 조사

보안관제 업무에서는 다양한 웹 페이지와 툴을 활용하여 위협을 탐지하고 분석한다. 몇 가지 주요 페이지 및 툴은 다음과 같다:

  • KISA Whois(한국인터넷진흥원 후이즈): 한국 인터넷 진흥원에서 제공하는 Whois 서비스, 국내의 IP 검색을 할 때 유용하다( KISA 후이즈검색 whois.kisa.or.kr (xn--c79as89aj0e29b77z.xn--3e0b707e) )
  • Ipconfig(아이피컨피그): KISA Whois에서 찾지 못하는 해외 IP주소를 찾을 수 있다
  • Virustotal(바이러스토 토탈): 구글의 자회사로 파일의 해시값 또는 URL로 바이러스, 웜, 트라이목마 등을 검사해주는 사이트 -> 검사시 해당 파일 검사결과를 공유하게 되기 때문에 개인정보나 기밀사항 등을 검사할 경우 정보가 노출되니 주의해야 한다(https://xn--c79as89aj0e29b77z.xn--3e0b707e/)
  • Zone-h: 해커들이 웹 해킹한 사이트를 과시하기 위해 올리는 사이트-> 사이버 해킹 피해를 검색하기 위해 확인하는 사이트로 사용될 수 있다( Zone-H.org - Unrestricted information )
  • Mozilla Observatory(모질라): 웹페이지의 보안을 시험해주고 보안 취약점과 개선점 등을 파악하여 보고서를 만들어주는 사이트(Mozilla Observatory )
  • Shodan: 인터넷에 연결된 기기를 검색할 수 있는 엔진으로, 특정 IP 대역이나 포트에서 실행 중인 서비스를 탐지하여 취약한 장비를 확인할 수 있다.( Shodan Search Engine )
  • CVE (Common Vulnerabilities and Exposures): 공개된 소프트웨어의 보안 취약점을 모아 놓은 데이터베이스로, 특정 시스템이나 소프트웨어의 취약점을 확인하고 대응책을 마련하는 데 도움을 준다.( CVE Website )
  • Wireshark: 네트워크 프로토콜 분석 도구로, 네트워크 트래픽을 캡처하고 분석하여 이상 징후를 발견할 수 있다.( Wireshark · Go Deep )

*PPT

[10주차]보안관제.pptx
3.63MB

 

 

출처

https://maker5587.tistory.com/11

Zero Trust 다양한 IT정보와 보안 이야기 (tistory.com)

‘보안관제’에 관한 모든 것 : 네이버 블로그 (naver.com)

 

'Security > 보안관제' 카테고리의 다른 글

악성코드 샘플 분석  (2) 2024.11.03
정적, 동적 Tool 실습  (4) 2024.10.26
샘플 분석 환경 구성  (4) 2024.10.12
악성코드 정적, 동적분석  (0) 2024.09.27
Virustotal  (0) 2024.09.19

악성코드

  • 악성코드(Malware)란 시스템이나 네트워크에 해를 끼치거나 불법적인 접근을 시도하는 소프트웨어를 의미한다.
  • 시스템의 성능을 저하시킬 수 있고, 데이터 손상, 정보 유출, 불법적 접근 등 다양한 피해를 초래할 수 있다.

출처:https://image.zdnet.co.kr/2016/10/04/imc_FeKfHanyjDOjKGpH.jpg

 

정탐과 오탐, 미탐의 의미

  • 정탐 (True Positive)
    정탐은 탐지 시스템이 올바르게 악성 행위를 탐지한 경우를 말한다. 예를 들어, 실제로 악성코드가 존재하는 파일을 악성으로 정확히 탐지한 경우이다.
  • 오탐 (False Positive)
    오탐은 탐지 시스템이 잘못된 탐지를 수행한 경우를 의미한다. 즉, 실제로 악성코드가 없는 정상 파일을 악성코드로 잘못 탐지한 경우이다. 오탐은 사용자에게 불필요한 경고를 발생시키거나 시스템의 신뢰성을 저하시킬 수 있다.
  • 미탐 (False Negative)
    미탐은 탐지 시스템이 악성 행위를 놓치는 경우를 의미한다. 즉, 실제로 악성코드가 존재하는데도 이를 탐지하지 못한 경우이다. 미탐은 심각한 보안 위험을 초래할 수 있다.
  악성코드 있음 악성코드 없음
탐지 시스템: 악성 정탐 (True Positive) 오탐 (False Positive)
탐지 시스템: 정상 미탐 (False Negative) 정탐 (True Negative)
  • 정탐 (True Positive): 악성코드를 정확히 탐지한 경우 (실제 악성코드 있음).
  • 오탐 (False Positive): 정상 파일을 악성코드로 잘못 탐지한 경우 (실제 악성코드 없음).
  • 미탐 (False Negative): 악성코드를 탐지하지 못한 경우 (실제 악성코드 있음).
  • 정탐 (True Negative): 정상 파일을 정확히 정상으로 판단한 경우 (실제 악성코드 없음).

 

악성코드 유형 및 사례

1. 바이러스 (Virus)

  • 특징: 바이러스는 자신을 다른 프로그램이나 파일에 삽입하여 복제하는 악성코드이다. 사용자가 감염된 파일이나 프로그램을 실행하면 바이러스가 활성화되어 시스템 파일을 손상시키거나 데이터를 삭제하며, 네트워크를 통해 다른 시스템으로 전파될 수 있다. 일반적으로 바이러스는 다른 파일에 붙어 돌아다니며, 감염된 파일을 통해 퍼진다.
  • 대표적인 사례:
    • ILOVEYOU 바이러스 (2000년):
      • 설명: "ILOVEYOU"는 이메일을 통해 전파된 바이러스로, 제목이 "I LOVE YOU"인 이메일에 첨부된 스크립트 파일을 열면 자동으로 실행된다. 이 바이러스는 감염된 시스템의 파일을 덮어쓰고, 사용자 데이터를 삭제하거나 이메일 주소록의 모든 연락처에 자신을 전송하여 급속히 확산되었다.
      • 피해: 전 세계적으로 약 5000만 대의 컴퓨터가 감염되었으며, 기업과 정부 기관들이 큰 피해를 입었다. 이메일 시스템의 대규모 마비와 중요한 파일의 손실이 발생하였다.
출처:https://www.itworld.co.kr/files/itworld/2020/02/remove_virus_windows_1600_thumb800.jpg

2. 웜 (Worm)

  • 특징: 웜은 자가 복제 능력을 가진 악성코드로, 네트워크를 통해 독립적으로 전파된다. 웜은 시스템 파일에 직접적으로 영향을 미치지 않더라도, 네트워크 자원을 소모하거나 네트워크 트래픽을 과부하 시켜 시스템의 성능을 저하시킨다.
  • 대표적인 사례:
    • Blaster 웜 (2003년):
      • 설명: "Blaster"는 Windows 시스템의 RPC(Remote Procedure Call) 취약점을 이용하여 전파된 웜이다. 감염된 시스템은 자동으로 재부팅되며, 추가적으로 DDoS(Distributed Denial of Service) 공격을 수행하여 Microsoft의 웹사이트를 공격하기도 했다.
      • 피해: 전 세계적으로 수많은 컴퓨터가 감염되었으며, 네트워크 트래픽의 과부하와 시스템 불안정을 초래했다. 많은 기업과 개인 사용자가 시스템을 복구하기 위해 상당한 시간과 비용을 소모하였다. 
출처:https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2361AB4858F2E72628

3. 트로이 목마 (Trojan Horse)

  • 특징: 트로이 목마는 유용한 소프트웨어처럼 위장하여 사용자가 설치하도록 유도되지만, 실제로는 백그라운드에서 악성 활동을 수행한다. 스파이웨어, 백도어, 원격 제어 기능 등을 포함할 수 있으며, 사용자의 개인정보를 탈취하거나 시스템에 백도어를 열어두는 등의 악성 행동을 한다.
  • 대표적인 사례:
    • Zeus 트로이 목마 (2007년):
      • 설명: "Zeus"는 주로 금융 정보를 탈취하기 위해 설계된 트로이 목마이다. 키로깅(keylogging)과 브라우저 폼 그리핑(form-grabbing) 기능을 통해 사용자들의 온라인 뱅킹 계정 정보를 수집하고 탈취하였다.
      • 피해: 전 세계적으로 수백만 대의 컴퓨터가 감염되었으며, 많은 사용자들의 금융 정보가 유출되었다. 은행 계좌와 크레딧 카드 정보의 도난으로 금전적 손실이 발생했다.
출처:https://www.eset.com/fileadmin/ESET/INT/Pages/Features_pages/trojan-horse.png

 

4. 랜섬웨어 (Ransomware)

  • 특징: 랜섬웨어는 시스템의 파일을 암호화하여 사용자가 파일에 접근할 수 없게 만든 후, 이를 복구하기 위해 금전을 요구하는 악성코드이다. 암호화된 파일을 복구하기 위해 요구되는 금액은 비트코인 등 암호화폐로 지불하게 되며, 지불 후에도 데이터가 복구되지 않을 수 있다.
  • 대표적인 사례:
    • WannaCry (2017년):
      • 설명: "WannaCry"는 Windows의 SMB 취약점을 이용하여 빠르게 확산된 랜섬웨어이다. 감염된 시스템의 파일을 암호화하고, 이를 복구하기 위해 비트코인으로 몸값을 요구하였다.
      • 피해: 전 세계적으로 약 150개국 이상에서 20만 대 이상의 컴퓨터가 감염되었으며, 많은 병원, 기업, 기관들이 피해를 입었다. 중요한 데이터와 파일에 대한 접근이 차단되었고, 시스템 복구를 위한 몸값 요구로 인해 큰 혼란이 발생했다.
    • Petya (2016년):
      • 설명: "Petya"는 시스템의 마스터 부트 레코드(MBR)를 덮어쓰는 랜섬웨어로, 시스템 부팅을 방지하며, 사용자는 암호화된 파일을 복구하기 위해 금전을 지불해야 한다.
      • 피해: 감염된 컴퓨터는 부팅이 불가능해지며, 데이터의 암호화로 인해 시스템 운영에 심각한 지장이 생겼다. 피해를 복구하기 위한 비용과 시간 소모가 컸으며, 특히 유럽과 우크라이나에서 큰 피해를 입었다.
출처:https://seed.kisa.or.kr/resources/kisa/img/icon/icon_Lansomware_icon.png

5. 스파이웨어 (Spyware)

  • 특징: 스파이웨어는 사용자 모르게 시스템에 설치되어 사용자의 활동을 모니터링하고 민감한 정보를 수집하는 악성코드이다. 사용자의 동의 없이 설치되며, 시스템에 대한 통제권을 갖고 있는 경우가 많다.
  • 대표적인 사례:
    • CoolWebSearch (2003년):
      • 설명: "CoolWebSearch"는 사용자의 브라우저 설정을 변경하고, 특정 웹사이트로 리디렉션하며, 검색 엔진 결과를 변조하는 스파이웨어이다. 이를 통해 광고 수익을 얻고 사용자 정보를 수집하였다.
      • 피해: 사용자의 브라우징 경험을 방해하고, 의도치 않은 광고와 웹사이트로의 리디렉션으로 인해 시스템 성능이 저하되었으며, 개인정보 수집과 사용자의 온라인 행동 감시에 피해를 입었다.
출처:https://nordvpn.com/wp-content/uploads/blog-featured-line-stalker-cybersecurity.svg

6. 애드웨어 (Adware)

  • 특징: 애드웨어는 주로 사용자에게 불필요한 광고를 지속적으로 표시하는 소프트웨어이다. 사용자의 동의 없이 광고를 표시하거나, 브라우저 설정을 변경하여 특정 사이트로 리디렉션한다. 사용자의 동의 하에 설치되기도 하지만, 광고를 강제로 표시하는 경우가 많다.
  • 대표적인 사례:
    • Gator (2000년대 초):
      • 설명: "Gator"는 웹 브라우저에 광고 배너를 삽입하고, 사용자의 브라우징 습관을 추적하여 맞춤형 광고를 제공하는 애드웨어이다. 사용자는 웹 페이지에서 많은 광고 팝업을 경험하게 된다.
      • 피해: 웹 브라우징 경험을 방해하고, 시스템 성능을 저하시켰으며, 사용자의 개인정보와 브라우징 데이터를 수집하여 광고주에게 제공하였다.
    • Fireball (2017년):
      • 설명: "Fireball"은 브라우저 하이재커로, 사용자의 검색 엔진과 홈 페이지를 변경하여 광고를 표시하고, 사용자의 데이터를 수집하는 애드웨어이다.
      • 피해: 사용자의 브라우저 설정을 무단으로 변경하고, 광고 수익을 창출하기 위해 사용자의 행동 데이터를 수집하였다. 이는 브라우징 경험을 방해하고, 개인 정보 유출의 위험을 증가시켰다.
출처:https://miro.medium.com/v2/resize:fit:828/format:webp/1*7c2sJt2GZiXR177hg2Do4g.png

 

 

악성코드 유형 특징 대표적인 사례
바이러스 (Virus) 파일이나 부팅 섹터를 감염시키며, 자기 복제하여 확산하는 악성코드이다. ILOVEYOU
웜 (Worm) 네트워크를 통해 스스로 복제하고 전파되는 악성코드이다. Blaster Worm
트로이 목마 (Trojan Horse) 유용한 소프트웨어로 위장해 설치되지만, 백그라운드에서 악성 활동을 수행하는 악성코드이다. Zeus
랜섬웨어 (Ransomware) 시스템의 파일을 암호화한 후, 금전을 요구하는 악성코드이다. WannaCry
스파이웨어 (Spyware) 사용자의 활동을 모니터링하고 정보를 수집하는 악성코드이다. CoolWebSearch
애드웨어 (Adware) 불필요한 광고를 지속적으로 표시하는 소프트웨어이다. Gator, Fireball

 

*PPT

[9주차]악성코드.pptx
3.34MB

'Security > Network' 카테고리의 다른 글

Firewall, DDoS, IDS 와 IPS 의 특징 및 차이점  (0) 2024.08.24
계층별 주요 프로토콜(2)  (0) 2024.08.12
계층별 주요 프로토콜(1)  (1) 2024.08.10
OSI 계층 별 장비  (4) 2024.07.23
TCP와 UDP의 특징 및 차이점  (1) 2024.07.16

DDoS (분산 서비스 거부 공격, Distributed Denial of Service)

  • 여러 대의 장비를 이용해 특정 서버나 네트워크에 대량의 트래픽을 보내 서비스 운영을 방해하는 공격이다

DDoS 공격의 특징

  • 분산된 공격: DDoS 공격은 여러 장치를 동시에 사용하여 이루어진다. 공격 트래픽의 출처는 다양하고 분산되어 있다. 이 장치들은 보통 **봇넷(Botnet)**이라고 불리는 악성 네트워크에 속하며, 감염된 컴퓨터나 IoT 장치로 구성된다.
  • 대규모 트래픽: 공격자는 목표 시스템에 막대한 양의 트래픽을 보내 시스템의 네트워크 대역폭, CPU, 메모리 등의 자원을 소진시킨다. 그 결과, 정상적인 사용자가 서비스에 접근할 수 없게 만든다. 이러한 대규모 트래픽은 서비스의 성능 저하, 접속 불가, 또는 완전한 서비스 중단을 초래할 수 있다.
  • 여러 유형의 공격: DDoS 공격은 다양한 방식으로 수행된다.
    • 볼륨 기반 공격(Volumetric Attack): 대량의 트래픽을 발생시켜 네트워크 대역폭을 소진시키는 공격이다. 대표적으로 UDP Flood, ICMP Flood, DNS 증폭(DNS Amplification) 등이 있다.
    • 프로토콜 공격(Protocol Attack): 네트워크 프로토콜의 취약점을 악용하여 서버 자원을 소진시키는 공격이다. SYN Flood, Ping of Death 등이 있다.
    • 애플리케이션 계층 공격(Application Layer Attack): 특정 애플리케이션 또는 서비스의 취약점을 노려 자원을 소진시키는 공격이다. HTTP Flood, Slowloris 등이 이에 해당한다.
출처:https://cf-assets.www.cloudflare.com/slt3lc6tev37/7xwaGxGINeyxavVbrXO6M1/24f139faac6094044adaa84c82394962/ddos_attack_traffic_metaphor.png

DDoS 공격의 주요 유형

  • UDP 플러드(UDP Flood):
    • UDP(User Datagram Protocol) 패킷을 대량으로 전송하여 타겟 시스템이 이를 처리하느라 자원을 소모하게 만든다. 응답을 요구하지 않는 패킷으로 서버의 대역폭을 소모시킨다.
  • SYN 플러드(SYN Flood):
    • TCP 연결의 시작 단계에서 SYN 패킷을 대량으로 보내고, 서버가 SYN/ACK로 응답한 후 ACK 패킷을 받지 못하게 한다. 서버의 연결 대기열을 가득 채워 다른 요청을 처리하지 못하게 만든다.
  • DNS 증폭(DNS Amplification):
    • 공격자는 작은 DNS 요청 패킷을 여러 DNS 서버에 보내고, 이 요청이 반사되어 타겟 시스템에 대규모의 응답 패킷이 전송되게 한다. 반사된 응답이 타겟 서버에 큰 부하를 준다.
  • HTTP 플러드(HTTP Flood):
    • 웹 서버의 특정 페이지나 리소스에 대량의 HTTP 요청을 보내, 서버가 이를 처리하느라 리소스를 소모하도록 만든다. 주로 애플리케이션 계층에서 이루어지는 공격이다.
  • Slowloris:
    • 타겟 서버에 매우 느린 속도로 HTTP 헤더를 전송하여 서버의 연결을 점유하고, 새로운 연결을 차단하여 서버가 정상적인 요청을 처리하지 못하게 한다.

DDoS 공격의 영향

  • 서비스 중단: DDoS 공격은 타겟 서비스의 가용성을 심각하게 저하시킨다. 서비스가 중단되면 고객 신뢰도 저하, 비즈니스 손실, 브랜드 이미지 손상 등의 심각한 결과를 초래할 수 있다.
  • 비용 증가: 서비스 복구와 방어를 위한 비용, 그리고 서비스 중단으로 인한 손실 비용이 크게 증가할 수 있다.
  • 보안 위협: DDoS 공격은 다른 유형의 공격(예: 데이터 유출 공격)과 함께 수행될 수 있어 보안 위협이 더욱 증대될 수 있다.

Firewall (방화벽)

  • 네트워크 경계를 설정하여, 허용된 트래픽만 통과시키고 의심스러운 트래픽을 차단하는 보안 장비이다.
출처:https://upload.wikimedia.org/wikipedia/commons/5/5b/Firewall.png

방화벽의 주요 특징

  • 네트워크 경계 보안: 방화벽은 네트워크의 외부와 내부를 구분하고, 이 경계를 통해 오가는 모든 트래픽을 제어한다. 이를 통해 외부의 위협이 내부 네트워크에 침투하는 것을 방지할 수 있다.
  • 트래픽 필터링: 방화벽은 설정된 보안 정책에 따라 인바운드 및 아웃바운드 트래픽을 필터링한다. 이 필터링은 IP 주소, 포트 번호, 프로토콜, 애플리케이션 등의 기준에 따라 수행되며, 불법적이거나 의심스러운 트래픽은 차단되고 허가된 트래픽만이 통과할 수 있다.
  • 접근 제어: 방화벽은 사용자 또는 시스템의 접근을 제어할 수 있다. 예를 들어, 특정 IP 주소나 포트에 대한 접근을 제한하거나 허용할 수 있으며, 이를 통해 네트워크 자원에 대한 불법적인 접근을 방지할 수 있다.
  • 로그 및 모니터링: 방화벽은 통과하는 트래픽에 대한 로그를 기록하고, 이를 통해 네트워크 활동을 모니터링할 수 있다. 관리자는 이 로그를 분석하여 잠재적인 보안 위협을 탐지하고, 이를 기반으로 보안 정책을 수정할 수 있다.

방화벽의 주요 기능

  • 접근 제어 목록(ACL, Access Control List):
    • 방화벽은 ACL을 사용하여 어떤 트래픽이 허용되고 어떤 트래픽이 차단될지를 정의한다. ACL은 IP 주소, 포트 번호, 프로토콜 등의 기준에 따라 세부적인 접근 제어 규칙을 설정할 수 있다.
  • NAT(Network Address Translation):
    • NAT는 방화벽의 중요한 기능 중 하나로, 내부 네트워크의 프라이빗 IP 주소를 외부에 노출하지 않고 퍼블릭 IP 주소로 변환하여 외부와의 통신을 가능하게 한다. 이를 통해 내부 네트워크의 IP 주소를 숨기고 외부에서의 직접적인 공격을 방지할 수 있다.
  • VPN 지원:
    • 방화벽은 가상 사설망(VPN) 기능을 제공하여 외부에서 내부 네트워크로의 안전한 접속을 가능하게 한다. VPN을 통해 암호화된 터널을 생성하고 원격 사용자나 지사 간의 안전한 통신을 지원한다.
  • 로그 및 보고:
    • 방화벽은 트래픽 활동에 대한 로그를 기록하고, 관리자가 네트워크 상태를 모니터링하고 분석할 수 있도록 다양한 보고서를 제공한다. 이를 통해 의심스러운 활동을 감지하고 보안 사고에 신속히 대응할 수 있다.

방화벽의 주요 유형

  • 패킷 필터링 방화벽 (Packet Filtering Firewall)_1세대:
    • 가장 기본적인 형태의 방화벽으로, 네트워크 계층에서 작동한다. IP 주소, 포트 번호, 프로토콜 등의 정보를 기반으로 개별 패킷을 검사하고, 규칙에 따라 허용하거나 차단한다.
    • 장점: 구현이 간단하고 빠르며, 기본적인 보안을 제공한다.
    • 한계: 상태를 유지하지 않기 때문에, 세션 정보를 기반으로 한 공격을 방어하기 어렵다.
  • 상태기반 방화벽 (Stateful Inspection Firewall)_2세대:
    • 패킷 필터링 방화벽의 기능을 확장하여 패킷의 상태(세션 정보)를 추적한다. TCP/IP 연결 상태를 기반으로 허가된 세션의 트래픽만 허용하고, 비정상적인 세션의 트래픽을 차단한다.
    • 장점: 트래픽의 세션 정보를 추적하여 더 정교한 필터링을 제공하며, 불법적인 연결 시도를 차단할 수 있다.
    • 한계: 상태 추적이 추가되면서 성능에 영향을 줄 수 있다.
  • 응용 계층 방화벽 (Application Layer Firewall)_3세대:
    • OSI 모델의 응용 계층에서 작동하며, 특정 애플리케이션 프로토콜(예: HTTP, FTP, SMTP)을 검사하고 제어한다. 애플리케이션 레벨에서 트래픽을 분석하여 애플리케이션 수준의 공격(예: SQL 인젝션, 크로스 사이트 스크립팅)을 차단할 수 있다.
    • 장점: 애플리케이션 레벨에서 상세한 보안 제어가 가능하며, 고급 공격에 대해 더 강력한 보호를 제공한다.
    • 한계: 트래픽 검사로 인해 성능이 저하될 수 있으며, 설정이 복잡하다.
  • 프록시 방화벽 (Proxy Firewall):
    • 클라이언트와 서버 사이에 위치하여 클라이언트의 요청을 대신 서버에 전달하고, 그 응답을 다시 클라이언트에게 전달하는 역할을 한다. 클라이언트와 서버 간의 직접적인 연결을 차단하여 보안을 강화한다.
    • 장점: 트래픽을 완전히 검토할 수 있어 높은 수준의 보안을 제공한다.
    • 한계: 모든 트래픽을 처리하므로 성능이 저하될 수 있으며, 설정과 관리가 복잡할 수 있다.
  • 차세대 방화벽 (Next-Generation Firewall, NGFW):
    • 기존의 방화벽 기능에 침입 방지 시스템(IPS), 애플리케이션 인식, 고급 위협 방어 기능 등을 통합한 고급 보안 장비이다. NGFW는 심층 패킷 분석(Deep Packet Inspection, DPI)을 통해 트래픽의 내용을 검사하고 악성 활동을 탐지하고 차단할 수 있다.
    • 장점: 다양한 보안 기능을 통합하여 복잡한 현대의 보안 위협에 대해 더 강력한 보호를 제공한다.
    • 한계: 고급 기능으로 인해 비용이 높고, 성능 저하가 발생할 수 있다.

 

방화벽의 역할과 중요성

  • 외부 위협으로부터의 보호: 방화벽은 외부의 악성 트래픽과 공격으로부터 내부 네트워크를 보호하는 데 중요한 역할을 한다. 이는 해커, 악성 소프트웨어, 봇넷 등의 위협을 차단하여 네트워크와 데이터를 안전하게 유지한다.
  • 내부 보안 강화: 방화벽은 외부 위협뿐만 아니라 내부 사용자나 시스템 간의 접근을 제어하여 내부 보안도 강화할 수 있다. 예를 들어, 특정 부서만이 특정 서버에 접근할 수 있도록 설정할 수 있다.
  • 법적 및 규제 준수: 많은 산업에서 방화벽을 통해 네트워크 보안을 유지하고 규제 요구 사항을 준수해야 한다. 방화벽은 이러한 요구 사항을 충족하는 데 중요한 요소이다.

한계와 도전 과제

  • 제로데이 공격: 방화벽은 미리 정의된 규칙에 따라 트래픽을 제어하기 때문에 새로운 유형의 공격(제로데이 공격)에 대해서는 취약할 수 있다.
  • 암호화된 트래픽: HTTPS와 같은 암호화된 트래픽은 방화벽이 내용을 분석하기 어렵게 만든다. 이를 해결하기 위해 SSL/TLS 복호화 기능을 사용할 수 있지만, 이는 성능 저하를 유발할 수 있다.
  • 복잡한 설정: 특히 큰 네트워크에서는 방화벽 규칙을 잘못 설정하면 정상적인 트래픽이 차단되거나 보안이 제대로 이루어지지 않을 수 있다. 따라서 방화벽 설정과 관리가 매우 중요하다.

IDS(침입 탐지 시스템, Intrusion Detection System)

  • 네트워크나 시스템에서 악의적인 활동을 모니터링하고 경고를 생성하지만, 직접적인 차단 기능은 제공하지 않는 보안 시스템이다.

 
 
특징:

  • 탐지 기능: IDS는 네트워크나 시스템을 모니터링하며, 악의적인 활동이나 정책 위반을 탐지한다. 주로 로그, 패킷 데이터, 파일 무결성 등을 분석하여 비정상적인 활동을 식별한다.
  • 수동적 대응: IDS는 의심스러운 활동을 탐지하면 경고 메시지를 관리자에게 전달하거나 로그에 기록한다. 직접적으로 공격을 차단하거나 중지하지 않으며, 관리자는 이 정보를 바탕으로 후속 조치를 취할 수 있다.
  • 네트워크 기반(NIDS)과 호스트 기반(HIDS):
    • 네트워크 기반 IDS(NIDS): 네트워크 트래픽을 실시간으로 모니터링하며, 전체 네트워크를 대상으로 탐지한다.
    • 호스트 기반 IDS(HIDS): 개별 호스트나 시스템에서 동작하며, 파일 시스템, 로그, 운영 체제의 활동을 모니터링한다.
  • 시그니처 기반 탐지(Signature-based Detection): IDS는 알려진 공격 패턴이나 서명을 기반으로 탐지한다. 이는 이미 알려진 공격에 대해 효과적이지만, 새로운 유형의 공격(제로데이 공격)에는 취약할 수 있다.
  • 행위 기반 탐지(Anomaly-based Detection): 비정상적인 행위를 탐지하기 위해 정상적인 활동의 기준을 설정하고, 이와 다른 행동이 감지되면 이를 의심스러운 활동으로 식별한다. 이는 제로데이 공격과 같은 새로운 위협을 탐지하는 데 유용할 수 있다.

한계:

  • 실시간 차단 불가: IDS는 탐지된 공격에 대해 경고만 할 수 있으며, 실시간으로 공격을 차단하거나 대응하지 못한다.
  • 오탐 및 미탐: 비정상적인 활동을 탐지하는 과정에서 정상적인 활동을 오탐하거나, 실제 공격을 미탐할 가능성이 있다.
  • 관리자의 개입 필요: IDS가 탐지한 경고에 대해 관리자가 직접 대응해야 하므로, 신속한 대응이 어려울 수 있다.

IPS(침입 방지 시스템, Intrusion Prevention System)

  • 악의적인 활동을 실시간으로 탐지하고 자동으로 차단하여, 공격을 방지하는 보안 장비이다.

특징:

  • 탐지 및 방지 기능: IPS는 IDS와 유사하게 네트워크나 시스템에서 발생하는 비정상적인 활동을 탐지하지만, 탐지된 위협에 대해 즉시 대응하여 공격을 차단하거나 억제하는 기능을 추가로 제공한다.
  • 능동적 대응: IPS는 실시간으로 탐지된 위협에 대해 자동으로 대응한다. 예를 들어, 악성 트래픽을 차단하거나 공격 소스를 차단하는 등의 조치를 즉시 취한다.
  • 네트워크 기반(NIPS)과 호스트 기반(HIPS):
    • 네트워크 기반 IPS(NIPS): 네트워크 트래픽을 모니터링하고, 비정상적인 트래픽을 실시간으로 차단한다.
    • 호스트 기반 IPS(HIPS): 개별 시스템에서 동작하며, 시스템 내부의 비정상적인 활동을 차단한다.
  • 심층 패킷 분석(Deep Packet Inspection, DPI): IPS는 트래픽의 내용을 심층적으로 분석하여 악성 코드나 비정상적인 활동을 탐지한다. 이를 통해 애플리케이션 계층에서 발생하는 공격도 효과적으로 차단할 수 있다.
  • 시그니처 기반 및 행위 기반 탐지: IPS는 시그니처 기반 탐지와 행위 기반 탐지를 모두 사용하여, 다양한 유형의 공격을 탐지하고 차단한다. 알려진 공격과 새로운 유형의 공격에 대해 모두 대응할 수 있다.

한계:

  • 성능 영향: 실시간으로 트래픽을 분석하고 차단하기 때문에, 네트워크 성능에 영향을 줄 수 있다. 특히 고속 네트워크 환경에서 처리량 저하가 발생할 수 있다.
  • 오탐으로 인한 서비스 방해: IPS가 정상적인 트래픽을 오탐하여 차단할 경우, 이는 서비스 방해(Denial of Service) 상황을 초래할 수 있다.
  • 복잡한 설정과 관리: 효과적인 방지를 위해 세부적인 설정과 규칙 관리가 필요하며, 이는 관리자의 전문성을 요구한다.
출처:https://www.paloaltonetworks.co.kr/content/dam/pan/en_US/images/cyberpedia/ids-ips.png?imwidth=1920

 
기능방화벽 (Firewall)/침입 탐지 시스템 (IDS)/침입 방지 시스템 (IPS)의 특징

 FirewallIDSIPS
목적네트워크 경계에서 트래픽 필터링 및 접근 제어네트워크 또는 시스템의 비정상적인 활동 탐지 및 경고네트워크 또는 시스템의 비정상적인 활동 탐지 및 차단
작동 위치네트워크 경계(외부와 내부 사이)네트워크 내 또는 시스템 내부네트워크 내 또는 시스템 내부
트래픽 제어인바운드 및 아웃바운드 트래픽을 필터링트래픽을 모니터링하고 분석하지만 필터링하지 않음트래픽을 모니터링하고 분석하며 악성 트래픽을 차단
주요 기능IP 주소, 포트 번호, 프로토콜 기반의 트래픽 필터링패턴 기반 또는 이상 탐지 방식으로 비정상적 행동 탐지비정상적 행동을 탐지하고 실시간으로 차단
트래픽 분석패킷의 헤더 정보를 검사하고 규칙에 따라 허용 또는 차단트래픽 패턴과 행동을 분석하여 의심스러운 활동 탐지심층 패킷 분석을 통해 공격을 식별하고 차단
응답 방식설정된 규칙에 따라 트래픽 차단 또는 허용공격 발생 시 관리자에게 경고 및 로그 기록공격 발생 시 자동으로 공격 차단 및 대응
장점네트워크 경계에서 기본적인 보안 제공, 설정이 비교적 간단공격 탐지와 경고 기능 제공, 네트워크 상태의 가시성 제공실시간으로 공격을 차단하여 네트워크 보호
한계새로운 유형의 공격(제로데이 공격)에 취약, 암호화된 트래픽 처리 어려움공격을 탐지하지만 차단하지는 않음, 많은 False Positive 발생 가능성능 저하를 초래할 수 있으며, 복잡한 설정이 필요할 수 있음
로그 및 모니터링트래픽 로그를 기록하고 네트워크 활동 모니터링 가능공격 탐지 및 경고를 위한 로그 기록, 분석 가능공격 차단 및 로그 기록, 실시간 모니터링 가능

Firewall, IDS, IPS의 DDoS 대처

  1. Firewall (방화벽)과 DDoS:
    • 역할: 방화벽은 DDoS 공격의 첫 번째 방어선으로 작동합니다. 방화벽은 트래픽을 필터링하여 악의적인 IP 주소나 비정상적인 트래픽 패턴을 차단할 수 있다.
    • 한계: 전통적인 방화벽은 대량의 트래픽을 처리하는 데 한계가 있을 수 있으며, 대규모 DDoS 공격 시 방화벽 자체가 과부하에 걸릴 수 있다. 이는 공격이 방화벽을 무력화시키고 내부 네트워크로 침투하게 할 위험을 증가시킨다.
  2. IDS (Intrusion Detection System)와 DDoS:
    • 역할: IDS는 DDoS 공격을 탐지하는 데 중요한 역할을 한다. IDS는 네트워크 트래픽을 모니터링하여 비정상적인 트래픽 증가나 특정 패턴을 감지하고, DDoS 공격의 징후를 경고한다.
    • 한계: IDS는 단순히 탐지하고 경고를 보내는 역할만 수행하므로, DDoS 공격을 직접 차단할 수 없다. 관리자는 IDS가 제공하는 정보를 바탕으로 공격에 대응해야 한다.
  3. IPS (Intrusion Prevention System)와 DDoS:
    • 역할: IPS는 IDS의 기능에 실시간 차단 기능이 추가된 것으로, DDoS 공격을 탐지한 후 즉시 공격 트래픽을 차단할 수 있다. IPS는 비정상적인 트래픽을 실시간으로 분석하고, 의심스러운 패킷이나 트래픽 흐름을 차단하여 DDoS 공격의 영향을 최소화하려고 한다.
    • 한계: 대규모 DDoS 공격에 대한 실시간 대응 과정에서 성능 저하가 발생할 수 있으며, 정상적인 트래픽이 오탐으로 인해 차단될 위험도 있다. 또한, 모든 공격을 완전히 차단하지 못할 수도 있다.
  4. 전문 DDoS 방어 솔루션과의 연관성:
    • 방화벽, IDS, IPS와의 협업: 방화벽, IDS, IPS는 기본적인 보안 솔루션이지만, 대규모 DDoS 공격에 대응하기 위해서는 전용 DDoS 방어 솔루션과 협력하는 것이 일반적이다. 이러한 전용 솔루션은 대규모 트래픽 분석, 공격 패턴 식별, 트래픽 필터링 등을 통해 DDoS 공격을 더 효과적으로 방어할 수 있다.
    • 클라우드 기반 DDoS 방어: 많은 조직은 클라우드 기반 DDoS 방어 솔루션을 사용하여, 대규모 공격을 클라우드에서 흡수하고 필터링한다. 이러한 솔루션은 방화벽, IDS, IPS와 연동하여 네트워크의 보안을 강화한다.

 

*PPT

[8주차]Firewall, DDoS, IDS, IPS 특징 및 차이점.pptx
2.26MB

출처

침입 탐지 시스템이란? - Palo Alto Networks
방화벽 (네트워킹) - 위키백과, 우리 모두의 백과사전 (wikipedia.org)
Firewall, DDoS, IDS, IPS (velog.io)
+chatgpt

'Security > Network' 카테고리의 다른 글

악성코드  (0) 2024.08.27
계층별 주요 프로토콜(2)  (0) 2024.08.12
계층별 주요 프로토콜(1)  (1) 2024.08.10
OSI 계층 별 장비  (4) 2024.07.23
TCP와 UDP의 특징 및 차이점  (1) 2024.07.16

+ Recent posts