[정보 보안 개론] 네트워크 보안( 분산 서비스 거부 공격: DDoS, 스니핑 공격, 스푸핑 공격, 세션 하이재킹 공격, 무선 네트워크 공격과 보안)

Jin_Hahha·2024년 10월 13일
0

정보 보안 개론

목록 보기
11/17


분산 서비스 거부 공격(DDoS)

  • 1999년 8월 17일 미네소타대학에서 처음 발생
  • 아직까지 확실한 대책은 없음
  • 공격자의 위치와 구체적 발원지를 파악하는 것도 거의 불가능

  • 과거에는 자동화 툴을 사용했으나 광대한 공격 범위를 위해 최종 공격 대상 이외에 공격을 증폭시키는 중간자를 활용하기 시작

  • 사용 툴마다 명칭과 구조가 조금씩 다르지만 기본 형태는 아래의 그림과 동일

    • 공격자(attacker): 공격을 주도하는 해커의 컴퓨터
    • 마스터(master): 공격자에게 직접 명령을 받는 시스템, 여러 대의 에이전트 관리
    • 핸들러(handler) 프로그램: 마스터 시스템의 역할을 수행하는 프로그램
    • 에이전트(agent): 공격 대상에 직접 공격을 가하는 시스템
    • 데몬(daemon) 프로그램: 에이전트 시스템의 역할을 수행하는 프로그램
  • 과거의 DDoS 공격에서는 마스터와 에이전트가 중간자인 동시에 피해자이기도 했음

    • 대형 ISP 업체나 정부 기관이 마스터와 에이전트 역할을 할 경우 폭력배에게 주먹을 빌려주는 셈이 되었음
    • 그러나 최근의 DDoS는 더 발전된 형태를 띰

    과거의 DDoS

  • 공격자가 상당한 시간을 두고 여러 시스템을 해킹

  • 시스템에 마스터와 에이전트를 설치

  • 공격 시 해당 시스템에 공격 명령을 내리는 형태

  • 과거 DDoS의 결점

    • 굉장히 많은 시간 소요
    • 공격자의 IP가 추적당할 위험 존재
    • 네트워크에서 공격 명령을 필터링하여 공격을 중단시킬 수도 있었음
    • 현재는 시스템 보안 수준이 높아져 많은 시스템을 해킹하는 형태로는 공격이 어려워짐

현재의 DDoS

  • 악성 코드와 결합된 형태가 흔함

  • 그 과정은 아래와 같음

    1. PC에서 전파 가능한 형태의 악성 코드 작성

    2. DDoS 공격을 위해 사전에 공격 대상과 스케줄을 설정, 이를 미리 작성한 악성 코드에 코딩

    3. 인터넷을 통해 악성 코드 전파
      - DDoS 공격에 사용되는 악성 코드를 봇(bot)이라고 함
      - 전파 과정에서는 별다른 공격 없이 잠복
      - 악성 코드에 감염된 PC를 좀비 PC라고 함
      - 좀비 PC끼리 형성된 네트워크를 봇넷(botnet)이라고 함

    4. 공격자가 명령을 내리거나 봇넷을 형성한 좀비 PC들이 정해진 스케줄에 따라 일제히 공격 명령을 수행하여 대규모의 분산 서비스 공격 발생

부록: 티어드롭 공격의 원리

  • DoS-1 게시물에서 티어드롭의 정확한 원리를 짚고 넘어가지 못함
  • 원리는 아래와 같음
    1. 공격자 시스템에서 잘못된 Fragment Offset을 지닌 패킷을 전송
    2. 해당 패킷을 수신한 시스템은 원 데이터 복구를 위해 패킷을 Fragment Offset에 따라 재조합을 시도하지만 복구가 불가능
    3. 피해자 시스템은 쌓이는 오류 패킷을 해결하기 위해 더 많은 리소스 사용
    4. 최후에는 피해자 시스템의 메모리 과부하로 인해 시스템 동작 중지 발생

스니핑 공격

  • sniff는 '코를 킁킁거리다'라는 뜻
  • 코를 킁킁거리며 음식을 찾는 동물처럼 데이터 속에서 정보를 찾는 것이라고 생각하면 됨
  • 공격 중에 아무것도 하지 않고 조용히 있는 것만으로도 충분하기에 스니핑 공격을 수동적(passive) 공격이라고도 함

  • 도청, 엿듣기 행위가 스니핑 공격의 일종
  • 전화선이나 UTP에 태핑을 해서 전기적 신호를 분석하여 정보를 찾아내는 것
  • 전기적 신호를 템페스트(tempest) 장비로 분석하는 것도 스니핑 공격
    • 템페스트(tempest) 장비
      • 모니터, 키보드 등등 컴퓨터나 주변 기기들에서 나오는 전자파에서 정보를 훔치는 장비

