도요타 케이스

‍이세현·2024년 10월 18일
1

도요타 급발진 사건 개요

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개의 댓글

관련 채용 정보