483. Vulnerable and Outdated Components (취약하고 만료된 컴포넌트)
핵심 인사이트 (3줄 요약)
- 본질: 취약하고 낡은 컴포넌트(Vulnerable and Outdated Components)는 개발자가 짠 내 코드는 100점이지만, 내가 인터넷에서 공짜로 다운받아 코드에 끼워 넣은 **남이 짠 오픈소스 라이브러리(Log4j, Spring Framework 등)가 너무 오래되었거나 해킹 구멍이 나 있어서 시스템이 통째로 털리는 '공급망(Supply Chain) 지뢰'**다.
- 가치: "바퀴를 다시 발명하지 마라"는 소프트웨어 공학의 진리를 역이용하는 해커들의 가장 가성비 좋은 공격 루트다. 전 세계 수백만 대의 서버가 똑같은 오픈소스를 쓰기 때문에, 해커가 이 오픈소스의 취약점(CVE) 하나만 발견하면 전 세계 서버의 뒷문 키를 얻게 되는 **대량 살상 무기(Weapon of Mass Destruction)**로 돌변한다.
- 융합: 이 파멸적 연쇄 폭발을 막기 위해 데브옵스(DevOps) 파이프라인의 SCA(Software Composition Analysis) 자동화 스캐너, 자재 명세서인 SBOM(Software Bill of Materials) 체계, 그리고 무중단 의존성 패치 봇(Dependabot) 등 클라우드 네이티브의 공급망 보안 아키텍처와 생명줄처럼 융합된다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 내가 만든 앱 안에는 나 혼자 짠 코드가 10%고, 남이 만들어놓은 오픈소스 라이브러리(Component)가 90%를 차지한다.
- Vulnerable (취약한): 최신 버전을 썼더라도, 어제 그 오픈소스 커뮤니티에서 "우리 코드에 심각한 버그(CVE) 발견됨!"이라며 경고가 뜬 상태.
- Outdated (낡은/만료된): 오픈소스를 3년 전에 다운받고 한 번도 업데이트를 안 해서, 해커들에게 이미 해킹 매뉴얼이 다 퍼진 구닥다리 버전 상태.
-
필요성: 2017년, 미국의 거대 신용평가사 에퀴팩스(Equifax)가 해킹당해 미국 인구 절반(1억 4천만 명)의 주민번호가 다크웹에 풀렸다. 원인은 아파치(Apache)의
Struts2라는 오픈소스 라이브러리 취약점 때문이었다. 아파치는 이미 2달 전에 "이거 해킹되니까 새 버전으로 업데이트하세요!"라고 패치를 올렸다. 에퀴팩스 개발자들은 "귀찮아, 돌아가면 냅둬"라며 2달 동안 업데이트를 안 했다. 이처럼 내가 짠 코드만 지킨다고 안전해지는 것이 아니라, 내가 뱃속에 품고 있는 외부 생태계의 유통기한(Lifecycle)을 집요하게 관리해야만 생존할 수 있는 시대가 도래했다. -
💡 비유: 이 취약점은 **'건물에 박아넣은 불량 중국산 철근'**과 같습니다. 시공사(개발자)가 아무리 1급 설계사 자격증을 가지고 외벽(내가 짠 코드)을 콘크리트로 완벽하게 발랐다 해도, 뼈대에 쓴 철근(오픈소스)이 3년 전에 단종된 불량 중국산이라면? 건물을 다 지어놓고 태풍이 한 번 치는 순간 철근이 엿가락처럼 휘면서 아파트 전체가 와르르 붕괴합니다. 내가 직접 철근을 만들지 않았다면, 적어도 그 철근의 유통기한과 품질 인증서(SBOM)만큼은 내가 깐깐하게 관리해야 합니다.
-
등장 배경 및 발전 과정:
- 오픈소스의 낭만 시대: 2000년대엔 남의 코드를 복붙해서 쓰면 개발 기간이 절반으로 단축되어 모두가 환호했다.
- CVE 데이터베이스의 대통일: 해커들이 빡쳐서 "이 오픈소스 이 버전 쓰면 이렇게 뚫림!"을 족보(CVE)로 공유하기 시작했고, 이것이 스크립트 키디(초보 해커)들의 자동화 해킹 툴에 장착되었다.
- OWASP Top 10의 절대 권력화 (현재): 현대 프레임워크(NPM, Maven)가 의존성(Dependency)을 꼬리에 꼬리를 물고 수백 개씩 다운받는 거대한 블랙홀이 되자, OWASP는 이를 2021년 Top 10에 올려 "내가 짠 코드보다 남이 짠 코드를 10배 더 조심해라"라는 보안 패러다임 시프트를 선언했다.
-
📢 섹션 요약 비유: 이것은 좀비 영화에서 **'잠복기에 걸린 생존자를 파티에 데려온 것'**입니다. 파티장(앱) 경호가 완벽해도, 내 옆에서 웃고 떠드는 내 친구(오픈소스 라이브러리)가 어제 몰래 좀비한테 물렸는데(취약점 발견) 나한테 말을 안 했습니다. 친구는 새벽에 갑자기 좀비(해커)로 변해 파티장 내부에서부터 전원을 물어뜯어 전멸시킵니다. 외부에서 데려온 친구의 피 검사(SCA 스캔)를 매일매일 강제로 해야만 하는 이유입니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
1. 취약점의 사슬: 직접 의존성 vs 전이적 의존성(Transitive Dependency)
해커는 내가 눈치채지 못하는 어둠 속의 그림자(깊은 의존성)를 노린다.
- 직접 의존성 (Direct Dependency)
- 개발자가
pom.xml이나package.json에Log4j v2.14라고 내 손으로 직접 타자 쳐서 집어넣은 라이브러리. 눈에 보이므로 관리하기 쉽다.
- 개발자가
- 전이적 의존성 (Transitive Dependency) 💥 지옥의 입구
- 개발자는
Spring Boot하나만 다운받았다. 그런데 스프링 부트가 자기 배를 채우려고 뒤에서 몰래Jackson라이브러리를 다운받고,Jackson은 또 뒤에서Commons-io를 다운받는다. - 해커가 가장 밑바닥에 숨어있는 3단계 지하의
Commons-io취약점을 터뜨렸다. 개발자는 "난 저런 라이브러리 다운받은 적 없는데?"라며 영문도 모른 채 서버를 통째로 털린다. 현대 앱은 이 보이지 않는 꼬리물기로 인해 보통 500개 이상의 지뢰밭을 품고 런칭된다.
- 개발자는
2. 공급망 방어 아키텍처 (SBOM & SCA)
아키텍트는 이 500개의 지뢰밭 지도를 완벽하게 스캔하고 털어내는 레이더를 깔아야 한다.
-
SBOM (Software Bill of Materials)
- 앱이 빌드될 때, 뱃속에 숨겨진 500개의 직/간접 라이브러리 이름과 정확한 버전(Version) 번호를 영수증(JSON/XML)으로 뽑아내는 아키텍처 명세서. ("이 요리에 들어간 식재료 원산지 표기")
-
SCA (Software Composition Analysis)
- 젠킨스(Jenkins)에 달아놓은 사냥개 스캐너. 빌드 시 SBOM 영수증을 쓱 읽어본다. 그리고 실시간으로 구글(NVD/CVE 글로벌 해킹 족보)에 물어본다. "얘네가
Jackson v2.9쓴다는데 이거 지금 안전해?" - 구글: "그거 어제 해커한테 털렸어! 당장
v2.10으로 올려!" - SCA 봇이 즉시 삐용삐용 알람을 울리며 배포 파이프라인(빌드)을 터뜨려버린다.
- 젠킨스(Jenkins)에 달아놓은 사냥개 스캐너. 빌드 시 SBOM 영수증을 쓱 읽어본다. 그리고 실시간으로 구글(NVD/CVE 글로벌 해킹 족보)에 물어본다. "얘네가
-
📢 섹션 요약 비유: 이 과정은 **'식당 주방의 원산지 추적 시스템'**입니다. 손님이 요리(앱)를 먹고 식중독(해킹)에 걸렸습니다. 주방장(개발자)이 "난 신선한 소고기(직접 코드)만 썼어!"라고 우깁니다. 하지만 식약처(SCA 스캐너)가 납품 영수증(SBOM)을 뒤져보니, 소고기를 재운 간장 소스(전이적 의존성)가 유통기한이 3년 지난 썩은 소스였습니다. 주방장이 자기가 무슨 소스를 쓰는지 모르면 식당은 망합니다. 영수증(SBOM)을 기계로 24시간 감시하는 것이 아키텍처의 의무입니다.
Ⅲ. 융합 비교 및 다각도 분석
1. 보안 스캐너 3형제 (SAST vs DAST vs SCA)
OWASP Top 10을 잡기 위해 젠킨스에 붙이는 3대장 로봇들의 완벽한 역할 분담표다.
| 척도 | SAST (정적 분석) | DAST (동적 분석 / 모의 해킹) | SCA (소프트웨어 구성 분석) 💥 |
|---|---|---|---|
| 검사 대상 | 내가 짠 소스 코드 (Java, Python 파일) | 돌아가는 서버 화면과 통신 (HTTP 패킷) | 남이 짠 오픈소스 모음집 (pom.xml 등) |
| 검사 방식 | 코드를 켜지 않고 돋보기로 문법/룰 검사 | 해커처럼 밖에서 쓰레기값, 폭탄 던져봄 | 라이브러리 영수증(버전)과 해킹 족보(CVE) 비교 |
| 주요 발견 룰 | SQL 인젝션, XSS, 하드코딩 비밀번호 | 권한 우회, 서버 500 에러, 세션 탈취 | A06 (낡고 취약한 오픈소스 컴포넌트 사용) |
| 대표 툴 | SonarQube, Checkmarx | OWASP ZAP, Burp Suite | Snyk, Black Duck, Dependabot |
과목 융합 관점
-
데브옵스 (Dependabot과 자율 패치): 과거엔 SCA가 "이거 낡았어! 당장 버전을
1.0에서2.0으로 올려!"라고 경고만 해주고 도망갔다. 개발자는 바빠서 무시했다. 하지만 현대 데브옵스는 **GitHub Dependabot(디펜다봇)**과 융합되었다. 봇이 경고만 하는 게 아니라, 자기가 알아서pom.xml버전을2.0으로 올린 뒤 깃허브에 Pull Request(수정 코드 제안)를 올린다. 그리고 단위 테스트가 자동으로 돌아 통과(Green)하면, 인간의 승인 없이도 스스로 코드를 합쳐(Merge) 낡은 폭탄을 해체해 버리는 완벽한 자가 치유(Auto-remediation) 파이프라인으로 진화했다. -
클라우드 / 운영체제 (도커 이미지 취약점, Container Scanning): 이 낡은 컴포넌트의 저주는 자바(Java) 코드에만 국한되지 않는다. 내가 앱을 감싸려고 만든 도커(Docker) 컨테이너의 베이스 OS(예:
Ubuntu 18.04) 이미지가 너무 낡아서 리눅스 쉘(Bash) 취약점이 뚫려있다면? 앱 코드가 아무리 완벽해도 컨테이너가 털린다. AWS ECR이나 Docker Hub에 이미지를 올리는 순간 인프라 스캐너(Trivy, Clair)가 1초 만에 **OS 레벨의 낡은 패키지(Outdated OS Components)**를 잡아내서 컨테이너 부팅 자체를 차단하는 융합 방어가 필수가 되었다. -
📢 섹션 요약 비유: SAST가 건물의 설계도와 내벽을 엑스레이로 쏘아 불량 나사를 잡는 것이고, DAST가 완성된 건물 밖에서 대포를 쏴보며 유리창이 깨지는지 보는 것이라면, SCA는 건물에 납품된 시멘트와 철근 더미(오픈소스)의 바코드를 찍어보고 "어? 이 시멘트 작년에 뉴스에서 1급 발암물질(CVE) 나왔다고 한 그 브랜드잖아!"라며 납품 트럭 자체를 공사장 입구에서 쫓아내는 자재 검수원입니다.
Ⅳ. 실무 적용 및 기술사적 판단
실무 시나리오
-
시나리오 — Log4Shell(Log4j)의 대학살, 지옥의 1주일: 금요일 밤, 전 세계 인터넷이 발칵 뒤집혔다. 자바 로깅의 1인자
Log4j에서, 로그에${jndi:...}텍스트 딱 한 줄만 쏘면 해커가 서버 원격 조종 권한을 먹어버리는 역대 최악의 제로데이 취약점(CVSS 10점 만점)이 터졌다. 애플, 마인크래프트, 테슬라가 모두 털렸다. CISO가 아키텍트에게 소리쳤다. "우리 회사 서버 1,000대 중에 Log4j 쓰는 거 어딨어! 당장 내리고 패치해!"- 아키텍트의 해결책: 전사적 자산 가시성(Asset Visibility) 붕괴 시의 맹점이다. SCA 툴과 SBOM 영수증 인프라가 없는 회사는 1주일 내내 개발자들이 소스코드 1,000만 줄을 눈으로 뒤지며 찾아내야 했고 그사이 다 털렸다. 아키텍트가 평소에 Sonatype(Snyk) 같은 SCA 중앙 관제탑을 세워뒀다면? 대시보드에
Log4j검색 엔터 딱 한 번 치면 1초 만에 "결제서버, 알림서버 총 43대에 감염되어 있음!" 리스트가 뜬다. 버튼 한 번으로 해당 서버의 버전을2.15로 일괄 판올림(Patch) 치며 회사의 목숨을 구하는 영웅이 되었을 것이다.
- 아키텍트의 해결책: 전사적 자산 가시성(Asset Visibility) 붕괴 시의 맹점이다. SCA 툴과 SBOM 영수증 인프라가 없는 회사는 1주일 내내 개발자들이 소스코드 1,000만 줄을 눈으로 뒤지며 찾아내야 했고 그사이 다 털렸다. 아키텍트가 평소에 Sonatype(Snyk) 같은 SCA 중앙 관제탑을 세워뒀다면? 대시보드에
-
시나리오 — "버전 올리면 기존 기능 깨져서 안 돼요!" (라이브러리 노화의 역설): 스캐너가 "A 라이브러리가 털렸으니
1.0에서5.0으로 팍 올려!"라고 새빨간 경고를 뿜었다. 주니어 개발자가 버전을 올리자마자 서버가 500 에러를 토하며 기절했다. A 라이브러리의 함수 이름이5.0에서 싹 다 바뀌어서(Breaking Change) 내 기존 코드와 아예 호환이 안 되는 것이다. 팀장은 "보안보다 당장 서비스 돌아가는 게 중요해! 그냥 낡은 버전(1.0) 계속 써!"라고 덮어버렸다(Risk Acceptance 남용). 3달 뒤 해커가 그 구멍으로 들어와 DB를 훔쳐갔다.- 아키텍트의 해결책: 기술 부채(Technical Debt)의 이자가 임계점을 넘은 폭발이다. 라이브러리 버전을 1->2->3->4로 꾸준히 올리지 않고 1에 머물다 5로 점프하려니 찢어지는 것이다. 아키텍트는 "보안 패치는 선택이 아니라 숨 쉬는 것"이라는 마인드를 심어야 한다. 단위 테스트(Unit Test) 커버리지가 80% 이상 든든하게 받쳐주고 있어야, 라이브러리 버전을 팍팍 올리며 깨지는 내 코드를 10분 만에 리팩토링(호환성 튜닝)하며 부작용 없이 전진할 수 있다. TDD 방어막이 없으면 무서워서 버전업을 못 하고 영원히 낡은 컴포넌트의 늪에 빠져 죽는다.
도입 체크리스트
- 비즈니스적: "라이브러리를 다운받기 전에(Before Download) 보안 심사를 거치는가?" 개발자가 코딩하다 빡치면 구글에 쳐서 남의 깃허브에 있는 출처도 모르는 1인 개발자의 신기한 라이브러리를 그냥 복붙해서 쓴다. 그 안에 해커가 심어둔 비트코인 채굴기가 있는 줄도 모른 채 말이다. 아키텍트는 사내 망에 **프라이빗 리포지토리(Nexus, Artifactory)**를 띄우고, "인터넷망 쌩 다운로드 금지! 무조건 보안 스캐너가 1차 통과시킨 안전한 버전의 사내 저장소 라이브러리만 갖다 써라!"라고 외부 인터넷 생태계를 통제(Whitelist)해야 한다.
- 기술적: 미사용(Dead) 컴포넌트를 짐처럼 이고 지고 가는가? 3년 전 프로젝트 초기에 써봤다가 버린
PDF 변환 라이브러리가 아직도pom.xml에 적혀있다. 코드를 까보면 단 한 군데에서도 안 쓰지만(Dead Code), 배포 패키지 파일(JAR)에는 뚱뚱하게 섞여서 들어간다. 그런데 그 안 쓰는 PDF 라이브러리에서 취약점이 터지면 스캐너는 빨간불을 켜고 난리를 친다. 안 쓰는 라이브러리는 코드의 무게만 늘리는 게 아니라 보안 공격 표면(Attack Surface) 자체를 넓힌다. 잔인하게 지워내야 한다.
안티패턴
-
"우리 코드는 망분리(사내망) 되어 있어서 남의 거 안 가져옴!" (오픈소스 무단 반입의 환상): 회사 컴퓨터 인터넷을 다 끊어놨다고 안심하는 경영진의 환상. 개발자들은 자기 폰 핫스팟 켜서 USB로 압축파일(ZIP)을 떠서 사내망 서버에 몰래 갖다 나른다(Shadow IT). 이 어둠의 경로로 들어온 오픈소스 라이브러리는 젠킨스나 넥서스의 관제를 전혀 받지 않아 영원히 버전 업데이트를 받지 못하고 5년 10년 썩어가며 사내망 전체를 붕괴시키는 완벽한 백도어(Backdoor) 괴물로 자라난다.
-
📢 섹션 요약 비유: 안 쓰는 낡은 라이브러리를 남겨두는 것은, **'집 앞마당에 고장 난 구형 벤츠를 방치해 두는 것'**과 같습니다. 나는 운전(호출)을 안 하니까 안전하다고 생각하지만, 동네 양아치(해커)들이 밤에 그 고장 난 차 안으로 기어 들어와서 담배를 피우고, 거기서 우리 집 창문을 부수고 안방으로 넘어 들어오는(횡적 이동) 완벽한 징검다리 꿀단지로 씁니다. 당장 폐차장(Delete)에 버려야 합니다.
Ⅴ. 기대효과 및 결론
정량/정성 기대효과
| 구분 | 개발자가 수동으로 라이브러리 버전 복붙 관리 (AS-IS) | SCA / SBOM 파이프라인 자동 관제 및 차단 (TO-BE) | 개선 효과 |
|---|---|---|---|
| 정량 | 취약한 Log4j 감염 서버 수동 추적 및 패치에 10일 소요 | 중앙 대시보드 1초 검색 후 디펜다봇 자동 PR 머지 1분 | 치명적 제로데이 보안 사태 MTTR(수습 기간) 99% 극강 압축 |
| 정량 | 알 수 없는 전이적(Transitive) 의존성 지뢰 폭발 연 5회 | 빌드 시 SBOM 명세 대조로 취약 컴포넌트 즉각 Build Fail | 낡고 감염된 3rd Party 폭탄의 배포 성공률 0% 원천 봉쇄 |
| 정성 | "내가 쓴 라이브러리 안전한가?" 막연한 두려움 지속 | 글로벌 CVE 데이터베이스와 실시간 동기화로 팩트 체크 | "내 손을 떠난 외부 코드까지 기계가 통제한다"는 절대 안도감 |
미래 전망
- AI의 오픈소스 평판(Reputation) 스캐닝: 단순히 버전 숫자만 비교하는 시대는 끝났다. AI가 해당 오픈소스의 깃허브(GitHub) 커뮤니티 생태계를 매일매일 크롤링한다. "어? 이 유명한 라이브러리 메인 개발자가 한 달 동안 접속 안 하네? 유지보수 손 놨네? (Abandonment)", "어? 러시아 국적의 이상한 개발자가 갑자기 기여자(Contributor)로 권한을 얻었네? 악성 코드 섞을 확률 급증!"이라며, 버그(CVE)가 터지기도 전에 그 커뮤니티의 사람 냄새(평판)를 읽고 100배 앞서서 선제 차단(Block)하는 초지능형 평판 분석 시대가 다가오고 있다.
- 국가 차원의 SBOM 제출 의무화 (Compliance): 너무 많이 털리니까 결국 국가가 나섰다. 미국 바이든 행정부 행정명령에 이어, 유럽, 한국의 공공기관에 소프트웨어를 납품할 때는 "우리가 짠 코드 안에 무슨 낡은 찌꺼기(오픈소스)가 들어있는지 100% 투명하게 영수증(SBOM) 떼서 같이 납품해라! 거짓말하면 처벌한다!"는 법적/제도적 족쇄가 되어 더 이상 선택이 아닌 '글로벌 엔터프라이즈 비즈니스의 필수 통행권'으로 격상되었다.
참고 표준
- OWASP Top 10 (A06: Vulnerable and Outdated Components): 2017년 9위에서 2021년 6위로 무섭게 상승 중인, "내가 잘해도 남의 실수로 털리는" 억울하고도 치명적인 현대 공급망 해킹의 거대한 상징표. (이전 장 477번)
- NVD (National Vulnerability Database) / CVE: "이 프로그램
1.5버전은 이래서 해킹됩니다"라고 미국 정부가 관리하는 전 세계 취약점 해킹 족보 백과사전. 모든 SCA 툴은 이 족보와 내 코드를 비교하며 채점한다.
취약하고 만료된 컴포넌트(Vulnerable and Outdated Components)는 소프트웨어 공학이 '오픈소스라는 공짜 점심의 청구서'를 뒤늦게 받아 든 파멸적 영수증이다. 우리는 "바퀴를 다시 발명하지 말라"는 격언을 핑계로 수천만 줄의 거대한 남의 코드를 내 프로그램 뱃속으로 무지성으로 삼켜왔다. 기술사는 내 눈앞의 코드 에디터만 쳐다보는 좁은 시야를 버리고, 수만 갈래로 뻗어나간 '의존성 트리(Dependency Tree)'라는 거대한 나무 뿌리를 조감(Bird-eye view)해야 한다. 나무의 가장 깊은 뿌리 끝에서 썩어 들어가는 곰팡이(낡은 라이브러리) 하나가 나무 전체를 쓰러뜨릴 수 있음을 경고하며, 무자비한 기계의 칼(SCA)로 그 썩은 뿌리를 매일매일 찾아내고 가차 없이 잘라내는 '공급망(Supply Chain)의 최고 사령관'이 되어야 한다.
- 📢 섹션 요약 비유: 낡은 컴포넌트를 방치하는 것은 **'동맹국의 성벽이 뚫렸는데, 내 성문만 잠그고 잠자는 왕'**과 같습니다. 우리는 오픈소스(동맹국)와 하나의 지하 터널(의존성)로 이어져 있습니다. 1,000km 밖의 동맹국(Log4j) 성이 뚫리면(CVE 발생), 적군은 그 지하 터널을 타고 빛의 속도로 내 침실 바닥까지 기어 올라와 목을 땁니다. 내 성벽(시큐어 코딩)을 지키는 것 이상으로, 매일 밤 동맹국의 성벽이 무사한지 봉화(SCA 자동 알람)를 올려 안부를 확인해야만 내 목숨을 건질 수 있는 초연결 연합 방어 체계입니다.
📌 관련 개념 맵 (Knowledge Graph)
| 개념 명칭 | 관계 및 시너지 설명 |
|---|---|
| SCA (소프트웨어 구성 분석) | A06(만료된 컴포넌트) 취약점을 물리적으로 때려잡는 킬러 솔루션. pom.xml이나 package.json의 바코드를 1초 만에 스캔하여 낡은 폭탄을 찾아내는 젠킨스의 사냥개. |
| SBOM (소프트웨어 자재 명세서) | "우리 라면에는 중국산 밀가루 10%, 호주산 스프 90%가 들어있습니다"라고 앱의 성분을 100% 투명하게 영수증으로 뽑아내는 기술. SCA 사냥개가 냄새를 맡기 위해 던져주는 먹잇감. |
| 의존성 (Dependency) / Maven, NPM | 과거엔 개발자가 USB로 라이브러리를 퍼왔지만, 현대에는 NPM 같은 툴이 명령어 한 줄로 수천 개의 라이브러리를 연쇄적으로 끌고 들어오는 마법의 지팡이이자 독이 든 성배. |
| 제로데이 취약점 (Zero-day) | 낡은 컴포넌트에서 터지는 최악의 비극. 세상에 알려지고(CVE) 방어 패치가 나오기도 전에(Zero-day), 해커가 먼저 구멍을 찾아내어 쑥대밭을 만들어버리는 무방비 학살 상태. |
| 공급망 공격 (Supply Chain Attack) | 우리 회사를 직접 안 털고, 우리 회사가 돈 주고 사 쓰는 보안 소프트웨어 회사(SolarWinds 등)를 털어서, 정상 업데이트 패치 안에 악성코드를 섞어 수만 개 회사를 한 번에 조종하는 최고급 꼼수. |
👶 어린이를 위한 3줄 비유 설명
- 내가 세상에서 제일 멋진 성을 만들려고, 내 블록 10개랑 **친구한테 빌려온 블록 90개(오픈소스)**를 섞어서 지었어요.
- 내 블록은 엄청 튼튼한데, 친구가 빌려준 블록 중에 하나가 **속이 텅 빈 썩은 스티로폼 블록(낡고 취약한 컴포넌트)**인 걸 몰랐어요!
- 비가 오니까 그 스티로폼 블록 하나가 녹아내리면서 튼튼한 내 성 전체가 와르르 무너져 내렸어요! 이렇게 내가 짠 코드가 아니라, 남이 만든 낡은 부품을 가져다 썼다가 시스템 전체가 부서지는 대형 사고를 **'취약하고 만료된 컴포넌트'**라고 한답니다!