스니핑 공격의 원리

  • 기본적으로 네트워크에 접속하는 모든 시스템은 설정된 IP 주소와 고유 MAC 주소를 지님
  • 네트워크 카드는 이 두 가지 정보(데이터 링크 계층의 MAC 주소와 네트워크 계층의 IP 주소)로 자신의 랜 카드에 들어오는 프로토콜 형식에 따른 전기적 신호의 헤더 부분(패킷의 IP 주소와 MAC 주소)을 인식하고 자신의 버퍼에 저장할지 결정
  • 간단하게 말하면, 네트워크 카드에 인식된 데이터 링크 계층과 네트워크 계층의 정보가 자신의 것과 일치하지 않는 패킷은 무시

  • 스니핑 수행자는 자신이 가지지 말아야 할 정보까지 모두 볼 수 있어야 하기 때문에 데이터 링크 계층과 네트워크 계층의 정보를 이용한 필터링은 방해물일 뿐
  • 데이터 링크 계층과 네트워크 계층의 필터링을 해제하는 랜 카드의 모드를 프러미스큐어스(promiscuous) 모드라고 함
    • 무차별 모드라고도 하며, 컨트롤러가 수신하는 모든 트래픽을 프레임만 전달하는 대신 중앙 처리 장치로 전달하도록 하는 유선 NIC(Network Interface Card or Controller) 또는 무선 NIC(WNIC, Wireless Network Interface Card or Controller)용 모드
    • 일반적으로 무차별 모드는 비활성화 상태
      • 따라서 자신에게 들어온 패킷 중 자신이 받아야 할 패킷이 아니면 시스템에서 자동 Drop
    • 그러나 해당 모드가 동작하면 시스템의 랜 카드는 수신되는 모든 패킷에 대해 저장하고 전달
    • 일반적인 시스템에서는 잘 사용하지 않는 모드로, 만약 본인의 시스템이 해당 모드로 동작하고 있다면 스니핑을 의심할 필요가 있음

스니핑 공격의 종류

스위치 재밍 공격

  • 스위치가 MAC 주소 테이블을 기반으로 패킷을 포트에 스위칭할 때 정상적인 스위칭 기능을 마비시키는 공격
  • MACOF 공격, MAC Flooding 공격이라고도 함

  • 랜덤 형태로 생성한 MAC 주소를 가진 패킷을 스위치에 무한대로 보내면 스위치에 있는 MAC 테이블의 저장 용량은 자연스레 초과
    • 위의 행위로 스위치는 원래 기능을 잃고 더미 허브처럼 동작
  • 스위치가 제 기능을 잃게 되면 공격자는 ARP 스푸핑이나 ICMP 리다이렉트와 마찬가지로 패킷을 굳이 자신에게 오게 할 필요가 없어 스니핑 공격이 쉬워짐
  • 고가의 스위치는 MAC 테이블 캐시와 연산자 캐시가 독립적으로 존재하기 때문에 재밍이 통하지 않음

SPAN 포트 태핑 공격

  • SPAN(Switch Port Analyzer)은 스위치의 포트 미러링(port mirroring) 기능을 이용
    • 포트 미러링, 각 포트에 전송되는 데이터를 미러링하는 포트에도 똑같이 보내는 것
      침입 탐지 시스템을 설치하거나 네트워크 모니터링을 할 때 또는 로그 시스템 설치에 많이 사용

  • SPAN 포트는 기본적으로 네트워크 장비에서 간단한 설정으로 활성화
  • 포트 태핑은 하드웨어 장비를 이용(포트 태핑 장비를 Splitter라고 함)
  • SPAN 포트와 태핑 장비 구현이 힘들다면 IDS를 설치하는 곳에 허브를 설치하는 것도 하나의 방법
    • 허브를 설치하면 충돌 제어의 부재와 대역폭 공유로 인한 대역폭 부족 문제, 연결된 기기가 많아질수록 모든 기기로 데이터를 전달해야 하는 허브의 특성상 네트워크 속도가 상당히 느려짐

