2016년 8월 9일 화요일

침입 차단시스템(Firewall)의 이해 - 침입 차단시스템에 대해

ㅇ ㅂㅇ

> 침입 차단시스템에 대해
 - 침입 차단시스템(Firewall)이란
  -- 외부의 불벅적인 침입으로부터 내부망을 보호하고 외부로 부터 유해정보의 유입을 차단하기 위한 정책과 이를 지원하는 하드웨어/소프트웨어 보안 장비 중 하나
 - 기능
  -- 접근통제(패킷 필터링) / 감사 추적(Audit Trail) 및 로깅(Logging) / 프록시(Proxy) 기능 / 보안 정책 구현 / 사용자 인증 / NAT 구성 등
  -- 감사 추적(Audit Trail) 및 로깅(Logging)
   --- 허가 되지 않은 정보에 대한 로그 파일을 기록하여 의심스러운 사항이나 명백한 침입 사실이 확인 될 경우 이에 대한 자세한 정보를 관리자가 추적 할 수 있도록 하는 기능
 - 침입 차단시스템의 종류
  -- 패킷 필터링(Packet Filtering) 방식
   --- 3ㆍ4 계층 / TCP헤더 Flag / IP주소 / Port 번호 이용 접근 제어
   --- Network Layer, Transport Layer에서 동작
   --- 일반적으로 스크린 라우터를 이용한 방화벽 방식
   --- 패킷에 대한 IP, Port 번호 만으로 통제하기에 처리 속도는 빠름
   --- 세션 관리, 어플레이케이션의 내용을 참조하지 않아 상태 검사 방식이나 응용 게이트웨이 방식의 방화벽에 비해 부가 기능 및 보안성에서 많이 떨어짐
   --- 복잡한 서비스에 대해선 접근 통제의 허용 범위가 위험 수준 이상으로 넓어져 완벽한 접근통제가 불가능하며, 사용자 인터페이스(GUI)나 로깅 기능이 미약해 관리가 불편




  -- 응용 게이트웨이(Application Gateway) 방식(= 어플리케이션 프록시 방법)
   --- 7계층 Application Layer에서 동작 / 서비스별 Proxy 사용
   --- 침입 차단시스템의 Proxy를 이용하여 사용 가능
   --- 외부 네트워크와 내부 네트워크가 오직 서비스별 Proxy를 통해서만 연결되며 직접 연결은 불가
   --- Application Layer에서 동작하므로 네트워크에 많은 부하를 줄 수 있고 하드웨어에 의존적
   --- 새로운 서비스를 제공하기 위해선 세로운 프록시 데몬이 필요하기에 새로운 서비스에 대한 유연성이 떨어짐


  -- 서킷 게이트웨이(Circuit Gateway) 방식
   --- 하나의 일반 게이트웨이로 모든 서비스가 처리 가능한 방식
   --- Session Layer, Presentation Layer, Application Layer에서 동작
   --- 게이트 웨이 사용을 위해 수정된 클라이언트 모듈이 필요함(지원 불가능한 프로토콜이 있을 수 있음)
   --- 내부 IP 주소를 숨길 수 있으며, 수정된 클라이언트 프로그램이 설치된 사용자에 대해서는 별도의 인증절차 없이 투명한 서비스 제공이 가능


  -- 상태 검사(Stateful Inspection) 방식
   --- 기본적인 패킷 필터링 방식을 사용
   --- 서버-클라이언트 모델을 유지시키며서 모든 Layer의 전후 상황에 대한 문맥을 동적으로 제공
   --- 패킷 필터링, 응용 게이트웨이, 서킷 게이트웨이 방식의 단점을 보완
   --- 최근 방화벽 업계의 표준이 되어, 모든 방화벽 시스템에서 채용되어 사용되는 중
   --- 접근규칙(Access Rule)을 생성 할 때 되돌아나가는 Flow에 대한 또 다른 접근규칙을 설정 할 필요가 없음(동적으로 접근규칙을 생성하기 때문)
   --- 데이터의 내부에 악의적인 정보를 포함 할 수 있는 프로토콜에 대한 대응이 어려움








2016년 8월 8일 월요일

침입탐지시스템(IDS)의 이해 - 침입탐지시스템에 대해

ㅇ ㅂㅇ

> 침입탐지시스템에 대해
 - 침입탐지시스템(IDS ; Intrusion Detection System)
  -- 시스템에 대한 인가가 되지 않은 행위와 비 정상적인 행동을 탐지하여 관리자에게 알려 주는 시스템
  -- 수행 단계 : 정보수집 -> 정보 가공 및 축약 -> 침입분석 및 탐지 -> 보고 및 조치
  -- 일반적으로 침입 차단시스템(Firewall)과 결합하여 많이 사용됨
 - IDS의 유형(데이터 소스 기준 IDS 시스템 분류)
  -- 호스트 기반 IDS(HIDS ; Host Intrusion Detection System)
   --- 각 호스트 내에서의 운영체제 감사자료와 시스템 로그 등을 통해 침입탐지를 하는 시스템
   --- 감시 대상이 되는 서버에 각각 설치를 해야 함
   --- NIDS(Network Intrusion Detection System)에서 탐지 불가능한 침입을 탐지 가능 / 추가적인 하드웨어의 구매가 필요 없기에 상대적으로 저렴함
   --- 호스트의 자원을 점유하며 운영체제 자체가 취약할 경우 보안을 보장하기 힘듬
  -- 네트워크 기반 IDS(NIDS ; Network Intrusion Detection System)
   --- Promiscuous 로 동작하는 NIC를 통해 네트워크 패킷을 캡처 후 분석을 통한 침입탐지를 하는 시스템
   --- 보통 Switch에서 업링크(작은 네트워크(Switch)에서 큰 네트워크(Router)로 연결되어 연결되는 포트)된 포트에 미러링을 구성하는 방식을 사용
 - IDS의 유형(침입탐지 판정 원리에 따른 분류)
  -- 오용탐지(Misuse Detection)/지식기반 침입탐지라고도 함
   --- 정해진 공격 모델과 일치하는 경우를 침입으로 간주
  -- 비정상행위탐지(Anomaly Based)/행위기반 침입탐지라고도 함
   --- 정해진 모델을 벗어나는 경우를 침입으로 간주


> False Positive / Negative
 - False Positive(오탐)
  -- 정상을 악의적인 것으로 판단
 - False Negative(미탐)
  -- 악의적인 트래픽을 정상으로 판단

> 보안 장비간 비교



원격 접속 및 공격 - 공격의 인지 및 이해 / Trojan, Exploit 등 식별, 대처

ㅇ ㅂㅇ

원격 접속 및 공격의 인지 및 이해

> 원격 공격
 - 원격 네트워크의 공격자가 피해 시스템에 접근하여 명령을 전달 할 수단을 획득하는 공격
 - Backdoor, Null Session Hacking 등의 기법으로 대상의 시스템을 제어 할 수 있는 권한 등을 획득

> Trojan, Exploit 등 식별, 대처
 - Trojan(트로이 목마)
  -- 악성 프로그램 또는 악성코드를 의미
 - Exploit
  -- 컴퓨터의 소프트웨어나 하드웨어 및 컴퓨터 관련 전자 제품의 버그, 보안 취약점 등 설계상의 결함을 이용하여 공격자의 의도된 동작을 수행하도록 만들어진 절차나 일련의 명령, 스크립트, 프로그램 또는 특정한 데이터 조각을 말하며, 이러한 것들을 사용한 공격 행위를 이름
 - Backdoor
  -- 시스템에 접근 할 수 있는 뒷문
  -- 패스워드 없이 로그인 하기 위해 백도어를 설치하며, 이를 위해선 타겟의 시스템에 백도어 프로그램을 설치해야하며, 타겟의 시스템에 디폴트 공유가 해제되어 있다면 스케쥴 서비스를 실행하여 스케쥴에 등록한 뒤 공유 디렉토리를 설정함. 이후 백도어를 공유 디렉토리에 복사하고 스케쥴에 등록하여 공격자가 원격지에서 nc 또는 telnet을 이용하여 접속을 하면 command shell을 얻을 수 있음
  -- Back Oriffice 를 시작으로 제작되었고 현재 다양한 종류가 있음
 - Null Session
  -- 윈도우는 NetBIOS 프로토콜을 사용하기 때문에 몇가지 취약점을 가지고 있는데, 널 세션을 허용할 경우 이를 이용하여 윈도우에 승인받지 않은 자도 접근을 할 수 있음
  -- 널 세션은 사용자가 ID, PW를 입력하지 않고도 공유 대상인 IPC$(Inter Process Communicaction)에 연결하는 것으로 일반적 NetBIOS를 사용하는 시스템에서는 IPC$, C$, Admin$는 항상 공유 되어 있음
  -- 널 세션 접속은 윈도우에 인증받지 않은 접속으로 공격자에게 타겟 시스템의 사용자 계정, 그룹정보, 서비스 정보, 운영중인 프로세서 정보, 공유파일, 프린터에 대한 정보를 제공해 주게 됨
  -- 사용 Port : TCP/UDP 135~139 번

스니핑 및 암호화 프로토콜 - 스니핑 공격 원리와 대처 방법

ㅇ ㅂㅇ

스니핑 공격 원리와 대처 방법

> 스니핑(Sniffing) 공격
 - 네트워크 상에서 다른 호스트들의 패킷 교환을 엿들어 정보를 수집하는 것
 - 스니핑 원리
  -- 호스트의 NIC의 모드를 Promiscuous 모드로 바꾼 뒤 동작 시키면 같은 네트워크 상의 모든 트래픽을 다 받아 들여 스니핑이 가능해짐
 - Passive Sniffing
  -- Hub로 연결된 네트워크에서는 Hub가 Flooding 하므로 NIC 만 Promiscuous로 바꾸면 스니핑이 가능함
 - Active Sniffing
  -- Switch의 경우에는 따로 공격을 통해 Flooding 하게 만들어야 가능
  -- Flooding 하게 만드는 것이 아니라, MITM(Man In The Middle Attack ; 중간자 공격) 형태로 만들어야 함
   --- Switch Jamming
   --- ARP Spoofing(ARP Cache Poisoning)
   --- ICMP Redirect : Router에게 올바른 경로를 알려주는 용도이지만 악용하여 자기 자신(공격자)에게 오도록 경로를 수정하여 패킷을 염탐함
 - 스니핑 공격의 대응
  -- Switching 환경으로 네트워크를 설계함
  -- ARP Cache Table을 정적으로 운영
  -- 데이터의 암호화 : SSL / PGP, S/MIME / SSH / VPN / IPsec

