공부?/국비 지원 일기장

59일차 - 여러기법과 바이러스

무무요 2024. 11. 5. 17:50


=======

클라이언트에서 데이터 전송을 할때 액티브 모드일땐 클라이언트가 정하고 
패시브 모드일땐 서버에서 랜덤으로 정한다

Sniffing
네트워크에서 데이터를 불법적으로 가로채고 모니터링하여 민감한 정보를 탈취하는 기법
데이터를 불법적으로 획득하는 수동적인 공격 기법

Sniffer 방어 기법
패킷을 암호화해서 송수신하는게 제일 좋습니다.

Promiscuous mode 감지
- 목적지 MAC Address를 존재하지 않는 MAC Address로 바꿔보낸다.
- ICMP로 답장이 안오면 sniffer가 존재하지 않는것, 답장이오면 나쁜컴퓨터인것

=======

FTP Passive , Active 통신 ( FTP는 기본이 Active)
제어 세션 - 21번 port
SP:8000  DP:21
7계층에선 'Data를 주고 받을 Data port를 니가 정해줘'

SP:21  DP:8000
'니몸에 2000 port 사용해, 내몸의 7000번 사용할게'
기본적으론 20번 포트를 사용하려하나 passive일 경우는 다르다

Data Session
Passive 일경우 클라이언트에서 서버쪽으로 맺으러 간다. 클라이언트가 먼저 보낸다
서버가 2000번 port를 사용하라고 했으니
SP:2000  DP:7000
하지만 21번 포트만 열려있는데 7000번 포트를 목적지 포트로 잡고가기때문에 방화벽에 막힌다.
제어 세션은 연결되었으나 데이터 세션이 연결이 되지 않는다.
서버가 SP DP를 정해줬으니 Passive는 데이터 세션을 맺는 클라이언트로 부터 시작 때문에 특정 솔루션이 적용되어 있으면 접속되지 않는다(목록 조차 안보임)

Active
FTP Active는 대부분 20번 port 사용
data전송 port를 2000번 사용할게 -> OK
Active 이기 때문에
SP:20 DP:2000
목록을 준다
요청에 의한 답장으로 세션, 연결이 이루어진다.
답장을 줄땐 SP:2000  DP:20

PAT
192.168.0.2:8000 -> 1.1.1.1:9000 -> 8.8.8.1:80
만약 192.168.0.3도 8000번 포트로 보냈을때, 답장을 0.2로 줘야할지 0.3으로 줘야할지 모르기때문에 구분을 하기 위해 PAT를 해줘야 한다.
1.1.1.1 의 포트는 공유기 내에서 충돌이 일어나지 않기 위해 알아서 다른 포트로 정해서 보낸다.


Active = 서버에서 클라이언트 쪽으로 데이터 전송 세션을 맺는다

Passive = 클라이언트에서 서버쪽으로 데이터 전송 세션을 맺는다

=======

Wire Shark

필터를 잘써야한다.
거꾸로 봐야한다.

Gateway 가 정상적일때의 MAC Address는 반드시 알아둬야 한다.

피해자의 목적지가 외부일때 게이트웨이를 바꿔 해커에게 오게한다.

ARP Spoofing은 코드가 2일때 S.IP(해커의 게이트웨이)와 S.MAC(해커의 MAC Address로)을 바꾼다.

arp.opcode==2 
- arp Spoofing을 잡을때 쓰인다
- arp 응답에 대해서만 보여줘 (Wire Shark)

 

arp로 공격을 많이 하는 이유
윈도우의 버젼이 많이 높아지면서 자체 방화벽으로 icmp를 막아버린다. 하지만 arp는 막히면 안되기때문에 arp로 공격을 많이하기에 arp를 스캔

 

eth.addr==00:50:bf:d9:9d:47&&arp.opcode!=2
앞에적은 MAC Address를 검색

 

=======

ICMP Spoofing(ICMP Redirect)
 
hping3 Option

 

ping of death
상대방 타겟에게 데이터의 사이즈를 최대값으로 보낸다.(65000 byte)

최대값으로 보내 패킷을 마비시키는 공격


만약 최대값(65000 byte)로 보내면 공격자도 데이터가 커서 힘들다. 