스니핑 공격의 탐지

  • 실질적으로 스니핑 공격에 대한 대책은 그다지 많지 않음
  • 스니퍼를 설치한 이후에도 네트워크에 별다른 이상 현상을 일으키지 않기 때문
    • 사용자가 이를 인지하기 어렵기 때문에 능동적 탐지를 통해서만 잡아낼 수 있음
  • 스니퍼를 탐지하기 위해서는 스니퍼가 프리머스큐어스(primouscuous, 무차별) 모드에서 작동한다는 점을 이용해야 함

  • 대리 출석 상황을 예시로 들 수 있음
    • 대리 출석자는 자신의 이름이 호명되지 않은 경우에도 친구의 출석을 위해 목소리를 바꿔가면서 대답
    • 그러다 두 명이 동시에 대답할 경우 무차별모드와 유사하게 동작하던 인원은 관리자에게 적발됨

ping을 이용한 스니퍼 탐지

  • 대부분의 스니퍼는 일반 TCP/IP에서 동작
    • request를 받으면 response를 전달해야 한다는 의미
  • 이를 활용하기 위해 스니퍼 의심 host에 ping을 전송
    • 이때 네트워크에 존재하지 않는 MAC 주소를 위장하여 전송
    • 만약 ICMP echp reply를 받으면 해당 호스트가 스니핑을 하고 있는 것
    • 존재하지 않는 MAC을 사용했기 때문에 스니핑을 하지 않는 호스트라면 ping request를 볼 수 없는 것이 정상

ARP를 이용한 스니퍼 탐지

  • 위조된 ARP Request를 보냈을 때 ARP Response가 오면 무차별 모드가 동작 중이라는 의미
  • ping과 유사

DNS를 이용한 스니퍼 탐지

  • 일반적인 스니핑 프로그램은 사용자의 편의를 위해 스니핑한 시스템의 IP 주소에 DNS에 대한 이름 해석 과정인 Reverse-DNS lookup 수행
    • Reverse-DNS lookup은 일반적인 형태의 DNS를 통한 IP 질의가 아닌 IP를 통한 DNS 질의를 진행
  • 원격과 로컬 모두에서 사용 가능
  • 위의 경우 테스트 대상 네트워크로 ping sweep을 보내고 들어오는 Reverse-DNS lookup을 감시하여 스니퍼 탐지
    • ping sweep은 공격자가 대상 network에 어떤 서버가 존재하는지 파악하기 위해 ICMP를 이용하여 대상 네트워크의 브로드캐스트 IP를 작성하여 응답되는 패킷을 분석하여 정보를 파악하는 기법
    • ping sweep 탐지방법은 아래와 같음
      1. 공격자가 보낸 패킷에서 ICMP 분석
      2. 분석결과 ICMP type이 ECHO이면서 대상 IP Addr이 Broadcast IP면 ping sweep으로 간주
      3. 공격자가 보내는 패킷의 횟수를 Count하여 공격 인정 시간 내에 공격 인정 횟수가 되면 ping flooding으로 탐지
    • ping sweep에 대한 조치방법은 관리자 요청을 통해 ICMP 서비스 차단 요청 및 공격을 시도한 클라이언트에 대해 집중 관찰 진행

유인을 이용한 스니퍼 탐지

  • 스니핑 공격을 하는 공격자의 주요 목적은 아이디와 패스워드 획득
  • 보안 관리자는 이 점을 이용하여 가짜 아이디와 패스워드를 네트워크에 홍보
  • 공격자가 이 아이디와 패스워드로 접속을 시도할 때 스니퍼 탐지

ARP watch를 이용한 스니퍼 탐지

  • ARP watch는 MAC 주소와 IP 주소의 매칭 값을 초기에 저장하고 ARP 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 툴
  • 대부분의 공격 기법은 위조된 ARP를 사용하기 때문에 쉽게 탐지 가능

스푸핑 공격

  • 스푸핑의 사전적 의미는 '속이는 것'
  • 네트워크에서 스푸핑 공격의 대상은 MAC 주소, IP 주소, 포트 등 네트워크 통신과 관련된 모든 것이 될 수 있음
  • 스푸핑 공격은 시스템 권한 탈취, 암호화 세션 복호화, 네트워크 트래픽 흐름 바꾸기 등 다양하게 진행