※ MITM(Man In The Middle ; 중간자 공격)Attack
 - 네트워크 통신을 조작하여 통신 내용을 도청하거나 조작하는 공격 기법
 - 통신을 연결하는 두 사람 사이에 중간자(공격자)가 침입하여, 두 사람은 상대방과 연결되었다고 생각하지만, 실제로는 중간자에게 연결되어 중간자가 한쪽에서 전달된 정보를 도청 및 조작 후 다른 쪽으로 전달
 - 개선 방법
  -- 인증을 통해 중간자 공격을 막음
  -- TLS/SSL 프로토콜은 공개 키 기반으로 한 인증을 사용
  -- 강력한 상호 인증(비밀번호, 암호키) 사용
  -- 대기 시간 점검(보통 20초 걸리는 데, 그 이상 걸리는 경우 제 3자의 Sniffing이 예상 됨)
  -- one-time pads는 중간자 공격에 면역되어 있음
  -- 양자암호(Quantum Ctyptography)
   --- 양자의 역학적 특성을 이용한 암호화 기술로 비공개 채널으로 키를 주고 받고 공개적인 채널으로 암호문을 보내는 방법.
   --- 공격자가 키를 읽기 위해 펄스를 측정하는 순간 펄스가 변화되어 데이터가 무용지물이 되며, 수신자는 이러한 변화를 통해 해커의 공격 시도를 알 수 있어 데이터를 폐기하고 새로운 키를 재송신 받아 도청 없는 통신이 가능함
 - 공격 방법 예시
  -- A와 B가 통신을 하려는 상황에 C가 그 사이에 끼어 메시지를 중간에 도청 및 조작 후 서로에게 전달
  1) A가 B에게 암호키를 요청 -> C에게 해당 내용 전달
  2) C가 B에게 암호키 요청 -> B에게 해당 내용 전달
  3) B가 C에게 암호키를 전달 -> C가 해당 내용 받음
  4) C가 A에게 C의 암호키를 B의 암호키라고 속여 전달 -> A는 B의 암호키(실제 C의 암호키)를 전달 받음
  5) A가 B에게 받은 암호키로 암호화 하여 메시지 전달 -> C가 해당 내용 받음
  6) C는 A의 메시지를 해독 후 그대로 B에게 전달하거나, 내용을 변경 후 B에게 전달



IP Spoofing Session Hijaking 원리

ㅇ ㅂㅇ

IP Spoofing Session Hijaking 원리

> IP Spoofing
 - 공격자의 주소를 위장하는 방법(타겟이나 Router 등)
 - Trust Relation 을 악용한 것(IP만 일치하는 지 확인만 하고 세션을 성립 시키는 것)
   1단계 : 공격자가 세션을 뺏고자 하는 호스트에 DoS 공격
   2단계 : 공격자가 호스트의 IP로 자신을 속여 서버로 SYN 패킷을 전송
   3단계 : 서버가 보낸 SYN/ACK 패킷을 호스트는 받지 못하고 공격자가 Brute Forcing으로 Sequence Number를 맞춰 ACK 패킷을 보냄
   4단계 : Session 성립
 - 현재는 Sequence Number가 랜덤하게 변경되어 공격 불가능
 - 대응 방법
  -- Trust를 사용하지 않는 것이 좋음 (Trust는 TCP Wrapper가 처리를 한다고 함)
  -- 불가피한 경우 MAC 주소를 Static으로 고정하는 것이 좋음

> ARP Spoofing(ARP Cache Poisoning과 미묘한 차이)
 - 자신이 게이트웨이 인 것처럼 소경 네트워크 내 모든 패킷이 자신을 거쳐 가도록 하는 공격
  1단계 : 스니핑이 선행되어야 하며 랜카드는 Promiscuous 모드로 동작해야 함
  2단계 : ARP Request Broadcast 로 네트워크 상의 모든 IP와 MAC 주소를 알아냄
  3단계 : 공격자가 자신의 MAC 주소를 게이트웨이(HUB/Switch)의 MAC주소로 속여 네트워크 상의 호스트들의 APR Cache를 업데이트 시킴
  4단계 : 모든 패킷이 공격자 자신에게로 옴
 - 대응 방법
  -- ARP Table을 정적으로 고정(arp -s )
  -- Ingress Filtering : 외부에서 오는 패킷이 내부 인 척 하는 것을 거르는 필터링
  -- Egress Filtering : 내부에서 나가는 패킷이 내부의 주소가 아니면 거르는 필터링
  -- ARP Storm 확인 : 다량의 ARP Reply 가 지속적으로 발생하는 걸 확인

