오픈 소스 정적 코드 분석 도구
배경
Bahmni 조직에는 Java, JS, TypeScript, Python, Docker, Ansible, Gradle, Maven 등 서로 다른 기술 스택을 사용하는 코드 저장소가 매우 많습니다. 코드 패턴을 식별하고 잠재적 보안 위협과 코드 품질 문제를 탐지하기 위한 정적 코드 분석 도구가 필요합니다. 이 페이지에서는 CI 파이프라인(프런트엔드, 백엔드 및 인프라)에서 코드 스멜과 보안 문제를 검증하는 여러 오픈 소스 도구를 소개합니다.
기능
이 도구들은 GitHub 저장소와 연동되어 다음과 관련된 잠재적 취약점을 검사합니다.
- 지속적인 코드 품질 검사. 코드 커버리지. 지속적인 비밀 정보 검사. OWASP 상위 10개 항목 준수.
🔰선택지
DeepSource
- 고급 정적 분석. 중앙 코드 상태 대시보드. 지속적인 코드 품질 검사. 자동 수정. 주요 코드 지표 중앙 추적. 코드 커버리지. 지속적인 비밀 정보 검사. 최소한의 구성. 5% 미만의 오탐률. OWASP 상위 10개 항목 준수. 설계 단계부터 보안 적용. API 접근 및 웹훅. 보고 및 인사이트. API 접근 및 웹훅. 보고 및 인사이트.
설정
- DeepSource 계정 만들기: 기존 GitHub 계정으로 계정을 만듭니다. DeepSource가 GitHub 계정에 DeepSource 앱을 설치할 권한을 요청합니다. 분석 설정 및 구성: 로그인한 뒤 지속적 분석을 활성화할 저장소를 선택하고 설정을 생성하여 분석을 활성화할 수 있습니다. 이 과정에서 저장소 기본 브랜치의 최초 분석이 실행됩니다. 저장소에서 분석을 활성화하면 이후의 모든 커밋과 풀 리퀘스트가 자동으로 분석됩니다.
- 참조: https://deepsource.io/ https://deepsource.io/docs/
SonarCloud버그, 취약점 및 코드 스멜 탐지
수정 지침을 포함한 문제 맥락 정보 제공
최상급 코딩 규칙
지속적인 검사
ALM 내 풀 리퀘스트 피드백
설정
DeepSource와 동일합니다.
- 참조: https://sonarcloud.io/
Codacy
- OWASP 상위 10개 취약점. 코드 표준화.
설정
DeepSource와 동일합니다.
- 참조: https://www.codacy.com/
Detekt
- Kotlin 프로젝트의 코드 스멜 분석. 레거시 프로젝트를 위한 코드 스멜 기준선 및 억제. 고도로 구성 가능한 규칙 집합. html, markdown, SARIF, xml(checkstyle) 등 여러 보고서 형식 지원. @Suppress 어노테이션을 사용한 발견 항목 억제.
설정
아래 선택지 중 하나를 사용해 Detekt를 실행할 수 있습니다.
- 명령줄 인터페이스. Gradle 작업. mvn ant 작업. Git 사전 커밋 훅.
- 참조: https://detekt.dev/ https://detekt.dev/docs/gettingstarted/cli
원문 정보
원문 보기 ↗Bahmni Wiki · CC BY-SA 4.0