Critical errors in ETCS-i

NASA의 보고서를 읽으면 상당한 각고의 노력을 기울인 것으로 보인다. 그런데 못찾았다고 했다. 그런데 Barr의 문서를 보니 문제가 있긴 있었나보다.

NASA는 몰랐고 Barr는 알게 된 내용들..

결정타라고 생각되는 내용은 Operating system에서 bit flip flop으로 인해 task가 돌연사할 수 있다는 점을 발견한 내용이다. 이건 정말이지 critical한 문제라고 생각된다. software를 열심히 짰는데 OS가 blackhole이라면 그건 정말 말짱 도루묵이다.

qualified된 OS는 정말 중요하다.

스파게티 코드도 그럴 수 있다고 관대하게 넘어가 줄 수 있어도, bit flip flop, memory corruption은 정말 finish blow다. 그걸로 끝났다고 본다.

System적으로 모니터링도 하고 여러가지 안전장치를 마련했으나, sw에 엄청난 헛점이 있으면 모든 것이 무용지물…

결국 Car OEM은 SW quality에 대한 전문가가 없으면 미국 시장에서 저렇게 탈탈 털릴 수 있음을 보여준 사례.. 다음번 피해자는 바로 당신이 될 수 있다는 매우 강력한 경고!…

시간 나면 transcript도 봐야겠음..

2005 Camry L4 source code and in-vehicle tests confirm:
1) Some critical variables are not protected from corruption

2) Mirroring was not always done
> NASA didn’t know this (believed mirroring was always done)

3) No hardware protection against bit flips
> NASA didn’t know this (was told main CPU’s RAM had EDAC)

4) Sources of memory corruption are present

5) Stack overflow can occur
> NASA didn’t know this (was told stack less than half used)

6) There are software bugs
> NASA found bugs (and Barr Group has found others)

> Dead task also monitors accelerator pedal, so loss of throttle control(Confirmed in tests)
> When this task’s death begins with brake press (any amount), driver must fully 7) remove foot from brake to end UA (Confirmed in tests)

Types of Software Defect(causes memory corruption)
Buffer Overflow
Invalid Pointer
Race condition
Nested Scheduler Unlock
Unsafe Casting
Stack Overflow

Spagetti code (CC > 140)




One thought on “Critical errors in ETCS-i”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s