ARP 스푸핑 공격

  • MAC 주소를 속이는 것

  • 공격자의 MAC 주소를 로컬에서 통신하고 있는 서버와 클라이언트의 IP 주소에 대한 데이터 링크 계층의 MAC 주소로 속임

    • 클라이언트에서 서버로 가는 패킷이나 서버에서 클라이언트로 가는 패킷이 공격자에게 향하게 함으로써 랜의 통신 흐름 왜곡
    1. 공격자는 서버 클라이언트에 10.0.0.2에 해당하는 가짜 MAC 주소 CC를 홍보, 서버에는 10.0.0.3에 해당하는 가짜 MAC 주소 CC를 홍보
    2. 공격자가 서버와 클라이언트 컴퓨터에 서로 통신하는 상대방을 자기 자신으로 홍보했기 때문에 서버와 클라이언트는 각각 공격자에게 패킷 전송
    3. 패킷을 확인한 후, 원래의 패킷 흐름을 유지하기 위해서 서로가 원래 전송하려 했던 목적지로 패킷 전송
  • 아래의 그림은 위의 공격 과정이 성공했을 경우의 패킷 흐름을 나타냄

  • 윈도우에서는 arp -a 명령을 이용하여 현재 인지하고 있는 IP와 해당 IP를 지니고 있는 시스템의 MAC 주소 목록을 확인할 수 있음

  • ARP 스푸핑을 당하고 난 후의 ARP 테이블을 살펴보면, 특정 IP의 MAC 주소가 달라져 있다는 것을 확인할 수 있음

  • ARP 스푸핑을 방지하기 위해서는 ARP 테이블이 변경되지 않도록 IP 주소와 MAC 주소를 고정하는 것

arp -s (IP 주소) (MAC 주소)

  • 여기서 s의 의미는 고정한다(static)는 의미
  • 해당 명령어를 입력한 후에 ARP 테이블을 살피면, 물리적 주소에 대한 인터넷 주소의 유형이 동적에서 정적으로 바뀐다는 것을 알 수 있음
    • 위의 대응책은 시스템 재시작마다 수행해야 한다는 번거로움이 있음
    • 특정 보안 툴은 클라이언트의 ARP 테이블 내용이 변경되면 경고 메시지를 전송하기도 함
    • ARP 스푸핑은 TCP/IP 프로토콜 자체의 문제로 근본적인 대책은 없음

IP 스푸핑 공격

  • IP 주소를 속이는 것
  • 다른 사용자의 IP를 강탈하여 특정 권한 획득
    • 공격자는 트러스트(trust) 관계를 맺고 있는 서버와 클라이언트를 확인
    • 클라이언트에 DoS 공격을 하여 연결을 끊음
    • 클라이언트의 IP 주소를 확보하여 실제 클라이언트처럼 패스워드 없이 서버에 접근

  • 유닉스 운영체제에서는 주로 트러스트 인증법을 사용

    • 유닉스의 트러스트 기능을 위해서는 아래의 파일에 클라이언트의 IP와 접속 가능한 아이디를 등록해야 함

    /etc/host.equiv

    • 1의 경우 200.200.200.200에서 root 계정이 로그인을 시도하면 패스워드 없이 로그인을 허락하라는 의미
    • 2의 경우 201.201.201.201에서 어떠한 유형의 계정이든 로그인을 허락하라는 의미, 여기서 +는 모든 계정을 의미
      • 만약 ++로 적힌 행이 있으면 IP와 아이디에 관계없이 모두 로그인을 허용하라는 의미
  • 윈도우 운영체제에서는 트러스트 대신 액티브 디렉터리 사용


  • 트러스트를 이용한 접속은 네트워크에 아이디와 패스워드를 홍보하지 않기 때문에 스니핑 공격에 안전한 것처럼 보임

    • 그러나 IP를 통해서만 인증되기 때문에 공격자가 해당 IP를 사용하여 접속하면 스니핑으로 패스워드를 알아낼 필요가 없음
  • 공격자는 제로 트러스트 상태의 클라이언트에 DoS 공격 수행

  • 클라이언트가 사용하는 IP가 네트워크에 출현하지 못하게 하려는 목적

  • 해당 사용자가 접속하지 못하면 자신이 해당 IP로 설정을 변경하고 서버에 접속하는 형태로 공격

  • 이때 공격자는 패스워드 없이 서버 로그인 가능

  • IP 스푸핑의 대응책은 트러스트를 사용하지 않는 것

  • 보안 컨설팅을 수행할 때도 클러스터링 환경처럼 트러스트 설정이 불가피한 경우를 제외하고는 트러스트를 사용하지 않도록 함

    • 만약 트러스트를 사용한다면 트러스트로 묶는 구성 서버 가운데 취약한 패스워드가 존재해서는 안 됨
    • 취약한 계정 하나가 서버 전체를 위험에 빠뜨릴 수 있기 때문

