소프트웨어 구성 분석(SCA)
OWASP Dependency-Check, Snyk 또는 GitHub Dependabot으로 종속 항목에서 알려진 CVE를 스캔합니다.
소프트웨어 구성 분석(SCA)은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
SCA란 무엇입니까?
소프트웨어 구성 분석(SCA)은 프로젝트의 오픈 소스 의존성을 식별하고 취약점 데이터베이스(NVD, CVE, GitHub 보안 권고)와 대조합니다. 또한 라이선스 준수 문제를 표시합니다.
타사 의존성이 위험한 이유
현대적인 애플리케이션은 수백 개의 오픈 소스 라이브러리를 사용합니다. 취약한 라이브러리 하나만으로도 전체 애플리케이션이 노출될 수 있습니다. 2021년 Log4Shell 취약점(CVE-2021-44228)은 널리 사용되는 로그 기록 라이브러리 하나 때문에 수백만 개의 Java 애플리케이션에 영향을 주었습니다.
SCA 도구
널리 사용되는 SCA 도구:
# npm audit (Node.js):
npm audit
npm audit fix
# pip-audit (Python):
pip-audit
# OWASP Dependency-Check:
dependency-check.sh --project myapp --scan ./
# Snyk:
snyk test
snyk monitorDependabot 및 Renovate
자동화된 의존성 업데이트 도구:
- Dependabot(GitHub) — 취약한 의존성을 업데이트하는 PR을 자동으로 생성합니다
- Renovate — 더 유연하게 구성할 수 있고 더 많은 레지스트리를 지원합니다
모든 저장소에서 이를 활성화하십시오. 의존성 업데이트를 추적하는 수동 작업을 줄일 수 있습니다.
CVE 심각도 이해하기
의존성의 모든 취약점이 사용 환경에서 악용 가능한 것은 아닙니다. 다음을 평가하십시오:
- 사용 방식에서 취약한 코드 경로에 접근할 수 있습니까?
- 애플리케이션이 해당 기능을 외부에 노출합니까?
- WAF 또는 다른 통제 수단이 이를 완화합니까?
CVSS 점수는 출발점일 뿐이며 실제 위험은 맥락에 따라 결정됩니다.
간접 의존성
직접 의존성에는 자체 의존성(간접 의존성)이 있습니다. 들어본 적 없는 라이브러리의 취약점도 여전히 영향을 줄 수 있습니다. SCA 도구는 전체 의존성 트리를 매핑합니다. npm ls 또는 pip show -r requirements.txt를 실행하여 트리를 검사하십시오.
npm ls --all | grep "vulnerable-pkg"
pip show requests | grep Requires소프트웨어 구성 요소 명세서(SBOM)
SBOM은 소프트웨어 제품의 모든 구성 요소를 정식으로 정리한 목록입니다. 행정명령 14028(US)은 US 정부에 판매되는 소프트웨어에 SBOM을 요구합니다. 형식: SPDX, CycloneDX.
# Generate SBOM with syft:
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities:
grype sbom:./sbom.json라이선스 준수
SCA는 라이선스도 검사합니다. 상용 소프트웨어에 GPL 라이선스 의존성을 포함하면 코드를 오픈 소스로 공개해야 할 수 있습니다. LGPL, MIT, Apache 2.0은 대체로 허용적인 라이선스입니다. 법무팀은 의존성 라이선스를 파악해야 하며, SCA가 이를 자동으로 제공합니다.
공급망 공격
공격자는 널리 사용되는 오픈 소스 패키지에 악성 코드를 주입합니다:
- 타이포스쿼팅:
requests대신reqeusts사용 - 침해된 유지 관리자 계정(SolarWinds 방식)
- 의존성 혼동: 비공개 패키지 이름이 공개 레지스트리에 유출됨
무결성 검증(체크섬, 잠금 파일)을 사용하는 SCA는 이러한 위험을 줄입니다.
잠금 파일
잠금 파일(package-lock.json, Pipfile.lock)은 정확한 버전을 고정하고 체크섬을 검증합니다. 잠금 파일을 소스 제어에 커밋하십시오. 운영 빌드에서 잠금 파일 검사를 건너뛰기 위해 npm install --legacy-peer-deps를 절대 사용하지 마십시오.
CI/CD 파이프라인의 SCA
SCA를 필수 CI 관문으로 통합하십시오:
# GitHub Actions example:
- name: Run npm audit
run: npm audit --audit-level=high
# Fail build on HIGH/CRITICAL findings
# Use --audit-level=moderate for stricter posture빠른 확인: SCA
소프트웨어 구성 분석(SCA)의 주요 목적은 무엇입니까?
강의 요약
SCA는 알려진 CVE, 라이선스 문제, 공급망 위험을 찾기 위해 프로젝트 의존성을 검사합니다. 간접 의존성 때문에 특히 중요합니다. 라이브러리가 의존하는 라이브러리의 취약점도 여전히 영향을 줄 수 있습니다. 자동 업데이트를 위해 Dependabot 또는 Renovate를 활성화하십시오. 공급망을 파악할 수 있도록 SBOM(SPDX/CycloneDX)을 생성하십시오. 잠금 파일은 버전을 고정하고 체크섬을 검증합니다. 심각도 임계값을 적용하여 CI 관문으로 통합하십시오.
AI 튜터와 함께 Cyber Security Academy을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 76
- 레슨
- 303
자주 묻는 질문
“소프트웨어 구성 분석(SCA)” 강의는 무료인가요?
네 — “소프트웨어 구성 분석(SCA)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“소프트웨어 구성 분석(SCA)”에서 뭘 배우나요?
OWASP Dependency-Check, Snyk 또는 GitHub Dependabot으로 종속 항목에서 알려진 CVE를 스캔합니다. 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“소프트웨어 구성 분석(SCA)” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- CI/CD 파이프라인의 SAST 및 DAST
- 소프트웨어 구성 분석(SCA)
- 비밀 정보 스캔 및 하드코딩된 자격 증명
- 보안 챔피언과 위협 모델링