산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

USB HID 공격 방지: 아두이노 레오나르도 키보드 익스플로잇 시연

부품 및 소모품

부품수량
Arduino Leonardo (HID 지원 필수)1
마이크로 SD 카드 리더기1
SD 카드 (수 GB)1
푸시버튼 3핀 (VCC, GND, 신호, 내장 저항)1
점퍼 와이어 (암-수, 암-암)1
USB-A to 마이크로 USB 케이블1

프로젝트 목적

Arduino Leonardo의 HID(Human Interface Device) 기능을 이용해 키보드/마우스를 가장한 악성 USB 장치의 작동 원리를 시연하고, 이에 대한 방어 대책을 이해하기 위한 교육용 프로젝트입니다. 악용을 위한 가이드가 아니며, 보안 인식을 높이는 것이 목적입니다.

학습 내용

장치 제작

작동 원리

Leonardo는 HID 장치로 인식되어 키보드/마우스 입력을 주입할 수 있습니다. 버튼을 누르면 SD 카드의 스크립트 파일(hack.txt)을 읽어 키 입력 시퀀스를 실행합니다. 데모에서는 우분투 리눅스에서 터미널을 열고(Ctrl+Alt+T), 파이썬 스크립트를 생성해 ~/Documents 폴더의 .txt 파일을 수집해 지정된 G메일로 전송한 뒤, 스크립트 삭제 및 터미널 종료까지 자동 수행합니다.

조립 지침

  1. 마이크로 USB 케이블을 Leonardo에 연결
  2. 푸시버튼: GND, VCC, 신호핀(D8) 연결
  3. SD 카드 리더: ICSP 헤더에 연결 (Leonardo는 ICSP 핀이 디지털 핀과 분리됨). SS 핀 → 디지털 핀 10
  4. 아두이노 코드 업로드 (보드: Leonardo, 보드레이트: 9600)
  5. SD 카드 FAT16/32 포맷 후 hack.txt 복사
  6. hack.txt 내 이메일 설정(smtp_user, smtp_pass, to_address) 수정
  7. SD 카드를 리더기에 장착

hack.txt 명령 구조

지원 특수 키: KEY_LEFT_CTRL, KEY_LEFT_SHIFT, KEY_LEFT_ALT, 방향키, KEY_RETURN, KEY_ESC, KEY_F1~KEY_F12 등

공격 시나리오 상세 (우분투 대상)

  1. 버튼 누름 → SD 카드 읽기 시작
  2. Ctrl+Alt+T로 터미널 열기
  3. vi hack.py로 파일 생성 후 파이썬 스크립트 작성
  4. 스크립트 실행: nohup python hack.py & (백그라운드)
  5. 증거 삭제: rm -rf hack.py
  6. Alt+F4로 터미널 닫기

전체 과정이 수 초 내 완료되며 흔적이 거의 남지 않습니다.

한계점 및 개선 방향

대응 방안 (Countermeasures)

  1. USB 포트 비활성화 - 윈도우 그룹 정책 또는 레지스트리 편집
  2. USB 장치 화이트리스트 - 허용된 장치만 인식하도록 설정
  3. 자리 비울 때 화면 잠금 (Win+L, Ctrl+Alt+Del)
  4. 관리자 권한 최소화 - 루트/관리자 계정으로 상시 로그인 금지
  5. 자동 업데이트 활성화 - OS 및 보안 패치 최신 유지

소스 코드

아두이노 스케치(keyboard_exploit.ino)와 SD 카드용 hack.txt, 생성되는 hack.py 파일이 포함됩니다. GitHub 저장소: github.com/danionescu0/arduino (projects/keyboard_exploit 폴더)

회로도

프리츠핑 회로도 파일(sketch_D4S1ftXkTU.fzz) 제공. ICSP 헤더 연결 방식 필수 확인.

제조공정

  1. 아두이노 우노로 만드는 LCD 애니메이션 & 게임 기초
  2. 아두이노와 스마트폰으로 만드는 스마트 전압계 – 초간단 DIY 프로젝트
  3. 아두이노 DHT11 이더넷 실드 온습도 데이터 로거
  4. 미디 키보드를 아두이노, LED, 뮤즈스코어로 스마트 피아노 튜터로 변신시키기
  5. 파이썬 3로 아두이노 우노 제어하기 – 시리얼 통신 LED 제어 기초
  6. 아두이노 나노 + 128x64 OLED로 실시간 셀룰러 오토마타 (생명 게임) 구현
  7. 아두이노 나노와 RDA8057M으로 소형 FM 라디오 만들기
  8. 아두이노와 구글 시트로 구현하는 실시간 RFID 출석 시스템
  9. 아두이노 64키 프로토타이핑 키보드 매트릭스 - 시프트 레지스터로 핀 절약하기
  10. 아두이노 16x2 LCD와 키패드로 계산기 만들기