ICMP 리다이렉트 공격

  • ICMP 리다이렉트는 네트워크 계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷 흐름을 바꾸는 공격

  • ICMP 리다이렉트 과정은 위의 그림과 같이 진행

    1. 호스트 A의 Default GW는 라우터 A로 설정, 따라서 호스트 B로 데이터를 전송할 때 패킷을 라우터 A로 전송
    2. 라우터 A는 호스트 B로 전송할 패킷 수신, 라우팅 테이블을 탐색하여 호스트 A가 라우터 B를 사용하는 것이 더 효율적이라고 판단하여 라우터 B로 전송
    3. 라우터 A는 호스트 B로 향하는 패킷을 호스트 A가 자신에게 재전송하지 않도록 ICMP 리다이렉트 패킷을 호스트 A로 전송(해당 과정을 거치면 호스트 A는 호스트 B로 패킷을 전송할 때 라우터 B로 바로 전송)
    4. 호스트 A는 라우팅 테이블에 호스트 B에 대한 값을 추가하고 호스트 B로 전송하는 패킷은 라우터 B로 전송
  • 위 과정을 간단히 말하자면, ICMP 리다이렉트를 이용한 공격자가 라우터 B가 되는 것

  • ICMP 리다이렉트 패킷도 공격 대상에게 전송한 후 라우터 A에 다시 연결하면 모든 패킷을 스니핑 할 수 있음

  • ICMP 리다이렉트는 데이터 링크 계층의 공격이 아니기에 잘 응용하면 로컬 랜이 아니라도 공격 가능

DNS 스푸핑 공격

  • 실제 DNS 서버보다 빨리 공격 대상에게 DNS Response 패킷을 전송하여 공격 대상이 잘못된 IP 주소로 웹 접속을 하도록 유도하는 공격
  • 때때로 웹 스푸핑과 비슷한 의미로 해석됨
  • 가끔 인터넷 익스플로러에 사이트 주소를 입력했을 때 원하는 사이트가 뜨지 않는 경우가 있는데, DNS 서버의 오류인 경우도 있으나 DNS 스푸핑과 같은 공격으로도 발생

  • 자신의 웹 서버를 하나 제작
  • 공격 대상이 자주 가는 사이트를 하나 골라서 웹 크롤러(web crawler) 프로그램으로 해당 사이트를 긁어옴
  • 아이디와 패스워드를 입력받아 원래 사이트로 전달해주는 스크립트를 제작
    • 위의 과정을 마치고 동작시키면 일반 사용자는 평소 접속하던 사이트로 착각하고 아이디와 패스워드 입력
    • 하지만 평소보다 조금 느린 속도로 로그인이 수행됨
    • 이때 로그인 접속 화면이 나온다면 이미 사용자의 아이디와 패스워드는 공격자에 의해 탈취당한 이후임

  • DNS 서비스는 아래의 과정으로 동작

    1. 클라이언트가 DNS 서버에 접속하고자 하는 IP 주소를 물어봄
      • 이때 전송되는 패킷은 DNS Query
    2. DNS 서버가 해당 도메인 이름에 대한 IP 주소를 클라이언트로 전송
    3. 클라이언트가 받은 IP 주소를 바탕으로 웹 서버를 탐색한 이후 접속
  • DNS 패킷은 UDP 패킷

  • 세션이 없기 때문에 먼저 도착한 패킷을 신뢰하고 다음에 도착한 정보는 Drop

  • DNS 스푸핑은 DNS 서비스의 이러한 특징을 활용

  1. 공격자는 클라이언트가 DNS 서버로 DNS Query 패킷을 전송하는 것을 확인
    • 스위칭 환경인 경우 클라이언트가 DNS Query 패킷을 보내면 이를 받아야 하므로 ARP 스푸핑과 같은 선행 작업이 필요
    • 허브를 쓰고 있다면 DNS Query를 전송하는 것을 자연스럽게 확인 가능

  1. 공격자는 로컬에 존재하므로 지리적으로 DNS 서버보다 가까움
    • DNS 서버가 올바른 DNS Response 패킷을 전송하기 전에 클라이언트에 위조된 DNS Response 패킷을 전송할 수 있음
  2. 클라이언트는 공격자가 보낸 DNS Response 패킷을 올바른 패킷으로 인식하고 웹에 접속
    • 지리적으로 먼 DNS 서버가 보낸 DNS Response 패킷은 Drop

  • 반드시 대상을 기다리고 있다가 공격을 수행해야 하는 것은 아님
  • 네트워크의 특정 URL에 거짓 IP 정보를 계속 브로드캐스팅하면 패킷을 받은 클라이언트는 위의 그림과 같이 잘못된 IP 주소로 연결

  • DNS 스푸핑을 방지하기 위해서는 중요 서버에 대해 DNS Query를 전송하지 않으면 됨
  • 윈도우와 유닉스 모두 URL에 대한 IP를 확인할 때 처음부터 DNS Query를 전송하는 것은 아님
    1. 맨 먼저 시스템 메모리의 정보 확인
    2. hosts 파일에 등록된 정보 확인
    • hosts 파일에는 URL과 IP 정보가 등록되어 있음
  • 위의 특징을 통해 대응책을 세울 수 있는데, 중요 접속 서버의 URL에 대한 IP를 hosts 파일에 등록해놓으면 됨
  • 모든 서버의 IP를 등록하는 것은 무리이므로 모든 서버에 대한 DNS 스푸핑을 막는 것은 어려움