TCP Session Hijacking

세션(Session)
- 두 대의 시스템(호스트) 간의 통신(활성화 된 상태)를 의미

세션 하이재킹(Session Hijacking)
- Sniffing + Spoofing 을 이용한 공격
- 이미 인증을 받아 세션의 생성 및 유지되어 있는 연결을 여러 기법을 이용하여 빼앗는 공격
- TCP Session Hijacking
  - Telnet, FTP, . . . . .
- WEB Session Hijacking
  - HTTP

세션 하이재킹의 유형
- Passive Hijacking
  - 공격자의 시스템에서 세션 데이터 흐름을 모니터링하여 민감한 데이터 획득
- Active Hijacking
  - 두 호스트 중에 임의의 호스트를 대신하여 연결을 진행하는 것을 의미


DNS Attack
- 특정 Domain 주소로 전달되는 요청을 공격자가 원하는 목적지로 전달 되게 함
- 주로파밍(pharming) 공격을 수행하기 위해 공격자가 준비한 서버로 유인하기 위한 목적으로 사용

DNS 취약점
- 질의에 대한 응답을 Cache에 저장한 후 Cache 저장된 정보를 재사용 함
  - Cache가 한번 감염되면 지속적으로 공격이 수행됨
- UDP를 이용하여 일반적인 질의를 수행함 → 비신뢰성, 비연결성
- DNS 자체에 인증메커니즘이없음
  - Transaction ID, Client Port의 일치 여부만 확인 함

DNS Attack 분류
- DNS Spoofing → DNS Client의 Cache를 공격 → 한번의 공격으로 하나의 Client만 공격 함
- DNS Cache Poisoning → DNS Server의 Cache를 공격 → 한번의 공격으로 다수의 Client를 공격 함

DHCP Spoofing 보안
- DNS Query  를 Sniffing 할 수 없도록 사전 차단
  - 지속적인 Sniffing 탐지 및 관리
  - Gateway 운영 시 MAC 주소를 고점으로 등록

- DNS 운영 시 TTL을 짧게 운영 함

- 중요한 서비는 hotos 파일에 등록하여 DNS Server로 Query를 보내지 않도록 설정

-DNSSEC 적용
- 공개키 암호화 방식의 전자 서명을 사용하여 위/변조 검사 수행


DHCP Attack
- 공격자가 DHCP 클라이언트 또는 서버로 위장하여 변조된 DHCP 메시지를 이용하여 수행하는 공격
- 정상 DHCP 서버를 마비(Dos) 시키거나 클라이언트에게 변조된 네트워크 정보를 전달하여 데이터의 전달 흐름을 공격자로 유도(Sniffing) 함

DHCP 취약점
- UDP를 이용함 → 비신뢰성, 비연결성
- DHCP 자체의인증메커니즘이없음
  - 누구나 원할 때 클라이언트, 서버 역할을 할 수 있음 → 진위성을 확인할 수 없음
  - Client → 요청으로 전달한 XID, port의 일치 여부만 확인
  - Server → MAC주소로 Client 구분만 함

DHCP Attack 분류
- DHCP Starvation → DHCP Server의 Pool을 모두 소모시키는 공격 → Dos Attack
- DHCP Spoofing → DHCP Client에게 조작된 네트워크 정보를 전달하는 공격

Port Security
- L2 Switch에서 지원되는 MAC Filtering 기능 → 차단 또는 감지 함
- 특정 LAN 포트에서 허용할 mac address 지정
- 특정 LAN 포트에서 허용할 mac address 개수 지정
- 위반 행위가 탐지될 경우
  - Protect : 등록된 MAC만 허용, 나머지 모두 차단
  - Restrict : 차단없음, 위반 행위 탐지 시 Log 기록
  - Shutdown : 위반 행위 탐지 시 무조건 포트 차단


DoS (Denial of Service)
- 서비스 거부 공격
- CIA Triad 에서 가용성(Availability)을 침해하는 공격 행위
보안의 3요소 CIA
Confidentiality - 기밀성
Integrity - 무결성
Availability - 가용성
요 근래엔 가용성이 제일 중요해서 AIC라고 불리기도 한다.
어떤 데이터를 다루는가에 따라 중요도가 다르다 ex)군대는 기밀성, 은행은 무결성, 쿠팡과 11번가같은곳은 가용성

