도요타 케이스

‍이세현·2024년 10월 18일

도요타 급발진 사건 개요

2009년 8월 28일 샌디에고에서 고속도로 순찰대원 Mark Saylor를 포함하여 일가족 넷을 태운 렉서스 ES350이 가드레일을 넘어 추락, 일가족 4명이 사망한 사건이다.

도요타 리콜 사태

  • 2009년 11월 플로어 매트 리콜
    • 잘못 설계된 매트로 인해 악셀 페달이 매트에 끼어버리는 문제
    • Deadly Floor Mats
  • 2010년 1월 악셀 페달 리콜
    • 액셀러레이터 페달이 밟힌 상태에서 회복이 안 되는 문제
    • Sticking Accelerator Pedal
  • 총 900만 대 가까이 리콜하게 되었다.

도요타의 주장과 대응

도요타는 잘못 설계된 매트가 액셀러레이터를 물어서 생기는 현상이라고 발표했다.

  • Saylor는 2010년 12월 $10 million로 합의되었다.

기술적 결함 분석

NHTSA-NANA 조사 결과 (2011)

  • NHTSA(미국 도로교통안전국)와 NANA(미국 항공우주국)의 공동 조사 결과 전자적 결함을 찾지 못하였다.

Bookout (2007)

  • 2007년 9월 오클라호마에서 급발진(Unintended Acceleration) 추정 사고가 발생했다.
  • 원고측 Barr 그룹의 Michael Barr이 ECM SW 코드 분석 결과 등으로 토요타에게 배상 책임이 있음을 주장했다.
  • 원고측 Philip Koopman 교수는 전자적 제어 문제로 인한 급발진이 있을수 있음을 입증하고 있다.

도요타 ETCS (Electronic Throttle Control System) 결함

ETCS

  • 차량의 가속 페달 입력을 전자적으로 처리하는 시스템으로, 전자 제어 장치(ECU)를 통해 엔진의 스로틀을 제어하는 방식
  • 전통적인 케이블 방식과 달리, ETCS는 가속 페달과 엔진 사이에 물리적 연결이 없고, 대신 센서와 전자 신호를 사용해 가속 명령을 전달한다.
  1. 가속 페달 센서: 운전자가 페달을 밟는 정도를 전기 신호로 변환한다.
  2. 전자 제어 장치(ECU): 가속 페달 센서로부터 입력된 신호를 처리하여, 스로틀을 얼마나 열고 닫을지 결정한다.
  3. 스로틀 밸브: ECU의 명령에 따라 실제로 엔진의 공기 유입량을 제어하는 밸브
  • 이 시스템은 연비를 최적화하고 배기가스 배출을 줄이는데 유리하지만, 전자적 결함이 발생할 경우 급발진이나 스로틀 제어 오류와 같은 문제가 생길 수 있다.

Failsafe Architecture

  • 도요타 ETCS ECU에는 Monitoring Chip에 fail detection SW가 내장되어 있다.
  • ETCS는 전자적 결함을 방지하기 위해 Failsafe 아키텍처를 포함하지만, 도요타의 사례에서는 단일 장애점(Single Point of Failure)과 같은 결함이 문제로 지적되었다.
    • Monitor에서 ADC 역할을 하면 monitoring의 의미가 무색해진다.
  • 잘못된 Failsafe 구조 (Task X Death)
    • 특정 작업(Task X)이 제대로 처리되지 못하거나 종료(Death)될 때 시스템이 제대로 대응하지 못하는 구조적 문제
    • Task X가 중단될 경우 시스템이 이를 감지하고 다른 안전 메커니즘을 작동해야 하지만, 이러한 상황에 적절히 대처하지 못하여 단일 장애점(Single Point of Failure)이 발생하게 된다.
  • Brake echo check
    • 차량의 제동 시스템에서 브레이크 입력을 확인하고 피드백을 통해 제어 동작을 검증하는 과정
    • 이 기능은 운전자가 브레이크를 밟았을 때, 해당 입력이 정확하게 시스템에 전달되고, 시스템이 올바르게 응답하는지를 확인하는 안전 메커니즘이다.
    • 도요타의 경우 브레이크 입력에 대한 피드백을 정확하게 확인하지 못하거나, 문제가 발생했을 때 이를 적절히 처리하지 못하는 결함이 있었다.

소스코드 품질 및 코딩 가이드라인 문제

  • Michael Barr의 증언 내용
    1. Failsafe 아키텍처 결함
      • 하나의 오류로 failure가 발생하는 Single point of failure 존재
      • 잘못된 모니터링 구조
    2. 소스코드 품질이 아주 낮음
      • 11,000개 이상의 전역변수, Cyclomatic Complexity Measure 50 이상인 함수 67개
    3. 미흡한 코딩 가이드라인
      • 자동차 코딩 가이드라인 MISRA-C 미적용
      • Stack Overflow 위험이 있는 재귀함수 사용 등
      • cf) 자동차는 재귀함수 사용이 금지된다.
    4. 전세계 표준이 OSEK 운영체제 미사용
      • OSEK: AUTOSAR의 기반 운영체제
    5. Single bit flip으로 잘못된 throttle position sensor 값 유발 실험
      • Bit 하나 바꾸어서 실험했을 때 Brake overriding 동작하지 않음

사건 결과

Bookout vs. Toyota 판결과 합의

  • 2013년 10월 징벌적 손해배상 판결 직전 알려지지 않은 금액에 합의되었다.

안전한 소프트웨어 개발을 위한 필요 노력

  • 법정에서 급발진이 증명된 것은 아니지만 안전한 소프트웨어 개발을 위한 노력이 부족했다.
  • 안전한 전지전자 시스템 개발을 위한 standard가 만들어졌다.
    • ISO 26262 등
  • Pedal misapplication 방지
    • Pedal 입력에서 throttle 출력까지 길고 복잡한 일련의 과정에서 입력이 온전히 전달되어야 한다.
    • 이를 위해 이중하, integrity 보장 등이 필요하다.
    • 자동차 안전 평가 프로그램 Euro NCAP에서 차량 안전성 평가에 적용 예정이다.
profile
Hi, there 👋

0개의 댓글