세션 하이재킹 공격

  • 세션 하이재킹은 말 그대로 세션, 로그인된 상태를 가로채는 것을 의미
    • 가장 쉬운 세션 하이재킹은 누군가 작업을 하다가 잠시 자리를 비웠을 때 몰래 PC를 사용하여 원하는 작업을 하는 것
  • 현실 세계에서 세션 하이재킹을 하려면 아래의 조건이 충족되어야 함
    • 공격 대상의 자리비움 시기 확인
    • 화면 잠금 설정 여부 확인
    • 공격자가 접속하고자 하는 세션에 접속한 채로 자리를 비우는지 확인
  • TCP 세션 하이재킹의 경우 그 사람이 자리를 비우는 시기를 기다릴 필요가 없음
  • 공격자가 원하는 접속만 공격 대상이 생성하면 네트워크 공격으로 세션을 탈취할 수 있기 때문

  • TCP 하이재킹은 서버와 클라이언트 각각 잘못된 시퀀스 넘버를 사용하여 연결된 세션에 잠시 혼란을 준 뒤 자신이 끼어들어가는 방식을 사용

  • 아래는 기본적인 단계를 설명함

    1. 클라이언트와 서버 사이의 패킷 통제
      • ARP 스푸핑 등을 통해 클라이언트와 서버 사이의 모든 통신 패킷이 공격자를 지나가게 설정
    2. 서버에 클라이언트 주소로 연결을 재설정하기 위한 RSTreset 패킷 전송
      • 서버는 패킷을 받아 클라이언트의 시퀀스 넘버가 재설정된 것으로 판단
        • TCP 3-Way Handshaking 수행
    3. 공격자는 클라이언트 대신 연결되어 있던 TCP 연결을 그대로 물려받음
  • 위의 단계를 거치면 공격자는 클라이언트가 텔넷 등을 통해 열어놓은 세션을 아이디와 패스워드 입력 없이 그대로 획득할 수 있음

  • 세션 하이재킹을 방지하기 위해서는 텔넷과 같은 취약한 프로토콜을 사용해서는 안 됨

    • SSH와 같은 인증 수준이 높은 프로토콜을 사용하여 서버에 접속해야 함
  • 클라이언트와 서버 사이에 MAC 주소를 고정하는 것도 하나의 대응책

    • MAC 주소를 고정하는 방법은 ARP 스푸핑을 막기 때문에 결과적으로 하이재킹까지 막을 수 있음

무선 네트워크 공격과 보안

  • 무선 랜은 유선 랜의 네트워크를 확장하려는 목적으로 사용
  • 무선 랜을 사용하려면 내부의 유선 네트워크에 AP(Access Point)를 설치해야 함
  • 확장된 무선 네트워크는 AP를 설치한 위치에 따라서 통신 영역이 결정됨
  • 보안이 설정되어 있지 않으면 공격자가 통신 영역 안에서 내부 사용자와 같은 권한으로 공격 실행 가능

  • 무선 랜은 원격으로도 공격받을 수 있으므로, 무선 랜을 통한 보안 사고가 있을 시 전송 가능 길이를 고려해야 함

  • 아래는 무선 랜의 다양한 프로토콜 서비스를 나타냄

AP 보안

  • AP 보안을 위한 여러 사항들

