소프트웨어는 이동 수단을 구성하는 주요 요소를 정의합니다. 모빌리티 앱부터 실시간 지도, 점차 자동화 돼가는 차량에 이르기까지, 소프트웨어 코드는 교통 수단의 기본으로 자리잡고 있습니다.
이 소프트웨어가 더욱 복잡해지면서 인적 오류가 발생할 확률이 높아져 보안과 안전 위험 또한 커지고 있죠.
이 중요한 소프트웨어의 안전성을 보장하기 위해 엔비디아는 안전과 보안에 중요한 소프트웨어를 위한 개발·인증 도구 업체인 아다코어(AdaCore)와 협력하고 있습니다. 특정 펌웨어 요소에 프로그래밍 언어인 Ada와 SPARK를 구현해 인적 오류 발생 가능성을 낮출 수 있답니다.
두 언어 모두 안전성과 견고함, 보안을 염두에 두고 설계됐습니다. 프로그래밍에 이를 사용해 코드에 버그나 취약성이 없음을 인증하는 과정에 효율성을 더할 수 있죠.
컨설팅 업체 VDC 리서치(VDC Research) 연구에 따르면, 항공우주, 자동차와 같이 강력한 안전과 안정성, 보안 표준을 가진 업계의 경우, 이를 통해 소프트웨어 인증을 향상시켜 약 40%에 달하는 비용과 시간 절감 효과를 누릴 수 있다고 하네요.
결함 조기 탐지
Ada에는 소프트웨어 수명 주기 초기에 코드 결함을 감지하는 다양한 내장 기능이 갖춰져 있습니다. 이 기능은 인재 발생 가능성과 개발 후 테스트나 동료 검토를 따로 해야 하는 필요성을 덜어주죠.
Ada의 하위 집합인 SPARK는 이 언어로 쓰여진 코드에 오류가 없는지 수학적으로 검증할 수 있습니다. 이 검증으로 소프트웨어 애플리케이션 작동 방식을 정의할 수 있죠. 또한 그 정의에 맞게 구현되고 있는지 여부를 가려내거나 다른 방법으로는 감지하기 어려울 수 있는 버그나 취약성을 찾기도 한답니다.
이들 언어를 엔비디아에 통합하면 소프트웨어가 오작동하거나 악용될 가능성이 최소화 됩니다. 이러한 검증 프로세스가 개발 주기에서 한층 신속하게 이뤄져 시간 낭비를 줄일 수 있습니다.
소프트웨어 정의 안전
엔비디아의 플랫폼에 Ada와 SPARK 언어를 통합하는 등의 방법은 특히 차량 자율 주행화가 점차 본격화 되어가는 시점에서 차량 보안의 견고함을 개선시키는데 도움이 될 수 있답니다.
이 소프트웨어는 기반 하드웨어만큼 기능적으로 안전해야 하며, 동일한 수준의 엄격한 표준을 적용 받고 전문가 평가를 거쳐야 합니다. 검증을 수행하는 언어를 사용하면 이 프로세스가 바로 개발 단계로 넘어갈 수 있어 한층 원활한 검토 주기가 형성되죠.
엔비디아 소프트웨어 보안 부사장 다니엘 로러(Daniel Rohrer)는 “자율주행 자동차는 복잡하며, 현재까지 나온 것 중 가장 엄격한 보안 표준을 능가하는 정교한 소프트웨어를 필요로 합니다. Ada와 SPARK는 이 생태계의 중요한 요구사항을 해결할 수 있는 흥미로운 가능성을 제시합니다”라고 말했습니다.