영웅 배경, 구분선 없음
가이드라인

알려진 취약점이 있는 구성 요소 사용

대부분의 애플리케이션은 다량의 제3자 구성 요소를 사용합니다. 이러한 구성 요소는 로깅, 템플릿 생성, 데이터베이스 접근 등 다양한 기능을 제공합니다.

이는 소프트웨어 개발을 크게 용이하게 하고 많은 시간을 절약해 줍니다. 그러나 이러한 구성 요소들도 사람이 제작하며, 일부는 필연적으로 취약점을 포함하게 됩니다. 이는 여러분이 모르는 사이에 악용될 수 있는 취약점에 노출될 수 있음을 의미합니다.

구성 요소를 최신 상태로 유지하십시오

일반적으로 프레임워크, 라이브러리 및 기타 구성 요소를 정기적으로 업데이트하는 것이 강력히 권장됩니다. 이를 수행하는 방법은 다음과 같습니다:

  • 많은 소스 코드 관리 소프트웨어가 저장소를 분석하여 종속성에서 취약점이 발견될 때 알려줄 수 있습니다.
  • 많은 패키지 관리자가 애플리케이션을 분석하여 취약한 종속성을 식별할 수 있습니다.
  • 소프트웨어 구성 분석(SCA) 솔루션은 취약한 종속성을 식별할 수 있는 다양한 솔루션이 존재합니다.

기술적 부채 위험 완화

라이브러리 업데이트 시 상당히 교묘한 문제는 코드를 해독하는 변경 사항이 포함될 수 있다는 점입니다. 일반적으로 문서화되지만, 문서화되지 않은 변경 사항도 존재할 수 있으며, 이는 코드가 실제 운영 환경에서 실행될 때까지 발견되지 않을 수 있습니다.

애플리케이션이 최신 버전과 비교해 너무 많은 버전을 실행 중인 경우, 최신 버전으로 업데이트하는 데 상당한 작업량이 필요할 수 있습니다. 긴급한 취약점이 발견된 경우, 업데이트 완료까지 며칠이 걸리는 상황을 방지하려면 타사 구성 요소를 비교적 최신 상태로 유지하는 것이 중요합니다.

패키지를 업데이트할 때는 최소한 버전 노트를 읽지 않고 무턱대고 업데이트하는 것도 권장하지 않습니다. 버전 노트에는 명백하지 않지만 애플리케이션의 동작을 변경할 수 있는 중요한 변경 사항에 대한 정보가 포함될 수 있기 때문입니다.

업데이트가 당신을 더 불안하게 만들 수 있나요?

비록 흔하지는 않지만, 취약점이 다음과 같은 결과를 초래할 수 있는 사례가 있었습니다:

  • 이전 버전에는 존재하지 않습니다.
  • 취약점을 수정할 때 소개

이러한 사례들은 패키지를 정기적으로 업데이트하는 것이 실제로 바람직하지 않다고 믿게 할 수 있습니다. 물론, 이러한 사고방식은 기술적 부채의 누적으로 이어지므로 가능한 한 항상 피해야 합니다.

이러한 시나리오가 상대적으로 드물다는 점을 고려할 때, 패키지를 자주 업데이트함으로써 얻는 이점은 새로 도입된 취약점이 발생할 가능성을 훨씬 능가합니다. 게다가 정기적으로 업데이트를 유지한다면 그러한 취약점은 쉽게 완화될 수 있습니다.

또한 공급업체들이 취약점을 아무런 공개 없이 조용히 수정하지 않는다는 것을 전제로 하는데, 안타깝게도 이는 여전히 매우 흔한 일이다.

주목할 만한 예시

최근 들어 들어보셨을 만한 주목할 만한 사례 몇 가지를 소개합니다. 자신의 라이브러리를 검토하고 최신 상태를 유지하는 것이 왜 중요한지, 그 방법을 확인해 보시기 바랍니다.