> Session Hijaking
 - 서버와 클라이언트 사이의 Session을 가로채는 기술
 - 대응 방법
  -- 데이터 전송 시 암호화하여 내용을 보지 못하게 해야 함
  -- 지속적인 인증 시스템 구축(일정 시간이 지난 후 재 인증 등)
  -- Ack Storm 의 탐지




2016년 8월 4일 목요일

네트워크 스캐닝 - Remote Finger Printing, IP 스캔, Port 스캔

ㅇ ㅂㅇ

> 네트워크 스캐닝
 - 공격 대상의 네트워크나 시스템의 자세한 정보를 수집하는 행위
 - 공격 대상의 OS, Port, IP, 서비스 등에 관한 세부 정보를 수집

> Remote Finger Printing
 - RFC 문서를 이용하여 전송에 대한 응답 형태를 이용하는 방법
 - telnet 등을 이용하여 전송에 대한 응답 형태를 이용
 - 외부에서 물리적인 장치, 운영체제 유형 등을 알아 내는 기법

> IP Scan
 - Host Discovery(Host Scan)과 같이 운영되고 있는 시스템을 찾아 내는 기술
 - ICMP Ping 과 TCP Ping(SYN 등을 보낸 대한 응답을 보는) 등으로 알아 냄

> Port Scan
 - 스캐닝 기법
  -- Opening Scanning (TCP Connect Scanning)
   --- 세션 성립시키는 방법(로그가 남아 위험함)
   --- Open Port의 경우 : SYN/ACK(신호 받고 ACK 신호 보내 세션을 성립 시킴)
   --- Close Port의 경우: RST/ACK
  -- Half-Open Scanning (SYN Scanning)
   --- Open Port의 경우 : SYN/ACK(신호 받고 RST 신호를 보내 세션 성립을 중지)
   --- Close Port의 경우 : RST/ACK
  -- Stealth Scanning(FIN / X-MAS / NULL Scanning)
   --- Open Port의 경우 : 응답 없음
   --- Close Port의 경우 : RST/ACK 신호 응답
  -- More Advanced Scanning(Spoofed Scanning)
 - 포트 스캐닝의 구분
  -- TCP 포트 스캐닝
   --- 특정 Flag 값을 설정 한 뒤 패킷을 보내고 그에 대한 응답으로 확인함
  -- UDP 포트 스캐닝
   --- 포트가 열린 상태 : 아무런 응답이 없음
   --- 포트가 닫힌 상태 : ICMP Unreachable(UDP 패킷이 목적지에 도달하지 못했단 메시지) 응답 받음
   --- 패킷이 유실되는 경우도 또한 아무런 응답이 없어 신뢰성이 떨어짐



2016년 8월 3일 수요일

분산 서비스 거부 공격 - DDoS 공격 원리 및 대처 방법

ㅇ ㅂㅇ

DDoS 공격 원리 및 대처 방법

> DDoS(Distributed DoS) 공격
 - 공격 시스템을 분산 배치(다수의 호스트)하여 동시에 하나의 공격 대상에게 대량 트래픽 전송하여 과부하를 발생시키는 공격(Zombie PC를 이용)
 - DDoS 도구
  -- Trinoo, TFN, Stacheldraht
 - DDoS는 Attacker -> Masters -> Slaves -> Victim 으로 구성
  >> DRDoS 는 Attacker -> Masters -> Reflectors -> Victim 으로 구성
 - DDoS 공격 방법
  -- Trinoo : UDP Floods 이용
  -- TFN : UDP/SYS/ICMP Floods 등 이용
  -- TFN2K : TFN에서 진화된 도구
  -- Stacheldraht : UDP/SYS/ICMP Floods 등 이용, Trinoo나 TFN 보다 진화된 형태
 - DoS(DDoS, DRDoS)공격 대응 방법
  -- 입력 소스 필터링, 경계 라우터에서 불필요한 ICMP, UDP 트래픽 제한
  -- 외부로 나가는 패킷(라우터의 Egress) 필터링
  -- telnet, ftp, RPC 서비스 등은 외부에서의 사용을 제한
  -- DoS(DDoS) 방지 전용 솔루션 도입, 긴급 DDoS 대피소 이용

> DRDoS(Distributed Reflection DoS ; 분산 반사 서비스 거부 공격)
 - 공격 트래픽을 보내는 대상이 라우터나 웹 서버와 같은 제 3자(Third party ; Reflector)를 이용하여 출발지를 모르게 하는 공격
 - DDoS 공격과 유사하지만 좀비 PC가 출발지 IP 주소를 공격지 IP로 변환 후 Reflector에게 트래픽을 보내 그 응답 트래픽을 이용해 공격을 함

> DNS Amplification Attack(DNS 증폭 공격)
 - DNS Server(Reflector)를 이용한 DRDoS 공격
 - 공격을 막기 위해서는 DNS Server에서 재귀 할 수 없도록 담당자가 설정 하는 것이 중요