Autorization(인가) - 자원에게 허락 받기
Authentication(인증) - 시스템에게 허락 받기
Accountability(책임 추적성) - 행동을 추적 하고 책임을 지게 한다. 로그를 남기는 이유가 책임 추적성으로 역추적이 가능하기 때문

- 시스템 또는 네트워크의 구조적인 취약점을 이용하여 공격 대상이 정상적인 서비스를 수행하지 못하도록 마비 시키는 공격
- 기본적으로 공격의 형태가 1 vs 1 → 공격자(1) vs 공격대상(1)
- 얼마나 많은 좀비 PC를 가지고 있는지가 성공 여부를 가른다. 

공격 방식
- 물리적인 파괴
- 시스템 리소스 공격 → CPU, Memory, Disk, 특정 Application ...
- 네트워크 대역폭 공격 → 대역폭 고갈

막는법
- 안티 디도스 장비 도입
- ISP 업체에서 제공해주는 Security zone 
- 사실상 불가능

 

TCP SYN Flooding
- TCP가 데이터를 보내기 전에 연결을 먼저 맺어야 하는 연결지향성을 이용한 방법
- Attacker는 Victim(피해자)에 Source IP Address를 Spoofing 하여 SYN 패킷을 특정 포트로 전송하여 해당 포트의 대기 큐(Backlog Queue)를 가득 차게 하여 해당 포트에 들어오는 정상적인 연결요청을 큐가 빌때까지 무시하도록 함
- UDP Flooding 이 주류를 이루기 이전에 많이 사용되던 방식
- 시스템 부하 -> 메모리 부하(프로그램의 Backlog Queue)

공격 원리
- 출발지 IP를 Random하게 변조하여 연결 요청(SYN)을 전달 함
- 공격대상의 Backlog Queue가 가득 차서 정상 클라이언트의 연결정보를 저장하지 못하게 됨
- # hping3 --rand-source <공격대상 IP> -p 80  -S  --flood

 

 

 

 

보안
- 시스템 최적화
  - Backlog Queue 사이즈 증가, SYN_RCVD 대기시간 단축, Registry 설정
- syncookie 기능 활성화
- 보안 솔루션을 통한 방어

syncookie
- SYN Flooding을 발생했을 때 정상 사용자의 Connection을 보장하는 기술
- 연결요청(SYN)의 초기 순서번호(ISN)를 이용하여 정상 연결된 연결을 구분함
-동작순서
  - 클라이언트의 SYN에 대한 SYN/ACK 를 전달한 후 ISN을 식별값으로 설정함
  - syncookie에게 전달 정보를 전달하고 서버는SYN에 대한정보를Backlog Queue에서 삭제 함
  - 이후 정상적인 확인 응답(ACK)를 전달 받아서 3WAY-Handshake가 정상적으로 이뤄지면 식별값(ISN)을 이용하여 Backlog Queue에 클라이언트 정보를 복원시킴
 # sysctl net.ipv4.tcp_syncookies=1


UDP Flooding
- UDP의 비연결성 및 비신뢰성 때문에 발생
- 단순한 공격으로 높은 수위의 공격 효과를 볼 수 있기 때문에 DDOS 공격의 주류를 이룬다고 할 수 있음
-공격유형
  - 최대 수십Gbps 범위의 공격을 직접 Victim에 전송하여 네트워크 인프라를 마비 시키는 유형
  - Source Address , Source Port 를 Spoofing 하여 과다한 트래픽을 Victim 들에 전송함으로써 Spoof 되는 Victim 간의 네트워크를 마비시키는유형
- 주로echo와 chargen 서비스를 이용함
- TCP Flooding은 3way Handshaking을 하면 로그가 남기 때문에 UDP Flooding을 많이 사용한다.

ICMP Flooding
- 활성화된 서비스나 포트가 필요하지 않다는 해당 프로토콜의 특징을 이용한 공격
- Smurf(Amplifier) 공격 형태
  - 공격자가 Source IP Address 를 Victim 으로 설정하고 특정 네트워크에 ICMP echo broadcast 패킷을 전송하면 해당 네트워크의 모든 시스템들이 ICMPecho replay 패킷을 Victim 에게 전송하는 형태의 공격

