본문 바로가기

카테고리 없음

네트워크 보안1

728x90

 

 

 

 

 

  • 스피어 피싱

 

  • 워터링 홀

 

 

  • 사이버 공격 모델링 : 1사이버 킬체인 모델

사이버 킬체인 모델 : 사이버 공격 분석 및 방어 모델

 - 사이버 공격을 프로세스 기반 분석하여 각 단계별 보안위협요소 파익, 공격 기법 분석 전략

 

  • 익스플로잇(exploit)

보안 취약점 vs 익스플로잇(공격코드) : 보안 취약점을 이용한 공격

 - (보안 취약점)컴퓨터의 소프트웨어나 하드웨어 및 컴퓨터 관련 전자 제품의 버그, 보안 취약점 등 보안 관련된 설계상 결함(3대 보인 기능 요소인 기밀성, 무결성, 가용성을 침해)

 - (exploit) 보안 취약점을 이용해 공격자의 의도된 동작을 수행하도록 만들어진 절차나 일련의 명령, 스크립트, 프로그램, 특정한 데이터 등을 사용한 공격 행위

 

  • 마이터어택 프레임 워크

: 공격자들의 최신 공격 기술 정보를 분류/목록화한 표준

ATT@ck : Adversarial Tactics, Techniques, and Command Knowledge 약어

공격자의 악의적 행위(Adversarial)에 대한 공격 전술, 기술, 절차를 분석하여 공격행위를 체계화(패턴화)

 

  • 14대 공격 전술

 

  • 정보수집(정찰) 개념

 - 공격자 관점 : 전통적인 정보수집 개념

 : 침투 시스템의 계정정보, 보안조치 현황, 취약점 정보(CVE)를 수집하는 행위

풋 프린팅 : 공격 대상인 일반적인 정보(취약점) 수집

구글 검색/네트워크 정보 수집 툴(스캐닝)/whois, nslookup, traceroute, ping, social engineering/네트워크 토폴로지/ 오픈 네트워크 및 서비스 프로토콜 정보/네트워크 보안 장비 상황(IDS/IPS)/포트 정보, 폴더 공유 상태, 서비스 상태

 

핑거 프린팅 : 네트워크 (시스템OS) 특징적인 정보 수집

특별히 제작된 패킷을 주입 후 기기의 반응을 잡아낸다./os종류, 서비스 종류, 버전 정보, 사용 여부 등

 

 - 방어 관점 : 위협 헌팅, 사이버위협 인텔리전스(Cyber Threat Intelligence)

방어자 관점에서는 정보 수집은 위협 헌팅, 사이버 위협인텔리전스 관점에서 수행

 

  • 위협 헌팅(Threat Hunting)

: 사이버 킬체인 단계에서 최대한 신속하게 알려지지 않은 제로데이 CTI를 적극적으로 추적하여 제거하는 행위

위협헌팅 < CTI

 

  • CTI

침해사고 발생 또는 예방을 위해, 분석 정보와 난이도 측면

-IOC(Indicators of Compromise, 침해사고 지표) : hash, 공격자IP, domain등 정수 value나 스트링 값을 나타낼 수 있는 것을 통상적 침해사고지표(IOC)라고 한다.

공격자 도구 - 최근 공격자들도 방어기술 우회하는 새로운 공격 도구를 자동화

TTP : 정수나 스트링 값으로 표현할 수 없어 분석하기 어려운 전술이기 때문에 최근에는 침해사고 분석시에 TTP 분석이 매우 중요함(이를 CTI라고 부른다.)

 

  •  

4주차

  • IP 정보 수집 : IP 추적

1차메일 정보

2차메일 정보

 

  • traceroute

: 3계층(IP, icmp) 4계층(UDP)이용

패킷이 목적지까지 도달하는 동안 거쳐가는 라우터의 IP를 확인하는 툴(UDP와 ICMP,IP의 TTL 값을 이용)

상대방 IP 주소를 알고 있는 상태에서 상대방이 속한 인터넷 구성 등을 짐작

 

 

  • 스니핑 방법

 

 

  • 스푸핑 : 속이는것[IP, DNS, MAC, E-mail]

: MAC 주소를 속이는 것으로 2계층에서 작동해 공격 대상과 같은 랜에 있어야 한다.

스위칭 환경에서 가능한 공격(피해자 시스템 ARP cache 정보 변조 공격, ARP 캐쉬 포이즈닝)

 

 - 공격자는 ARP 브로드캐스팅 패킷을 보내 피해자 IP(IP는 알아낼 수 있고)와 MAC 주소(브로드 캐스팅을 통해서 알아낸다.)를 알아낸다.

 - 공격자는 자신의 MAC 주소가 위조된 ARP Reply 패킷을 전송(피해자 ARP Cache 수정됨)

 

