Search

KR-20260060816-A - Method And Apparatus for Training Artificial Intelligence Models for Restoring MaskROM Firmware

KR20260060816AKR 20260060816 AKR20260060816 AKR 20260060816AKR-20260060816-A

Abstract

본 개시는 마스크롬 펌웨어 복원을 위한 인공지능 모델 학습 방법 및 장치 를 개시한다. 본 개시의 일 측면에 의하면, 적어도 하나의 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 마스크롬 펌웨어 복원을 위한 인공지능 모델 학습방법으로서, 학습데이터를 생성하는 과정; 생성된 학습데이터를 이용하여, 인공지능 모델이 마스크롬으로부터 추출된 비트들로부터 펌웨어를 복원하기 위한 비트 선택의 순서와 방법을 예측하도록, 상기 인공지능 모델을 학습시키는 과정; 학습한 결과를 기반으로 상기 비트 조합 순서를 예측하고, 예측한 결과를 후처리하여 바이너리를 생성하는 과정; 및 생성된 바이너리를 검증하는 과정을 포함하는 방법을 제공한다. 본 개시의 일 측면에 의하면, 적어도 하나의 메모리; 및 적어도 하나의 프로세서를 포함하되, 상기 적어도 하나의 프로세서는 명령어들을 실행함으로써, 학습데이터를 생성하고, 생성된 학습데이터를 이용하여 인공지능 모델이 마스크롬으로부터 추출된 비트들로부터 펌웨어를 복원하기 위한 비트 선택의 순서와 방법 예측하도록, 상기 인공지능 모델을 학습시키고, 학습한 결과를 기반으로 상기 비트 조합 순서를 예측하고, 예측한 결과를 후처리하여 바이너리를 생성하고, 생성된 바이너리를 검증하는 장치를 제공한다.

Inventors

  • 김대원
  • 이상수
  • 최용제
  • 강동호
  • 김정녀

Assignees

  • 한국전자통신연구원

Dates

Publication Date
20260506
Application Date
20241025