단편화조작공격
- 시스템의 단편화된 데이터의 순서 번호를 조작하여 재조합과 정의 오류를 발생 시키는 공격 
  - 현재 취약점이 패치 되었기 때문에 공격 안됨
- 종류 → Bonk, Boink, Teardrop

Bonk
- 단편화된 데이터의 순서 번호를 같은 번호로 조작하여 재조합과 정의 오류를 발생시킴

Boink
- Bonk 공격의 변형
- 단편화된 데이터의 순차적으로 전달 하다가 중간 부터 반복된 순차 번호를 전달 하여 오류를 발생 시킴

Teardrop
- Boink공격의 변형
- 단편화된 데이터의 순차적으로 전달 하다가 중간 부터 순서에 맞지 않는 순차번호를 전달하여 오류를 발생시킴

DRDoS(Distribution Reflective Denial of Service)
- 분산 반사 서비스 거부 공격
- DoS의 Smurf 공격이 DDoS 방식으로 발전한 공격

특징
- Zombie PC를 보유할 필요가 없음 → 반사체(Server List)를 이용 함
- 공격자 은닉 강화
  - 공격의 근원지 파악이 어려움 → 공격자 추적이 거의 불가능함
     - IP Spoofing → 공격 데이터의 출발지를 공격대상으로 변조 함

공격 원리
- 공격자가 반사체 List(정상 Server)에 등록된 시스템에 출발지 IP를 공격대상의 IP로 Spoofing한 요청을 전송 함
- 반사체 시스템은 받은 요청을 정상적인 요청으로 인식 하고 응답을 공격 대상으로 전달함
- 다량의 응답을 받은 공격대상은 응답을 처리하기 위한 리소스를 소비하여 정상 서비스에 부하를 줌
 
방어
- ISP에서 출발지 주소가 위/변조된 데이터의 유입을 막아야함→ Ingress Filtering
- ICMP 패킷에 의해 DRDoS를 막기위해 ICMP 패킷을 필터링함


DDoS 공격 대응
- 충분한 Bandwidth(대역폭) 확보
  - DDoS 공격에 어느 정도 대응할 수 있도록 서비스를 위한 평균적인 트래픽보다 많은 트래픽을 처리할 수 있는 회선을 보유 해야함
- 공격트래픽모니터링
  - 실시간 모니터링을 통해 정상적인 트래픽의 양을 측정하여 공격에 의해 발생하는 급격한 트래픽을 감지해야함
- 공격 대응 전문 기관과의 연계
  - 공격을 감지한 경우 전문 대응 기관에 바로 알려 유입 경로를 차단 해야함
  - 관리자의 신속한 대응이 필요한 부분
  - ISP, IDC등에 요청하여 공격 트래픽이 유입 되는 경로를 차단하여 대응함
  > 유입 경로 및 공격 성향을 파악을 위해 공격 발생시 LOG정보를 수사 기관에 제공
- DDoS 솔루션 장비 도입고려
  - Anti DDoS, L7 Switch 장비를 배치하여 어느 정도의 대비를 함
- 대응 프로세스를 준비
  - 공격을 감지 하였을때 대응 절차를 미리 계획해야 함


Malware

악성코드(Malicious Software)
- 악의적인 목적(파괴, 정보유출, ...)을 위해 작성 된 코드 또는 프로그램

악성코드유형분류
- Virus
- Worm
- Worm Virus
- Trojan Horse
- Spyware
- Adware
- Ransomware(파일을 암호화 시켜 키가 없으면 풀 수 없게 만드는것)
-기타

악성코드 분석 관련 정보 제공 사이트
- 바이러스토탈 : https://virustotal.com/
- 제로서트 : http://www.zerocert.org/