물리적 보안

  • 무선 랜은 공개된 장소에서 접근이 가능하다는 이유로 물리적 보안을 가볍게 여기는 경우가 많음

  • 스위치나 라우터는 기업 네트워크 안정성을 결정짓는 중요한 장비

    • 반드시 물리적 보안 통제로 적절히 관리해야 함
    • AP도 스위치의 한 종류이므로 적절한 물리적 통제 필요
      • 전파가 건물 내에 한정되도록 전파 출력을 조정
      • 창이나 외부에 접한 벽이 아닌 건물 내부 중심부의 눈에 쉽게 띄지 않는 곳에 설치
      • 설치 이후에는 AP의 기본 계정과 패스워드를 반드시 재설정
  • 무선 랜에서는 SSID(Service Set Identifier)를 사용해 무선 랜 식별

    • 보통 SSID를 통해 확인한 AP를 선택하여 접속하는 방식
    • SSID를 직접 입력하여 AP에 접속하는 방식도 있음
    • 위의 두 접근 방법은 SSID의 브로드캐스팅 여부에 따라 나뉨
  • 무선 랜에서 AP의 존재를 숨기고 싶으면 SSID 브로드캐스팅을 막고 사용자가 SSID를 입력해야 AP에 접속할 수 있게 함

    • 이때 SSID는 AP 접근을 위한 일차적 패스워드로 사용될 수 있음
    • 높은 수준의 보안 권한이 필요한 무선 랜은 대부분 SSID 브로드캐스팅 차단

무선 랜 통신의 암호화

  • 무선 랜은 통신 과정에서 데이터 유출을 막는 것뿐 아니라 네트워크에 대한 인증을 위해서도 암호화 수행
  • 암호화된 통신을 수행하는 네트워크에 접근을 시도하면 네트워크 보안 키 입력 창이 나타남

