Agent skill
security-review
보안 검토 체크리스트. AWS 자격 증명, 입력 검증, 민감 정보 로깅 등.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/security-review-expeor-aws-automation
SKILL.md
보안 검토 체크리스트
이 프로젝트의 보안 검토 가이드입니다.
AWS 자격 증명
금지 사항
- 하드코딩된 Access Key / Secret Key
- 소스 코드 내 자격 증명
- 커밋된 .env 파일
확인 사항
python
# Bad - 하드코딩
client = boto3.client(
'ec2',
aws_access_key_id='AKIA...', # 금지!
aws_secret_access_key='...', # 금지!
)
# Good - 프로필 또는 환경 변수
session = boto3.Session(profile_name='my-profile')
client = session.client('ec2')
입력 검증
Account ID 검증
python
import re
def validate_account_id(account_id: str) -> bool:
"""AWS 계정 ID 형식 검증"""
return bool(re.match(r'^\d{12}$', account_id))
Region 검증
python
VALID_REGIONS = [
'us-east-1', 'us-west-2', 'ap-northeast-2', # ...
]
def validate_region(region: str) -> bool:
"""리전 형식 검증"""
return region in VALID_REGIONS or region == 'all'
ARN 검증
python
def validate_arn(arn: str) -> bool:
"""ARN 형식 검증"""
pattern = r'^arn:aws:[a-z0-9-]+:[a-z0-9-]*:\d{12}:.+'
return bool(re.match(pattern, arn))
민감 정보 로깅
금지 사항
python
# Bad - 자격 증명 로깅
logger.info(f"Using credentials: {access_key}")
# Bad - 전체 응답 로깅 (토큰 포함 가능)
logger.debug(f"Response: {response}")
권장 사항
python
# Good - 필요한 정보만 로깅
logger.info(f"Processing account: {account_id}")
logger.debug(f"Found {len(instances)} instances")
Bandit 규칙
이 프로젝트에서 스킵하는 규칙:
| 규칙 | 사유 |
|---|---|
| B101 | assert 사용 (테스트에서 정상) |
| B311 | random 사용 (보안 목적 아님) |
| B608 | SQL injection (DuckDB + 내부 데이터) |
스캔 명령
bash
bandit -r cli core plugins -c pyproject.toml
보안 취약점 체크리스트
인젝션
- SQL 인젝션: 사용자 입력을 DuckDB 쿼리에 직접 사용하지 않음
- 명령 인젝션: subprocess 사용 시 shell=False
- 경로 인젝션: 파일 경로 정규화 및 검증
인증/인가
- AWS 자격 증명 하드코딩 없음
- 최소 권한 원칙 (필요한 IAM 권한만)
- 세션 토큰 만료 처리
데이터 보호
- 민감 정보 로깅 없음
- 출력 파일 권한 적절함
- 임시 파일 안전하게 처리
의존성
- 알려진 취약점 없음 (safety check)
- 최신 버전 사용
bash
# 의존성 보안 검사
safety check
pip-audit
코드 리뷰 포인트
- 새로운 외부 입력: 사용자 입력 검증 확인
- AWS API 호출: 에러 핸들링 확인
- 파일 작업: 경로 검증 확인
- 로깅: 민감 정보 누출 확인
- 의존성 추가: 보안 이력 확인
보안 이슈 발견 시
- 즉시 수정 (자격 증명 노출 시 키 로테이션)
- git history에서 제거 필요 여부 검토
- 영향 범위 파악
- 재발 방지 조치
Didn't find tool you were looking for?