SoC 보안을 검증하기 위한 퍼징. 검증의 혁신

소스 노드 : 1853830

퍼징은 소프트웨어 검증이고 무작위화는 하드웨어 검증입니다. 퍼징 접근 방식이 하드웨어 보안 테스트를 향상시킬 수 있습니까? Paul Cunningham(GM, Verification at Cadence), Raúl Camposano(실리콘 촉매, 기업가, 전 Synopsys CTO)와 저는 연구 아이디어에 대한 시리즈를 계속합니다. 언제나처럼 피드백을 환영합니다.

SoC 보안 검증을 위한 퍼징

혁신

이번 달의 선택은 SoC 보안 검증을 위한 HyperFuzzing. 저자는 ICCAD 2020에서 이 논문을 발표했습니다. 그들은 IIT Kanpur 출신입니다.

이는 최신 SoC 설계에 특별히 적용된 퍼징에 대한 흥미로운 접근 방식입니다. 그것은 기반 초자산 동적 시뮬레이션을 확인합니다. 이러한 하이퍼 속성은 다음과 같은 동작에 대한 이유를 제시합니다. 흔적의 집합, 보안 검사에 매우 적합한 접근 방식입니다. 저자는 정보 흐름 검사(권한 있는 데이터가 A에서 B로 누출될 수 없음)와 비간섭 검사(적대적 작업이 계산 흐름을 방해해서는 안 됨)를 예로 제공합니다. 그런 다음 변조 여부에 관계없이 시뮬레이션 추적 묶음을 비교하여 보안을 확인합니다.

이 접근 방식을 변조하면 신뢰할 수 없는 소스에 대한 다양한 유형의 취약점을 모델링할 수 있습니다. 펌웨어 명령어를 무작위로 지정하여 구성요소의 명령어를 NoC에 쓰거나 메모리에서 비트 플립합니다. 저자는 또한 몇 가지 새로운 적용 범위 측정 기준을 제안합니다. 이는 이전 변조 실행의 영향을 가장 많이 받는 사례를 중심으로 변조 반복을 안내하도록 설계되었습니다.

그들의 테스트 케이스는 작지만 대표적인 SoC입니다(자세한 내용은 GitHub의) 암호화 블록에 대해 펌웨어 테스트를 실행하여 비간섭 및 기타 취약점을 확인합니다. 또한 데이터 블록 검사를 통해 보안 부팅을 실행합니다. 그들은 블록에 ECC 보호가 포함된 경우를 제외하고 암호화 블록에서 여러 보안 위반을 발견했습니다.

바울의 견해

보안 검증은 매우 중요한 주제이며, 학계와 업계 모두에서 많은 작업이 진행되고 있습니다. 이 문서는 시뮬레이션 추적 세트에 대한 "초속성"과 무작위 돌연변이 기반 적용 범위를 훌륭하게 결합하여 보안 결함을 입증하는 데 확장 가능하고 효과적인 혁신적인 솔루션을 만듭니다.

일부 보안 속성은 일련의 시뮬레이션 추적을 통해서만 공식적으로 정의될 수 있습니다. 예를 들어, "비간섭"은 공격자가 설계에서 특정 보호된 계산을 방해할 수 없음을 의미합니다. 간섭을 입증하려면 하나의 추적에 일부 공격자 작업이 있다는 점을 제외하고 입력 자극이 동일한 두 개의 추적을 비교해야 합니다. 공격받은 트레이스의 보호된 계산이 골든 트레이스의 계산과 다른 경우 간섭이 발생한 것입니다.

저자는 여러 추적에 대한 어설션을 위해 자신만의 특별한 언어를 만들고 이를 사용하여 비간섭 및 기밀성을 위한 보안 속성을 공식화합니다. 그들은 시뮬레이션을 무작위로 변조하고 변조된 시뮬레이션과 변조되지 않은 시뮬레이션 간의 보안 속성을 확인하는 사용자 정의 흐름을 구축합니다. 무작위 변조 알고리즘에는 보안 결함을 보다 효율적으로 찾을 수 있도록 안내하는 우아한 적용 범위 기반 학습 휴리스틱도 있습니다.

여러 시뮬레이션에 대한 어설션 아이디어는 매우 강력합니다. 이러한 종류의 주장을 지원하기 위해 SystemVerilog를 깔끔하게 확장하는 것이 가능할지 궁금합니다. 이는 상용 시뮬레이션 및 공식 도구에 대한 몇 가지 강력한 기본 확장의 문을 열 수 있습니다. 또 다른 가능성은 생성된 여러 테스트에 걸쳐 있는 주장을 포함하도록 새로운 PSS(Portable Stimulus Standard)를 확장하는 것입니다.

이 논문은 쉽고 즐겁게 읽을 수 있지만 결과에 대해 좀 더 자세한 내용을 알고 싶습니다. 저자는 자신의 솔루션이 오픈 소스 SoC 테스트 케이스에서 보안 허점을 발견했다고 주장하지만 이러한 허점이 무엇인지 또는 동일한 허점을 찾는 데 적용할 수 있는 문헌의 다른 접근 방식과 그들의 접근 방식을 어떻게 비교하는지에 대한 세부 정보는 없습니다.

라울의 견해

먼저 기술 성숙도 측면에서 이를 살펴보겠습니다. 나는 일반적으로 디자인의 보안 등급에 대한 매우 흥미로운 접근 방식이라는 아이디어를 좋아합니다. 즉, 각 디자인에서는 디자이너가 새로운 어설션 언어로 시드 테스트, 변조 및 보안 사양을 제공해야 합니다. 나에게 이것은 현재 학문적 영역에 대한 접근 방식을 확고하게 제한합니다. 논문 및 논문에 적합하지만 아직 상업적인 응용 프로그램으로 도약할 수 있는 것에 가깝지 않습니다.

두 번째 도전을 위해 투자자의 모자를 쓰겠습니다. 보안은 중요한 주제입니다. 의심의 여지가 없습니다. 하지만 우리가 이미 알고 있는 몇 가지 도메인 외에는 항공우주, 국방, 결제 시스템, 프로세서/서버 등이 있습니다. 대부분의 OEM 및 부품 제조업체에게는 여전히 실존적인 문제가 아닙니다. 일반적으로 예상되는 경우 그들은 기꺼이 확인란을 선택합니다. 그러나 비용이나 시장 출시 기간에 미치는 영향이 작은 경우에만 해당됩니다. 고객은 일반적으로 보안을 위해 더 많은 비용을 지불하지 않기 때문입니다. 따라서 대부분의 시장의 보안은 여전히 ​​하드웨어 신뢰 루트 및 사용하기 쉬운 앱과 같은 턴키 IP에 의존합니다. 이러한 방식 중 하나로 패키지된 솔루션은 투자가 가능하지만 그렇지 않으면 그다지 많지 않습니다.

내 견해

Paul과 Raúl은 내가 제안한 내용의 대부분을 다루었습니다. 나는 적어도 하이퍼 속성에 대한 실험을 장려하기 위해 SVA를 확장하려는 Paul의 아이디어를 좋아합니다. 이는 새로운 종류의 흥미로운 테스트를 열어야 하며 결국 새로운 번들 검증 방법으로 이어져야 합니다.

다음을 통해이 게시물 공유 : 출처: https://semiwiki.com/eda/299391-fuzzing-to-validate-soc-security-innovation-in-verification/

타임 스탬프 :

더보기 세미위키