LabHub
배우기 러닝패스 코스

빌드는 초록불이었는데 그 라이브러리는 누가 넣었나 · 이 바이트가 어디서 왔는지 아무도 모른다 · 퀴즈

퀴즈: 출처 증명

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. SLSA Build 트랙에서 L1 이 요구하는 것은?

    1. 전용 기반 시설의 호스팅 빌드 플랫폼이 증명에 서명하는 것
    2. 산출물이 어떻게 만들어졌는지를 적은 출처 증명이 존재하는 것
    3. 빌드 실행끼리 서로 영향을 주지 못하도록 플랫폼을 굳히는 것
    4. 재현 가능한 빌드로 같은 바이트가 나오는 것을 증명하는 것
  2. Build L2 가 L1 에 더해 막아 주는 것은?

    1. 빌드 도중의 다른 테넌트에 의한 변조
    2. 의존성에 섞여 들어온 악성 코드
    3. 빌드가 끝난 뒤의 변조
    4. 소스 저장소에 대한 무단 커밋
  3. provenance 의 predicateType 에 무엇을 넣어야 하는가?

    1. 문서를 열었을 때 주소창에 보이는 그 URL
    2. 우리 조직의 빌드 시스템을 가리키는 주소
    3. 산출물의 다이제스트를 이어 붙인 고유 URI
    4. 문서가 그대로 쓰라고 못박아 둔 술어 URI
  4. resolvedDependencies 에 이름만 적고 다이제스트를 빠뜨리면 무엇을 잃는가?

    1. '같은 입력으로 다시 만들면 같은 것이 나오는가' 를 물을 수 없게 된다
    2. 증명 문서가 스키마 검사를 통과하지 못하게 된다
    3. 빌드 플랫폼의 신원을 확인할 수 없게 된다
    4. 산출물의 subject 를 지정할 수 없게 된다
  5. externalParameters 를 최소로 유지하라고 권하는 이유는?

    1. 증명 파일의 전송 비용을 줄이기 위해
    2. 값이 많아질수록 검증하는 쪽이 '무엇이 정상인지' 를 정의하기 어려워져서
    3. 빌드 플랫폼이 읽을 수 있는 칸 수에 제한이 있어서
    4. 서명 알고리즘이 큰 문서를 다루지 못해서
  6. 소스를 브랜치 이름으로 적고 커밋 다이제스트를 빠뜨리면 무엇이 문제인가?

    1. 브랜치 이름에는 공백이 들어갈 수 있어 파싱이 어렵다
    2. 브랜치는 저장소를 옮기면 사라진다
    3. 브랜치는 움직이는 포인터라 같은 증명이 시점마다 다른 소스를 가리킨다
    4. 브랜치 이름은 서명 대상에 포함되지 않는다