정보보안 - 네트워크 침해사고
네트워크 침해사고
- 사고 유형별 데이터 수집
- 불법적인 자원 사용
- 호스트 불법 사용 : 액세스로그, ps 상태, CPU 사용률, 파일 저장공간 상태
- 네트워크 대역폭 불법사용 : 회선상태, 송수신 패킷 수, IP주소, 프로토콜 사용현황, 스위치 포트 상태
- 메일 프록시 서버의 불법 Relay : 호스트 애플리케이션 로그, 프로세스 상태정보, 네트워크 IP주소, 프로토콜 사용현황
- DoS : 서버의 자원소모를 통한 서비스 중단
- 서비스 자원소모를 통한 서비스 중단 / 불안정
- 호스트 : 프로세스 상태정보, CPU 사용률, 비정상적인 패킷 로그
- 네트워크 : 회선상태, 비정상적인 패킷개수, IP주소, 비정상적인 패킷내용
- 네트워크 대역폭 과도한 점유를 통한 통신 중단 / 불안정
- 네트워크 : 송수신된 패킷 개수, IP주소, 프로토콜 사용현황, 데이터 내용
- 서비스 자원소모를 통한 서비스 중단 / 불안정
- 데이터 손상 및 변조
- 변조의 종류
- 웹페이지 변조
- 데이터파일 변조
- 프로그램 파일 변조
- 호스트 : 액세스 로그, 파일/저장장치 상태, 환경파일 내용
- 네트워크
- IP주소, 프로토콜 사용현황, 데이터 내용, 스위치 포트 상태
- 변조의 종류
- 정보 누설
- 통신가로채기, 비공개자료 누설
- 호스트 : 액세스 로그, 파일/저장장치 상태
- 네트워크 : IP주소, 프로토콜 사용현황, 데이터 내용, 스위치 포트 상태
- 불법적인 자원 사용
- 네트워크 트래픽 (패킷) 정보 분석 방법 (공통적으로 수집해야 할 정보)
- 분석 솔루션 / 툴
- MRTG
- NMS (Network Management System)
- Firewall
- IDS
- 라우터 / 스위치 장비 명령어
- Ethereal
- 네트워크의 정보
- 대역폭 사용량
- 트래픽을 대량으로 발생시키는 IP 주소
- 내부 사용자의 IP 주소
- 서버의 IP 주소
- TCP/UDP 별 사용 현황
- 라우터, 스위치 트래픽 발생 현황
- 분석 솔루션 / 툴
- 프로토콜 개요
- IPv4
- Version(4) / Header Length(4) / Type of Service(8) / Total Length(16)
- Identification(16) / Flags(3) / Fragment Offset(13)
- Flags(3bit)
- 0 Bit : 0으로 설정
- 1 Bit : 0 (큰 패킷에 대한 조각), 1 (조각을 허용하지 않음)
- 2 Bit : 0 (해당 패킷이 마지막 조각), 1 (마지막이 아님)
- Flags(3bit)
- Time to Live(TTL)(8) / Protocol type(8) / Header Checksum(16)
- Time to Live(TTL)
- 해당 패킷이 최대로 통과할 수 있는 라우터 홉수 (전송수명)
- 0이 되면 해당 패킷은 소실 - ICMP 프로토콜을 사용해 송신 시스템에게 에러가 발생함을 통보
- Protocol type
- 전송계층의 프로토콜을 표시
- ICMP : 1
- TCP : 6
- UDP : 17
- Time to Live(TTL)
- Source Address(32)
- Destination Address(32)
- Option / Padding
- Data(32)…
- IPv6 : 기존 14개 헤더에서 8개 헤더로 줄어듦
- Version(4) / Traffic Class(8) / Flow Label(20)
- Payload Length(16) / Next Header(8) / Hop limit(8)
- Source Address(128)
- Destination Address(128)
- TCP : 시스템과 네트워크를 연결해주는 가장 중요한 계층
- 20 Bytes Header
- Source Port number(16) / Destination Port number(16)
- Port : 0 ~ 65535
- Sequence number(32)
- 송신자가 전송하는 데이터의 TCP Segment 번호
- Acknowledgement number(32)
- 송신자가 해당 패킷을 수신한 호스트로부터 다음에 받아야 하는 패킷의 TCP Segment 번호
- header length(4) / 예비(6) / TCP Control Flag(6) / Window size(16)
- TCP Control Flag : 패킷의 용도를 표시
- URG : 긴급
- ACK : 응답패킷
- PSH : 세그먼트를 메모리에서 합성하지 않고 애플리케이션에 바로 전달
- RST : 해당 세션을 강제로 종료
- SYN : 초기에 접속을 시작하는 경우 사용, Sequence Number, Window Size 명시
- SYN (100) -> SYN (1) + ACK (101) -> ACK (2)
- FIN : 해당 세션을 정상적으로 종료
-
FIN (100) -> ACK(100+1) FIN, ACK(1) -> ACK(2)
-
- Window size : 버퍼크기, 운영체제나 응용프로그램에 따라 다름.
- 너무 큰 세그먼트의 크기를 줄이라고 통보
- 네트워크 웜의 경우 TCP Window의 크기가 일정하게 고정됨
- TCP Control Flag : 패킷의 용도를 표시
- TCP Checksum(16) / urgent pointer(16)
- Source Port number(16) / Destination Port number(16)
- Options
- Data
- 20 Bytes Header
- IPv4
- 패킷 수집 및 디코드
- 트래픽과 패킷 수집
- 목적 : 외부 침입과 공격을 확인하기 위함
- 패킷 측정 구간
- 목적에 따라 위치가 달라질 수 있음
- WAN - Router - F/W - LAN/WLAN …
- 기본 : 라우터와 가까운 위치에 센서를 설치
- F/W : NAT (Network Address Transition) : 사설IP <–> 공인IP 일 경우 방화벽 앞 뒤로 센서를 설치
- 같은 시간대에 세션을 찾아서 동일한 패킷들로 분석
- 네트워크 웜 (IP 를 변조) 분석
- 내부 네트워크 전 구간이 측정대상이 될 수 있음
- 백본, 주요 액세스 스위치의 포트 트래픽, CPU 상태 관찰 필요
- 대부분의 네트워크 공격은 내부에 있는 호스트가 서로 공격하도록 하는 DDoS 방법 이용 (22:38)
- WAN - Router - F/W - LAN/WLAN …
- 목적에 따라 위치가 달라질 수 있음
- 패킷 수집
- 캡쳐 기능을 이용해 버퍼나 파일로 저장
- 일정 개수의 파일을 항상 유지
- 약 24-32MB 정도의 용량
- 패킷 수집구간에서 발생하는 트래픽과 패킷저장에 필요한 시간을 계산해서 설정
- 항상 최근의 패킷들만 포함 (Ring Buffer)
- 언제 어떤 사고가 발생할지 알 수 없기 때문에 항상 일정시간 동안의 트래픽 정보와 패킷을 보관
- 일정 개수의 파일을 항상 유지
- 실제 사용자들의 Data 가 필요하지 않을 때 패킷의 Header 부분만 캡쳐
- 모든 패킷의 시작부분에서 일정한 크기만큼만 캡쳐
- 캡쳐 기능을 이용해 버퍼나 파일로 저장
- 트래픽 통계 관찰 - 분석기, NMS 나 시스템 내부 명령어를 통해 관찰
- MAC 주소별 트래픽 통계
- 사용자들이나 서버들이 연결된 액세스 스위치 구간에서는 호스트별 MAC 주소를 확인, 트래픽 발생 상태를 관찰
- IP 주소별 트래픽 통계
- 대부분 침입, 공격은 IP 기반
- IP 주소별로 모든 트래픽 통계를 분리 관찰 필요
- 네트워크에서 웜이 활동하거나 DDoS 가 발생한 경우
- 내부 IP 주소에서 전송하는 패킷 개수가 수신하는 패킷 개수보다 훨씬 많음
- 패킷 개수에 비해서 송수신되는 Byte 수가 적음
- TCP/UDP 세션별 트래픽 통계
- 어느 세션이 서버에서 몇 분 동안 작업을 했는지, 어느정도의 패킷이나 데이터가 송수신되었는지 확인
- MAC 주소별 트래픽 통계
- 패킷 디코드
- 패킷 컬럼
- Time (Relative Time) : 기준 패킷으로부터 상대적인 시간차
- Delta Time : 시간 간격 - 바로 이전 패킷과 해당 패킷사이의 간격
- Abs.Time : 패킷이 캡쳐된 실제 시스템 시간
- Source : 패킷 송신 호스트의 주소 (IP or MAC)
- Destination : 패킷 수신 호스트의 주소 (IP or MAC)
- Length : 실제 패킷의 크기
- CRC (Cycle Redundancy Check) : 순환중복검사, 네트워크 오류 체크 값을 얻어내는 방식
- 데이터 전송 전에 데이터 값에 따라 CRC 계산, 값을 Data 에 붙여넣어 전송
- H/W 방식 (직렬데이터-CRC:비트단위 출력) 과 S/W (병렬데이터-CRC:Octet-8비트 단위 출력) 방식이 있음
- 오류를 검출하는 데 탁월하나, 수정이 쉬워 데이터 무결성 검증은 할 수 없음.
- CRC 값이 Length 에 포함될수도 안될수도 있음
- CRC (Cycle Redundancy Check) : 순환중복검사, 네트워크 오류 체크 값을 얻어내는 방식
- Protocol
- Info : 송수신포트, 패킷의 용도, 애플리케이션의 설명, 패킷의 Seq 번호, Ack 번호, TCP Window size 등
- 패킷 헤더
- 패킷 데이터
- 16진수 혹은 ASCII 코드
- 패킷 컬럼
- 트래픽과 패킷 수집
- 공격형 트래픽의 특징
- 특정 서버만을 공격하는 패턴
- Web 서버, E-mail 서버, DNS 서버 등 (Application 서버) 을 공격
- 패킷의 크기가 크거나 불규칙
- 해당 서버에서 인식하지 못하는 코드를 전송
- 해당 서버에서 처리할 수 없을 정도의 많은 요청을 보냄
- 서버에서 허용되지 않는 문장을 사용해서 요청 패킷을 전송
- 애플리케이션 서비스 중단
- 서비스 중단 코드를 서버에 삽입 : Buffer Overflow 공격 > 네트워크 과부하 발생 공격 (발전된 공격형태)
- Web 서버, E-mail 서버, DNS 서버 등 (Application 서버) 을 공격
- 네트워크에 과부하를 발생시키는 공격 패턴
- 스위치, 방화벽, 라우터 등에 영향
- 영향을 주는 트래픽을 찾는 것은 쉬우나, 발생시키는 호스트를 찾는 것이 어려움 (IP 변조)
- 네트워크 과부하 발생 트래픽의 특징
- 불특정 IP 주소를 순차적으로 사용하여 특정 한 개의 IP 주소 대상으로 같은 형태의 패킷이 발생
- 특정 IP 주소에서 불특정 다수의 IP 주소 대상으로 순차적으로 같은 형태의 패킷이 발생
- 1초에 송신하는 패킷의 개수가 수백에서 수만개 까지 발생
- 한 개 또는 몇 개의 TCP 포트를 대상으로 SYN 패킷을 전송
- 발생하는 패킷의 크기가 작음
- 패킷의 개수가 수신보다 송신이 매우 많음 (100-1000배 이상)
- 침입형 트래픽의 특징
- 목적지를 알고있는 상태인 경우 접속이 가능한 포트를 검색하여 접속을 시도 (여러 방법, 도구) 함
- 목적지를 모르는 경우 네트워크를 통해 IP 와 포트를 검색해야 함
- 해당 IP 주소에서 송신한 패킷 개수와 수신한 패킷 개수가 비슷함
- 일반적으로 검색과정에서는 실제 데이터 송수신이 발생하지 않기때문에 송수신한 바이트 수도 비슷함
- 패킷 가운데 RST 나 login Failure 가 포함된 패킷이 많음
- 검색하려는 IP 주소 또는 포트가 순차적으로 바뀜
- 일반적인 침입과정
- 공격자
- 침입자 -> Target : IP Scan
- Ping 명령어 이용하여 검색
- Echo Request - Echo Reply (호스트 있을 경우)
- Ping 명령어 이용하여 검색
- 침입자 -> Target : 호스트 정보검색 (취약점)
- 침입자 -> Target : 취약점을 이용한 호스트 공격
- 관리자 권한 획득, Data 삭제, 백도어 설치, 자원의 불법사용, 보안정보 유출
- 침입자 -> Target : IP Scan
- Target
- IP Scan 검사 : 침입자의 IP 주소, 검사시간 확인
- Port 검사
- 침입자의 명령어 검사, 코드 검사
- 침입자의 데이터 송수신 상태 검사
- 불법적인 통신 상태 검사
- 공격자
- 스위치, 방화벽, 라우터 등에 영향
- 예시
- MS Blaster 패턴
- Window 계열 운영체제를 통해 확산된 웜 (Blaster Worm) - 2003년 전파
- 여러 IP 에서 한 IP 주소에 패킷을 보냄
- 짧은 Delta time, 많은 SYN 패킷 전송
- Gabot 패턴
- 한 IP 주소에서 여러 IP 에 패킷을 보냄
- 짧은 Delta time, 많은 SYN 패킷 전송
- IP Scan 패턴
- Echo Request 사용 (Ping)
- Port Scan 패턴
- TCP 포트 검색, 포트를 순차적 검색
- 대상 Host 에서 연결을 거부할 경우 RST 패킷이 발생
- MS Blaster 패턴
- 특정 서버만을 공격하는 패턴
댓글남기기