493. IAST (Interactive Application Security Testing) - SAST와 DAST 결합, 에이전트 기반 내부 메모리/흐름 분석
핵심 인사이트 (3줄 요약)
- 본질: IAST(상호작용 애플리케이션 보안 테스팅)는 코드를 읽기만 해서 오탐(가짜 경고)이 넘치는 SAST와, 밖에서 대포만 쏴대서 어딜 고쳐야 할지 모르는 DAST의 빡치는 단점을 극복하기 위해, 돌아가는 서버 뱃속(JVM 메모리)에 스파이 에러 감지기(에이전트)를 몰래 심어두고 밖에서 공격할 때 속에서 실시간으로 피 흘리는 위치를 족집게처럼 잡아내는 궁극의 하이브리드(Hybrid) 융합 병기다.
- 가치: "오탐(False Positive) 제로(0)의 기적"을 창조한다. 밖에서 날아온 악성 트래픽(XSS, SQLi)이 코드의 어느 파일 45번 줄에서 DB로 흘러 들어갔는지 엑스레이 필름처럼 완벽한 경로(Call Stack)를 그려줌으로써, 개발자가 버그를 찾아 헤매는 디버깅 리드타임(MTTR)을 수일에서 단 1분으로 극단적으로 압착시킨다.
- 융합: 코드(SAST)와 런타임(DAST)의 장점을 모두 취해버리며, 특히 데브옵스 파이프라인의 중간 단계인 **QA/통합 테스트 스크립트(Selenium 등 자동화 UI 클릭)**와 완벽하게 융합되어, 기능 테스트를 돌리는 그 찰나에 보안 검증까지 공짜(1석 2조)로 끝내버리는 현대 애플리케이션 보안 아키텍처의 최종 진화형(End-game)이다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: IAST(상호작용 테스팅)는 '회충 약'이나 '내시경 카메라(에이전트)'를 서버에 먹인 상태로 테스트하는 것이다. 자바(Java) 서버라면 부팅할 때
-javaagent:iast.jar옵션을 달아 띄운다. 그러면 이 에이전트가 서버의 모든 혈관(함수 호출, DB 쿼리)에 딱 달라붙어 도청을 시작한다. QA 테스터나 자동화 툴이 밖에서 평범하게 앱의 버튼을 클릭하면, 뱃속에 있는 IAST 에이전트가 "어? 방금 들어온 입력값이ResultSet객체를 뚫고 지나가면서 SQL 인젝션 독극물을 퍼뜨렸어! 당장 이 코드 23번 줄이야!"라며 실시간으로 관제탑에 범인을 밀고(Interactive)한다. -
필요성: 보안팀의 가장 큰 딜레마. "SAST(코드 읽기)를 돌리면 가짜 경고가 만 개 떠서 개발자가 파업하고, DAST(밖에서 공격)를 돌리면 에러는 났는데 코드를 못 고치겠대!" 이 지옥 같은 한계를 극복해야 했다. **해커가 진짜 공격(실전)을 날렸을 때의 치명적 팩트(DAST의 장점)**와, 코드 어디를 어떻게 고치면 되는지 명확히 짚어주는 내비게이션(SAST의 장점), 이 양극단의 두 마리 토끼를 단 하나의 툴로 포획하기 위해 발명된 신기술이 IAST다.
-
💡 비유: IAST는 **'의사의 삼키는 캡슐 내시경'**과 똑같습니다. 옛날 의사들은 환자 배를 밖에서 청진기로 두드려보며 짐작하거나(DAST), 환자의 유전자(DNA) 문서만 보고 뇌피셜을 굴렸습니다(SAST). 하지만 IAST는 환자에게 소형 카메라(Agent)가 달린 알약을 꿀꺽 삼키게 한 뒤 달리기(테스트)를 시킵니다. 카메라가 뱃속을 실시간으로 돌아다니며 위장 벽(로직) 어디에서 피가 나는지(취약점) 초정밀 컬러 사진으로 찍어서 밖의 모니터로 전송해 줍니다. 백발백중 오탐 없는 완벽한 진단입니다.
-
등장 배경 및 발전 과정:
- 오탐(False Positive)의 피로도: SAST와 DAST가 10년간 시장을 장악했지만, 개발자들은 쏟아지는 가짜 경고와 원인을 알 수 없는 뺑소니 로그에 지쳐 보안 툴을 적폐로 취급했다.
- 가트너(Gartner)의 신기술 선언 (2014): 미국의 IT 연구소 가트너가 "내부에서 진찰하는 계측(Instrumentation) 기반 보안 테스팅이 대세가 될 것"이라며 IAST라는 단어를 최초로 작명하여 시장을 정의했다.
- Agile/QA 자동화 융합 (현재): 셀레니움(Selenium) 기반 UI 자동화 테스트와 찰떡궁합임이 증명되었다. UI 테스트가 버튼을 누르면 IAST가 뒤에서 몰래 보안 엑스레이를 쏘는 '1석 2조' 구조가 완성되며 엔터프라이즈 데브옵스의 필수템으로 떡상했다.
-
📢 섹션 요약 비유: IAST는 **'도둑에게 야광 페인트총 쏘기'**입니다. 밖에서 집에 들어온 도둑(악성 트래픽) 몸에 입구에서 야광 페인트(IAST 에이전트 마킹)를 묻혀버립니다. 도둑이 집 안의 화장실, 안방, 금고(함수, DB 로직) 어디를 밟고 다니는지 캄캄한 밤에도 야광 발자국이 선명하게 남습니다. 경찰(개발자)은 그냥 불을 켜고 야광 발자국 끝(코드 라인)으로 가서 족집게처럼 도둑을 잡기만 하면 되는 궁극의 추적술입니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
1. IAST의 핵심 흑마법: 바이트코드 조작(Instrumentation) 아키텍처
IAST 에이전트가 어떻게 코드를 고치지도 않고 뱃속에서 감시할까?
[ 1. 톰캣(WAS) 서버 부팅 시 IAST 에이전트 주입 (-javaagent) ]
↓
[ 2. 런타임 바이트코드 조작 (Bytecode Instrumentation) 💥 핵심 ]
- JVM이 `String`, `HttpServletRequest`, `ResultSet` 같은 핵심 통신 클래스를 메모리에 띄울 때,
- IAST 스파이가 몰래 그 클래스들 앞뒤에 "야, 데이터 지나갈 때마다 나한테 문자 남겨!" 라며 감시용 센서(Hook)를 강제로 욱여넣음. (소스코드 1도 수정 안 함)
↓
[ 3. 자동화 QA 테스트 실행 (HTTP 트래픽 콸콸콸 유입) ]
↓
[ 4. 오염 추적 (Taint Analysis on Runtime) ]
- 외부 폼에서 들어온 `id=1' OR 1=1` 문자가 ➡ `User.java` 45번 줄을 지나 ➡ `DB.execute()` 까지 닿는 걸 센서가 실시간으로 도청(Intercept)함.
↓
[ 5. 치명타 적발 리포팅 ]
- "삐용! 방금 날아온 트래픽이 `DB.execute()`에 닿아서 SQL 인젝션 완성됨! 범인 코드 45번 라인 캡처 완료!"
- 원리 (Instrumentation): 이것이 IAST의 심장이다. APM(제니퍼, 데이터독)이 서버 뱃속에서 쿼리 느린 걸 감시하는 것과 100% 똑같은 원리(바이트코드 조작)다. APM이 '성능(Performance)'을 훔쳐본다면, IAST는 '보안(Security)' 데이터의 오염된 궤적을 훔쳐보는 특수 요원이다.
2. 수동적(Passive) IAST vs 능동적(Active) IAST
IAST도 어떻게 훈련시키냐에 따라 두 파벌로 나뉜다.
-
수동적 IAST (Passive IAST)
- 자기는 가만히 숨어만 있는다. QA 팀이나 자동화 툴(Selenium)이 앱을 누르고 다니면, 그냥 뱃속에서 그 궤적만 듣고(도청) 버그를 찾는다. 장점: 속도가 빛처럼 빠르고 트래픽 오버헤드가 제로다.
-
능동적 IAST (Active IAST)
- 숨어있지 않다. DAST 스캐너처럼 생긴 공격 봇(Bot)이 밖에서 맹렬하게 독극물 폭격(Payload)을 날리고, 안쪽 에이전트는 그 폭탄이 어떻게 터지는지 생중계로 확인하며 쌍방향(Interactive)으로 핑퐁하며 미친 듯이 쑤벼판다. 장점: QA 스크립트가 누락한 구석탱이까지 해커의 집요함으로 다 뒤져낸다.
-
📢 섹션 요약 비유: 수동적 IAST는 경찰이 범죄 조직에 **'심어둔 스파이'**입니다. 스스로 사고를 치지 않고 범죄자들의 일상(QA 테스트 트래픽)을 도청만 합니다. 반면 능동적 IAST는 경찰이 스파이를 심어둔 상태로, 밖에서 **가짜 마약 딜러(DAST 폭격기)**를 조직에 접근시켜 도발해 보면서, 조직(서버)이 어떻게 반응하는지 밖(딜러)과 안(스파이)에서 동시에 박살 내는 쌍방향 첩보 작전입니다.
Ⅲ. 융합 비교 및 다각도 분석
1. 전설의 테스팅 3대장 최후의 비교표 (SAST vs DAST vs IAST)
왜 IAST가 끝판왕으로 불리는지 직관적으로 증명하는 성적표다.
| 척도 | SAST (정적 분석) 📝 | DAST (동적 분석) 💣 | IAST (상호작용 분석) 🔬 💥 |
|---|---|---|---|
| 무엇을 보는가? | 소스 코드의 텍스트 | HTTP 패킷과 500 에러 | 실행 중인 서버의 메모리(Memory) 혈관 |
| 가짜 경고 (오탐률) | 엄청나게 많음 (90% 쓰레기) | 0% (가짜는 없음) | 0% (진짜 피나는 곳만 잡음, 오탐 제로) |
| 코드 어딜 고쳐? | 45번 줄 틀렸어! (잘 알려줌) | 나도 몰라! 네가 찾아! (안 알려줌) | DB가 뚫렸고, 45번 줄에서 시작됐어! (완벽하게 짚어줌) |
| 스캔 속도 | 빠름 (5분 컷) | 극악으로 느림 (5시간 컷) | QA 기능 테스트 도는 속도와 일치 (빠름) |
| 치명적 약점 | 런타임 인프라 환경 에러 못 잡음. | 소스코드가 어떻게 꼬였는지 눈먼 장님. | 자바(Java), Node.js 등 에이전트를 박을 수 있는 언어만 됨. (C언어 쌩코딩은 불가) |
과목 융합 관점
-
데브옵스 (QA 테스트의 무혈 승차): IAST의 가장 위대한 융합력은 **'테스트 복제(Piggybacking)'**에 있다. 보통 보안 테스트는 DAST라는 무거운 대포를 또 5시간씩 돌려야 해서 파이프라인이 마비됐다. 하지만 IAST는 서버에 주사 바늘(Agent)만 하나 꽂아둔다. 그리고 원래 하던 '기능 QA 팀의 마우스 클릭'이나 'Selenium UI 자동화 스크립트'를 평소처럼 그냥 돌린다. QA 팀이 기능 테스트를 하는 그 찰나의 순간, IAST가 뒷구멍에서 보안 스캔을 100% 훔쳐서(Piggyback) 완벽하게 끝내버린다. "기능 테스트 시간 = 보안 테스트 시간"이라는 1석 2조의 미친 아키텍처 압축이다.
-
운영체제 및 컴파일러 (에이전트의 한계): IAST는 만능이 아니다. OS와 JVM(가상머신) 아키텍처에 극한으로 종속된다. Java, C#, Node.js처럼 코드가 중간 바이트코드(Bytecode)나 인터프리터로 돌아서 중간에 후킹(Hooking)할 틈이 있는 언어에서는 신이다. 하지만 C/C++, Rust처럼 아예 OS 기계어 바이너리로 통째로 굳어버리는(Compiled) 쌩(Raw) 언어는 뱃속으로 뚫고 들어갈 에이전트 주사기 구멍이 없어서 적용이 거의 불가능하다는 구조적 한계가 명확하다.
-
📢 섹션 요약 비유: 이 삼형제는 **'자동차 고장 진단'**과 같습니다. SAST는 차 도면만 보고 "엔진 나사 빠졌네!" 예측하는 거고, DAST는 밖에서 귀를 대고 "달릴 때 덜덜 소리 나네, 어딘가 고장이야!" 하는 겁니다. IAST는 자동차 엔진과 미션 전체에 **'센서 수십 개(에이전트)'**를 박아두고 달리는 겁니다. "삐용! 덜덜거리는 소리의 원인은 기어박스 3번 톱니바퀴 마모입니다!"라고 고장 부위와 증상을 1초 만에 100% 매칭해 주는 궁극의 ODB-2 스캐너입니다.
Ⅳ. 실무 적용 및 기술사적 판단
실무 시나리오
-
시나리오 — DAST 리포트 디버깅으로 팀이 파탄 난 3달의 악몽: 회사에 거금을 들여 DAST 툴(
OWASP ZAP)을 젠킨스에 박았다. 주말 내내 DAST가 서버를 털었고 월요일 아침 "XSS 취약점 50개 발각! 수정 요망"이라는 리포트가 날아왔다. 그런데 URL 50개만 덜렁 있고 소스코드 라인은 안 알려주었다. 개발자들은 100만 줄의 코드를 눈으로 뒤지며 "도대체 이 URL을 뱉는 자바 코드가 어딨어?!"라며 3달 내내 눈물을 흘리며 디버깅하다 폭동을 일으키고 스캐너를 삭제했다.- 아키텍트의 해결책: 블랙박스(DAST)의 태생적 가시성 부재가 낳은 비극이다. 아키텍트는 1초도 지체 없이 DAST를 버리고 **IAST(상호작용 테스팅)**로 아키텍처를 스위칭해야 한다. IAST 에이전트(
Contrast Security등 상용툴)를 QA 서버에 박고 한 바퀴 돌리면, 리포트에 "XSS 발각 ➡BoardController.java45번 줄 ➡HtmlUtil.java12번 줄 ➡View.jsp출력" 이라는 소스코드 파일 이름과 줄 번호(Stack Trace)가 완벽한 지도처럼 출력된다. 개발자는 그 줄로 가서 특수문자 이스케이프(<) 처리 딱 1줄만 치고 5분 만에 패치를 끝내며 평화를 되찾는다.
- 아키텍트의 해결책: 블랙박스(DAST)의 태생적 가시성 부재가 낳은 비극이다. 아키텍트는 1초도 지체 없이 DAST를 버리고 **IAST(상호작용 테스팅)**로 아키텍처를 스위칭해야 한다. IAST 에이전트(
-
시나리오 — 1초가 생명인 라이브(Production) 서버에 IAST를 달았다가 터진 성능 대참사: IAST 뽕에 취한 보안팀장이 "야! 이거 너무 좋잖아? QA 서버 말고, 실제 고객이 들어오는 라이브(운영) 서버에도 IAST 에이전트 달아서 24시간 감시해!"라고 지시했다. 다음 날 아침 9시 출근길, 앱 서버 100대의 CPU가 100%를 치며 서버가 다 죽어버렸다.
- 아키텍트의 해결책: Instrumentation(바이트코드 조작) 오버헤드를 망각한 무지성 라이브 투입이다. IAST 에이전트는 돌아가는 함수의 모든 글자 1바이트 1바이트를 돋보기로 훔쳐보기(오염 분석) 때문에 엄청나게 무겁다. 평소 0.1초 걸리던 함수가 0.5초로 느려진다(성능 오버헤드 10~30%). 아키텍트는 무조건 "IAST는 실제 유저 트래픽이 닿지 않는 QA, Staging, 또는 자동화 E2E 테스트 환경 전용 샌드박스 무기다!"라고 못을 박아야 한다. 라이브 서버에서 런타임 방어를 하려면 뒤에서 배울 RASP(494번)라는 훨씬 가벼운 차세대 방패를 꺼내야 한다.
도입 체크리스트
- 조직적: QA 팀의 UI 자동화 수준(Test Coverage)이 훌륭한가? IAST의 최고 맹점은 "밖에서 누군가 폼(Input)에 데이터를 안 넣어주면, 뱃속 에이전트도 훔쳐볼 트래픽이 없어 굶어 죽는다"는 것이다. SAST처럼 코드를 스스로 다 훑지 않는다. 만약 QA 팀이 수동 클릭도 귀찮아하고
Selenium같은 자동 UI 클릭 스크립트도 10개밖에 안 짜놨다면, IAST는 그 10개의 구멍만 보고 "우리 사이트 100점 완벽함!" 이라는 가짜 안도감(Illusion of Security)을 뿜어내는 쓰레기가 된다. 탄탄한 QA 자동화 커버리지가 IAST 성공의 절대 전제 조건이다. - 기술적: 언어 생태계(Language Ecosystem)의 일관성. 우리 회사 서버가 50개의 마이크로서비스(MSA)로 쪼개져 있고, 20개는 Java, 10개는 Python, 10개는 Go, 10개는 C++ 라면? IAST 도입은 지옥불 난이도다. IAST 툴은 각 언어의 런타임 훅(Hook)을 뚫어주는 전용 에이전트 파일(
.jar,.so)이 필요한데, C++나 Go처럼 지원 안 되는 언어 서버는 영원히 스캔 사각지대에 버려진다. 다국어 환경의 아키텍트라면 쿨하게 IAST를 포기하고 범용적인 DAST+SAST 콤보로 회귀하는 것이 현명한 비용(ROI) 판단일 수 있다.
안티패턴
-
"IAST 샀으니까 SAST(정적 분석기)는 이제 버리자!" (편식주의의 늪): IAST가 오탐 0%의 신이라며, 기존의 빠르고 가벼운 젠킨스(CI) 단의 SAST를 걷어차 버리는 안티패턴. IAST는 QA 통합 서버가 다 뜨고 나서야 잡기 때문에, 개발자가 치명적인 오타(SQLi)를 낸 것을 2일 뒤(QA 배포일)에나 알려주어 '시프트 레프트' 속도전을 망친다. SAST는 개발자 놋북(왼쪽)에서 자잘한 문법 벌레들을 싸고 빠르게 박멸(Linting)해주고, 살아남아 기어오는 보스급 논리 벌레들만 IAST(중간)가 QA 서버에서 도끼로 찍어버리는 완벽한 2-Tier 방어막이 정석이다.
-
📢 섹션 요약 비유: IAST 하나만 맹신하고 SAST를 끄는 것은, **'병원에서 의사가 CT 촬영(IAST) 기계 하나 샀다고 기본 혈압계(SAST)랑 청진기를 다 버리는 짓'**과 같습니다. 감기 같은 뻔한 병은 혈압계로 1분 만에 싸고 빠르게 찾아야지, 감기 환자 100명을 전부 30분 걸리고 비싼 CT 촬영기에 집어넣어 돌리는 건 의료 시스템(파이프라인)의 붕괴를 초래하는 돈 낭비입니다.
Ⅴ. 기대효과 및 결론
정량/정성 기대효과
| 구분 | SAST 오탐 폭탄 + DAST 뺑소니 리포트 (AS-IS) | IAST 에이전트를 통한 런타임 엑스레이 추적 (TO-BE) | 개선 효과 |
|---|---|---|---|
| 정량 | DAST 리포트(취약점 50개) 원인 추적 디버깅에 15일 소요 | IAST 콜스택 지표로 파일/라인 번호 즉각 확인 1시간 소요 | 보안 취약점 수정(Patch) 리드타임 99% 극단적 압축 |
| 정량 | 보안 테스팅 전용 파이프라인 가동에 서버 3시간 지연 | QA 기능 자동화 스크립트 실행(30분) 시 1+1 공짜 병행 | CI/CD 배포 파이프라인의 보안 테스트 병목 0(Zero) 시간화 |
| 정성 | "오탐 5천 개 언제 다 봐!" 보안팀과 개발팀 적대감 최고조 | 오탐 0%의 무결점 팩트 폭격으로 코드 수정 깔끔 승복 | "기계가 잡은 건 진짜다"라는 무결점 신뢰 기반 DevSecOps 정착 |
미래 전망
- RASP(런타임 자기 방어)로의 완전체 진화: IAST는 QA 서버에서 "어디가 아프네" 하고 알려주기(Testing)만 한다. 이 천재적인 기술을 썩히기 아까웠던 공학자들은 결국 이 에이전트를 라이브 운영 서버로 던져버렸다. 그리고 "알려주는 걸 넘어, 해커의 SQL 쿼리(피)가 DB로 넘어가기 직전에 네가 직접 멱살 잡고 썰어버려(Protect)!"라고 방어 임무를 부여한 차세대 라이브 방패 **RASP(Runtime Application Self-Protection)**로 웅장하게 진화시켜버렸다. (다음 장 494번)
- 클라우드 네이티브 eBPF 기반 에이전트리스(Agentless) IAST: 현재 IAST의 최대 단점은 "자바 서버마다 톰캣 설정 열어서 귀찮게
-javaagent옵션을 한 땀 한 땀 박아야 한다"는 불편함이다. 미래는 eBPF(리눅스 커널 기술) 혁명이다. 앱 컨테이너를 단 1도 수정하지 않아도, 커널 레벨에서 우주 전체를 감시하는 투명한 막이 깔려서 수만 개의 마이크로서비스 메모리와 쿼리 흐름을 밖에서 그냥 훔쳐보는 '무설정 투명 IAST' 생태계가 클라우드 벤더사(Datadog, Sysdig)를 중심으로 폭발적으로 개화하고 있다.
참고 표준
- Gartner (가트너): 2014년 "SAST와 DAST는 죽었다. 런타임에 안쪽에서 계측(Instrumentation)하는 보안이 미래다!"라며 AST(애플리케이션 보안 테스팅) 시장에 IAST라는 새로운 제3의 신의 카드를 정의하고 세상에 반포한 글로벌 IT 트렌드의 지배자.
- OWASP Benchmark: 보안 스캐너(SAST/DAST/IAST) 툴들이 "진짜로 버그를 얼마나 잘 잡나?"를 평가하기 위해 2,000개가 넘는 취약한 코드를 일부러 짜놓은 샌드백 앱. 여기서 채점해 보면 IAST 툴들이 압도적으로 오탐률 0%에 100점 가까운 천상계 점수를 휩쓰는 걸 눈으로 확인할 수 있다.
상호작용 애플리케이션 보안 테스팅(IAST)은 소프트웨어 공학이 도달한 **'통찰력(Insight)과 실전(Action)의 가장 완벽한 연금술적 결합'**이다. 밖에서만 쳐다보고 상상(SAST)하거나, 눈을 가리고 폭탄만 던지는(DAST) 반쪽짜리 통제는 이제 한계에 달했다. 기술사는 무지성으로 스캐너 로봇을 늘리는 우를 범해선 안 된다. 가장 우아한 아키텍트는 이미 구축되어 매일 돌아가고 있는 톱니바퀴(QA 자동화 테스트 트래픽) 위에, 얇고 가벼운 청진기(IAST Agent) 하나만 얹어서 추가 비용 없이 시스템의 내장(메모리) 깊숙한 곳에서 흘러가는 독(취약점)의 궤적을 실시간으로 추적해 내는 효율의 극치를 설계해야 한다. 버그를 찾는 것이 중요한 게 아니라, 버그를 '가장 빠르고 정확하게 치료할 수 있는 메스(수술 위치)'를 개발자의 손에 쥐여주는 것, 그것이 IAST가 선사하는 자비로운 디버깅의 혁명이다.
- 📢 섹션 요약 비유: IAST는 대장 내시경을 하는 **'알약 로봇 캡슐'**입니다. 의사가 배를 손으로 눌러보며 짐작하는 것(SAST)도 아니고, 몸 밖에서 무작정 방사선을 쏘는 것(DAST)도 아닙니다. 환자가 삼킨 알약 로봇이 소화 기관(서버 메모리)을 타고 흘러 내려가면서, 위장에 궤양이 있는지 장에 용종이 있는지 실시간으로 컬러풀한 HD 영상(취약점 소스코드 콜스택)을 의사 모니터로 전송해 줍니다. 의사는 오직 그 영상이 지목하는 좌표만 메스로 도려내면 1분 만에 암 덩어리(해킹 취약점)를 완벽히 제거할 수 있는 최고의 첨단 수술 가이드입니다.
📌 관련 개념 맵 (Knowledge Graph)
| 개념 명칭 | 관계 및 시너지 설명 |
|---|---|
| SAST (정적 분석) & DAST (동적 분석) | IAST의 엄마와 아빠. 엄마(SAST)의 "코드 라인 짚어주기 능력"과 아빠(DAST)의 "가짜 알람(오탐) 없는 실전 타격 능력"의 우월한 유전자만 쏙 빼닮은 초 엘리트 자식. (이전 장 491, 492번) |
| RASP (런타임 자가 방어) | IAST의 쌍둥이 형제. 똑같은 바이트코드 에이전트(주사 바늘)를 쓰지만, IAST가 "알려주기(테스트)"만 한다면, RASP는 운영 서버에 들어가 "직접 막아내기(방어)"를 하는 실전 특수 부대다. (다음 장 494번) |
| Instrumentation (바이트코드 조작) | IAST 흑마법의 심장. 자바(JVM)가 클래스 파일을 램(메모리)에 올릴 때, 몰래 앞뒤로 내 스파이 코드를 쑤셔 박아 소스코드 수정 단 1줄도 없이 감시망을 까는 프레임워크 기술. |
| Selenium (UI 자동화 테스팅) | IAST가 굶어 죽지 않도록 입에 트래픽 밥을 떠먹여 주는 영혼의 단짝. 이 녀석이 크롬 브라우저를 띄워 매일 밤 앱을 자동으로 클릭클릭하고 다녀야 IAST가 그 트래픽을 훔쳐보며 보안을 검사한다. |
| Taint Analysis (오염 분석) | 해커가 입력한 더러운 값(Taint)이 핏줄(메모리)을 타고 돌아다니다가, 소독(방어 코드)되지 않고 심장(DB 쿼리문)에 다이렉트로 꽂히는 걸 추적하는 엑스레이 투시 기법. |
👶 어린이를 위한 3줄 비유 설명
- 내가 만든 미로 찾기 장난감에 구멍(버그)이 없는지 확인하고 싶어요. 눈으로만 보는 건 너무 피곤하고(SAST), 밖에서 그냥 구슬만 막 굴려보는 건 어디서 막혔는지 정확히 알 수가 없었어요(DAST).
- 그래서 구슬에 **'야광 페인트'**를 묻히고 **'아주 작은 소형 카메라(에이전트)'**를 달아서 미로 안으로 굴려 보냈어요!
- 구슬이 미로 속을 막 돌아다니다가 이상한 구멍에 쏙 빠지는 찰나의 순간, 카메라가 "삐용! 14번 골목 3번째 코너에서 구슬 빠짐 찰칵!" 하고 내 핸드폰에 정확한 위치를 알려주게 만드는 최첨단 검사법을 **'IAST(상호작용 분석)'**라고 한답니다!