> HTTP Continuation Attack
 - IP Fragment Packet Flooding
 - 서버로 전달하는 패킷에 HTTP Header 없이 Data 만 채워 웹 서버가 지속적으로 데이터 수신을 위해 TCP 자원을 사용하도록 하는 공격

> HTTP Traffic Flooding Attack
 - GET Flooding
  -- 동일한 URL을 반복 요청, 서버 자원을 사용하도록 하는 공격
 - GET Flooding with Cache-Caontrol(CC Attack)
  -- 캐싱 서버를 운영하여 많이 요청받는 데이터는 웹 서버가 아닌 캐싱 서버를 통해 응답하도록 구축하는 경우 이 때 웹 서버에서 직접 처리를 하도록 유도하여 자원을 소진시키는 공격

> HTTP Header/Option Spoofing Flooding Attack
 - Slow HTTP POST DoS
  -- 대량의 데이터를 장시간에 걸쳐 분할 전송하여 서버는 POST 데이터가 모두 수신하지 않았다고 판단하여 연결을 유지하고 이로 인해 원활한 서비스가 불가능 하게 됨
 - Slow HTTP Header DoS
  -- Slowloris는 HTTP 메시지의 헤더 부분을 비 정상적으로 조작하여 웹 서버에 보내면 헤더 정보를 모두 수신하지 못한 상태로 파악하여 연결을 장시간 유지하게 되고 이로 인해 원활한 서비스가 불가능하게 됨
 - Slow HTTP Read DoS
  -- 웹 서버와 TCP 연결 시 TCP 윈도우 크기 및 데이터 처리율을 감소시킨 후 HTTP 데이터를 송신하여 웹 서버가 정상적으로 응답하지 못하는 상태를 유발 시킴

> HashDoS Attack
 - 조작된 매개 정보를 포함한 다량의 메지시를 해쉬테이블 검색을 위한 인덱스로 사용하여 해쉬 값에 충돌을 발생시켜 모든 해쉬 테이블을 검사하게 만듬 이로 인해 웹 서버의 CPU 자원을 소진시킴

> HULK(Http Unbearable Load King) DoS Attack
 - 웹 서버의 가용량을 모두 사용하도록하여 정상적인 서비스가 불가능하도록 하는 GET Flooding 공격


서비스 거부(DoS) 공격 - 각종 Dos 공격 원리와 대처 방법

ㅇ ㅂㅇ

각종 Dos 공격 원리와 대처 방법

> 서비스 거부(방해) 공격(DoS ; Denial of Service)
 - 시스템의 서비스를 사용 할 수 없도록 만드는 가용성 파괴 공격
 - 일반적으로 서버를 다운시키는 공격
 - TCP/IP Protocol의 구조적 취약점을 이용한 공격이 많음
 - 시스템에 과부하를 주는 공격 / 네트워크 서비스 방해를 하는 공격
 - 방법
  -- 특정 프로토콜을 집중 공격, 다량의 패킷을 대상 서버에 전송하는 등의 방법
 - 유형
  -- Land attack, Teardrop, Ping of Deat, SYN Flooding, Smurf attack, UDP flood attack 등

> (TCP) SYN Flooding
 - TCP의 3-Way HandShaking 과정의 취약점을 이용한 DoS 공격의 일종
 - 공격자가 임의로 자신의 IP를 속인 뒤 서버로 다량의 SYN 패킷을 보내 서버를 대기 상태(SYN+ACK Sent)로 만드는 공격
 - 서버는 계속 ACK 패킷을 기다리는(Half Open 상태, SYN-RECV 상태) 데 모든 자원을 소모하게 되고 정상적인 서비스를 불가능하게 함(시스템에 listen queue를 가득 채워 오버플로우에 빠지게 됨)
 - 탐지 방법
  -- SYN 패킷을 받으면 카운트를 늘리고 ACK를 보내면 카운트를 줄여 특정 기간 내에 카운트가 높으면 SYN Flooding
 - 조치 방법
  -- Connect Queue Size를 증가 시킴(일시적) ; Backlog Queue라고도 표현
  -- SYN Cookie 를 사용, SYN Cookie Size를 늘려줌
   --- L4에서 SYN 패킷을 보내면 세션 테이블 생성없이 SYN/ACK(SYN=Cookie)를 보내고 이에 대한 ACK(ACK=Cookie+1) 패킷을 받으면 서버와 세션을 연결해 주는 방법
   --- 물론 L4가 아닌 단에서도 가능
  -- Router 단에서 서브넷 외의 주소를 가지는 소스 IP를 가지는 패킷을 차단
  -- 중간 G/W에서 일정시간 연결이 이루어지지 않은 SYN 패킷 차단

> UDP Flood Attack 
 - 공격자가 UDP로 서버에 가상의 데이터를 연속적으로 보내 서버의 부하 및 네트워크 오버로드를 발생시키는 공격
 - 공격 대상자 시스템에 다수의 UDP 패킷을 전송 시 목적지 포트에서 서비스 하는 어플리케이션이 없을 경우 서버에서 ICMP Unreachable 패킷을 다수 전송
 - 조치 방법
  -- 불필요하거나 미사용 UDP 서비스 중지 및 차단
  -- 방화벽 등을 이용하여 패킷 필터링
  -- 리눅스의 경우 chargen, echo 서비스 중지

