보안상의 이유로 Xen 및 하이퍼바이저에서 벗어나는 이유 - 에피소드 1

리눅스 커널 자체가 안전에 중요한 시스템에 적합하지 않다고 생각하는 이유, 그리고 더 나아가 Xen 역시 적합하지 않다고 생각하는 이유를 설명합니다.

저자: 코리 미니야드

소개

얼마 전 MV에서 안전 필수 시스템에 Xen과 같은 하이퍼바이저를 도입하는 방안을 검토 중이라는 발표를 했습니다. 하이퍼바이저는 소프트웨어 구성이 더 간단하고 인증받기 쉬우며, 하이퍼바이저 위에 안전 필수 시스템을 구축하고 그 위에서 Linux를 독립적으로 실행할 수 있다는 이론이었습니다. 하지만 이는 단순한 탐색 단계였으며, 더 이상 그 방향으로 나아가고 있지 않습니다.

몇 가지 이유가 있습니다. 그리고 제가 왜 이것이 좋지 않은 생각이라고 생각하는지 좀 더 자세히 말씀드리겠습니다.

수학

기본적으로 모든 것은 확률로 귀결됩니다. 가용성 측면에서 보면, 많은 고객들이 99.99%의 가용성, 즉 연간 약 5분 정도의 다운타임을 달성하고 있습니다. 저희 Linux는 고객의 철저한 관리 덕분에 99.99%의 가용성(연간 30초 다운타임)을 달성한 시스템에도 사용된 바 있습니다. 이러한 높은 가용성을 위해서는 시간당 10⁻⁴ 정도의 장애 확률이 필요합니다. 가용성 목표는 일반적으로 이중화를 통해 달성되므로, 한 시스템에서 발생하는 경쟁 조건이 이중화된 시스템에서는 다시 발생할 가능성이 낮습니다. Linux는 이러한 요구 사항에 매우 적합합니다.

안전성은 완전히 다른 문제입니다. 10⁻⁵ 정도의 실패율로는 ASIL-A 등급 정도밖에 달성할 수 없으며, 리눅스가 그 수준에 적합할 수도 있습니다. 하지만 "어쩌면"이라는 단어를 강조해야 합니다. 제 생각에는 10⁻⁵조차도 리눅스에게는 무리가 있습니다. 이는 10만 시간당 한 번, 즉 약 11.5년에 한 번꼴로 고장이 발생한다는 의미입니다. 하지만 누구도 ASIL-A 등급을 원하지 않습니다. ASIL-B 등급을 달성하려면 시간당 10⁻⁶번 정도의 실패가 발생해야 하는데, 이는 약 115년에 한 번꼴입니다. 리눅스가 이 정도의 실패율을 보장할 수 있을지 확신할 수 없습니다.

이 수치들에 대한 설명이 필요합니다. 고가용성 시스템은 MMTF(평균 고장 시간)와 MTTR(평균 복구 시간)을 기준으로 평가됩니다. 예를 들어, 고장률이 10⁻⁴(MTTF 5x10⁻³)이고 MTTR이 5시간인 시스템의 가용성은 다음과 같이 계산됩니다. A = MTTF/(MTTF + MTTR) = 5000/(5000 + 5) = 0.999, 즉 9가 세 번 붙는 것과 같습니다. (물론 이 계산식에서는 MTBF를 사용해야 하지만, 이 계산에서는 차이가 미미합니다.) 이러한 시스템 두 개를 이중화 시스템으로 구성하면 가용성은 기본적으로 두 시스템이 동시에 다운되는 평균 시간에 따라 결정되며, 공식은 At = 1 - 1n(1 - A(n)) = 1 - (1 - 0.999)(1 - 0.999) = 0.99998999, 즉 거의 9가 여섯 번 붙는 것과 같습니다. 하지만 시스템이 단일 시스템(단일 시스템)으로 운영될 경우 유지보수 시간 등을 고려해야 하므로 실제 확률은 그보다 훨씬 낮아 99.99%에 가까울 것입니다. 그리고 이러한 시스템에서는 장애가 발생하더라도 인명 피해로 이어지는 경우는 드뭅니다. 웹페이지에 접속할 수 없거나 전화를 걸 수 없는 상황이 발생할 수 있지만, 사망 사고를 막기 위해 전화 통화가 필요한 상황과 장애가 동시에 발생할 확률은 매우 낮습니다.

안전 요구 사항이 지나치게 엄격해 보일 수 있지만, 전체적인 맥락을 고려해 보면 그렇지 않습니다. AAA에 따르면 미국인들은 연평균 293.3시간을 운전하며, 2018년 미국의 인구는 3억 2,709만 6,265명이었습니다. 이는 연간 960억 시간의 운전 시간에 해당합니다. 만약 고장률이 시간당 10⁻⁶이고, 100건의 고장 중 1건이 사망으로 이어진다고 가정하면(이는 대략적인 추정치입니다), 연간 약 1,000명의 사망자가 발생합니다. 물론 이 수치는 대략적인 것이지만, 문제의 심각성과 안전에 중요한 시스템의 신뢰도가 왜 그토록 높아야 하는지를 보여줍니다. 연간 1,000명의 사망자는 인간의 사망률(2018년 미국의 교통사고 사망자 수 36,560명)보다는 훨씬 적지만, 여전히 큰 숫자이며, 사망에 이르지는 않았지만 사고로 인해 심각한 영향을 받은 사람들은 포함되지 않았습니다. 자동차 제조업체들은 이러한 수준의 책임을 감당하고 싶어 하지 않을 것입니다.

리눅스로 돌아가기

따라서 현재 기술을 사용하면 리눅스로 10^-4 또는 10^-5 수준의 정확도를 달성할 수 있을 것으로 생각하지만, 안전에 중요한 시스템에 요구되는 10^-6~10^-8 수준의 신뢰성을 달성하는 것은 불가능합니다.

더 어렵거나 더 오래 검토하거나 정적 분석을 하는 등의 문제는 아니라고 생각합니다. 리눅스는 뛰어난 시스템과 절차를 갖춘, 평균 이상의 안정성을 자랑하는 훌륭한 소프트웨어입니다. 하지만 멀티스레드 소프트웨어에서 이러한 수준의 안정성을 유지하는 데에는 근본적인 문제가 있습니다. 다음 글에서 그 이유에 대해 자세히 설명하겠습니다.

Please reach out to discuss your particular scenario today.

전문가와 상담하기 sales@mvista.com으로 이메일 보내기

Keep reading

Related blogs

View all posts
CGX Jun 08, 2026

캐리어급 리눅스에 대한 설명: 2026년 이후 임베디드 개발자가 기대해야 할 사항

최신 임베디드 팀이 고가용성, 결정론적, 보안성, 그리고 장기적인 유지보수가 가능한 Linux 플랫폼에서 기대해야 할 사항들을 살펴보세요.

Read article
MVXpert May 04, 2026

임베디드 리눅스용 Yocto 배포판과 리눅스 배포판 중 어느 것을 선택해야 할까요?

임베디드 리눅스 시스템을 구축하고 유지 관리할 때 Yocto와 리눅스 배포판 중 어떤 것이 더 나은 선택인지 알아보세요.

Read article
MVSecure May 02, 2025

임베디드 시스템에서 SELinux 사용 경험 - 4장

보안 강화 리눅스(SELinux)의 정책 구조에 대해 논의해 보겠습니다.

Read article
nec
nokia
ericsson
samsung
cisco
lg
stjude
guidant
fujitsu
infinera
hp
canon
siemens
motorola
tellabs
nec
nokia
ericsson
samsung
cisco
lg
stjude
guidant
fujitsu
infinera
hp
canon
siemens
motorola
tellabs