한 점에서
생애 전체로
웹쉘은 결과이지 원인이 아닙니다.
원인은 코드에, 부품에, 배포된 실행체에 있었습니다.
웹쉘만 지키는 것은 이미 벌어진 일의 마지막 장면만 보는 것입니다.
Before
ShellGuard
웹쉘 한 점을 지킨다
Next
NextSG ADR
개발부터 운영까지, 애플리케이션의 생애 전체를 지킨다
도구는 여러 개인데,
사건은 하나입니다
보안 도구는 늘어나는데 애플리케이션 보안은 여전히 조각나 있습니다.
서로를 모르는 도구
SAST는 코드만, WAF는 요청만, EDR은 호스트만 봅니다.
끊어진 개발과 운영
개발이 찾은 취약점과 운영이 겪은 침해가 연결되지 않습니다.
답 없는 위험도
"이 취약점이 실제로 위험한가"에 답하지 못한 채 정적 의심만 쌓입니다.
패치 전의 공백
취약점을 고치기 전까지 버틸 수단이 없습니다.
증명할 수 없는 방어
보안 장비를 샀지만 "정말 막히는가"를 확인할 방법이 없습니다.
하나의 결함이
여덟 번 나타납니다
파일 업로드 검증 누락(CWE-434) 하나를 끝까지 따라가면, 단계마다 다른 모습으로 드러납니다.
- 01코딩 중
transferTo()앞에 확장자 검증이 없다 — 소스 한 줄SAST - 02빌드그 업로드 라이브러리 버전에 알려진 CVE가 있다SCA
- 03스테이징
.jsp를 올리고 요청하니 실제로 200이 온다 — 실행 증거DAST - 04운영 · 공격 순간업로드된 JSP가
Runtime.exec()를 호출한다 — 차단런타임보호 - 05운영 · 사후웹루트에 낯선
.jsp파일이 있다 — 침투 산출물웹쉘 탐지 - 06운영 · 사후
sh가 떴고,/etc/passwd를 읽었고, 외부로curl했다행위분석 - 07운영 · 사후그 조각들이 ATT&CK 5단계 — 하나의 사건공격체인
- 08상시04~07이 정말 작동하는지 공격해서 증명 — NextSG RedTeamRedTeam
하나의 결함이지, 여덟 개의 문제가 아닙니다.
Secure SDLC
전 구간 커버리지
왼쪽은 결함을 없애는 일, 오른쪽은 공격을 견디는 일입니다. 같은 애플리케이션의 다른 시점입니다.
- SAST소스코드 정적분석 · 21개 언어
- SCA의존성 · SBOM — 개발과 운영 양쪽에 걸치는 축
- DASTSAST가 지목한 결함의 실행 확인
- 런타임보호 (RASP)공격 순간 앱 안에서 차단
- 웹쉘 탐지심어진 침투 산출물 탐지·격리
- 행위분석ADR 행위 채점
- 공격체인MITRE ATT&CK 기반 사건화
일곱 개의
서로 다른 질문
질문이 다르면 중복이 아니라 보완입니다. 각 구성요소는 서로 답할 수 없는 질문을 맡습니다.
예방 · 코딩 · 빌드
“이 코드에 결함이 있는가?”
소스코드 정적분석
- 21개 언어 + 바이트코드 분석
- taint trace(source → sink) 경로 제시
- IDE 4종 · CI 게이트 · 정기 스캔
- 행안부 49개 보안약점 매핑
- AI 1차 정오탐 판정 + 수정 코드 제안
예방 · 빌드 + 운영
“우리가 쓰는 부품이 취약한가?”
의존성 · SBOM
- 매니페스트 · 락파일 · 배포 JAR 실물 분석
- CycloneDX 1.5 SBOM 생성
- CVE 상세와 조치 버전 제시
- 개발 · 운영을 같은 코드로 판정
- 한국어 취약점 DB 27만 건
예방 · 스테이징
“그 결함이 실제로 터지는가?”
동적 진단 · 확인사살
- SAST가 지목한 지점을 실제로 요청
- 정적 의심 → 실행 증거로 승격
- 요청 · payload · 응답 증거 기록
- 서버 내장, 별도 구축 불필요
대응 · 운영
“지금 찌르고 있는가?” → 막는다
런타임보호 (RASP)
- JVM 계측으로 앱 안에서 차단
- 11개 카테고리 sink 후킹
- 명령실행 · JNDI · 역직렬화 · SSRF · XXE
- 규칙 기반, 결정론적 · 감사 가능
- 패치 전까지 버티는 가상 패치
대응 · 운영
“침투 산출물이 심겼는가?”
웹쉘 탐지
- 시그니처 + SHA-256 해시
- 자동 격리 (암호화 이동)
- LLM 악성 근거 해설 · 질의응답
- 웹루트 사각지대 자가진단
- 제품의 출발점, 가장 오래 검증된 기능
대응 · 운영
“심긴 뒤 무슨 짓을 하는가?”
행위분석
- 프로세스 · 네트워크 · 파일 · 계정
- 웹 로그 + RASP 차단 이벤트 융합
- 규칙 기반 가중치 채점
- 왜 잡혔는지 100% 설명 가능
대응 · 운영
“이 조각들이 하나의 사건인가?”
공격체인
- MITRE ATT&CK 기법 매핑
- 타임라인 + 신뢰도 + 서사
- 파일리스 공격도 추적
- 알림 100개 → 사건 1개
- LLM 공격 서사 자동 생성
구성요소는
서로 맞물려 있습니다
따로 사서 붙인 도구가 아니라, 같은 데이터를 주고받도록 설계된 하나의 플랫폼입니다.
SAST → DAST
SAST가 지목한 경로와 파라미터를 힌트로 실제 요청
정적 의심 → 실행 증거SCA 공유 엔진
개발과 운영이 같은 코드로 부품을 식별
개발 · 운영 SBOM 좌표계 일치Hub → 전 제품
룰 · 취약점 DB · 라이선스를 동일 포맷으로 공급
지식 공급망이 하나4-신호 융합
웹쉘 · ADR 행위 · RASP 차단 · 웹 요청 → 인시던트 1개
알림이 아니라 사건RedTeam → 상관분석
공격 후 기법별로 조회해 한 사건으로 수렴하면 PASS
탐지력이 매번 재측정되는 수치RedTeam → 자가진단
미탐지 시 그 경로가 감시 범위 안이었는지 먼저 확인
'못 잡음'과 '안 보고 있었음' 구분AI는 판단을 돕고,
판정은 규칙이 합니다
취약점 정오탐 판정, 수정 코드 제안, 웹쉘 악성 근거 해설, 공격 서사 작성, 취약점 DB 한국어 번역까지 — AI는 사람의 판단을 돕는 자리에 있습니다.
폐쇄망에서 돕니다
자체 호스팅 LLM. 인터넷 연결도 외부 API 과금도 없어 금융 · 공공 · 군 등 망분리 환경에 그대로 들어갑니다.
코드는 함부로 나가지 않습니다
프로젝트별로 전체 코드 · 스니펫만 · 전송 안 함을 선택합니다. IDE 플러그인도 반드시 서버를 거칩니다.
AI는 조언자입니다
탐지 · 차단 · 채점은 모두 결정론적 규칙입니다. 감사 시 "왜 잡혔는지"가 100% 설명됩니다.
NextSG ADR이 하는 일
- CODING
코딩 중에 그 취약점을 지적하고,
- STAGING
스테이징에서 실제로 터지는 것을 확인하고,
- RUNTIME
고치기 전까지 운영에서 막아 주고,
- INCIDENT
누군가 그걸 시도한 순간을 사건으로 남깁니다.