
Github 링크
CWE 공식 문서에 기반한 js 코드 취약점 탐지 VS Extension
1. 제안 배경
- LLM 및 Vibe Coding을 활용한 코드 단위 개발자 계층의 증대로 공격 벡터(Attack Vector) 증가
- 개발 단계에서 발견되지 않은 취약점은 테스트 및 배포과정에서 더 큰 수정 비용과 운영 리스크로 직결
- 보안 지식이 부족한 전공자 혹은 비전공자 개발자를 위한 저비용 소스코드 취약점 분석 지침 가이드 필요
- 시중 상용 취약점 탐지 및 보수 솔루션의 한계
- 개발자가 코딩 작업 중 즉시 활용 가능해야 함
- 탐지 자체가 아닌 유지 보수에 도움이 되는 설명 필요
- 공식 보안 기준에 따른 취약점 정보에 대한 설명 필요
본 프로젝트의 제안 방향
- Hallucination 방지를 위한 비생성형 AI 기반 취약점 탐지와 RAG+LLM 기술을 활용한 설명 기능의 결합
- AI 모델 신뢰성 확보를 위한 모델 의사결정 투명성 확보
- Azure Cloud Resource 기반으로 확장성 및 범용성 확보
2. 추진 필요성
- 취약점 발견 시점이 늦어짐에 따라 수정 범위 및 비용 증가로 인한 조기 발견 필요
- 보안 내재화(Security By Design): 보안의 사후 대응이 아닌 소프트웨어 설계 단계에서의 보안 고려
- 설명 가능한 분석 체계
- 단순 “취약점 탐지”에 그치지 않는 “모델의 의사결정 투명성”을 보장하는 XAI 기술 도입
- 실제 현장에서 필요한 정보는 “취약점이 있음”이 아닌 “코드의 어떤 부분이 취약점인지”가 필요
- 또한, 취약점 분석 시 Exploit 위험도 우선순위에 따른 수정 절차 필요
3. 제안 개요
(1) 목적
- 소스코드 내 보안 취약점을 자동으로 탐지
- 해당 소스코드에서 발견된 취약점에 대한 MITRE 공식 문서 기반의 설명 제공
(2) 구성
- 1단계: 비생성형 ML 모델을 활용한 취약점 탐지
- 2단계: 발견된 취약점 설명 및 대응 가이드
- 3단계: 개발 환경 연계 (VSCode Extension)
4. 기대 효과
(1) 보안 리스크 사전 예방
- 개발 초기 단계에서 취약점 식별 가능
- CI/CD 절차의 이전 단계에서 발생할 수 있는 보안 대책 강구 가능
- 조직 차원의 리스크 관리 강화 효과 기대
(2) 수정 비용 절감
- 취약점의 조기 발견을 통한 분석·수정·재검증 비용의 절감 가능
- 보안에 대한 사전 지식이 부족한 사람에게도 공식 문서 기반의 취약점 정보를 제공해 탐색 시간 단축
(3) 개발 생산성 증대
- 현재 개발 중인 코드에 적합한 CVE, CWE에 대한 자료를 탐색하지 않아도 취약점에 대한 지표 제공
- 코드 리뷰 및 보안 검토 효율 향상
- 반복 발생 취약점에 대한 대응 표준화 가능
(4) 보안 내재화를 통한 시스템 안전성 향상
- 시스템의 보안 수준을 특정 인력에게 편중시키지 않도록 유도
- 개발 조직 전체의 보안 인식 제고
- 장기적인 시스템 보안 유지 기반 마련
5. 차별성 및 도입 타당성
(1) 시장 조사

(2) 차별점
- XAI 기반 탐지 근거 시각화
- Azure-based End to End Framework
- 공식 취약점 문서 기반 RAG 시스템 구축
- 경량 모델 + 실시간 IDE UX를 통한 개발 도중 즉시 피드백 가능
- 사용자 피드백 반영을 통한 데이터 재학습 및 정책 최적화까지 확장할 수 있음
6. 리스크 및 대응 방향
(1) 예상 리스크
- 초기 단계에서 모든 언어 및 모든 취약점 유형을 포괄하기 어려움
- 데이터셋의 범위와 분포의 한계 존재
- 탐지 모델과 설명 모델의 적용 범위 차이 존재
(2) 대응 방향
기본 관점
- 본 솔루션은 완전 자동화 및 판단 도구가 아님
- 개발자와 보안 담당자의 판단을 빠르고 일관되게 지원하는 보조 지표로서의 의의를 가짐
8. 차후 발전 방향
- 취약점 탐지 모델 정확도 향상
- 취약점 탐지 모델의 Handling Scope 확장
- 다언어 지원
- 학습 데이터베이스 수집 및 구축을 통한 최신 취약점 반영
- RAG를 활용한 LLM Hallucination 최소화 및 취약점 데이터베이스 기반 수정 방안 제안 기능 추가
- 서비스 별 반복 발생 취약점 분석 대시보드 제공
- 최신 OWASP 상위 10개의 취약점에 기반한 우선순위 자동 정렬화
9. 결론
- 개발 과정에서 보안리스크를 조기에 식별 가능
- 장기적인 보안 사고 대응 역량 강화를 위해 필요한 보안 지원 도구 및 체계의 구축
- 핵심 구성
- 경량화된 비생성형 AI 모델을 활용한 취약점 탐지
- 설명 가능한 인공지능(XAI) 기술 도입을 통한 모델 투명성 확보
- 공식 취약점 문서 기반 분석 체계 수립
- 사용률이 높은 IDE인 VSCode Extension을 통한 UX
- 기대 효과
- 시스템 보안 내재화
- 개발 생산성 향상
- 운영 리스크 감소
- 종합
- 개발 보안 수준 향상, 업무 효율 개선을 동시에 기대할 수 있는 전략적 솔루션
시스템 아키텍처