ARP 리다이렉트는 랜상에 연결된 모든 호스트 대 라우터(라우터인것 처럼 위장 한다는 점)

스니핑과 변조 둘다 가능

 

  • ARP 공격 탐지하는 방법

 - 대부분은 모니터링과 관리적 수단을 이용함

ARP 공격을 탐지하기 위한 위치

1) 피해 시스템 에서 탐지하는 방법

 - ARP Table을 모니터링해서 위조된 MAC주소가 중복 되었는지 확인[arp -a로 모니터링]

 - 송수신 패킷에서 악성코드 유무 확인 = ARP 스푸핑 자체 보다는 악성코드 유포 여부 확인 -> tcp dump, 이더리얼, 와이어샤크, 패킷뷰어 등의 패킷분석 도구를 사용하여 실제로 서버로부터 송신되는 패킷에 악성코드가 삽입 되었는지 확인하는 것

 - 비정상적인 ARP 패킷 수신 확인(ARP Request 없는 ARP Reply 패킷 모니터링 하는 것)

 - 패킷 암호화 프로토콜 사용

 

2) 공격 시스템에서 탐지

 - 패킷 캡처 프로그램 존재 유무 확인(중간 시스템을 탐지하는 방법일듯)

os에서 제공하는 arp -a를 통해 table을 조회하여 모니터링 하는 방법

 - 네트워크 어댑터의 동작 상태 확인 : NIC 어댑터가 프로미스큐어스 모드인지 확인

 - ARP 패킷 모니터링 : 와이어샤크 등 패킷 프로그램을 이용하여 패킷 모니터링

 

 

3) LAN 환경의 네트워크 교환 장비에서 탐지

 - ARP 테이블 모니터링 - 해당 서브네트워크의 ARP 테이블의 IP 주소와 AC 주소의 관계를 확인한다.

   스위치 재밍 공격(MAC Flooding) 공격 제어 - 스위치 장비에 port Security 기능을 이용(1개의 port당 최대 허용하는 MAC 주소 개수를 제한)

 - 위조된 ARP 패킷을 감시하기 위한 패킷 모니터링 도구 활용 : 불필요한 ARP 패킷들이 탐지, 특정 스위치, 포트나 연결되어 있는 호스트의 MAC 주소가 자주 변경되는 것 확인

 

  • IP 스푸핑

: IP 주소를 속이는 것, 공격자가 자신의 IP 주소를 서버와 신뢰하고 있는 클라이언트 IP 주소로 변경하는 것.

 - ip 프로토콜 인증 취약점 이용 : IP 소스 주소로 식별하고 인증(암호화 과정이 없고 IP 헤더를 변경할 수 있음) -> IP 트러스트 인증 메커니즘을 우회한 것

 - IP Sequence 번호로 세션을 인증하나 세션 가로채기 등 취약함

 - IP 스푸핑 공격은 스니핑 공격을 먼저 수행한다.

 

 - 트러스트 관계를 형성하기 위한 파일

  • ./etc/hosts.equiv - 시스템 전체에 영향을 미친다
  • .$HOME/.rhost - 사용자 한 사람에 귀속하는 파일

LAN환경과 원격지환경의 차이

LAN환경은 A와 C가 통신하는데 B가 자신이 C인것처럼 속여 A와 C의 패킷을 가져온다.(2계층)

원격지 환경은 자신이 라우터인 것처럼 속여 패킷을 가져온다.(3계층)

 

  • IP 스푸핑 보안 대책1

 - 트러스트 기능을 사용하지 않는것

 lAN 환경에서 트러스트를 사용해야 하면 트러스트된 시스템의 MAC 주소를 static으로 지정하거나 리모트 서비스를 자제

TCP의 순서 번호를 무작위로 발생시키도록 설정

서비스거부공격 취약성을 제거

