IP 스푸핑, MAC 스푸핑, ARP 스푸핑

IP 스푸핑(IP Spoofing)

IP 스푸핑은 네트워크 공격 기법 중 하나로, 공격자가 자신의 IP 주소를 위조하여 다른 컴퓨터나 네트워크 장치를 속이는 행위를 말합니다. 이 기법은 주로 권한 없는 접근, 데이터 도청, 서비스 거부(DoS) 공격 등을 수행하기 위해 사용됩니다.

작동 원리

IP 스푸핑은 IP 패킷 헤더에 있는 발신자 IP 주소(SRC IP)를 위조하여 공격 대상이 이를 신뢰하도록 만드는 방식으로 작동합니다. IP 프로토콜은 발신자 주소를 검증하지 않기 때문에 이러한 위조가 가능합니다. 공격자는 자신이 실제로 소유하지 않은 IP 주소를 사용해 합법적인 사용자나 장치로 가장할 수 있습니다.

주요 유형

  1. Blind Spoofing (블라인드 스푸핑): 공격자가 응답 패킷을 받을 수 없는 상태에서, 예상되는 패킷 구조를 기반으로 공격을 시도하는 방법입니다. 보통 시스템의 순차적인 패킷 번호를 예측해 패킷을 위조합니다.

  2. Non-Blind Spoofing (논블라인드 스푸핑): 공격자가 목표 시스템과 같은 네트워크에 존재하며, 전송된 패킷을 직접 관찰할 수 있는 상황에서 실행됩니다. 이를 통해 더 정교한 공격이 가능합니다.

활용 사례

  1. DDoS(분산 서비스 거부) 공격: 다수의 IP를 스푸핑하여 공격 대상을 과도한 트래픽으로 마비시키는 데 사용됩니다.

  2. Man-in-the-Middle (중간자 공격): 스푸핑을 통해 네트워크 상의 데이터를 가로채거나 조작합니다.

  3. 권한 상승: 신뢰하는 IP로 가장하여 네트워크 자원에 무단으로 접근합니다.

방어 방법

  1. 패킷 필터링: 네트워크 경계에서 유입되는 패킷의 출발지 주소를 확인하여, 내부 네트워크에 적합하지 않은 패킷을 차단합니다.

  2. 역방향 경로 검증(RPF): 라우터에서 패킷의 발신 경로를 검사하여 위조된 IP 주소를 필터링합니다.

  3. 암호화와 인증: VPN이나 SSL과 같은 암호화된 통신을 통해 데이터 무결성과 인증을 강화합니다.

  4. IDS/IPS 시스템 활용: 침입 탐지/방지 시스템을 사용하여 스푸핑과 같은 비정상적인 트래픽을 감지하고 차단합니다.

MAC 스푸핑(MAC Spoofing)

MAC 스푸핑은 공격자가 네트워크 인터페이스 카드(NIC)의 물리적 주소인 MAC 주소(Media Access Control Address)를 위조하여 네트워크 상의 다른 장치로 가장하는 행위를 말합니다. MAC 주소는 일반적으로 네트워크 하드웨어에 고유하게 부여되지만, 소프트웨어적으로 변경이 가능하다는 점을 악용한 공격 기법입니다.

MAC 스푸핑의 원리

MAC 스푸핑은 주로 다음과 같은 방식으로 이루어집니다:

  1. MAC 주소 위조: 운영 체제나 네트워크 장치 설정에서 제공하는 기능을 이용하여 NIC의 MAC 주소를 원하는 값으로 변경합니다.
  2. 가로채기 또는 가장: 네트워크에서 특정 MAC 주소를 사용 중인 장치로 가장하거나, 통신 패킷을 가로채기 위해 위조된 MAC 주소를 사용합니다.

MAC 스푸핑의 주요 목적

  1. 네트워크 액세스 권한 획득: 특정 MAC 주소만 허용하는 네트워크(예: MAC 주소 기반 필터링을 사용하는 Wi-Fi 네트워크)에 접근하려는 시도에 사용됩니다.

  2. Man-in-the-Middle 공격: 위조된 MAC 주소를 통해 통신 흐름을 가로채고, 데이터를 도청하거나 수정합니다.

  3. IP 충돌 유발: 네트워크 내 다른 장치와 동일한 MAC 주소를 사용하여 IP 충돌이나 네트워크 혼란을 일으킵니다.

  4. 사용자 신분 숨기기: 추적을 피하기 위해 공격자의 실제 MAC 주소를 감추는 데 사용됩니다.

