나의 IT일지
네트워크 공격 본문
보안은 데이터의 위/변조를 보호하는 무결성, ID, PW를 통한 인증을 통한 기밀성, 이중화를 통한 운영을 지속시키는 가용성이라는 특징을 가지고 있으며, 패킷이나 트래픽을 보안하는 네트워크 보안과 ID, PW, 권한을 보안하는 시스템 보안으로 운영한다.
회사나 그룹에서는 시스템 / 서버를 구축하는 경우에 필연적으로 신경 써야 하는 부분이며, 만약 시스템 / 서버 보안에 대한 취약점은 발생하는 경우, 해당 취약점을 통해 제 3자가 무단으로 시스템 / 서버에 접근을 하여, 서버의 기밀 정보를 가져가거나 정상적으로 운영하지 못하도록 방해한다.
이렇게 컴퓨터 기술 및 네트워크 시스템에 대한 전문 지식을 사용하여 시스템에 무단으로 접근 / 조작하거나 방해하는 행위를 해킹 공격이라고 한다.
- 네트워크 공격 : 과도한 네트워크 트레픽을 만들어 서버가 정상적으로 작동하지 못하도록 하는 방식
- 서비스 거부공격(DOS(Denial-Of-Service attack)) : 1:1로 공격대상의 리소스를 고갈시키는 방식
- 분산서비스거부공격(DDOS(Distributed Denial of Service)) : c&c서버(command & control )와 봇넷 (botnet)을 활용하여 다수의 PC로 공격 대상의 리소스를 고갈시키는 방식
- C&C(Command & Control)서버 : 좀비PC를 제어하는 서버
- 좀비PC : c&c 서버의 명령에 따라 원격적인 행동을 취하게되는 악성코드 감염PC로, 백그라운드에서 진행되기에 평범하게 알 수 없다.
- 분산 반사 공격 (DRDOS(Distributed Reflect Dos)) : DDOS의 진화형태로, smuf공격과 굉장히 유사하지만 하나의 공격자가 서로다른 IP대역의 서버에 tcp를 보내고 해당 응답 패킷을 피해자에게 보냄으로써 서비스 자원을 공격하는 방식
- 백도어 공격 : 정상적인 인증과정 없이 접근하는 공격
- 피싱 공격 : 위장 전자 우편등을 통해 개인정보를 갈취하는 공격
- 파밍 공격 : 공식적으로 운영하는 서버와 같은 서버를 만들어 개인정보를 갈취하는 공격
- 스니핑 공격 : 네트위크 통신내용을 도청하는 공격
- 스푸핑 공격 : 주소를 변조하여 해커의 컴퓨터를 통해 통하도록 하여, 통신내용을 변조하거나 갈취하는 공격
네트워크 공격
네트워크 공격이란 네트워크를 통해 피해자 PC로 수 많은 패킷을 보내 PC에 과부화를 일으켜 가용성을 위협하는 공격다. 이때 주로 IP 주소를 속여 공격자의 IP를 감추는 스푸핑 형식의 공격방식을 사용하며, 이러한 네트워크 공격은 종류마다 다른 대처하는 방식을 가지고 있다.
- 네트위크 공격 유형
- 네트워크 대역폭 소모
- UDP flooding , icmp flooding(smurf).... land attack..... 등등
- 시스템 서비스 자원고갈
- SYN flooding, tcp connection flooding,
- 어플리케이션 취약점 공격
- HTTP GET Flooding.... sloworis등......
- 단편화공격
- bonk : 시퀀스 넘버 1로 변경시켜서 재전송을 요구시키는 공격
- boink : 시퀀스 넘버를 중간 숫자로 변경시키는 재전송을 요구시키는 공격
- teardrop : 패킷을 겹치게 전송을 하고 IP 패킷전송이 나누어졌다가 다시 재조합하는 과정의 취약점 공격
- 네트워크 대역폭 소모
- hping3 [옵션] [목적지 IP주소] : 목적지 주소에게 ping을 보내는 명령어
옵션 | 기능 |
-1 (--icmp) | ICMP 형태 패킷 전송 |
-2 | UDP 형태 패킷 전송 |
-a [출발 IP 주소] | 출발 IP주소로 변경해서 패킷 전송 |
--rand-dest | 도착 IP주소를 랜덤으로 변경해서 패킷 전송 |
--rand-source | 출발 IP주소를 랜덤으로 변경해서 패킷 전송 |
-d [데이터량] | 데이터량 결정 |
-s [출발지 포트] | 출발지 포트를 고정해서 패킷 전송 |
-p [도착지 포트] | 도착지 포트를 결정해서 패킷 전송 (출발지 포트는 1씩 증가) |
--flood | 현 컴퓨터의 스팩을 최대한 사용해서 패킷 전송 속도 조정 |
-c [횟수] | 패킷을 해당 횟수만큼 전송 |
ping of death
- 데이터가 큰 패킷을 보내 단편화를 진행하고 서버는 해당 패킷을 받고 패킷 재결합 과정에서 메모리에 과부하를 걸리게 해서 서버가 기능을 하지 못하게 하는 공격
- hping3 -1 -d [데이터량] --flood [공격 대상 IP주소] : 해당 IP주소에게 정해진 데이터량인 icmp패킷 전송하는 명령어
- 보안 : 보통 icmp 패킷의 데이터는 64~100byte이기에, 일정크기의 큰 패킷을 차단하고 일정시간동언 한호스트에서 단편화가 되면서 너무 많은 icmp 패킷이 들어올경우 해당 호스트를 차단
IP random attack
- 공격자가 IP정보를 속인체로 대상자에게 ping을 보내서 해당 서버가 기능을 하지 못하도록 하는 공격이다.
- 패킷을 보낼 때, source IP주소를 랜덤하게 하여 전송하기에 사용자의 IP주소를 알 수 없음
- hping3 --icmp --rand-source [공격 대상 IP주소] : 해당 IP주소에게 출발지 IP주소를 랜덤하게 변경해서 패킷 전송하는 명령어
- hping3 --icmp --rand-source -d [데이터량] [공격 대상 IP주소] --flood : 해당 IP주소에게 출발지 IP주소를 랜덤하게 변경해서 정해진 데이터량인 icmp패킷 전송하는 명령어
- 보안 : NAC와 같은 MAC주소를 감지할수 있는 보안장비를 통해 ip 와 mac을 매칭을 하고 다를경우 차단
Land Attack
- 출발지 IP주소를 대상자와 같게 해서 내부의 트래픽을 증가시켜 시스템의 리소스를 공격해 메모리에 부하를 주는 공격
- hping3 --icmp -a [공격대상 IP주소] [공격대상 IP주소] : 출발지 IP주소를 공격대상 IP주소로 변경해서 공격대상 IP주소에게 icmp패킷을 전송하는 명령어
- hping3 --icmp -a [공격대상 IP주소] [공격대상 IP주소] -d 40000 --flood : 출발지 IP주소를 공격대상 IP주소로 변경해서 공격대상 IP주소에게 icmp패킷을 정해진 데이터량으로 전송하는 명령어
- 보안 대책 : 출발지와 목적지가 같을 경우 차단
- hping3 --icmp -a [공격대상 IP주소] [공격대상 IP주소] : 출발지 IP주소를 공격대상 IP주소로 변경해서 공격대상 IP주소에게 icmp패킷을 전송하는 명령어
Smurf attack
- 패킷의 출발IP주소를 희생 컴퓨터로 바꿔서 다른 컴퓨터에게 핑을 보낸 뒤 해당 핑의 응답을 희생자 컴퓨터가 받도록 하는 공격
- hping3 -a [공격대상 IP주소] [목적지의 브로드캐스트 IP주소] -flood --icmp : icmp패킷의 출발지 IP주소를 희생자 컴퓨터로 변경해서 보안이 취약한 컴퓨터들에게 전송하는 명령어
- 보안 대책 : host에서 broadcast를 호출하는 패킷을 차단 → 보안 대책 완료 되어 있는 상태
- 라우터 → no ip directed-broadcast : 해당 포트로 들어오는 패킷중 broadcast 주소인 패킷을 필터링
- 리눅스 시스템 → echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts : 목적지의 보안 정책중 broadcast주소로 오는 icmp패킷은 request하지 않도록 설정
TCP SYN FLOODING
TCP의 연결과정에서 컴퓨터에 SYN신호가 도착했을 경우, 해당 연결정보는 SYN backlog에 저장이 되며, 3way- handshake가 종료되서 연결상태가 되면 해당 연결정보는 listen backlog에 저장되는 특징을 가지고 있다. 즉, SYN backlog에 연결정보가 있는 상태에서 ACK패킷을 받지 못한다면 해당 연결정보는 SYN backlog에 남게 된다.
- SYN신호인 패킷을 많이 전송하고 SYN신호를 보낸 IP주소에서 ACK신호인 패킷을 보내지 않아 SYN backlog의 대기큐가 가득 차게 함으로써, 정상 클라이언트와의 연결정보를 저장하지 못하도록 하는 공격
- hping3 --rand-source [공격대상 IP주소] -p [포트] -S --flood : 해당 공격대상의 포트에 SYN신호인 패킷을 무작위의 출발지 IP주소로 전송하는 명령어
- 보안 대책 : tcp_syncookie 활성화해서 3way handshack를 검사하여 완료된 세션만 listen backlog에 기록 → 보안 대책 완료 되어 있는 상태
- tcp_syncookie : 3way-handshake 를 검사가 완료된 세션만 listen backlog로 넘기도록 하는 것
- 리눅스 시스템 → echo 1 > /proc/sys/net/ipv4/tcp_syncookies : 공격대상의 보안 정책중 syncookies를 활성화하여, SYN backlog를 사용하지 않도록 설정
TCP Connect Flooding
- TCP의 연결과정인 3way-handshake 과정을 과도하게 유발 기존의 SYN Flooding 보안대책을 무력화시킨 공격
- nping --tcp-connect -p [포트] -rate=[초당 보내는 갯수] -c [보낼 패킷 갯수] -q [공격대상 IP] : TCP로 공격대상에게 초당 해당 갯수를 보낼 패킷 갯수만큼 해당 포트로 전송하는 명령어
- 보안대책 : 같은 종류의 여러 패킷이 한번에 들어오는 것을 필터링, IP당 세션 제한
SLOWLORIS 공격
- HTTP Header(기본 정보)의 zero 코드(마무리 코드)를 비정상적으로 조작하여 온전한 Header정보가 올 때 까지 기다리도록 하여 다른 세션이 연결할수 없도록 하는 공격
- slowhttptest -c [세션 갯수] -g -o slowloris -i [전송간격] -r [초당 전송수] -t GET -x 3 -p 3 -u http://[웹 IP주소]
- -c : 타겟에 연결시도할 최대 세션숫자
- -g : 변화되는 소캣의 상태 통계 생성. -o와 같이 사용
- -i : 데이터간 전송 간격
- -r : 초당 연결 수
- -x [bytes] : 탐지를 피하기 위한 random한 문자열을 X- 다음에 붙여준다.
- -p [seconds] : 지정한 시간(초)이 흐른 후에도 응답이 없으면 접속 불가능하다고 판단한다.
- 보안 대책 : 세션 임계치 제한(keepalive)함으로써 서버응답시간 timeout 최소 설정
- slowhttptest -c [세션 갯수] -g -o slowloris -i [전송간격] -r [초당 전송수] -t GET -x 3 -p 3 -u http://[웹 IP주소]
정상 해더 | 공격 헤더 |
[UDP Flood]
- 엄청난 양의 데이터값을 UDP형태의 패킷으로 전송해서 네트워크의 bandwidth를 소모시키는 공격 → 특정 시스템이 아닌 모든 시스템의 속도 저하
- hping3 -2 --rand-source -d [데이터량] --flood [공격대상 IP주소] : UDP 패킷을 공격대상에게 전송하는 명령어
- 보안 대책 : 완벽하게 방어는 불가능하지만 보안장비에서는 클러스트링(패킷을 분산시켜 분산처리)기술을 사용해서 완화 가능
'정보보안' 카테고리의 다른 글
스왑과 쿼터 (0) | 2023.07.10 |
---|---|
윈도우 설치 및 보안 정책 (0) | 2023.07.05 |
네트워크 스캔 (0) | 2023.07.03 |
CentOS 7 mini와 KALI 리눅스 (0) | 2023.06.30 |
GNS3 (0) | 2023.06.29 |