암호화된 프로토콜 사용

 

  • IP 스푸핑 보안 대책2

 - Ingress 필터링 : 외부에서 들어오는 패킷 중 출발지 ip 주소에 내부망 IP 주소를 가지고 있는 패킷을 라우터에서 필터링 하는 것. [외부 -> 내부]

   패킷의 소스 ip나 목적지 포트 등을 체크하여 허용하거나 거부하도록 필터링하는 것이다. (대부분의 공격이 실제 존재하지 않은 위조된 IP 주소를 소스로 함)

 - Egress 필터링 : 라우터 내부에서 라우터 외부로 나가는 패킷의 소스 ip를 체크하여 필터링 하는 것

 라우터를 통과하여 나가는 패킷의 소스 IP 는 반드시 라우터와 같은 대역이여야 한다.[내부 -> 외부]

 라우터를 통해 나가는 패킷의 소스 IP 중 ip 대역을 소스로 한 패킷은 허용하고 나머지는 거부한다.

 - Blackhole 필터링(Null routing을 활용한 필터링)

   특정 ip 대역은 Null 이라는 가상의 인터페이스로 보내도록 함으로써 패킷의 통신이 되지 않도록 한다.

 - Unicast RPF(Reverse Path Forwarding)

  인터페이스를 통해 들어오는 패킷의 소스 IP 에 대해 라우팅 테이블을 확인하여 들어온 인터페이스로 다시 나가는지 확인

 

  • DNS 스푸핑

 

파밍 공격 : DNS 프로토콜 취약성 악용

 

 

  • DNS 스푸핑 보안 대책

 - 사이트에 접속하면 캐시에서 읽어들인 후 hosts파일을 통해 도메인 이름에 대한 IP 주소를 해석

 - Hosts 파일에 중요한 사이트의 IP 주소를 확인하여 적어두면 DNS 스푸핑 공격을 당하지 않는다.

 - DNS 서버에 대한 DNS 스푸핑 공격은 BIND(Barkeley Internet Name Domain)를 최신 버전으로 바꿔서 해결

 BIND : PTR 레코드뿐만 아니라 PTR 레코드에 의한 A 레코드 정보까지 확인한 후 네임 서버의 데이터베이스 파일 변조 여부까지 판단 가능

  PTR 레코드 : Reverse Zone에서 가장 중요한 레코드로, IP 주소에 대한 도메인 이름을 해석

  A 레코드 : Forward Zone에서 도메인 이름에 대한 IP 주소를 해석

 

  • 세션 하이재킹

: 세션 가로채기

2가지

 - Non-Blind Attack(로컬 세션 하이재킹 공격)

  서버와 클라이언트가 통신할 때 TCP의 시퀸스 넘버를 제어의 문제점을 파고든 공격

  공격 대상을  탐지할 수 있으며, 시퀸스 넘버를 알아낼 수 있음

 

 - Blind Attack(원격 세션 하이재킹)

   공격 대상을 대상을 탐지할 수 없으며 시퀸스 넘버를 알아낼 수 없음

 

  • TCP 세션 하이재킹

: 세션의 동기화 상태를 무너뜨리는 것

TCP 시퀸스 넘버 교환 : 정상적인 세션 연결시 동기화(Synchronized) 상태

 

  • TCP 세션 하이재킹 비동기화 상태로 만드는 방법

: 서버에서 초기 설정 단계의 접속을 끊고 다른 시퀸스 넘버로 새로운 접속 생성한다.

-> 서버와 클라이언트가 각자 알고 있는 시퀸스 넘버를 조작해서 속인다.

    클라이언트 측

  Client_My_Seq = 공격자가 생성한 Server_Client_Seq

  Client_Server_Seq = 공격자가 생성한 Server_My_Seq

    서버 측

  Server_Client_Seq = 공격자가 생성한 Client_My_Seq

  Server_My_Seq = 공격자가 생성한 Client_Server_Seq

 

 - 비동기화(Desynchoronized)상태

1) (데이터가 전송되기 전)안정적인 상태

 Client_My_seq != Server_Client_Seq

Server_My_Seq != Server_Client_Seq 

 

2) 데이터가 전송될 때는 저장, 클라이언트에 서버의 승인 번호는 전달되지 않음

Server_Client_Seq < Client_My_seq

Client_My_seq < Server_Client_Seq + Data_Len

 

3) 패킷 수신이 불가능한 상태로 데이터도 버려짐.

Server_Client_Seq + Data_Len < Client_My_seq

Client_My_seq < Server_Client_Seq

 

-> 비동기화는 정상 통신상태에서도 만들어질 수 있다. 이런 비동기화 상태를 악용하거나 억지로 비동기화 상태를 만들어서 TCP 세션 하이재킹 공격을 수행하는 것.

 

 

  • ACK Storm

세션 하이재킹 상태에서 클라이언트가 정상적인 패킷을 보내면 서버는 비정상 시퀸스 넘버로 인식하며, 시퀸스 넘버를 맞추기 위해 ACK 패킷에 (Server_MySeq, Server_Client_Seq)를 담아 보냄.