MAC 스푸핑의 활용 사례

  1. 공공 Wi-Fi 해킹: 등록된 MAC 주소만 허용하는 네트워크에서 다른 사용자로 가장하여 인터넷에 접근합니다.
  2. ARP 스푸핑과 결합: ARP(Address Resolution Protocol) 테이블을 조작하여 네트워크 트래픽을 특정 장치로 유도하는 공격에 사용됩니다.
  3. 보안 우회: 조직 내부 네트워크에서 MAC 주소 기반 접근 제어를 우회하기 위해 사용됩니다.

MAC 스푸핑 방어 방법

  1. 포트 보안(Port Security): 네트워크 스위치에서 각 포트에 허용된 MAC 주소를 제한하여 위조된 MAC 주소를 차단합니다.

  2. 동적 ARP 검사(Dynamic ARP Inspection, DAI): 스위치에서 ARP 요청과 응답을 검증하여 위조된 MAC 주소를 탐지하고 차단합니다.

  3. 네트워크 액세스 제어(NAC): 인증된 장치만 네트워크에 연결되도록 보안 정책을 설정합니다.

  4. 침입 탐지 시스템(IDS) 및 침입 방지 시스템(IPS): 비정상적인 MAC 주소 변경이나 충돌을 실시간으로 탐지하고 대응합니다.

  5. 로그 모니터링: 네트워크 장치 로그를 주기적으로 확인하여 MAC 주소 위조 시도를 탐지합니다.

ARP 스푸핑(ARP Spoofing)

ARP 스푸핑은 네트워크 공격 기법 중 하나로, ARP(Address Resolution Protocol)를 악용해 공격자가 네트워크 내에서 데이터 패킷을 가로채거나 조작하는 방식입니다. 이 공격은 일반적으로 로컬 네트워크(LAN)에서 발생하며, ARP의 신뢰 구조를 악용하여 장치 간의 통신을 가로채거나 변경합니다.

ARP 스푸핑의 작동 원리

  1. ARP의 기본 작동:

    • ARP는 IP 주소를 MAC 주소로 변환하기 위해 사용됩니다.
    • 네트워크 장치는 ARP 테이블에 IP-MAC 매핑 정보를 저장합니다.
    • 장치가 특정 IP 주소로 패킷을 전송하려면 해당 IP의 MAC 주소를 확인해야 하며, 이를 ARP 요청/응답을 통해 수행합니다.
  2. 스푸핑 과정:

    • 공격자가 네트워크에 접속한 후, ARP 응답 패킷을 위조하여 자신을 게이트웨이 또는 타깃 장치로 가장합니다.
    • 예를 들어, 공격자는 자신의 MAC 주소를 네트워크 게이트웨이의 MAC 주소로 위조하여 타깃 장치가 데이터를 공격자에게 전송하도록 만듭니다.
  3. 결과:

    • 타깃 장치는 가짜 ARP 응답을 신뢰해 공격자의 MAC 주소를 저장하며, 이후 데이터를 공격자에게 전달하게 됩니다.
    • 이로 인해 공격자는 데이터 패킷을 가로채거나 변조할 수 있습니다.

ARP 스푸핑의 주요 목표

  1. Man-in-the-Middle (중간자 공격): 네트워크 트래픽을 가로채고, 이를 분석하거나 조작합니다.

  2. 데이터 도청: 민감한 정보를 포함한 데이터(예: 로그인 정보, 비밀번호 등)를 가로채는 데 사용됩니다.

  3. DoS(서비스 거부) 공격: ARP 테이블을 지속적으로 혼란시키거나, 트래픽을 차단하여 네트워크 연결을 마비시킵니다.

  4. 네트워크 탐색 및 공격 준비: 네트워크 내 다른 장치들의 IP와 MAC 주소 정보를 수집하기 위해 사용됩니다.

ARP 스푸핑의 탐지 및 방어 방법

  1. 정적 ARP 테이블 설정:

    • ARP 테이블에 특정 IP-MAC 매핑 정보를 수동으로 설정하여 변경을 방지합니다.
    • 그러나 이 방식은 대규모 네트워크에서는 관리가 어렵습니다.
  2. ARP 검사(DAI, Dynamic ARP Inspection):

    • 네트워크 스위치에서 ARP 요청 및 응답 패킷을 모니터링하여 비정상적인 패킷을 차단합니다.
  3. 암호화된 통신 사용:

    • ARP 스푸핑으로 민감한 데이터를 탈취하지 못하도록 SSL, TLS, VPN 등 암호화된 통신 프로토콜을 활용합니다.
  4. 침입 탐지 시스템(IDS) 및 방지 시스템(IPS):

    • 네트워크에서 ARP 관련 비정상적인 활동을 감지하고 차단합니다.
  5. 네트워크 세그멘테이션:

    • 네트워크를 세분화하여 공격 범위를 줄이고, ARP 스푸핑의 영향을 제한합니다.
  6. ARPWatch와 같은 툴 사용:

    • ARP 테이블 변화를 실시간으로 모니터링하여 비정상적인 MAC-IP 매핑을 감지합니다.
