86 lines
2.3 KiB
Markdown
86 lines
2.3 KiB
Markdown
---
|
|
name: dependency-audit
|
|
label: 의존성 분석
|
|
description: 프로젝트 의존성 그래프를 분석하고 보안 취약점, 라이선스, 업데이트 현황을 보고합니다.
|
|
icon: \uE964
|
|
allowed-tools:
|
|
- file_read
|
|
- grep
|
|
- folder_map
|
|
- glob
|
|
- html_create
|
|
- process
|
|
tabs: code
|
|
---
|
|
|
|
프로젝트의 패키지 의존성을 분석하여 보안, 라이선스, 업데이트 보고서를 생성하세요.
|
|
|
|
## 워크플로우
|
|
|
|
1. **패키지 파일 탐지**: glob으로 의존성 파일 검색
|
|
- .NET: `*.csproj`, `packages.config`, `Directory.Build.props`
|
|
- Node: `package.json`, `package-lock.json`, `yarn.lock`
|
|
- Python: `requirements.txt`, `Pipfile`, `pyproject.toml`
|
|
- Java: `pom.xml`, `build.gradle`
|
|
2. **의존성 목록 추출**: file_read로 파일 파싱
|
|
3. **분석 수행**: 각 의존성에 대해 검사
|
|
4. **보고서 생성**: html_create로 분석 보고서 생성
|
|
|
|
## 분석 항목
|
|
|
|
### 1. 직접 의존성 목록
|
|
| 패키지 | 현재 버전 | 최신 버전 | 업데이트 필요 |
|
|
|--------|----------|----------|-------------|
|
|
| ... | ... | ... | ✅/⚠/❌ |
|
|
|
|
### 2. 보안 취약점 (알려진 패턴)
|
|
- 알려진 취약 버전 패턴 탐지
|
|
- 폐기된(deprecated) 패키지 식별
|
|
- 유지보수 중단된 패키지 경고
|
|
|
|
### 3. 라이선스 검사
|
|
| 라이선스 | 호환성 | 패키지 |
|
|
|---------|--------|--------|
|
|
| MIT | ✅ 허용 | lib-a, lib-b |
|
|
| GPL-3.0 | ⚠ 주의 | lib-c |
|
|
| 상용 | ❌ 검토 필요 | lib-d |
|
|
|
|
### 4. 의존성 크기 분석
|
|
- 패키지별 예상 크기
|
|
- 전체 node_modules / NuGet 캐시 크기
|
|
- 불필요하게 큰 패키지 식별
|
|
|
|
### 5. 중복/충돌 검사
|
|
- 동일 기능 중복 패키지 (예: lodash + underscore)
|
|
- 버전 충돌 가능성
|
|
|
|
## 프레임워크별 검사 명령
|
|
|
|
### .NET
|
|
```
|
|
dotnet list package --outdated
|
|
dotnet list package --vulnerable
|
|
```
|
|
|
|
### Node.js
|
|
```
|
|
npm audit
|
|
npm outdated
|
|
```
|
|
|
|
### Python
|
|
```
|
|
pip list --outdated
|
|
pip-audit
|
|
```
|
|
|
|
## 출력
|
|
- HTML 보고서: 위험도별 색상 구분, 차트 포함
|
|
- 요약: 총 패키지 수, 업데이트 필요 수, 보안 이슈 수, 라이선스 경고 수
|
|
|
|
## 규칙
|
|
- 외부 서버 접속 없이 로컬 파일 분석만 수행
|
|
- process 도구 사용 시 `dotnet list` / `npm audit` 등 읽기 전용 명령만
|
|
- 패키지를 직접 업데이트하지 않음 (보고서만)
|
|
- 한국어로 작성
|