[Network] arp-scan과 MAC, OUI

twid_yuni·2025년 7월 24일

네트워크

목록 보기
3/3

1. arp-scan

arp-scan은 로컬 네트워크 내에서 열려 있는 IP와 MAC주소를 빠르게 스캔할 수 있는 명령어다. 이름에서 알 수 있듯이 ARP(Address Resolution Protocol)을 활용하여, 같은 서브넷에 있는 장비들을 물리적으로 찾아낸다.

MAC 주소와 IP 주소

  • MAC 주소(Media Access Control Address):
    • 네트워크 하드웨어(네트워크 인터페이스 카드, NIC)에 고유하게 할당된다.
    • 48비트(6바이트)로 구성되어있다.
    • 전세계적으로 유일하며, 데이터링크 계층(L2)에서 통신할 때 장치를 식별하는 데 사용된다.
    • 물리적인 주소라고도 불린다.
    • 주로 로컬 네트워크 내에서 통신 대상을 정확히 찾아내기 위해 사용된다.
  • IP 주소
    • 네트워크에 연결된 장치에 부여되는 논리적인 주소.
    • 장치가 속한 네트워크와 장치 자체를 식별하는 데 사용된다.
    • 32비트(IPv4), 64비트(IPv6)로 구성된다.
    • 네트워크 계층(L3)에서 동작하며, 다른 네트워크 간의 통신(라우팅)을 위해 사용된다.

주요 기능 및 사용 예시

지정된 서브넷(ex: 192.168.0.0/24)에 속하는 모든 IP에 대해 브로드캐스트로 ARP 요청을 보내고, 응답이 온 IP들의 IP주소, MAC주소, MAC주소로 추정한 벤더 이름까지 출력한다.

기본 스캔 명령어 예시

sudo arp-scan 192.168.0.0-192.168.0.255

다른 스캔 도구와의 비교

도구주요 방식특징장점단점
arp-scanARP (2계층)로컬망의 MAC/IP 확인빠름, 스텔스성 우수, 스위치 환경 적합동일 서브넷만 가능, 라우터 넘어 불가
nmapTCP/IP (3~4계층)포트/OS/서비스 탐지 가능기능 다양, 원격 탐지 가능느림, 방화벽에 탐지될 수 있음
netdiscoverARP + 패턴 매칭제조사 추정, 단순 탐색용사용 간단, 로컬 장치 빠르게 확인 가능정확도 낮음, 정보 제한적
masscanTCP SYN 스캔고속 포트 스캔매우 빠름, 대규모 네트워크 스캔 가능오탐 가능성, 방화벽 탐지 쉬움
ping sweepICMP Echo 요청응답하는 호스트만 탐지간단, 빠름, 범용 시스템 호환ICMP 차단 시 무력화, 포트 정보 없음


2. arp-scan 동작 원리

ARP 프로토콜 동작 원리

위에서 말했듯, IP 주소와 MAC 주소 매핑에 사용되는 ARP 프로토콜을 사용한다.
ARP는 데이터링크 계층에서 동작하며, "이 IP를 가진 장비 있냐?"라고 브로드캐스트 방식으로 호스트들에게 질문한다. 예를 들어 "Who has 192.168.0.3? Tell 192.168.0.2"과 같이 보내면,
IP가 192.168.0.3인 호스트에서 192.168.0.2에게 "192.168.0.3 is at aa:bb:cc:dd:ee:ff"와 같이 자신의 MAC주소를 알려준다.

arp-scan은 지정된 IP범위에 대해 순차적으로 ARP 요청을 보내고, 응답이 온 IP들만 "존재하는 장비"로 인식하고 출력한다.

벤더명 추출방법

arp-scan 명령어를 실행하면 아래와 같이 해당 호스트의 벤더명도 같이 출력한다.
ARP 프로토콜은 IP, MAC 주소만 주고받도록 되어있는데 어떻게 벤더명을 알 수 있을까?

정답은 바로 OUI라는 걸 이용하면 된다. MAC 주소의 앞 3바이트가 OUI인데, 이를 분석하여 벤더 이름을 추정할 수 있다.



3. MAC 주소와 OUI

OUI(Organizationally Unique Identifier)란?

