네트워크 보안

보안공격의 종류

JNU 2022. 11. 7. 12:17
반응형

오늘은 이론적인 공부를 한번 해보려고 해

갑자기??

 

지금까지 공부한 건 단순히 설정하거나, 명령어 종류들을 배워봤다면

보안 공격이 과연 어떤 것이고, 어떻게 이뤄지는지 알아보려고 해

조금 딱딱할 수는 있지만 이론을 알아야 실습에서도 써먹을 수 있으니 꼭 보고 넘어가자

 

 

 



 

 

1. 공격의 분류

 

- 소극적 공격: passvie attack이라고 하며, system과 data에 직접적인 영향을 주지 않는 공격

ex) sniffing, 도청, 트래픽 분석( packet 분석 )

 

- 적극적 공격: active attack이라고 하며, system과 data에 직접적인 영향을 주는 공격

ex) scanning, DoS, DDoS

 

쉽게 분류하자면 소극적 공격을 제외한 모든 공격은 적극적 공격임을 알아둬!

scanning이 적극적 공격이기 때문에 함부로 다른 사이트에서 실행하면 안 된다는 것을 강조했던 거야

여기서 우리가 공격의 여러 가지 종류를 하나씩 파헤쳐 볼 건데 잘 쫓아오길~

 

 

2. 여러 가지 공격 종류

 

1. DoS ( Denial of Service ) = 자원고갈 공격

 

data나 system을 공격하여 변조를 일으키고 파괴시키는 형태의 공격이 아니라

자원을 고갈시켜서 정상적으로 사용자들이 system을 사용할 수 없도록 하는 공격을 DoS 공격이라고 해

우리가 사용하는 자원도 종류별로 많은데 다음과 같이 나눠서 볼 수 있어

 

- system 내부의 resource   >memory, process, Disk

- network 내부의 resource  >bandwidth ( 대역폭 )

- systemc 자체의 resource  >interface, CPU 등

 

DoS 공격이 이뤄지면 자원들이 과부하가 걸려서 정상적인 작동을 수행할 수 없게 돼.

그래서 만약 컴퓨터 사용시 갑자기 과부하가 걸리는 경우나

컴퓨터가 정상 작동을 안 할 경우 DoS 공격을 의심해볼 필요가 있어

이젠 DoS 공격엔 어떤 종류의 공격들이 있는지 한 번 찾아보자.

 

 

 

-Tear Drop ( packet 분할 공격 )

 

TCP 통신 환경에서 신뢰를 확보하기 위해선 3-way handshaking이 필수!

이러한 TCP의 특성을 취약점으로 삼아서 반복적인 재요청+수정을 공격 대상에게 계속 보내는 거지

결국, TCP 신호를 계속해서 받는 공격 대상은 자신이 수행할 process를 수행하지 못하게 되고 과부하에 걸리게 돼

 

그렇다면 왜 이런 일이 발생하는 걸까??

그 이유는 switch와 router의 특성 때문이야

router와 switch에 보안적인 설정을 해놓지 않으면

packet을 많이 받아도 끝까지 처리하려는 특성을 가지고 있어서

공격자들은 이를 악용하여 사용자 컴퓨터의 서비스 고갈 공격을 시도하는 거지.

이를 방지하기 위해 switch의 경우 port secuirty 

router의 경우 VLAN, NAT로 방지를 하기도 해

( port security, VLAN, NAT는 Network 편에서 따로 올리도록 할게~ )

 

본론으로 돌아와서 반복적인 재요청과 수정을 시도하게 된다면

packet에 존재하는 sequence number가 겹쳐지는 경우가 발생하게되고

공격 대상자는 sequence number를 찾느라고 또 자원을 쓰게 되지

마치 퍼즐 순서를 맞추기 위해 퍼즐조각을 이리저리 찾다보니

정작 수행해야할 일들을 하지 못하게 되는거야.

결국 자원을 불필요한 곳에 쓰기 때문에 쉽게 고갈될 수 밖에 없는 결과가 나오게 돼

 

 

그림에서 봤듯이 패킷의 시퀀스 넘버가 서로 겹치는게 보이지?

 

 

 

- Land Attack

 

출발지 IP 주소와 도착지 IP 주소를 똑같이 설정하여 공격 대상에게 보내는 공격을 말해

아래 예시를 보면 이해하기 쉬울 거야

 