클라이언트는 서버가 보내온 Server_Client_Seq가 자신의 Client_My_Seq와 다름을 확인하고, 서버에 Client_My_Seq와 Client_Server_Seq가 담긴 ACK를 보내는데 이러한 과정이 무한히 반복한다.

-> 이때 잘못된 패킷이 전달되지 않도록 공격자는 ARP 스푸핑을 해 두고 공격을 실시 

 

  • 세션 하이재킹 보안 대책

- SSH와 같이 암호화된 연결을 사용하는 것

- 비동기화 상태 탐지 : 서버와 시퀸스 넘버를 주기적으로 체크하여 비동기화 상태에 빠지는지 탐지하는 것

- ACK Storm 탐지 : 윈도우 크기에 맞지 않은 데이터가 전송되면 정확한 윈도우 크기에 대한 교정 패킷을 보내게 되고, 서로에 대한 교정 패킷이 정상적으로 작동하지 못하기 때문에 무한 루프에 걸리게 된다.

- 패킷의 유실과 재전송 증가 탐지 : 공격자가 중간에 끼어서 동작을 하므로 패킷의 유실과 재전송이 발생

- 예상치 못한 접속의 리셋 : 세션 하이재킹에 대한 최우선의 대책은 데이터 전송의 암호화다.

 

  • MITM(Man In The Middle) 공격

 : 글자 그대로 누군가의 사이에 끼어드는 것으로 클라이언트와 서버의 통신에 암호화된 통신 채널을 이용하면서 ARP 리다이렉트와 ICMP 리다이렉트, ARP 스푸핑이 무용지물이 되자 이를 극복하기 위해 탄생함.

 

  • SSH MITM

SSH(Secure Shell)

ARP 스푸핑이 전제

1. 클라이언트가 서버에 SSH 접속을 요청하면 공격자가 ARP 스푸핑 공격 등으로 네트워크를 장악하여 SSH 서버인 것처럼 자신의 공개키를 전송 -> 공격자는 서버에 자신이 클라이언트인것처럼 공개키를 요청

 

2. 정상적인 접속에서 클라이언트가 서버에 암호화된 데이터를 보내면 공격자는 자신의 사설키와 클라이언트의 공개키로 복호화하고 내용을 확인한 후 다시 자신의 사설키와 서버의 공개키로 암호화해서 서버로 전송

 

3. 서버가 클라이언트로 데이터를 보낼 때도 공격자는 서버가 전송한 데이터를 복호화한 후, 다시 암호화해서 클라이언트로 전송

 

  • SSL(Secure Socket Layer) 암호화 통신 MITM

: 넷스케이프가 개발한 것으로 웹서버와 브라우저 간 보안통신을 위해 만든 암호화 프로토콜(현재는 TLS 권고)

 

 

  • SSL 스니핑 : 공격자는 임의의 인증서를 생성한 뒤 클라이언트에게 보내 별도의 SSL 세션을 생성하고, 이를 중간에 스니핑(SSL MITM 공격은 서버와 클라이언트 간 인증서를 가로채는 공격)

 

  • SSL 스트립 :  중간자 공격을 통해 공격자는 클라이언트와 서버 간의 모든 암호화된 HTTPS 데이터를 HTTP로 변조하여 클라이언트에게 전달하는 공격

 

 - SSL 스니핑과 SSL 스트립의 차이

일반적인 스니핑 과정

1) 사용자가 웹서버 접근 시 HTTP를 사용하여 로그인 시도

2) 웹 서버는 로그인 시 SSL 통신이 이뤄지도록 사용자에게 HTTPS 유도

3) 사용자가 HTTPS 로그인할 경우, 사용자 계정 정보 스니핑 어려움

 

SSL 스트립 MITM 과정

1) 일반적인 스니핑의 2)과정까지 동일

3) 공격자는 서버로부터 전달받은 URL을 HTTPS가 아닌 HTTP로 변조하여 사용자에게 전달한다

4) 사용자는 HTTP를 통해 로그인하고, 공격자는 사용자 계정 정보를 스니핑한다.

 

  • MTIM 공격 대책

SSL 2.0이상을 사용하면 막을 수 있다.

안전하지 않은 인증서는 확실한 경우 외에는 접속을 하지 말것

 

 - SSL 스트립 공격 대책

SSL이 정상적으로 접속되고 있는지 확인

HTTP로 해도 HSTS를 표준으로 HTTPS로 바뀐다.