WEP(Wired Equivlant Privacy)

  • 무선 랜 통신을 암호화하기 위해 802.11b 프로토콜부터 적용

  • 1987년에 만들어진 Rc 4(Ron's Code 4) 암호화 알고리즘을 기본으로 사용

  • WEP는 64비트와 128비트를 사용할 수 있음

    • 64비트는 40비트, 128비트는 104비트의 RC 4 키를 사용
    • WEP를 이용한 암호화 세션은 아래와 같음
    1. 사용하려는 무선 랜 서비스의 SSID 값을 알아내어 무선 랜 AP에 연결 요청 메시지 전송
    2. 연결 요청 메시지를 받은 AP는 임의의 문장을 생성 및 저장
      • 연결 요청 응답 메시지를 이용하여 암호화되지 않은 인증용 문자열(challenge)를 전송
    3. 인증용 문자열을 받은 사용자는 자신이 가진 공유 키로 WEP 암호화를 적용하여 암호문 제작
      • AP로 암호문 전송
    4. 사용자가 공유 키로 만든 암호문을 받은 AP는 자신이 가진 공유 키로 암호문 복호화
    • 복호화된 문장과 자신이 저장하고 있던 원본 문장 비교
    • 두 문장이 같으면 자신과 같은 공유 키를 가진 그룹원이라고 인식하고 연결 허용 메시지 전달
    • 위의 방식으로 사용자와 AP가 같은 공유 키를 가지고 있다는 것을 인식 후, 같은 키를 가진 사용자를 정당한 사용자로 정의하여 무선 랜 서비스 제공
  • WEP는 암호화 과정에서 암호화 키와 함께 24비트의 IV(Initial Vector) 사용

    • IV(Initial Vector), 암호문을 생성할 때마다 암호문이 패턴화 되지 않도록 하기 위한 데이터
      • 송,수신자 모두가 알아야 하며, 외부에 노출되어도 상관없음
  • 통신 과정에서 IV는 랜덤으로 생성되어 암호화 키에 대한 복호화를 어렵게 함

    • 대신 짧은 길이의 24비트가 반복 사용되어 WEP 키의 복호화를 쉽게 함
    • 이러한 이유로 무선 통신에서 네트워크 패킷에 포함된 IV를 충분히 수집하여 WEP 키를 크래킹할 경우 1분 이내에도 복호화 가능

WPA-PSK

  • Wi-Fi Protected Access Pre-Shared Key
  • 802.11i 보안 표준의 일부분, WEP 방식 보안의 문제점을 해결하기 위해 제작
  • 802.11i에는 WPA-1과 WPA-2 규격이 포함되어 있음
    • 암호화 방식에 따른 분류
      • WPA-1은 TKIP(Temporal Key INtegrity Protocol) 사용
      • WPA-2는 CCMP(CCM mode Protocol) 암호화 방식을 사용

  • WPA 규격은 WPA-Personal, WPA-Enterprise로 규정
    • 무선 랜 인증 방식에 사용되는 모드에 따라 구분한 것
    • WPA-Personal은 PSK(Pre-Shared Key)모드 사용
    • WPA-Enterprise는 RADIUS 인증 서버를 사용

  • 무선 전송 데이터의 암호화 방식 중 TKIP(WPA-1) 방식은 WEP 취약점을 해결하기 위해 제정된 표준

    • EAP에 의한 사용자 인증 결과로부터 무선 단말기와 무선 AP 사이의 무선 채널 보호용 공유 비밀 키를 동적으로 생성하여 무선 구간 패킷을 암호화

      • EAP(Extensible Authentication Protocol), 확장 가능한 인증 프로토콜로 네트워크와 인터넷 연결에 사용되는 인증 프레임워크
        • 무선 랜 클라이언트와 RADIUS(Remote Authentication Dial-in User Service) 서버 간의 통신을 가능하게 하는 프로토콜

  • CCMP(WPA-2)는 128비트 블록 키를 사용하는 CCM(Counter Mode Encryption with CBC-MAC)모드의 AES 블록 암호 방식을 사용
    • TKIP가 RC 4를 암호에 사용하는 반면 CCMP는 AES를 기반으로 함
      • AES(Advanced Ecncryption Stadard), 고급 암호화 표준
      • 대칭키를 쓰는 블록 암호
    • CCMP는 802.11i를 사용하는 보안의 기본 모드
    • TKIP는 기존 하드웨어를 수용하기 위한 과도기적 기법
    • CCMP는 초기부터 기존 하드웨어가 아닌 보안성을 고려하여 새롭게 설계된 것

EAP와 802.1x 암호화

  • WPA/WPA2-PSK는 기존의 WEP 암호화/복호화 키 관리 방식을 중점적으로 보완

  • WPA-Enterprise는 사용자 인증 영역까지 보완한 방식

    • WPA-EAP로도 불림
    • 인증 및 암호화를 강화하기 위해 다양한 보안 표준과 알고리즘 채택
      • 이중 가장 중요하고 핵심적인 사항은 유선 랜 환경에서 포트 기반 인증 표준으로 사용되는 IEEE 802.1x 표준과 다양한 인증 메커니즘 수용을 위한 IETF의 EAP 인증 프로토콜
      • 802.1x는 포트에 대한 접근을 통제하는 프로토콜
  • 802.1x/EAP는 개인 무선 네트워크의 인증 방식에 비해 아래의 기능이 추가

    • 사용자 인증 수행
    • 사용 권한을 중앙에서 관리
    • 인증서, 스마트카드 등 다양한 인증 제공
    • 세션별 암호화 키 제공
  • 여기서 WEP 또는 WPA-PSK가 802.1x/EAP와 근본적으로 다른 차이점

    • 아이디와 패스워드를 통한 사용자 인증이라는 점
    • WEP or WPA-PSK는 미리 양쪽에서 설정한 암호화 키를 사용
    • 802.1x/EAP는 무선 랜 연결(세션)별로 재사용이 불가능한 다른 암호화 키를 사용
      - 암호화 키 복호화 가능성 무력화
    1. 클라이언트가 AP에 접속 요청
      • 클라이언트와 AP는 암호화되지 않은 통신 수행
      • 클라이언트가 AP와 연결된 내부 네트워크로 접속하는 것은 AP 단위에서 차단
    2. RADIUS 서버는 클라이언트에 인증 Challenge 전송
    3. 클라이언트는 Challenge에 대한 응답으로
      • 맨 처음 전송받은 Challenge 값, 계정, 패스워드에 대한 해시 값을 구하여 RADIUS 서버로 전송
    4. RADIUS 서버는 사용자 관리 DB 정보에서 해당 계정의 패스워드 확인
      • 연결 생성을 위해 최초 전송한 Challenge의 해시 값을 도출
      • 클라이언트로부터 전송받은 해시 값과 비교
    5. 해시 값이 일치하면 암호화 키 생성
    6. 생성한 암호화 키를 클라이언트에게 전송
    7. 전달받은 암호화 키를 이용하여 암호화 통신 수행

0개의 댓글