SRC IP와 DST IP가 서로 Victim IP로 설정되어 looping을 초래하는 모습이야

 

공격자 자신의 IP 주소를 spoofing 해서 출발지 IP를 공격 대상자 IP로 바꿔치기한 후,

packet을 보내면 수신자는 이를 보고 자기 자신에게 계속해서 packet을 전달하게 돼

쓸데없는 packet을 처리하느라 자원을 낭비하게 되는 공격자의 공격에 걸려들게 되는 거지.

 

 

 

- Ping Of Death 공격 ( packet 분할 공격 )

 

ping of death 공격도 위의 tear drop 공격과 유사한 packet 분할 공격에 속해

하지만 둘 사이에는 큰 차이가 존재하는데 바로 packet의 크기

ping of death는 tear drop과 달리 packet을 작은 크기로 분할하여 공격을 하는 방식이 아니라 

MTU(1500 bytes) 크기만큼 packet을 할당해서 packet을 전송하여 자원을 고갈시키는 공격이야.

그리고 이 공격은 TCP 통신이 아닌 ICMP 방식을 이용한 공격임을 알아둬

( 왜냐고?? ping은 ICMP 기반 통신이니까! )

 

MTU= Maximum Transmission Unit

packet에 최대한 담을 수 있는 단위

1500byte지만 실질적으로 1460byte의 data까지만 가능

(TCP, IP header 제외)

 

그래서 packet을 최대한 크게 하여 공격 대상에게 보내면, 

packet은 network 안에서 수백 개의 packet으로 나눠져서 보내지게 돼.

밑의 그림을 보면 더 이해하기 쉬울 거야.

 

유도미사일 같은 느낌??

 

 

 

- SYN-flooding 공격

 

존재하지 않는 client가 server별로 한정된 접속가능한 공간에 접속하는 것처럼 속여

다른 user가 server의 service를 제공받지 못하게 하는 공격이야

이것도 밑에 그림으로 한번 표현해볼게

 

공격자가 syn을 보내고 server가 받은 내용에 대해 ack를 어디로 보낼지 헤매고 있어!

 

공격 대상자는 자신의 network내에 4.4.4.4라는 IP 주소를 가진 host를 찾기 위해

자신의 arp 테이블을부지런히 찾겠지......

심지어 없으면 router에 가서 '이 주소 찾아줘' 라고 해도 못 찾게 될 거야

왜냐면 라우터도 자신의 network안에 있는 주소가 아니면 찾기 어렵거든

결국 TCP의 3-way handshaking 연결 확립을 위해 부단히 노력하지만 

끝까지 처리하지 못하는 상태로 남게 되고,

이를 처리하기 위해 자원은 계속해서 낭비될 수밖에 없어

이를 SYN-Flooding 공격이라고 해

임시방편으로 SYN-Flooding 공격을 막는 방법이 있는데,

backlog Queue의 size를 늘려줌으로써 Queue에 쌓이는 시간을 지연시키는 방식이야

하지만 완벽한 해결방법이 아니기 때문에

보안 솔루션을 통해서 막는 것이 가장 효과적이라고 볼 수 있어

 

 

 

- Smurf 공격

 

일명 direct broadcast 공격이라고도 불리는 공격으로,

출발지 주소를 공격 대상자의 IP주소로 하되, 목적지 주소는 한 network의 broadcast 주소로 설정후,

network의 모든 host들이 공격 대상자에게 braodcasting에 대한 응답을 하도록 하는 공격이지. 

아무것도 하지 않았던 공격 대상자는 갑자기 broadcast에 대한 응답을 받아야 되는 상황에 처해

갑자기 많은 packet을 처리하려면 자원도 쉽게 고갈될 수밖에 없겠지?

 

공격자가 보낸 ping에 의해 T는 이제 엄청난 broadcasting을 받게 될꺼야......

 

 

 



 

결론

DoS 공격은 자원고갈 공격이다.

악성코드, 악성프로그램과 같이 system, data를 직접적으로 공격하는 것이 아닌

system의 자원을 고갈시키는 공격임을 기억하도록 하자

다음 시간에도 DoS 공격에 대해 좀 더 알아보고 

이에 대한 실습을 해보려고 해 

공부해야 할 양이 상당히 많기 때문에 실습은 다음 시간에 해보는 걸로~

 

 

 

반응형