같은 카테고리의 다른 글
LG전자 울트라 노트북 15UD780-P.AX50K / 메모

LG전자 울트라 노트북 15UD780-P.AX50K / 메모

HDMI 버전 4K 모니터에 연결하여 사용하기 위해서는 HDMI 버전이 2.0 이상이어야 한다. 1.X로도 가능하기는 하지만 주사율이 30Hz까지만 지원해서 무척 불편하다. LG전자 서비스에 문의한 결과, 울트라 노트북 15UD780-P.AX50K의 HDMI 버전은 1.4이다. 따라서 4K 모니터에 연결하고 싶다면 USB Type C를 이용하자. 화면 전송까지 가능한 USB Type C이다. 하드디스크 추가하는 방법 LG전자 울트라 노트북 15UD780-P.AX50K에는 2.5인치 하드디스크를 ...

리눅스 / 명령어 / scp

scp는 ssh 프로토콜을 이용하여 파일을 송수신하는 명령어이다. local → remote remote → local remote → remote 모두 가능하다. local → remote 파일 복사 # scp a.txt root@192.168.3.211:/temp/a.txt root@192.168.3.211's password: 명령어를 실행한 디렉토리에 있는 a.txt 파일을 192.168.3.211 컴퓨터에 root 계정으로 연결하여 복사한다. 원격 컴퓨터에 /temp 디렉토리가 없으면 복사되지 않는다. 원격 컴퓨터에 /temp 디렉토리가 있으면 a.txt로 복사된다. a.txt 파일이 이미 있다면 덮어쓴다. root 계정의 ...

브랜드 로고 공식 배포 주소

브랜드 로고 공식 배포 주소

로고를 다운로드 받을 수 있는 공식 주소를 정리한다. 로고 사용에 대한 가이드라인이 있으므로, 공식 주소에서 다운로드하는 것이 좋다. Bootstrap https://getbootstrap.com/docs/5.0/about/brand/ Facebook https://www.facebook.com/brand/resources/facebookapp/logo Facebook Messenger https://www.facebook.com/brand/resources/messenger/messenger-brand HTML5 https://www.w3.org/html/logo/ Intagram https://www.facebook.com/brand/resources/instagram/instagram-brand jQuery https://brand.jquery.org/logos/ Kakao Story Channel https://ch.kakao.com/login LinkedIn https://brand.linkedin.com/downloads MariaDB https://mariadb.com/about-us/logos/ Naver https://logoproject.naver.com/logonaver Naver Band https://developers.band.us/develop/guide/share Naver Line https://line.me/en/logo PHP https://www.php.net/download-logos.php Pinterest https://business.pinterest.com/ko/brand-guidelines/ Python https://www.python.org/community/logos/ Samsung https://www.samsung.com/sec/about-us/brand-identity/logo/ Sass https://sass-lang.com/styleguide/brand Twitter https://about.twitter.com/en/who-we-are/brand-toolkit Visual Studio Code https://code.visualstudio.com/brand YouTube https://www.youtube.com/howyoutubeworks/resources/brand-resources/  

FIDO(Fast IDentity Online)

FIDO(Fast IDentity Online)는 비밀번호 없이 안전하고 편리한 인증 방법을 제공하는 기술 표준입니다. FIDO 얼라이언스에 의해 개발된 이 기술은 온라인 인증의 보안성을 높이기 위해 만들어졌으며, 여러 인증 방식을 제공하고 있습니다. 주요 목표는 비밀번호의 사용을 줄이거나 없애고, 피싱 공격 및 자격 증명 도용을 방지하는 것입니다. FIDO의 주요 개념과 기술 FIDO 프로토콜: FIDO는 다양한 인증 ...

유튜브 / 채널 소유자, 관리자, 커뮤니케이션 관리자 추가하는 방법

유튜브 / 채널 소유자, 관리자, 커뮤니케이션 관리자 추가하는 방법

