반응형

ㅁ 해킹기법

 o 해킹기법 일반적인 네트워크에서 발생할 수 있는 해킹 기법이 그대로 적용 가능
  - Sniffing
  - Replay Attack
  - Spoofing
  - Denial Of Service(DOS)
  - Fuzzing

ㅁ Sniffing 

 o 네트워크상에서 자신이 아닌 다른 노드들의 송/수신 통신메시지를 엿보는 것을 의미
 o CAN 프로토콜은 브로드캐스팅 형태로 메시지를 전송하기 때문에 네트워크 연결만 되면 스니핑 가능

 

ㅁ Replay Attack

 o 프로토콜상에서 유효 메시지를 복사한 후 재 전송함으로써 정당한 사용자와 동일한 효과를 내는 공격기법
 o CAN 프로토콜은 브로드캐스팅으로 인해 CAN bus 상의 ECU를 설치 후 모든 메시지를 수집가능하며, 수집한 메시지를 그대로 주입시키면 그대로 동작

 

ㅁ Spoofing

 o 승인 받은 사용자인 것처럼 시스템에 접근하거나 네트워크상에서 허가된 노드로 가장하여 접근제어를 우회하는 공격 기법
 o CAN 프로토콜은 브로드캐스팅으로 인해 CAN bus 상 ECU를 설치 후 모든 메시지를 수집 가능
 o 수집된 메시지를 이용하여 가짜 메시지를 만들어 공격할 수 있음

 

ㅁ Denial of Service(DoS)

 o 시스템을 악의적으로 공격해 해당 시스템 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 함
 o CAN 프로토콜은 메시지 중재 기능을 악용하여 DoS공격이 가능
 o CAN bus 상에서 가장 높은 우선순위를 가진 ID를 알아내서 지속적으로 CAN Bus에 주입하면 자원을 사용하지 못함
 

ㅁ Fuzzing

 o 소프트웨어 취약점을 발견하기 위하여 프로그램이나 단말, 시스템에 비 정상적인 입력 데이터를 보내는 방법
 o 오버플로우나 언더플로우 반복의 비정상적인 입력은 소프트웨어의 취약점을 유발시키고 고장이나 DoS 등의 원인이 됨
 o CAN은 데이터가 8비트밖에 없어서 퍼징을 통한 자동차의 취약점을 찾기가 상대적으로 희박
 o 비정상적인 행위를 나타낼 수 있음, 어떤 행위에 대한 CAN data를 찾아 낼 수 있음


자동차 CAN 통신 해킹 실습 환경 구축

 o 실습서버 : 우분투 14.03.03LTS
 o 리눅스 커널 버전 : 3.19.0-28.generic
 o CAN드라이버 : SocketCAN(리눅스 커널 2.6.25버전 이상에서 제공되는 리눅스용 CAN 드라이버)
  - SocketCAN이란 버클리 소켓 API와 리눅스 네트워크 스택을 사용하여 CAN드라이버를 네트워크 인터페이스로 구현
  - TCP/IP 프로토콜과 유사하게 구현되어 있어 기존 네트워크 프로그래밍과 비슷하게 사용 가능

출처 : 위키

CAN Bus 구조

 o 가상 통합형 ECU(vECU) 랜덤 & 브레이크/엑셀/문/깜빡이/기어 CAN MSG 전송
 o 계기판 및 차량 제어 모듈(ControlPanel) : 실시간 차량 상태 수신 및 차량 조작
 o CAN BUS 스니핑 유틸리티(candump) : CANbus를 스니핑하여 CAN MSG 출력
 o CAN메시지 전송 유틸리티(cansend) : CAN BUSdp Msg 전송

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기