시연 영상
시연 영상
트러블슈팅
Azure Function 시작 실패 (ModuleNotFoundError: requests) (2026-04-06)
Problem: 배포 후 Function Host 기동 실패
Cause: FlexConsumption 배포 경로에서 remote build 미적용으로 런타임 의존성 미설치
Solution: GitHub Actions에 enable-oryx-build=true, remote-build=true 적용 + runtime/databricks 의존성 분리
Databricks run-now 400 실패 (2026-04-06)
Problem: Function에서 Databricks job 제출 자체 실패
Cause: Job이 job_parameters 계약인데 코드가 notebook_params 사용
Solution: 호출 payload를 job_parameters로 전환
Databricks 태스크 실패 (source_xml_path is required) (2026-04-06~07)
Problem: Function 응답은 성공인데 Databricks task는 내부 실패
Cause: Notebook widget/파라미터 바인딩 누락, base_parameters 미정의
Solution: notebook wrapper에서 파라미터 바인딩 고정 + 전달 경로 정규화
SAS URL 읽기 실패 (binaryFile 진입 오류) (2026-04-07)
Problem: HTTP(S) SAS URL인데 Spark binaryFile 경로로 처리되어 AnalysisException
Cause: 경로 문자열 공백/quote 등으로 분기 미스
Solution: source_xml_path 정규화 + URL scheme 판별 강화 + HTTP(S)는 직접 읽기 강제
Delta 적재 0건/간헐 실패 (2026-04-07~08)
Problem: 실행 완료처럼 보이나 테이블 row count가 0 또는 No module named 'azure' 재발
Cause: XML namespace 미처리 + package import side-effect가 azure SDK 의존성 유입
Solution: parser namespace 처리/빈 결과 가드 추가 + service/shared lazy import 구조로 전환
UC/External Location 생성 불가 (2026-04-06)
Problem: Catalog에서 External data 메뉴 미노출 및 External Location 생성 실패
Cause: Account 권한·metastore 할당·HNS·CREATE EXTERNAL LOCATION 권한 부족
Solution: HNS 활성 스토리지로 전환 + Access Connector/Metastore 권한 보강
GCS→ADF 파라미터 공백으로 파이프라인 오동작 (2026-04-09)
Problem: bucket_name/object_path가 빈 값으로 전달되어 If Condition/경로 처리 실패
Cause: Form 전송(application/x-www-form-urlencoded) 또는 {"parameters":{...}} 중첩 payload 사용
Solution: application/json + 최상위 키(bucket_name, object_path, object_generation)로 고정
Eventarc/Cloud Function 배포 권한 오류 (2026-04-09)
Problem: Eventarc 관련 permission denied, SA not found로 배포 차단
Cause: 이벤트 수신/Invoker/PubSub 퍼블리셔 권한 및 트리거 SA 설정 불일치
Solution: 역할 재부여 + 전용 SA 재지정 + 버킷 리전 맞춘 재배포
Databricks PATH_NOT_FOUND (파일명/경로 변환 이슈) (2026-04-09)
Problem: ADLS 저장 경로와 notebook 읽기 경로 불일치
Cause: ADF Dataset/Copy에서 디렉토리·파일명 매핑 분리 미흡
Solution: p_dir/p_file 분리 매핑으로 raw/<원본디렉토리>/<원본파일명> 규칙 고정
ML 대시보드 NULL/이상치 문제 (2026-04-14)
Problem: training_data_count, f1/r2/rmse 등 지표가 NULL 또는 비정상값
Cause: metric key 매핑 협소, source 탐색 제한, Best Run/Trend 집계식 취약
Solution: params/tags/run_metrics_history fallback 확장 + key 탐지 규칙 강화 + Best Run 정렬식(R2 DESC, RMSE ASC) 보정
운영 장애 감지 공백 (2026-04-13)
Problem: 실패 발생 시 통합 알림 체계 부재
Cause: 플랫폼별 실패 이벤트가 분산되어 즉시 감지 어려움
Solution: Logic App Webhook 기반 공통 알림 훅 표준화 + 테스트 추가 + GCP/ADF/Databricks 운영 가이드 정리
내가 담당한 부분
- Azure Databricks Account 관리 및 대시보드 구현
- Azure Factory 구성, GCP Bucket, Cloud Function 생성 및 연결
- Azure Function-Blob(ADLS)-AAC-ADB 데이터 파이프라인 구현
- Logic App으로 데이터 파이프라인 실패 시 이메일 알림기능 구현
추가로 배운 부분(Azure 비용적 관점)
- databricks 컴퓨팅 생성하면 azure 파생 그룹이 발생 → 클라우드 관리자에게 요청하여 해당 그룹으로 포함 요청하여 가시성을 얻어야 토탈 요금 확인 가능(기존 리소스그룹 요금 + databricks전용 리소스그룹 요금)
- 작업 시작 전 항상 git pull --rebase origin main, 푸시 직전 다시 git fetch 후 필요 시 git pull --rebase origin main, main에서는 merge commit 안 만들고 rebase/fast-forward만 사용하여 브랜치 히스토리를 깔끔하게