> Smurfing(=Smurf) Attack
 - 공격 대상 호스트 IP 주소로 위장 후 임의의 Broadcast 주소로 ICMP Echo Request (Ping) 패킷을 보내 이에 대한 ICMP Echo Reply 를 공격지로 보내는 방법
 - 공격대상 호스트가 ICMP Reply 패킷들을 동시다발적으로 수신하여 부하 발생
 - 조치 방법
  -- Router에서 Direct Broadcast 패킷은 차단(외부 네트워크에 Broadcast를 Direct Broadcast라고 하는 듯함)
  -- Host에서 Broadcast로 전달된 ICMP 패킷에 대해서는 응답을 않하도록 설정
  -- 외부에서 들어오는 IP(ICMP) broadcast 패킷을 막거나 응답 않도록 설정

> Ping of Death Attack
 - IP 패킷 최대 사이즈보다 큰 ICMP Request 패킷을 보내는 공격
 - 패킷 재 조립 과정에서 Buffer Overflow 및 시스템 충돌이 발생
 - IP 패킷 사이즈를 검증하는 설정을 추가하여 발생 방지

> Teardrop Attack
 - Header가 조작된 일련의 IP 패킷 조각들(Fragments)을 전송하여 공격
 - 비정상적인 송신 패킷조각을 수신자가 재 조합시 부하 발생
 - Offset 값을 일부로 이전 값보다 작게 음수로 만들어 보내기에 재 조립과정에서 에러가 발생 -> 블루 스크린 발생

> Land Attack
 - 목적지와 출발지 IP와 Port가 모두 동일하게 보내는 공격
 - 컴퓨터가 루프 상태에 빠져 IP 프로토콜 스택에 심각한 장애를 발생
 - 시스템 자원을 고갈시켜 서비스 장애를 유발
 - 조치 방법
  -- 라우터나 패킷 필터링 도구를 이용 source 주소가 내부 IP 인 패킷 유입을 차단


네트워크기반 프로그램 활용 - Ping, Traceroute 등 네트워크기반 프로그램의 활용

ㅇ ㅂㅇ

네트워크기반 프로그램의 활용

> Ping(Packet Internet Grouper)
 - 네트워크가 올바르게 연결되는지 확인하는 점검 도구
 - 명령어 : "ping [- 옵션] target_name(ip or Domain name)"
 - ICMP의 Echo request, Echo reply를 이용하여 응답시간 체크

> Traceroute(Windows는 tracert)
 - 네트워크 진행경로 추적, 데이터 도달 여부를 확인 점검하는 도구
 - ICMP와 IP헤더의 TTL 필드를 사용하여 라우팅 경로를 추적
 - IP의 TTL 값을 1씩 늘려가며 Time Exceeded 에러 메시지를 통해 목적지까지의 경로를 추적
 - 명령어 : "traceroute [- 옵션] target_name"
 - Unix/Linux : traceroute(UDP 생성)
 - Windows : tracert(ICMP Echo Request 생성)
 - Firewalking : Linux의 traceroute를 이용해 방화벽에 도착하는 port 번호를 조작하여 방화벽을 우회하는 기법

>Netstat
 - 시스템의 연결 정보, 네트워크 상태를 다양하게 보여주는 명령어
 - 시스템에서 제공되고 있는 서비스 정보(현재 Open 되어 있는 Port 정보) 확인
 - 명령어 : "netstat [- 옵션]"
  -- ex) netstat -an
 - 주요 옵션 : -a(모든 정보), -n(10진 표시), -r(라우팅 테이블)
 - 주요 연결 상태
  -- ESTABLISHED(연결 중)
  -- TIME_WAIT(연결 종료 또는 대기)
  -- LISTENING(접속 대기)
  -- SYN_SENT(접속을 위해 패킷 송신 상태)

>Tcpdump
 - 텍스트 기반의 패킷 분석기(주로 유닉스 계열), 윈도우 계열은 Windump
 - NIC으로 입출력되는 트래픽을 사용자에게 출력해주는 분석 도구
 - tcpdump -i eth0 -w tcpdump.txt : 특정 인터페이스(eth0)로 송수신되는 데이터 패킷을 설정 파일에 저장
 - tcpdump -r tcpdump.txt : tcpdump.txt에 저장된 패킷 헤드들을 확인
 - tcpdump -i eth0 -c 5 : 송수신되는 패킷 5개만 받기
 - tcpdump -i eth0 icmp : icmp 패킷만 지정하여 수집
 - tcpdump -i eth0 > test.log : dump 파일을 직접 만듬 (cat으로 확인 가능)
 - tcpdump -i any dst host 192.168.100.1 : 도착지가 host IP 인 모든 인터페이스 패킷 보기
 - tcpdump -i any src host 192.168.100.1 : 출발지가 host IP 인 모든 인터페이스 패킷 보기
 - tcpdump -i any host 192.168.100.1 : host IP와 통신(주고, 받는 패킷 모두)하는 모든 인터페이스 패킷 보기




