Skip to content

jeonminju2/ARPSPOOFING

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

ARP 스푸핑 탐지 및 방어 도구

개요

이 도구는 Windows 환경에서 ARP(Address Resolution Protocol) 스푸핑 공격을 탐지하고 방어하기 위한 Python 스크립트입니다. ARP 테이블을 분석하여 의심스러운 활동을 감지하고, 필요시 ARP 테이블을 초기화하거나 동적 엔트리를 정적으로 변경할 수 있습니다.

주요 기능

  • ARP 스푸핑 탐지: 동일한 MAC 주소에 여러 IP가 매핑되는 경우를 탐지
  • ARP 테이블 초기화: 의심스러운 엔트리 제거
  • 정적 ARP 엔트리 설정: 동적 엔트리를 정적으로 변경하여 스푸핑 방지
  • 로깅 기능: 모든 활동을 로그 파일에 기록
  • 스냅샷 저장: 현재 ARP 테이블 상태를 JSON 형태로 저장

시스템 요구사항

  • 운영체제: Windows 10/11 (한국어 환경)
  • Python: 3.6 이상
  • 권한: 관리자 권한 필수
  • 네트워크: 활성 네트워크 연결

설치 방법

  1. Python 3.6 이상이 설치되어 있는지 확인
  2. 스크립트 파일을 다운로드
  3. 관리자 권한으로 명령 프롬프트 실행

사용방법

기본 실행

# 관리자 권한으로 명령 프롬프트 실행 후
python arp_security_tool.py

실행 과정

  1. 권한 확인: 관리자 권한으로 실행되었는지 확인
  2. ARP 테이블 분석: 현재 시스템의 ARP 테이블 파싱
  3. 네트워크 인터페이스 수집: 활성 네트워크 인터페이스 정보 수집
  4. 스냅샷 저장: 현재 상태를 JSON 파일로 저장
  5. 스푸핑 탐지: ARP 스푸핑 공격 여부 분석
  6. 대응 조치: 사용자 선택에 따라 적절한 조치 수행

출력 파일

  • arp_security.log: 실행 로그 및 오류 기록
  • arp_snapshot_YYYYMMDD_HHMMSS.json: ARP 테이블 스냅샷

테스트 방법

1. 정상 상태 테스트

# 관리자 권한으로 실행
python arp_security_tool.py
  • 스푸핑이 감지되지 않으면 "✅ ARP 스푸핑 공격이 감지되지 않았습니다" 메시지 확인
  • 정적 ARP 설정 옵션이 제공되는지 확인

2. ARP 스푸핑 시뮬레이션 테스트

주의: 이 테스트는 테스트 환경에서만 수행하세요!

방법 1: 가상 환경에서 테스트

  1. VMware 또는 VirtualBox에 Windows VM 2개 설정
  2. 같은 네트워크에 연결
  3. 한 VM에서 ARP 스푸핑 도구(예: Ettercap, Cain & Abel) 사용
  4. 다른 VM에서 본 도구 실행하여 탐지 확인

방법 2: 수동 ARP 엔트리 추가

# 관리자 권한 명령 프롬프트에서
# 가짜 ARP 엔트리 추가 (테스트용)
arp -s 192.168.1.1 aa-bb-cc-dd-ee-ff
arp -s 192.168.1.2 aa-bb-cc-dd-ee-ff

# 도구 실행
python arp_security_tool.py

# 테스트 후 정리
arp -d 192.168.1.1
arp -d 192.168.1.2

3. 기능별 테스트

ARP 테이블 초기화 테스트

  1. 현재 ARP 테이블 확인: arp -a
  2. 도구 실행 후 초기화 선택
  3. 초기화 후 ARP 테이블 재확인: arp -a

정적 ARP 설정 테스트

  1. 동적 엔트리가 있는 상태에서 도구 실행
  2. 정적 설정 선택
  3. arp -a 명령으로 타입이 "정적"으로 변경되었는지 확인

로그 확인 테스트

  1. 도구 실행 후 arp_security.log 파일 확인
  2. 타임스탬프와 로그 메시지가 정상적으로 기록되는지 확인

스냅샷 저장 테스트

  1. 도구 실행 후 arp_snapshot_*.json 파일 생성 확인
  2. JSON 파일 열어서 ARP 테이블 정보가 정상적으로 저장되었는지 확인

보안 고려사항

  • 반드시 관리자 권한으로 실행해야 함
  • 네트워크 설정 변경 시 연결이 일시적으로 끊어질 수 있음
  • 정적 ARP 설정은 네트워크 토폴로지 변경 시 수동으로 업데이트 필요
  • 로그 파일에 민감한 네트워크 정보가 포함될 수 있으니 보안 관리 필요

문제해결

"관리자 권한으로 실행해주세요" 오류

  • 명령 프롬프트를 관리자 권한으로 실행
  • Windows 검색에서 "cmd" 검색 → 우클릭 → "관리자 권한으로 실행"

"ARP 테이블을 가져오는데 실패했습니다" 오류

  • 네트워크 연결 상태 확인
  • Windows 방화벽 설정 확인
  • arp -a 명령이 수동으로 실행되는지 확인

"네트워크 인터페이스 정보를 가져오는데 실패했습니다" 오류

  • netsh interface show interface 명령이 수동으로 실행되는지 확인
  • 네트워크 어댑터 드라이버 상태 확인

라이선스

이 프로젝트는 MIT 라이선스를 따릅니다.

기여

버그 리포트나 기능 개선 제안은 이슈로 등록해주세요.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages