Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS에 대한 Veriexec(Veriexec) 파일 서명 및 검증

Veriexec 파일 서명 및 확인, 이점 및 사용 방법에 대해 알아보십시오.

디바이스 무결성을 손상시킬 수 있는 무단 소프트웨어 및 활동으로부터 Junos 운영체제(OS)를 보호하기 위해 Veriexec(Verified Exec)은 승인되고 신뢰할 수 있는 소프트웨어만 실행되도록 보장하는 파일 서명 및 검증 프레임워크를 제공합니다. Junos OS는 원래 NetBSD용으로 개발된 Veriexec 프레임워크를 채택하여 기본적으로 파일 검증을 통해 소프트웨어 무결성을 보장하도록 지원합니다.

Veriexec은 인증된 각 Junos OS 파일과 연결된 지문을 사용하여 무결성을 확인하고 파일을 열거나 실행할 수 있는지 여부를 결정합니다.

Veriexec은 시스템에서 사용하기 전에 무결성을 검증하여 다음을 포함한 중요한 소프트웨어 구성 요소를 보호할 수 있도록 지원합니다.

  • 커널
  • 커널 모듈
  • 실행 파일
  • 공유 라이브러리
  • 소프트웨어 패키지
  • 기타 보호된 시스템 파일

Veriexec 작동 방식

Veriexec은 변경 불가능한 상태로 유지되어야 하는 실행 파일 및 기타 파일에 대한 지문이 포함된 디지털 서명된 매니페스트를 사용합니다.

확인 프로세스는 일반적으로 다음 단계를 따릅니다.

  1. Veriexec 로더는 매니페스트와 연결된 디지털 서명을 확인합니다.
  2. 성공적으로 확인된 후 로더는 매니페스트 콘텐츠를 커널에 제공합니다.
  3. 시스템은 시작 중에 커널을 확인합니다.
  4. 시스템은 커널 모듈이 로드될 때, 시작 중 또는 시스템 작동 중에 검증합니다.
  5. 커널은 파일을 사용하도록 허용하기 전에 예상 지문과 일치하는지 확인합니다.

Veriexec에서는 시스템에서 사용하기 전에 커널, 루트 파일 시스템 이미지 및 커널 모듈이 확인을 통과해야 합니다.

Veriexec 적용이 활성화된 경우, 확인된 지문이 있는 실행 파일만 실행할 수 있습니다. 또한 보호된 파일은 쓰거나 수정하거나 변경할 수 없습니다.

검증 범위

Veriexec은 여러 단계에서 소프트웨어 무결성을 검증합니다.

구성 요소 검증 단계
커널 시스템 시작 중
루트 파일 시스템 이미지 시스템 시작 중
커널 모듈 시작 또는 런타임 중에 로드되는 경우
소프트웨어 패키지 설치 전
보호된 파일 사용 전 런타임 중

설치 전에 Veriexec 프레임워크는 소프트웨어 패키지가 변경되지 않았으며 신뢰할 수 있는지 확인합니다. 패키지 확인 및 런타임 확인은 동일한 Veriexec 프레임워크를 사용하고 동일한 해싱 알고리즘을 지원합니다.

스크립트 실행 고려 사항

  • Veriexec은 확인된 셸 스크립트가 매니페스트에 나열되지 않은 서명되지 않은 스크립트를 실행하지 못하도록 차단합니다.

  • /bin/sh 파일을 사용하여 임의의 스크립트를 실행할 수 있습니다. 보안 관점에서 이러한 스크립트는 사용자 인증 및 권한을 통해 실행이 제어되기 때문에 대화형 명령과 유사하게 처리됩니다.

검증 실패

지문이 누락되었거나 올바르지 않은 경우 로더 또는 커널이 파일을 거부합니다. 영향은 파일 형식과 시스템에서의 역할에 따라 다릅니다.

검증에 실패한 경우:

  • 로더 또는 커널이 영향을 받는 파일을 거부합니다.
  • 그 영향은 파일의 중요도에 따라 달라집니다.
  • 기본적으로 로더는 확인에 실패한 파일을 건너뜁니다.
  • 선택적으로 잘못된 해시를 발견하면 부팅 프로세스를 중지하도록 로더를 구성할 수 있습니다.

매니페스트 및 해싱 알고리즘

각 설치 이미지에는 보호된 파일에 대한 지문 및 관련 속성을 저장하는 읽기 전용 매니페스트가 포함되어 있습니다.

이 항목의 지문 예제는 설명 목적으로만 SHA-1 해시를 사용합니다. Veriexec은 SHA-1, SHA-256, SHA-384 및 SHA-512 해싱 알고리즘을 지원합니다. Junos OS 릴리스 및 플랫폼에 따라 Veriexec이 검증에 사용하는 해싱 알고리즘이 결정됩니다.

매니페스트는 보호된 각 파일을 식별하고 예상되는 지문 및 관련 속성을 저장합니다. 매니페스트에는 다음과 같은 항목이 포함됩니다.

지문 불일치 및 로그 메시지

계산된 파일의 지문이 매니페스트에 저장된 지문과 일치하지 않으면 Veriexec에서 로그 메시지를 생성합니다.

로그 메시지의 형식은 다음과 같습니다.

파일이 수정되었고 결과 지문이 매니페스트의 지문과 다른 경우 다음과 유사한 로그 메시지가 표시됩니다.

지문 불일치는 파일 내용이 매니페스트에 저장된 신뢰할 수 있는 지문과 일치하지 않음을 나타냅니다. 이러한 불일치는 파일 손상, 스토리지 문제 또는 무단 수정으로 인해 발생할 수 있습니다.

확인에 실패한 중요한 파일은 신뢰할 수 없습니다. 지침은 JTAC에 문의하십시오.

Veriexec의 이점

  • 보안 시스템 - 보안 침해로부터 주니퍼 네트웍스 라우터, 스위치 및 방화벽을 보호합니다.

  • 무단 액세스 방지 - 위협 행위자가 지속적인 무단 액세스를 얻거나 시스템 장애를 일으키지 못하도록 차단합니다.

  • 맬웨어 실행 방지—서명되지 않은 바이너리 실행 방지를 통해 무단 수정 및 맬웨어를 차단합니다.

  • 승인된 코드 지원—JET SDK를 사용하여 Veriexec 적용을 통해 서명되고 승인된 코드를 Junos OS에 추가합니다. SDK 솔루션에 대한 자세한 내용은 주니퍼 Extension Toolkit 개발자 가이드를 참조하십시오.

Veriexec 적용 상태 확인

지원되는 플랫폼에서 Junos OS는 Veriexec 적용이 비활성화된 선택적 버전을 제공합니다. 이 기능 및 사용 사례에 대한 자세한 내용은 Junos 향상된 자동화를 참조하십시오.

Veriexec이 적용되는지 확인하려면 Junos OS CLI 셸에서 다음 명령을 실행합니다.

  1. 쉘을 시작합니다.

  2. 명령을 사용합니다.sysctl security.mac.veriexec.state

    Veriexec이 적용되면 출력은 security.mac.veriexec.state: loaded active enforce입니다. Veriexec이 적용되지 않으면 출력은 security.mac.veriexec.state: loaded active입니다.

Veriexec 파일 적용 검증

Veriexec 적용이 활성 상태인지 확인하려면 아래와 같이 권한 있는 파일을 매니페스트 범위 외부의 보호되지 않은 위치(예: /usr/bin/id)의 새 위치로 복사합니다. Veriexec은 매니페스트에 에 대한 /usr/bin/id 유효한 항목이 포함되어 있지만 에 대한 유효 항목은 포함되어 있지 않기 때문에 복사된 파일이 실행되지 않도록 합니다. /tmp/id 복사해도 파일 내용은 변경되지 않지만 Veriexec은 경로 및 관련 메타데이터를 포함하여 매니페스트 항목에 대해 파일의 유효성을 검사합니다. 따라서 Veriexec은 복사된 파일이 보호된 매니페스트 항목과 일치하지 않기 때문에 차단합니다.

  1. 쉘을 시작합니다.

  2. 디렉토리를 변경한 후 승인된 파일(예: /usr/bin/id)을 새 위치에 복사합니다.

결과

Veriexec이 적용되면 시스템은 인증 오류를 생성합니다. Veriexec이 적용되지 않으면 파일이 정상적으로 실행됩니다.

Veriexec이 적용되지 않을 때 생성되는 출력으로 복사된 파일이 성공적으로 실행됨을 보여줍니다.

Veriexec이 적용되지 않을 때 생성되는 출력으로 파일이 복사되었음을 보여줍니다.

Veriexec Loader 설치

Veriexec 지원 로더(veloader)는 Junos OS 릴리스 19.2부터 BSDX 기반 Junos 플랫폼에서 사용됩니다. 로더는 부팅을 위해 신뢰할 수 있기 전에 Junos OS 이미지를 검증합니다. Veriexec 로더는 TFTP(Trivial File Transfer Protocol) 서버 또는 USB 저장 장치에서 설치하는 Junos OS 이미지를 검증합니다.

  • TFTP 서버에서 Junos OS 이미지를 설치하려면 다음 명령을 사용합니다.

  • USB 저장 장치에서 Junos OS 이미지를 설치하려면 다음 명령을 사용합니다.

Veriexec 지원 로더는 Junos OS 이미지를 검증합니다.

로더는 지문이 포함된 Junos OS 이미지만 부팅하고 지문이나 유효한 커널이 포함되지 않은 이미지는 부팅하지 않습니다. 이 nextboot 기능을 사용하여 현재 부팅 장치를 확인할 수 있습니다.

부트업그레이드는 BIOS 펌웨어 업그레이드를 지원하기 위해 Junos OS 패키지에서 사용할 수 있는 도구입니다. 셸 명령을 사용하여 bootupgrade Veriexec 지원 로더를 업그레이드, U-Boot 확인, 수동 로드 및 설치할 수 있습니다. 이 명령은 bootupgrade -c loader 현재 로더에 대한 버전 문자열을 인쇄합니다.

Veriexec 지원 로더를 설치하기 전에 시스템은 두 이중 루트 파티션 모두에 Junos OS 지문이 포함되어 있는지 확인합니다.

Junos OS CLI 셸에서 Veriexec 지원 로더를 설치합니다.

  1. 쉘을 시작합니다.

  2. 명령을 사용하여 bootupgrade -l /boot/veloader Veriexec 지원 로더를 설치합니다.

  3. 여기에서 다양한 시나리오를 볼 수 있습니다.

    • 명령을 사용하여 request system software add /var/tmp/xxx.tgz no-copy no-validate 지문으로 Junos OS를 설치합니다. no-validate 이 옵션은 패키지 서명 확인을 사용하지 않도록 설정하지 않으며 시스템은 유효하지 않은 패키지를 계속 거부합니다.

    • Veriexec 지원 로더가 이전 릴리스의 대상 Junos OS 이미지를 지원하지 않는 경우, 로더를 해당 릴리스와 호환되는 버전으로 다운그레이드할 수 있습니다. 이 명령을 사용하여 request system software add /var/tmp/xxx.tgz no-copy no-validate 이전 버전의 로더로 자동으로 다운그레이드합니다.
    • 이 명령을 사용하여 request system software add /var/tmp/xxx Junos OS 패키지가 Veriexec 로더와 호환되는지 확인합니다.

      이 예에서는 Veriexec 로더가 20.3R1 이전의 Junos OS 릴리스를 지원하지 않기 때문에 시스템이 설치를 종료합니다.