2016년 8월 2일 화요일

무선 통신 - 이동/무선 통신 보안

ㅇ ㅂㅇ

이동/무선 통신 보안

> 무선랜 (Wirelss LAN, Wi-Fi)
 - IEEE802.11 (CSMA/CA) 방식 상용하는 무선 접속환경
 - 구성 요소 : AP(Access Point ; 공유기 등), 무선 NIC(Wireless Network Interface Card)
 - 무선 랜 유형
  -- WPAN(Wireless Personcal Area Network)
   --- 단거리 Ad-Hoc 방식
   --- Peer To Peer 방식 (노트북과 마우스 등)
  -- WLAN(Wireless Local Area Network)
   --- 통상 Wi-Fi를 지칭
   --- Half Duplex 방식으로 신호가 전달되므로 CSMA/CA로 충돌을 회피(* Hub의 CSMA/CD와 다름)
  -- WMAN(Wireless Metropolitan Area Network)
   --- 도시 규모의 지역에서 무선 광대역 접속 기능(WiMAX)
 - 무선랜 접속 방식
  -- Infrastructure Network
  -- 유선 네트워크와 무선 네트워크를 연결하는 AP(Access Point) 장비에 의해 외부통신이 지원되는 WLAN
  -- Ad-Hoc Network
   --- WLAN 장비 사이에서 직접 통신이 일어날 뿐 외부와의 연결은 되지 않음(노트북, 마우스와 같은 연결)
 - WLAN 보안 설정
  -- WEP(Wireless Equivalent Privacy)
   --- RC4 암호화 알고리즘을 사용(RC4 자체가 알고리즘 자체에 취약점이 존재함)
   --- 정적인 암호화 키를 사용하기에 도청을 당할 경우는 상당히 취약함
   --- 최근에는 쓰지 않는 방법
  -- WPA(Wi-Fi Protected Access), WPA2
   --- WEP의 문제점을 보완
   --- WPA : 인증(802.1X/PSK), 암호화(TKIP)
   --- WPA2 : 인증(802.1X/PSK), 암호화(CCMP) ; CCMP가 AES를 사용하는 방법
   --- WPA2도 TKIP를 사용 가능하지만 그렇다면 WAP과 다를 바가 없음


※ TKIP
 - 임시 키 무결성 프로토콜(TKIP ; Temporal Key Integrity Protocol)
 - IEEE 802.11의 무선 네트워킹 표준으로 사용되는 보안 프로토콜
 - 2009년 이후 사용하지 않음

※ AES
 - 고급 암호화 표준(Advanced Encryption Standard)
 - DES를 대체한 암호화 알고리즘

IEEE 802.11 이란 ?

ㅇ ㅂㅇ

IEEE 802.11 이란?
 - Wi-Fi의 무선 규약으로 IEEE 802.11은 a, b, g, n 으로 정해져 있음
 - 802.11 a, b, g, n
  -- 802.11a
   --- 주파수 대역(Frequency Band) : 5 GHz
   --- 최대 데이터 전송 속도(Max Data Rate) : 54Mbps
   --- 5 GHz 대역을 사용하여 802.11b, g와 호환은 되지 않지만 타기기와 주파수 간섭 문제가 발생하지 않음
   --- 해당 대역은 통신위성이 지상과 교신 할 때 사용하는 대역으로 국가에 따라서 옥외 이용에 제한이 될 수 있음
  -- 802.11b
   --- 주파수 대역(Frequency Band) : 2.4 GHz
   --- 최대 데이터 전송 속도(Max Data Rate) : 11Mbps
   --- 가장 먼저 나온 기술로 전송속도가 느리고 다른 기기와의 주파수 간섭 문제가 발생 할 수 있음
  -- 802.11g
   --- 주파수 대역(Frequency Band) : 2.4 GHz
   --- 최대 데이터 전송 속도(Max Data Rate) : 24Mbps
   --- 802.11b와 동일 주파수 대역을 사용하여 802.11b 사용 기기에 대해 상위 호환 가능
  -- 802.11n
   --- 주파수 대역(Frequency Band) : 2.4, 5 GHz
   --- 최대 데이터 전송 속도(Max Data Rate) : 300Mbps
   --- 근거리 무선 통신 중 가장 최근에 등장하였으며, 전송속도가 가장 빠름


네트워크 장비 이해 - 네트워크 장비를 이용한 네트워크 구성

ㅇ ㅂㅇ