Claims (14)

  1. 적어도 하나의 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 마스크롬 펌웨어 복원을 위한 인공지능 모델 학습방법으로서, 학습데이터를 생성하는 과정; 생성된 학습데이터를 이용하여, 인공지능 모델이 마스크롬으로부터 추출된 비트들로부터 펌웨어를 복원하기 위한 비트 선택의 순서와 방법을 예측하도록, 상기 인공지능 모델을 학습시키는 과정; 학습한 결과를 기반으로 상기 비트 조합 순서를 예측하고, 예측한 결과를 후처리하여 바이너리를 생성하는 과정; 및 생성된 바이너리를 검증하는 과정을 포함하는, 방법.
  2. 제1 항에 있어서, 상기 학습시키는 과정은, 예측한 비트 조합 순서와 기존의 상기 마스크롬 펌웨어의 비트 조합 순서를 비교하고, 비교한 정보를 기초로 차이가 최소화 되도록 상기 인공지능 모델을 학습시키는 것인, 방법.
  3. 제1 항에 있어서, 상기 학습데이터는, 입력데이터 세트 또는 출력데이터 세트 중 적어도 어느 하나 이상을 포함하는, 방법.
  4. 제3 항에 있어서, 상기 입력데이터 세트는, 파라미터 정보 또는 특정 시퀸스의 좌표 정보 중 어느 하나 이상을 포함하는, 방법.
  5. 제4 항에 있어서, 상기 파라미터 정보는, PartNumber, IDinPart, ChipFamily, Manufacturer, BitDecoderPos, WordDecoderPos, WordBits, Endianness, ExtractedWidth, ExtractedHeight, BitBlock, BitPerBitBlock, WordBlock, BitPerWordBlock, CoreProcessor, CoreProcessorBit, CoreFamily, Bitlnversion, RelatedPartNumber 또는 Description 중 적어도 어느 하나 이상을 포함하는, 방법.
  6. 제3 항에 있어서, 상기 출력데이터 세트는, 상기 입력데이터의 특정 시퀸스의 후속되는 시퀸스와 좌표 정보를 포함하는, 방법.
  7. 제1 항에 있어서, 상기 인공지능 모델은, 인공신경망(Artificial Neural Networks, ANN), 컨볼루션 신경망(Convolutional Neural Networks, CNN), 순환 신경망(Recurrent Neural Networks, RNN), 트랜스포머(Transformer), 생성적 적대 신경망(Generative Adversarial Networks, GAN) 중 적어도 어느 하나인, 방법.
  8. 적어도 하나의 메모리; 및 적어도 하나의 프로세서를 포함하되, 상기 적어도 하나의 프로세서는 명령어들을 실행함으로써, 학습데이터를 생성하고, 생성된 학습데이터를 이용하여 인공지능 모델이 마스크롬으로부터 추출된 비트들로부터 펌웨어를 복원하기 위한 비트 선택의 순서와 방법 예측하도록, 상기 인공지능 모델을 학습시키고, 학습한 결과를 기반으로 상기 비트 조합 순서를 예측하고, 예측한 결과를 후처리하여 바이너리를 생성하고, 생성된 바이너리를 검증하는, 장치.
  9. 제8 항에 있어서, 상기 인공지능 모델을 학습시키는 것은, 예측한 비트 조합 순서와 기존의 상기 마스크롬 펌웨어의 비트 조합 순서를 비교하고, 비교한 정보를 기초로 차이가 최소화 되도록 상기 인공지능 모델을 학습시키는 것인, 장치.
  10. 제8 항에 있어서, 상기 학습데이터는, 입력데이터 세트 또는 출력데이터 세트 중 적어도 어느 하나 이상을 포함하는, 장치.
  11. 제10 항에 있어서, 상기 입력데이터 세트는, 파라미터 정보 또는 특정 시퀸스의 좌표 정보 중 어느 하나 이상을 포함하는, 장치.
  12. 제11 항에 있어서, 상기 파라미터 정보는, PartNumber, IDinPart, ChipFamily, Manufacturer, BitDecoderPos, WordDecoderPos, WordBits, Endianness, ExtractedWidth, ExtractedHeight, BitBlock, BitPerBitBlock, WordBlock, BitPerWordBlock, CoreProcessor, CoreProcessorBit, CoreFamily, Bitlnversion, RelatedPartNumber 또는 Description 중 적어도 어느 하나 이상을 포함하는, 장치.
  13. 제10 항에 있어서, 상기 출력데이터 세트는, 상기 입력데이터의 특정 시퀸스의 후속되는 시퀸스와 좌표 정보를 포함하는, 장치.
  14. 제8 항에 있어서, 상기 인공지능 모델은, 인공신경망(Artificial Neural Networks, ANN), 컨볼루션 신경망(Convolutional Neural Networks, CNN), 순환 신경망(Recurrent Neural Networks, RNN), 트랜스포머(Transformer), 생성적 적대 신경망(Generative Adversarial Networks, GAN) 중 적어도 어느 하나인, 장치.

Description

