사이버 공격과 방어의 실무

SBOM(소프트웨어 자재 명세서)을 만들어 관리하는 주된 목적으로 올바른 것은?

  1. A제품에 포함된 라이브러리 등의 구성 요소와 버전을 목록으로 만들어, 구성 요소의 취약점이 공표되었을 때 영향을 받는 제품을 바로 찾는다
  2. B소프트웨어의 소스 코드를 암호화해 두고, 제품을 구입한 사용자를 포함한 제3자가 프로그램의 내용을 읽지 못하도록 보호한다
  3. C제품을 만드는 데 사용하는 반도체나 전자 부품의 목록으로부터 부품 조달에 드는 비용과 납기를 계산하여 생산 계획을 세운다
정답과 해설 보기

정답: A. 제품에 포함된 라이브러리 등의 구성 요소와 버전을 목록으로 만들어, 구성 요소의 취약점이 공표되었을 때 영향을 받는 제품을 바로 찾는다

현재의 소프트웨어는 많은 오픈 소스 라이브러리나 타사의 구성 요소를 조합하여 만들어지며, 구성 요소가 다시 다른 구성 요소에 의존하는 경우도 많습니다. SBOM은 이러한 구성 요소의 이름, 버전, 공급자, 의존 관계 등을 기계가 읽을 수 있는 형식(SPDX나 CycloneDX 등)으로 정리한 목록입니다. 2021년 12월에 공표된 Log4j의 취약점(Log4Shell)처럼 널리 쓰이는 구성 요소에서 심각한 취약점이 발견되었을 때, SBOM이 있으면 어느 제품의 어느 버전이 영향을 받는지를 빠르게 조사할 수 있습니다. 미국에서는 2021년 5월의 대통령령으로 정부에 납품하는 소프트웨어에 대해 SBOM 제공을 요구하는 방침이 제시되었습니다.

이 분야 연습하기 분야로 돌아가기

사이버 공격과 방어의 실무의 다른 문제

  1. 어떤 기업은 사내 패키지 저장소(프라이빗 레지스트리)에 사내 전용 라이브러리 acme-utils를 두고 사용하고 있다. 공격자가 공개 패키지 저장소에 같은 이름 acme-utils로 더 큰 버전 번호의 패키지를 등록했더니, 빌드 설정에 따라서는 사내 빌드 환경이 공격자의 패키지를 가져와 버린다는 것이 밝혀졌다. 이 '의존성 혼동(dependency confusion)'에 대한 대책으로 가장 적절한 것은?
  2. 2020년 12월에 드러난 SolarWinds사 사건에서는 IT 관리용 소프트웨어의 빌드 환경에 공격자가 들어와 정규 업데이트 프로그램에 부정한 코드가 섞여 들어갔다. 이 업데이트는 개발사의 정규 코드 서명이 붙은 상태로 배포되었다. 이 사건에서 얻을 수 있는 교훈으로 가장 적절한 것은?
  3. 클라우드의 오브젝트 스토리지에 둔 고객 정보 파일이 인터넷의 누구나 읽을 수 있는 상태였다는 것이 밝혀졌다. 이러한 정보 유출의 전형적인 원인과 재발을 막는 대책의 조합으로 적절한 것은?
  4. 클라우드에서 동작하는 배치 처리에, 모든 조작을 허가한 관리자 권한의 액세스 키(장기간 유효한 인증 정보)를 설정 파일에 적어 넘기고 있었다. 이 키가 유출되었을 때의 피해를 작게 하기 위한 재검토로 가장 적절한 것은?
  5. 공격자가 직원의 비밀번호를 입수하고 로그인을 수십 번 반복하여, 직원의 스마트폰에 승인을 요구하는 알림을 대량으로 보냈다. 직원은 귀찮아져서 그만 '승인'을 눌러 버렸다. 이 공격에 대한 대책으로 가장 적절한 것은?