세션과 세션 하이재킹
세션이란
네트워크 환경에서 사용자간에 대화를 하기 위해 연결이 되어 있는데 이런걸 일반적으로 세션이라 명칭
세션 하이재킹은
사용자와 컴퓨터간에 활성화되어 있는 상태를 가로채는 행위
세션 하이재킹을 하면 ID와 Password와 같은 입력확인 절차를 SKIP할 수 있다
세션이라는거 자체가 사용자간의 ID와 Password로 확인을 하고 통신을 하기 때문에
이것을 하이재킹하면 확인절차를 SKIP이 가능한것이다
TCP하이재킹동작방식
그거전에 TCP연결이 어떤 방식으로 이루어지는지 확인해야한다
TCP 연결할때 3-way handshake 사용한다.
이때 사용하는게 시퀀스 넘버이다
즉 상대편 컴퓨터에 내가 아는 시퀀스 넘버를 보내고
상대편 컴퓨터는 내가 보낸 시퀀스 넘버와 자신의 시퀀스 넘버를 다시 보내준다
그러면 나는 최종적으로 응답하면서 상대편이 나에게 보내준 시퀀스 넘버를 보내준다
시퀀스 넘버 정확성을 확인하며 세션 설정하는 것이다
사진에 나와있는 용어에 대해 설명하자면
TCP연결에서의 시퀀스 넘버 정의
- Client_My_Seq - 클라이언트가 관리하는 자신의 시퀀스 넘버
- Client_Server_Seq - 클라이언트가 알고 있는 서버의 시퀀스 넘버
- Server_My_Seq -서버가 관리하고 있는 자신의 시퀀스 넘버
- Server_Client_Seq - 서버가 알고 있는 클라이언트의 시퀀스 넘버
- DATA_Len -데이터의 길이
TCP하이재킹 절차
RST라는 세션을 리셋할 수 있는 패킷을 보내서 일시적으로 TCP세션을 끊는다
그리고 공격자가 새로운 시퀀스 넘버를 보낸다.
클라이언트의 리셋으로 위장해서 공격자가 세션을 빼앗고 인증한다
TCP세션의 상태
2가지의 상태가 있다
- 동기화 상태 - 세션이 정상적으로 접속된 상태
- 비동기화 상태 - 일시적으로 접속이 끊긴 상태
첫번째 절차로는
TCP세션 하이재킹은 동기화 상태이니 세션을 비동기화 상태로 바꾼뒤에 시퀀스 넘버 제어
비동기화로 만드는 방법
- 서버에서 초기 설정 단계의 접속 끊고 다른 시퀀스 넘버로 새로운 접속 생성
- 대용량의 NULL데이터보내서 서버를 비동기화 상태
두번째로는
공격자는 A_Client_My_Seg를 생성해 서버에 전송, 즉 잘못된 패킷을 전송
서버는 SYN수신후 ACK를 재생성하여 공격자에게 보낸뒤 SYN_Received상태
최종적으로
공격자는 정상적인 연결허럼 공격자와 서버가 동기화
대응방안
- 데이터전송의 암호화를 통해 시퀀스 넘버를 확인하지 못하게
- 비동기화 상태가 필수적인 절차니 비동기화 상태를 탐지
- ACK Strom -대용량null데이터가 송신됨으로써 비동기 상태로 빠지는 부분 감지
- 패킷의 유실과 재전송 증가 탐지
ARP스푸핑
배경지식
스푸핑 -> 속이다 라는 의미
네트워크의 패킷에 포함되어 있는 여러가지 정보들 IP주소, 호스트이름, MAC주소등 다양한 정보를 얻을 수 있다
그중에서도
ARP(Address Resolution Protocol)은 ip주소 값으로 mac주소 값을 알아내는 프로토콜
반대로
RARP(Reverse Address Resolution Protocol)는 MAC주소로부터 IP주소값을 알아내는 프로토콜
그중에서도 ARP는 IP Address를 주었을때 그에 해당하는 mac주소를 속이는 공격방식
즉 공격자의 mac주소를 올바른 주소로 속이고 중간에 오는 패킷을 가져와서 세션을 가지고 오는것
연결을 유지하면서 내용을 계속 확인
ARP스푸핑 공격의 원리
ARP스푸핑 공격발생증상
- 피해시스템
- 네트워크 속도저하
- 악성코드가 유포되고 공격코드삽입
- 정기적인 ARP패킷다량수신
- 공격시스템
- 네트워크 사용량증가 ( 가로채고 다시 전송해줘야해서)
- 정기적인ARP 패킷 발송
- 악성 프로세스 동작시킴
IP스푸핑
- 악의적인 네트워크 침입자가 임의로 웹사이트를 구성해 일반사용자들이 방문을 하도록 유도
- TCP/IP의 구조적인 결함을 이용해서 웹사이트에 접속한 사용자의 시스템 권한을 획단한 뒤에 여러가지 개인정보를 빼가는 해킹 수법
자신의 IP주소를 공격하고자하는 타겟의 IP주소로 속이고 접근을 시도
서비스 거부 공격,세션 종료
TCP세션 하이재킹 = IP스푸핑
전제조건
신뢰관게 즉 트러스트 관계
스니핑을 통해서 IP와 PASSWORD를 통해서 알아낼수 있어서 이런걸 방지하기 위해ID와 패스워트를 사용하지 않고도 특정클라이언트의 IP와 트러스트 관계를 맺고 로그인 없이 접근할 수 있게 해주는것이 틀스트 관계
IP스푸핑 공격방법
원격지에서 공격
- 공격자는 클라이언트 쪽으로 TCP CYN Flooding공격 즉 엄청난 양의 TCP SYN패킷을 보내서 클라이언트를 Denial of serveic공격해서 무력화
- 그리고 클라이언트의 ip로 속여서 서버쪽에 연결 요청
- 서버는 ack와 syn을 클라이언트에 보낸다 하지만 이미 서비스 불가상태임
- 이떄 공격자가 자신이 받은거 처럼 ack storm
내부 네트워크에서의 ip스푸핑
- 서버로 ARP Cache Poisoning공격을 하여 서버의ARP 테이블에는 공격자가 변조해둔 ARP테이블이 올라가 있다
- SERVER에서는 Client 1.1.1.2에 syn을 보내지만 이미 오염된 ARP테이블로 인해 MAC주소가 잘못들어가 공격자에게 보낸다
대응방안
- 라우터에 SOURE ROUTING을 허용하지 않도록 설정 - 소스 라우팅이 어떤경로로 목적지까지 가는지를 결정해서 유출시 악용될 가능성 높다
- 시퀀스번호 랜덤 발생
- DOS방생 사전 차단
- 암호화된 프로토콜, DOS발생 사전 차단
- SSO기능 - single sign on으로 한 번의 인증 과정으로 여러 시스템에 안전하게 접근할 수 있는 기능을 제공
하기 때문에 비밀번호가 외부로 유출될 가능성이 적다
'4-2학기 > 정보보호와 보안의기초' 카테고리의 다른 글
2주차 - 소프트웨어 (3) | 2024.12.08 |
---|---|
1주차 - 정보보호개론 (0) | 2024.12.08 |
8주차 - 네트워크 패킷 분석 (1) | 2024.12.02 |
7주차 - 디지털 포렌식 (0) | 2024.11.29 |
6주차 바이러스 * 웜 * 트로이 목마 (0) | 2024.11.27 |