코드 스캔
AI가 생성한 코드의 보안 취약점을 자동으로 탐지합니다.
1.2.0 AST 기반 탐지
JavaScript / TypeScript의 injection, XSS, crypto, auth, path 스캐너는 AST를 파싱해 regex만으로 놓치던 흐름을 추적합니다.
- 함수 파라미터 taint와 다단계 변수 체인을 탐지합니다.
innerHTML에 리터럴 HTML 문자열을 넣는 경우는 XSS로 보고하지 않고, 동적 값만 보고합니다.res.setHeader('Access-Control-Allow-Origin', '*')형태의 CORS 와일드카드를 탐지합니다.- Python / Java / Go와 JS/TS 파싱 실패 코드는 기존 regex 경로를 사용합니다.
지원하는 취약점 유형
1. 비밀 정보 탐지
하드코딩된 API 키, 비밀번호 및 토큰을 탐지합니다.
탐지 패턴:
- AWS 액세스 키
- Google API 키
- GitHub 토큰
- Slack 토큰
- 프라이빗 키
- 데이터베이스 비밀번호
예제:
// ❌ 탐지됨: Google API 키
const API_KEY = "AIzaSyC1234567890abcdef";
// ✅ 권장사항
const API_KEY = process.env.GOOGLE_API_KEY;
2. 인젝션 취약점
SQL, NoSQL, 커맨드 인젝션 공격을 탐지합니다.
SQL 인젝션:
// ❌ 취약함
const query = `SELECT * FROM users WHERE id = ${userId}`;
db.query(query);
// ❌ 취약함: 함수 파라미터 taint
function search(input) {
db.query(`SELECT * FROM users WHERE name = ${input}`);
}
search(req.body.name);
// ✅ 안전함
const query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId]);
커맨드 인젝션:
// ❌ 위험함
exec(`ping ${userHost}`);
// ✅ 안전함
execFile('ping', [userHost]);