> 네트워크 장비를 이용한 네트워크 구성
 - 네트워크의 구성은 안전성에 기반을 두어야 함
  -- 계층 모델(Hierarchical Model)을 이용(안전성이 검증된 네트워크 모델의 대표)
   --- Access : 말단에서 직접 연결되는 계층으로 보통 L2 Switch
   --- Distribution : 네트워크 간의 연결(Router, L3 Switch 등)
   --- Core(Backbone) : 한 네트워크 내부의 모든 트래픽을 연결하고 관리하는 성능 좋은 Router, Switch / 네트워크의 모든 트래픽 흐름을 관할 (가장 중요)
 - 전용선 연결
  -- 가상 사설망(VPN ; Virtual Private Network) : 인터넷망과 같은 공중망을 사설망처럼 이용해 회선 비용을 크게 절감할 수 있는 기업통신 서비스를 말한다. 저렴한 공공의 인터넷망을 이용하여 고비용의 사설 전용선을 사용하는 효과를 볼 수 있는 네트워크 방식이다.
  -- 전용선(Leased Line) : 물리적 Cable을 이용하여 직통으로 연결하는 회선



네트워크 장비 이해 - 라우터 설정

ㅇ ㅂㅇ

> 라우터 설정
 - User Mode (Router> ; 사용자 모드)
         ↓ enable(en)
 - Privileged Mode(Router# ; 특권 모드)
         ↓ configure terminal(conf f)
 - Global Configuration Mode (Router(config)# ; config 모드)
  -- 여기서 전체적인 설정이 가능

 - 설정 관련 명령어
  -- 모드 변환 : enable, disalbe 명령


  -- 터미널 패스워드 설정 : 원격 관리를 위한 로그인에 필요한 암호 설정


  -- Default 라우팅 명령 : 라우팅 테이블에 없는 원격 네트워크를 다음 홉 까지 전송


  -- interface IP Address 변경 명령 : ip address {ip address} {net mask}


  -- Default 라우팅 명령 : 라우팅 테이블에 없는 원격 네트워크를 다음 홉 까지 전송




네트워크 장비 이해 - VLAN 구성 및 관리

ㅇ ㅂㅇ

VLAN 구성 및 관리

> 네트워크 토폴리지
 - Bus (버스형) : T자형 연결(구성간단 장점, 한 부분이 끊어지면 전체통신 영향)
 - Ring (링 형) : 하나의 케이블 원에 연결되어 한 방향 전송(회선 단절 시 전송 않됨)
 - Star (스타 형) : 중앙 허브에 모든 컴퓨터 연결(한 노드 고장시, 나머지는 정상)
 - Tree (트리 형) : 중앙 허브에 다수 서브 허브 연결(Star 형 + Bus 형 구조)
 - Mesh (망 형) : 각 컴퓨터 별로 모든 컴퓨터와 연결(중복 경로 장점, 고비용 단점)

> VLAN (Virtual Local Area Network) ; 물리적인 네트워크와 상관없이 논리적으로 네트워크를 분리하는 기술
 - 물리적으로 한 장비 내에서 브로드캐스팅 도메인을 나누는 논리적 LAN
 - 장점 : 브로드캐스트 트래픽 조절 가능, 네트워크 성능 향상, 보안성, 네트워크 관리 용이
 - 종류 : 포트 기반, MAC주소 기반,
 - 기본적으로 VLAN 소속이 다르면 서로 통신이 불가능(Router나 Routing Module을 이용하여 통신이 가능)
  -- Switch 내부적으로 Frame에 VLAN 정보가 있는 Tag를 붙여서 내보내는 데 VLAN 소속이 다르면 버림
 - Switch 의 모든 Port는 기본적으로 VLAN 1로 할당되어 있음
 - VLAN이 설정된 Switch 의 각 Port 의 구분
  -- Port(Access) : 지정된 VLAN Tag 정보만 허용되는 Port(Host 로의 연결에 사용)
  -- Trunk Port : VLAN Tag 정보를 확인 안하는 Port(다른 Switch와의 연결에 사용)
 - Trunking Protocol(Tag를 어떻게 매길 것인지)
  -- 802.1Q : 표준 Protocol(Native VLAN 지원 O)
   --- Trunking 시 VLAN 프레임들을 구분하기 위한 프레임 태깅 표준 방식
  -- ISL(Inter-Switch Link) : Cisco Only Protocol(Native VLAN 지원 X ; Cisco 장비 끼리만 가능)
 - Native VLAN
  -- Trunk Port로 Frame 이 나갈 때 특정 VLAN에 대한 정보를 Tagging 하지 않고 전달
   --- ex) Native VLAN이 2라면, VLAN 2 인 Frame은 Tagging 없이 전달
 - VTP(VLAN Trunking Protocol)
  -- 다수 VLAN 구성환경에서 동일 VLAN으로 구성된 다른 스위칭 장비와 통신시 통합 트렁크 링크를 통해 다수 VLAN 프레임을 같이 전달함
  -- Cisco Only Protocol
  -- Trunk로 연결된 Switch 들 간의 VLAN 설정 정보를 통합적으로 관리하기 위한 것
  -- VLAN 정보가 공유되는 네트워크를 Domain이라고 지칭
  -- VTP Mode
   --- Server Mode : VLAN 정보를 생성, 변경, 제거가 가능, Domain 내 퍼뜨리는 존재
   --- Client Mode : VLAN 정보를 받는 존재
   --- Transparent Mode : 도메인 내에 있지만 자신만의 VLAN 정보를 생성하고 제거(말 그대로 Server와 관련 없이 자기 것만 함)