유튜브의 브랜드 채널은 사용자를 추가하여 여러 명이 관리할 수 있습니다. 어떻게 채널에 사용자를 추가하는지 알아보겠습니다. 소유자 또는 관리자를 추가하려는 채널에 접속합니다. 그리고 을 클릭합니다. 를 클릭합니다. 를 클릭합니다. 오른쪽 위의 사람 모양 아이콘을 클릭합니다. 추가할 사용자의 이메일 주소를 입력하고, 역할을 선택합니다. 를 클릭합니다. 초대하였다고 바로 추가되는 것은 아닙니다. 상대방의 동의가 있어야 합니다. 초대 받은 ...

Ubuntu 16.04 / phpMyAdmin / 특정 IP에서만 접속 가능하게 만드는 방법

우분투 16.04에서 phpMyAdmin을 패키지로 설치했을 때, 기본 설정은 모든 IP에서 접속 가능입니다. 만약 특정 IP에서만 접속 가능하게 하려면 /etc/apache2/conf-available/phpmyadmin.conf에 다음 코드를 추가합니다. <Directory /usr/share/phpmyadmin> Order deny,allow Deny from all Allow from xxx.xxx.xxx.xxx </Directory> xxx.xxx.xxx.xxx는 접속하려는 IP로 바꿉니다. 여러 IP를 설정하고 싶을 때는 띄어쓰기로 구분합니다. <Directory /usr/share/phpmyadmin> Order deny,allow Deny from all ...

Ubuntu 18.04 Server / Apache / 사용자 인증 만드는 방법

Ubuntu 18.04 Server / Apache / 사용자 인증 만드는 방법

웹사이트의 콘텐츠를 특정 사용자만 볼 수 있게 하는 방법은 여러 가지가 있습니다. 만약 웹서버에 대한 충분한 권한이 있다면, Apache를 이용하여 구현할 수 있습니다. 비밀번호 파일 만들기 비밀번호 파일은 htpasswd 명령어로 만듭니다. /home/auth/ 디렉토리에 passwords라는 이름의 파일을 만들고, 사용자 user1의 비밀번호를 정하고 싶다면 다음과 같이 명령합니다. # htpasswd -c /home/auth/passwords user1 .htaccess 파일 만들기 웹사이트의 루트 ...

버추얼박스 / CentOS 8 게스트에 게스트 확장(Guest Additions) 설치하기

버추얼박스 / CentOS 8 게스트에 게스트 확장(Guest Additions) 설치하기

VirtualBox에 CentOS 8을 GUI 모드로 사용하고 싶다면 게스트 확장(Guest Additions)을 설치하는 것이 좋습니다. 그래야 호스트와 게스트 간 마우스 이동이 편리하고, 클립보드 공유나 드래그 앤 드롭이 가능해집니다. 패키지 설치하기 게스트 확장을 설치하려면 몇 가지 패키지를 설치해야 합니다. root 계정으로 로그인한 상태에서 진행하겠습니다. Activities를 클릭하고 터미널을 클릭합니다. 다음과 같이 명령하여 EPEL(Extra Packages for Enterprise Linux) 저장소를 ...

아이피타임(ipTIME) 공유기 / 네트워크 프린터 만드는 방법

아이피타임(ipTIME) 공유기 / 네트워크 프린터 만드는 방법

네트워크 기능이 없는, PC와 USB로 연결하여 사용하는 프린터는 여럿이 사용하기 불편하다. 그런데, 공유기가 있으면 공유기를 이용해서 네트워크 프린터로 만들 수 있다. ipTIME 공유기로 네트워크 프린터로 만드는 방법을 알아본다. 공유기에 프린터 연결  ipTIME 공유기에 USB 포트가 있다. 프린터와 연결하고 프린터 전원을 켠다. 공유기 관리자 페이지로 가서 를 클릭한다. USB 포트에 프린터가 있는지 확인한다. 에서 네트워크 ...

Ventoy / 멀티 부팅 USB 만드는 프로그램

Ventoy / 멀티 부팅 USB 만드는 프로그램

보통의 경우 운영체제는 한 번 설치하면 오랫동안 쓴다. 하지만 개발자나 전산 담당자라면 자주 여러 OS를 설치하게 된다. 이를 위해 OS별로 설치 USB를 만들게 되는데, 상당히 불편하다. 다양한 OS를 설치하는 상황이라면, Ventoy를 이용해서 그 OS들을 다 담은 설치 USB를 만들 수 있다. 대부분의 OS를 지원하며, 1100개 이상의 ISO 파일을 테스트했다고 한다. Ventoy is an ...