마스크롬 펌웨어 복원을 위한 인공지능 모델 학습 방법 및 장치{Method And Apparatus for Training Artificial Intelligence Models for Restoring MaskROM Firmware} 본 개시는 마스크롬 펌웨어 복원을 위한 인공지능 모델 학습 방법에 관한 것이다. 이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다. 드론, IoT, 국방 등 다양한 분야에서 임베디드 시스템의 사용이 급증하고 있다. 임베디드 시스템의 기능은 주로 펌웨어(firmware) 형태로 구현되며, 이에 따라 펌웨어 대한 보안 위협도 함께 증가하고 있다. 특히, 군, 경찰, 국방과 같은 보안(security)이 중요한 분야에서 사용되는 TETRA(Terrestial Trunked Radio) 통신장비의 마스크롬(MaskRom) 내에서, 외부 공격자가 임의 코드를 실행할 수 있는 취약점이 발견되었다. 이로 인해 도청 등의 보안 문제가 발생할 가능성이 제기된 바 있다. 임베디드 시스템의 펌웨어 위협을 분석하기 위해서는, 펌웨어 바이너리(firmware binary)의 획득이 필수적이지만, 펌웨어 바이너리의 획득은 기술적으로 까다로운 작업이다. 특히, MCU(Microcontroller Unit) 내부에 저장된 펌웨어에 접근하는 것은 더욱 어렵다. MCU 내부에 탑재되어 있는 펌웨어에 접근하기 위해 글리칭(glitching)과 같은 오류 주입(fault injection) 기술이 사용될 수 있다. 다만, 오류 주입 기술을 이용하여 펌웨어 접근에 실패하면, MCU를 물리적으로 분해하여 마스크롬 펌웨어를 획득하려는 시도를 해야 한다. MCU 패키지를 분해하고, 레이어를 하나씩 제거하여 마스크롬 레이어에 도달한 다음, 주사전자현미경(Scanning Electronics Microscope)를 이용하여 영상 정보를 획득한다. 주사전자현미경은 영상의 음영 차이를 분석하여 펌웨어 바이너리의 비트화된 0과 1 정보를 추출할 수 있다. 역공학(reverse engineering) 인력의 수작업 분석을 통해 추출된 비트정보로부터 펌웨어 바이너리 복원을 시도하고 있지만, 비트화된 저장규칙이 알려져 있지 않기 때문에, 투입되는 인력, 시간 및 비용 대비 복원 성공률이 낮다는 문제점이 있다. 도 1은 본 개시의 일 실시예에 따른 마스크롬 펌웨어 복원을 위한 인공지능 모델 학습장치의 개략적인 블록도이다. 도 2는 본 개시의 일 실시예에 따른 인공지능 모델이 학습데이터를 이용하는 방법의 예시를 나타낸 도면이다. 도 3은 본 개시의 일 실시예에 따른 인공지능 모델이 학습데이터를 이용하여 학습하는 방법을 예시한 도면이다. 도 4는 본 개시의 일 실시예에 따른 마스크롬 펌웨어 복원을 위한 인공지능 모델의 학습과정을 나타내는 순서도이다. 도 5는 본 개시에 따른 방법 또는 장치를 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 장치를 개략적으로 나타낸 블록구성도이다. 이하, 본 개시의 일부 실시예들을 예시적인 도면을 이용해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 본 개시에 따른 실시예의 구성요소를 설명하는 데 있어서, 제1, 제2, i), ii), a), b) 등의 부호를 사용할 수 있다. 이러한 부호는 그 구성요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 부호에 의해 해당 구성요소의 본질 또는 차례나 순서 등이 한정되지 않는다. 명세서에서 어떤 부분이 어떤 구성요소를 '포함' 또는 '구비'한다고 할 때, 이는 명시적으로 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 개시의 예시적인 실시형태를 설명하고자 하는 것이며, 본 개시가 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 도 1은 본 개시의 일 실시예에 따른 마스크롬 펌웨어 복원을 위한 인공지능 모델 학습장치(10)의 개략적인 블록도이다. 본 개시의 일 실시예에 따른 마스크롬 펌웨어 복원을 위한 인공지능 모델 학습장치(이하 '학습장치' 라함, 10)는, 학습데이터 생성부(110), 모델 학습부(130) 및 결과 예측부(150)를 전부 또는 일부 포함할 수 있다. 한편 도 1에 도시된 구성요소들은 기능적으로 구분되는 요소들을 나타낸 것으로서, 적어도 하나의 구성요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있다. 학습데이터 생성부(110)는 인공지능 및 머신러닝을 훈련시키기 위한 데이터를 준비하는 과정에서 중요한 역할을 한다. 학습데이터 생성부(110)는 파라미터 정보 및/또는 비트 시퀸스 정보를 입력받아 학습데이터(120)를 생성한다. 비트 시퀸스 정보는, 시퀸스 별(Sequence Number, Seq. No.) 좌표 정보를 포함한다. 좌표 정보는 컬럼 및 로우를 포함한다. 학습데이터(120)는 입력데이터 세트(input data set) 또는 출력데이터 세트(output data set) 중 어느 하나 이상을 포함할 수 있다. 입력데이터 세트는, 파라미터 정보 또는 특정 시퀸스의 좌표 정보 중 어느 하나 이상을 포함할 수 있다. 출력데이터 세트는 시퀸스 별 입력데이터에 대해 출력되어야 할 정보를 의미하며, 입력데이터의 특정 시퀸스의 후속되는 시퀸스와 좌표 정보를 포함할 수 있다. 모델 학습부(130)는 생성된 학습데이터(120)를 기반으로, 인공지능 모델을 학습시킨다. 즉, 모델 학습부(130)는 인공지능 모델이 마스크롬으로부터 추출된 비트들로부터 펌웨어를 복원하기 위한 비트 선택의 순서와 방법을 예측하도록, 인공지능 모델을 학습시킨다. 학습데이터(120)를 이용하여 인공지능 모델이 학습되는 과정은 이하, 도 2 및 도 3에서 설명한다. 모델 학습부(130)로부터 학습된 모델(140)은 인공지능 모델로 정의한다. 인공지능 모델(140)은 인공신경망(Artificial Neural Networks, ANN), 컨볼루션 신경망(Convolutional Neural Networks, CNN), 순환 신경망(Recurrent Neural Networks, RNN), 트랜스포머(Transformer), 생성적 적대 신경망(Generative Adversarial Networks, GAN) 중 적어도 어느 하나일 수 있다. 인공신경망은 인간의 뇌의 작동원리에 기반하여 만들어진 모델로, 뉴런(neuron)의 동작을 모방하여 정보를 처리하고 패턴을 학습한다. 컨볼루션 신경망은 이미지 처리와 패턴인식에 특화된 인공신경망의 한 유형이다. 이미지 인식, 객체 감지, 분할 등의 작업에 효과적이고, 이미지의 공간적 구조를 이해하고 이를 처리할 수 있도록 설계된다. 순환 신경망은 순차 데이터(sequence data)를 처리하는 데 특화된 인공신경망의 한 유형이다. 순차 데이터는 순서대로 정렬된 데이터의 연속을 의미한다. 트랜스포머는 자연어 처리분야에 이용되는 딥러닝 모델 아키텍처 중 하나이다. 이 모델은 기계번역, 문장 생성, 요약, 질문 응답 등과 같은 다양한 자연어 이해 작업에 사용된다. 생성적 적대 신경망은 실제와 유사한 새로운 데이터를 생성하는 데 이용된다. 생성적 적대 신경망은 생성자(generator) 및 판별자(discriminator)로 이루어진다. 생성적 적대신경망은 생성자와 판별자가 서로 경쟁하며 학습하는 과정을 거친다. 생성자는 판별자를 속이기 위해 실제 데이터(real data)처럼 보이는 가짜 데이터(fake data)를 생성한다. 판별자는 생성자가 생성한 가짜 데이터와 실제 데이터를 구별하는 역할을 한다. 결과 예측부(150)는 학습된 인공지능 모델(140)을 이용하여, 비트 조합 순서를 예측하고, 예측한 결과를 후처리하여 바이너리를 생성한다. 또한, 결과 예측부(150)는 비트 조합 순서에서 발생할 수 있는 오류를 수정하거나, 예측 신뢰성을 높이기 위한 추가적인 검증(verification) 및 최적화(optimization) 작업을 수행한다. 결과 예측부(150)는 생성된 바이너리를 검증한다. 결과 예측부(150)가 바이너리를 검증하는 과정에서 발견된 오류나 불일치는 모델 학습부(130)에 피드백되어, 인공지능 모델(140)이 학습될 수 있도록 한다. 구체적으로, 바이너리를 검증하는 과정에서 발견된 오류(error)나 불일치(discrepancy)는 생성된 바이너리에서 비트 조합 순서가 기존의 마스크롬 펌웨어의 비트 조합 순서와 일치하지 않는 경우, 복원된 바이너리에서 일부 데이터가 누락되거나 손실되는 경우, 특정 워드나 비트 블록이 잘못 해독되는 경우, 생성된 바이너리의 구조가 기존의 펌웨어와 일치하지 않는 경우 또는 생성된 바이너리가 특정 테스트 기준을 충족하지 못해 신뢰성이 낮게 평가되는 경우를 포함한다. 결과 예측부(150)는 바이너리 복원의 성공여부를 확인할 수 있다. 바이너리 복원이 실패한 경우, 결과 예측부(150)는 인공지능 모델(140)에 입력되는 초기 좌표로 변경하여 비트 조합 순서의 예측을 재수행 할 수 있다. 이상과 같이, 인공지능 모델(140)은 입력데이터 세트의 입력좌표와 출력좌표를 연결하여 학습됨으로써, 초기 입력좌표로 시작된 비트 정보의 복원이 실패하였을 경우, 다른 초기 좌표를 이용하여 비트 정보의 예측을 수행할 수 있다. 본 개시에서는 학습장치(10)에 의해 인공지능 모델(140)의 훈련 및 훈련된 인공지능 모델(140)을 이용한 마스크롬 펌웨어 복원과정이 모두 수행되는 것으로 설명하였으나, 구현예에 따라 물리적으로 구별된 복수개의 장치들(예컨대, 결과 예측장치 및 바이너리 복원장치)에서 각 기능이 수행될 수도 있다. 예를 들어, 모델 학습장치가 인공지능 모델(140)을 훈련시키고, 결과 예측장치에게 훈련된 인공지능 모델(140)으로부터 출력된 비트조합 순서 결