OUI(Organizationally Unique Indentifier")는 "조직(회사)에게 고유하게 부여된 식별자"라는 뜻으로, 네트워크 장비를 식별하기 위한 MAC주소의 상위 3바이트(24비트)를 말한다.
예를 들어, aa:bb:cc:dd:ee:ff와 같은 MAC 주소에서 앞부분 aaa:bbb:ccc가 OUI이다.
이 3값은 IEEE(국제전기전자기술자협회)가 각 제조사에게 고유하게 할당한다.

OUI의 목적

OUI는 전세계 수많은 장비가 서로 충돌 없는 고유한 MAC 주소를 가질 수 있도록 제조사 단위로 구분하는 게 목적이다.
제조사는 할당받은 OUI를 기준으로 남은 하위 3바이트를 조합해 자사 장비마다 고유한 MAC 주소를 생성한다. 이를 통해 네트워크 상에서 장비를 식별하거나 추적할 때, 해당 MAC 주소만으로 어떤 제조사에서 만든 장비인지 확인할 수 있다.

OUI 데이터베이스

arp-scan이 사용하는 OUI 데이터베이스는 일반적으로 텍스트 파일 형식으로 저장된다.
직접 확인하거나 수정할 수도 있다.
기본적으로 /usr/share/arp-scan/ieee-oui.txt라는 경로에 있다.
cat으로 확인해보니 아래와 같이 OUI 번호와 벤더명이 출력된다.

MAC 주소의 영구 저장

MAC 주소는 NIC(Network Interface Card), 즉 랜카드 하드웨어 내부에 저장된다. 대부분의 랜카드에는 ROM(Read-Only Memory) 또는 EEPROM(Electrically Erasable Programmable Read-Only Memory)과 같은 비휘발성 메모리 칩이 내장되어 있으며, 여기에 제조사가 할당한 MAC 주소(Burned-in Address, BIA)가 영구적으로 기록된다.



4. MAC 주소의 유일성

MAC 주소는 네트워크 인터페이스를 전세계적으로 유일하게 식별하기 위한 48비트 ID다.
IEEE는 OUI(앞 3바이트)를 각 제조사에게 고유하게 할당하고, 제조사는 뒤 3바이트로 자체 일련번호를 생성하여 전체 주소를 유일하게 만들어야 한다.

벤더의 MAC 주소 관리

대부분의 벤더(제조사)는 추적, 기술지원, 보안, 법적 책임 등의 이유로 모든 출고 제품의 MAC 주소를 기록 하고 보관한다고 한다.

  • 보관 목적
    • 제품 추적: 출고된 제품의 MAC을 기준으로 생산일자, 공장, 시리얼 넘버 등을 추적할 수 있다.
    • 보안 문제 대응: 문제가 생긴 MAC 주소(ex: 리콜 대상)를 찾아내고 관리할 수 있다.
    • AS 및 기술 지원: 고객이 MAC 주소로 장비를 검색하면 제품 모델 및 생산 이력을 조회할 수 있다.
    • 공장 자동화: 출고 직전, 펌웨어에 MAC 주소를 자동으로 삽입하고 기록한다.
  • 완제품 제조사의 MAC 주소 할당: 삼성, 애플과 같은 완제품 제조사도 IEEE로부터 자신들만의 OUI를 할당받는다. 네트워크 칩셋 제조사로부터 MAC 주소가 기록되지 않은 칩셋을 구매한 뒤, 자사의 OUI와 자체 관리하는 일련번호를 조합하여 최종 MAC 주소를 생성하고 이를 칩셋/모듈의 메모리에 직접 기록하기도 한다. 그래서 arp-scan으로 스캔 시 완제품 제조사의 이름이 나타나는 경우가 많다.

MAC 주소의 유일성

MAC 주소의 유일성은 3바이트(OUI) + 3바이트(벤더 일련번호)의 조합으로 보장된다.
전체 6바이트(48비트) 중, 하위 3바이트(24비트)만으로도 사실상 16,777,216가지를 표현할 수 있기 때문에 한 제조사가 만든 모든 제품을 구분하기에 충분히 크다고 할 수 있다.

전체 MAC 주소 공간

  • 전체: 6바이트 = 48비트
  • 전체 가능한 MAC 수: 2^48 ≈ 281조개(281,474,976,710,656)
    이론적으로 지구상의 모든 사람에게 10,000개씩 할당해도 남을 정도다.

진짜 충분한가?

한 OUI 당 할당할 수 있는 MAC 주소는 2^24. 즉 대략 1600만개 정도이다.
대기업과 같은 경우(ex: Samsung, Apple)은 수십개의 OUI를 보유하고 있어 수억 대를 커버칠 수 있다.
아래는 삼성의 OUI를 필터링해서 출력한 결과다.
삼성만 해도 벌써 52개를 소유하고있다!

추가- MAC 주소의 활용

  • 랜덤 MAC 주소: 최신 스마트폰(안드로이드 10 이상, iOS 14 이상)이나 Windows 10/11과 같은 운영체제에서는 Wi-Fi 네트워크 연결 시 '랜덤 MAC 주소' 기능을 제공한다. 이는 사용자의 프라이버시를 보호하기 위함으로, 공용 Wi-Fi 등에서 장치 MAC 주소를 통한 추적을 막기 위해 네트워크마다 다른 임시 MAC 주소를 사용한다. 하지만 장치 하드웨어 자체에는 여전히 벤더가 할당한 고유한 MAC 주소가 존재한다.

  • MAC 주소 스푸핑: MAC 주소는 하드웨어에 고유하게 부여되지만, 소프트웨어적으로는 쉽게 변경할 수 있다. 이를 'MAC 스푸핑'이라고 하며, 네트워크 보안 우회, 프라이버시 보호, 특정 네트워크 장비로 위장하여 네트워크 공격 수행 등 다양한 목적으로 사용될 수 있다.

  • 멀티캐스트 MAC 주소: MAC 주소의 첫 번째 바이트의 LSB(최하위 비트)가 1로 설정된 주소는 멀티캐스트 주소로 사용된다. 이는 특정 그룹에 속한 여러 장치들에게 동시에 데이터를 전송할 때 사용된다.

추가 - 여러 MAC 주소를 가진 단일 PC

하나의 데스크톱 PC에 LAN 카드가 2개이거나(LAN 포트가 2개), 무선 랜카드(Wi-Fi)까지 포함되어 있다면, arp-scan을 실행했을 때 해당 PC에 대해 2개 또는 그 이상의 MAC 주소가 출력될 수 있다. MAC 주소는 네트워크 인터페이스 카드(NIC)마다 할당되는 고유 식별자이기 때문에, PC에 여러 NIC가 존재하고 활성화되어 있다면 각각의 NIC는 고유한 MAC 주소를 가지게 된다.



profile
프론트엔드 3년차 정연희입니다.

0개의 댓글