tcp/ip는 본질적으로 해킹에 취약. 연결 설정 및 통신 과정에 많은 문제 있음.
1. 클라이언트에서 서버로 최초 연결을 시도하는 syn 패킷 전송하면 서버는 연결을 위해 버퍼 자원을 할당.
계속 syn 패킷만 전송하는 클라이언트가 있다면 서버는 통신 버퍼를 모두 소진해 네트워킹 불가능.
2. 정상적인 통신 연결이 완료된 후에 해커는 클라이언트를 가장해서 통신 세션을 쉽게 가로챌 수 있음.
통신 상대방을 인증하기 위해 tcp 헤더에 있는 시퀀스 번호를 확인 하는데, 제삼자가 이 번호를 쉽게 알아내서 위장 가능
3. ip 헤더에 있는 소스 ip 정보는 쉽게 위조 가능. 소스 ip를 클라이언트 pc가 아닌 공격 대상 시스템 ip로 위조해 syn 패 킷을 서버에 전송하면 서버는 agk 패킷을 공격 대상 시스템으로 보내게 됨. 일종의 dos공격 가능.
1. 포트 스캐닝
ip는 서버를 식별하는 논리적인 주소. 포트는 하나의 ip를 여러 개의 애플리케이션이 공유하기 위한 논리적인 단위.
ip는 ip 프로토콜에서 식별자로 사용되고, 포트는 tcp/udp 프로토콜에서 식별자로 사용 됨. 방화벽 또는 서버에서 네트워크 서비스를 위해 포트를 개방하고 있음.
대표적인 것이 80 과 443 포트. 각각 http와 https 서비스를 위해 방화벽에서 개방하고 있음. 필수적인 포트 외에 관리 편의성을 위해 몇 개의 포트를 추가로 사용하고 있음. 대표적으로 ftp나 텔넷 서비스를 제공하는 21,22번 포트.
포트 스캐닝은 서비스를 위해 방화벽이나 서버에서 개방한 포트 목록을 알아내는 기술
다양한 기법이 존재.
크게 udp기반, tcp 기반 기법 으로 분류됨.
udp 기반 : udp패킷을 전송해서 확인
tcp 기반 : syn, fin등 다양한 패킷을 전송하면서 포트 개방 여부 확인.
기법별로 성능과 은닉성의 차이가 있음.
2. 패킷 스니핑
tcp/ip 통신을 하는 이더텟 기반 동일 네트워크 환경(하나의 라우터 사용)에서는 mac주소 기반으로 패킷이 동작.
하나의 pc에서 다른 pc로 데이터를 전송할 때, 전체 pc에 데이터를 브로드캐스트함. 패킷의 목적지 mac주소가 자신의 것과 같으면 받아들여서 처리하고, 그렇지 않으면 버리는 방식.
패킷 스니퍼는 모든 패킷을 버리지 않고 처리해서 동일 네트워크에서 이동하는 모든 데이터의 흐름을 한눈에 파악 가능.
3. 세션 하이재킹
http 세션 하이재킹과 tcp 세션 하이재킹으로 나뉨.
전자는 웹 서비스 인증 정보를 저장할 쿠키의 SessionId 값을 탈취해서 해킹에 이용하는 방식.
후자는 tcp 패킷 정보를 탈취하는 방식.
tcp 프로토콜은 통신 상대방을 인증하기 위해, ip, port, sequence number 3개 요소를 사용함.
tcp 세션 하이재킹은 패킷 스니핑을 통해 알아낸 인증정보를 가지고 클라이언트와 서버 사이의 통신을 중간에서 가로챔.해커는 클라이언트와 서버와의 연결을 잠시 끊고 발신지 ip를 해커 pc로 변경해서 서버와 커넥션을 재설정.
서버는 통신 연결이 끊겼다가 다시 연결 됐다고 생각하고, 해커 pc를 클라이언트로 인식함.
클라이언트와 해커pc도 같은 방식으로 연결이 설정됨. 클라이언트와 서버와의 통신은 모두 해커 pc를 거치게 되고 해커는 모든 정보를 제어할 수 있게 된다.
4. 스푸핑
네트워크 관점에서는 크게 dns, ip, arp 3개의 자원에 대해서 위장을 통한 공격이 가능.
대표적으로 arp 스푸핑에 대해 알아보면,
arp는 ip주소를 가지고 mac주소를 알아내는 프로토콜.
pc는 내부에 ip와 mac정보가 저장된 arp 캐시 테이블을 가지고 있음. 통신 상대방을 인지하기 위해 해당 테이블을 조회해서 mac 정보를 추출. arp 캐시 테이블에서 정보를 찾지 못하면 arp 프로토클을 통해 ip에 해당하는 amc 정보를 찾을 수 있음.
arp 프로토콜은 보안이 고려되지 않았기 때문에 쉽게 해킹 가능.
arp reply 패킷을 통해 상대방의 arp 캐시테이블을 간단하게 조장 가능. arp 캐시 테이블에는 상대방 ip와 mac이 매핑 되어 있음. pc a와 b에 해당하는 정보를 해커 pc의 mac주소로 교체하면 모든 통신은 해커 pc를 거치게 됨.
5. dos
서비스 거부 공격은 인터넷에서 갖아 많이 활용되는 해킹 기법의 하나.
syn패킷의 발신지 주솔르 변경하거나, syn 패킷만 지속적으로 전송하고, 대량의 ip 패킷을 작은 단위로 쪼개서 전송하는 등의 행위를 통해 시스템을 서비스불능 상태로 만들 수 있다. 이뿐만 아니라 dos는 정상적인 패킷을 대량으로 발생시켜 서비스를 마비시킬 수 있음.
현재는 dos 대응 장비들이 발달해서 소수의 pc로 공격대상 시스템을 서비스 불능 상태로 만들기 어려움.
이를 극복하기 위해 해커는 바이러스를 배포해서 불특정 다수의 pc를 좀비 pc로 만들고, 원격에서 대량의 트래픽을 발생시키도록 제어하는 분산 서비스 거부공격(ddos)가 등장.
ddos는 봇넷을 활용. 봇넷은 악성 코드가 포함된 파일을 인터넷을 통해 배포해서 다수의 좀비pc를 확보, c&c서버를 통해 종비 pc를 통제하는 기술.
'보안' 카테고리의 다른 글
웹 해킹 기술 (0) | 2019.07.05 |
---|---|
애플리케이션 해킹 기술 (0) | 2019.07.05 |