Virus
- 기생한다
- 프로그램을 통해 감염되는 악성 소프트웨어
- 사용자 몰래 스스로 복제하여 다른 프로그램을 감염시키고, 정상적인 프로그램이나 다른 데이터 파일 등을 파괴하는 악성 프로그램
- 바이러스에 감염된 파일을 저장 매체나 네트워크를 통해 다른 컴퓨터에서 사용 할 경우 그 컴퓨터도 감염
- 트로이목마, 웜과의 차이점은 자기 복제능력으로 인해 바이러스가 발견 되어도 다른 프로그램에 감염되어 있을 수 있기 때문에 모든 프로그램을 검사 해봐야 함
- 대표적인 바이러스로 브레인, 미켈란젤로, 예루살렘, CIH, 멜리사 등의 바이러스가 있음

Worm
- 컴퓨터의 취약점을 찾아 네트워크를 통해 스스로 감염되는 악성 소프트웨어
- 기존 프로그램에 융합 되는 바이러스와 달리 독립적인 실체로 존재하며, 사용자의 이메일, 메신저 등의 주소록을 뒤지고 스스로를 첨부하거나 시스템의 취약점을 이용해 네트워크를 통해 퍼지며 전염성이 강함
- 증상으로 네트워크 성능 저하가 발생
- 대표적인 웜으로 모리스웜, 러브레터웜, 님다웜, 슬래머웜, 블래스터웜 등의 웜이 있음
- 스스로, 자생한다는 뜻
- Virus와 혼합되어 쓰인다 ex)Worm Virus

Trojan Horse
- 정상적인 유틸리티(프로그램) 으로 위장한 악성코드
- 유용한 프로그램인 것처럼 위장하여 사용자들로 하여금 거부감 없이 설치를 유도
- 자기 자신을 복제하지 않으며 사용자 스스로 내려받고 설치

바이러스, 웜, 트로이목마의 차이점

 

Spyware
- 사용자의 동의 없이 설치 되어 중요한 개인정보를 빼내는 악성 소프트웨어
- 사용자의 신상 정보, 암호, 금융 정보 등의 각종 정보를 수집
- 주로 무료로 공개되는 소프트웨어와 함께 설치됨

Adware
- 컴퓨터 사용시 자동적으로 광고가 표시 되게 하는 악성 소프트웨어
- 특정 소프트웨어를 실행 하거나 설치 후 자동적으로 광고가 표시 되는 프로그램
- ex) 시작 페이지 고정

Ransomware
- 파일(문서, 그림) 등을 암호화 하고, 돈을 지불하면 복구 해주는 형태로 금전적 이득을 취하는 악성 소프트웨어
- 시스템을 잠그기도 하며 사용자가 지불할 수 있게 안내 문구를 보여줌(비트코인 등을 요구하며 페이지 안내)

Backdoor
- 정상적인 인증 과정을 거치지 않고 시스템에 접근하는 방법
- 해킹 시도 이후 다음 접속을 쉽게 하기 위해 고의로 남겨진 시스템의 보안 허점
- 유형으로는 로컬, 원격백도어가 있으며 접속 방식으로 다이렉트, 리버스 커넥션 방식으로 사용

Downloader
- 악성코드를 다운로드 해서 설치하는 프로그램
- ex) 트로이목마 형태의 다운로더

Dropper
- 사용자 몰래 악성코드를 시스템에 설치하는 프로그램
- ex) 트로이목마 형태의 드로퍼

Keylogger
- 사용자가 입력하는 키보드 정보를 기록하고 빼내는프로그램
- 유형으로 하드웨어형 키로거와 소프트웨어형 키로거가 있음

 

 

OTP(One Time Password, 일회용 P/W)
- One Time Password는 의미적인것
- 시도 응답 방식
- 매번 패스워드를 다르게 구성하게 한다.

인증방식
Type 1 -> Know (알고있는 ex)로그인할때)
Type 2 -> have (가지고있는 ex)키 카드 )
Type 3 -> are (생체인증)
Cisco에선 Type 1, 2, 3 을 섞어 쓰는것을 권장한다.

 

=======

'공부? > 국비 지원 일기장' 카테고리의 다른 글

61일차 - IDS, IPS, 도커  (1) 2024.11.08
60일차 - 보안  (1) 2024.11.07
58일차 - 정보 보안  (0) 2024.11.04
57일차 - SQL Injection  (0) 2024.11.01
56일차 - Cookie  (0) 2024.11.01