정적 코드 분석을 위한 도구 목록
List of tools for static code analysis정적 프로그램 분석을 위한 주목할 만한 도구 목록입니다(프로그램 분석은 코드 분석의 동의어입니다).
정적 코드 분석 도구
도구. | 최신 릴리스 | 자유 소프트웨어 | 지원되는 언어 | 메모들 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
아다 | C / C++ / C# / 목표 - C | JVM | 자바스크립트 / 타입스크립트 | .NET / VB.NET | 파이썬 | 기타언어 | ||||
에이다 컨트롤 | 2021-09-21 (1.22r15) | 예; GPLv2 | 아다 | — | — | — | — | — | — | 코딩 표준 확인, 안전 관련 규칙 시행, 각종 수동 검사 지원 등에 사용되는 에이다 코드의 다양한 개체 또는 프로그래밍 패턴 발생을 제어하기 위한 도구. 위반 사항을 자동으로 수정하는 것이 특징입니다. |
아파치 예투스 | 2020-12-17 (0.13.0) | 예; ASL 2 | — | C, C++ | 자바 | — | — | 파이썬 | Perl, Ruby, Shell, XML | 빌드 및 릴리스 도구 모음입니다. 구성 가능한 보고서의 일부로 다른 도구를 통해 코드의 정적 분석을 제공하는 전체 및 부분/패치 CI 빌드를 실행하는 데 사용되는 '프리커밋' 모듈이 포함되어 있습니다. 플러그인으로 내장 지원을 확장할 수 있습니다. |
아스테레 | 2021-10 (21.10) | 아니요; 독점적 | — | C | — | — | — | — | — | 추상적인 해석을 통해 모든 잠재적인 런타임 오류와 데이터 레이스를 찾고, 그 부재를 증명할 수 있으며, 안전에 중요한 C 코드(예: 항공전자 및 자동차)에 맞게 조정된 기능적 주장을 증명할 수 있습니다. MISRA 체커가 포함되어 있습니다. |
BLAST(은퇴) | 2015-10-30 (2.7.3) | 예; ASL 2 | — | C | — | — | — | — | — | 게으른 추상화(follow-on project는 CPA checker)[1]를 기반으로 한 C 프로그램용 오픈 소스 소프트웨어 모델 검사기입니다. |
클랑 | 2024-02-24 (17.0.6) | 예; LLVM 예외가 있는 ASL 2 | — | C, C++, 목표 -C | — | — | — | — | — | 정적 분석기가 포함된 오픈 소스 컴파일러입니다. 버전 3.2를 기준으로 이 분석기는 Xcode에 포함되어 있습니다.[2][3] |
코치넬 | 2021-09-06 (1.1.1) | 예; GPLv2 | — | C | — | — | — | — | — | 오픈 소스 코드 패턴 매칭 및 변환. |
코드 Dx | 아니요; 독점적 | — | C, C++, C# | 자바, JSP, 스칼라 | 자바스크립트 | VB.NET | 파이썬 | PHP, Rails, Ruby, XML[4] | 소프트웨어 응용 프로그램 취약점 상관 관계 및 관리 시스템은 여러 개의 SAST 및 DAST 툴을 사용하며 수동 코드 검토 결과를 제공합니다. 사이클로매틱 복잡도를 계산할 수 있습니다. | |
코드 피어 | 2021-05-07 (21) | 아니요; 독점적 | 아다 | — | — | — | — | — | — | Ada 프로그램의 잠재적인 런타임 로직 오류를 감지하는 고급 정적 분석 도구입니다. |
코드러시 | 2021-05-04 (20.2.11) | 아니요; 독점적 | — | C# | — | 자바스크립트 | VB.NET | — | ASP, HTML, XML, XAML | 사용자에게 모범 사례 위반을 경고하는 Visual Studio용 플러그인입니다. |
코드씬 | 2023-10-13 (6.3.5) | 아니요; 독점적 | — | C, C++, C#, 목표-C | 자바, 그루비, 스칼라 | 자바스크립트, 타입스크립트 | VB.NET | 파이썬 | 스위프트, 고, PHP, 루비 | 코드의 행동 분석. 기술 부채를 식별, 우선순위 지정 및 관리할 수 있도록 도와줍니다. 개발자 팀의 조직적 측면을 측정합니다. 자동 풀 요청 통합입니다. |
코드QL | 2023-02-07 (CLI: 2.12.2) | 아니요; 독점적 | — | C, C++, C# | 자바 주, 코틀린 주 | 자바스크립트, 타입스크립트 | .그물 | 파이썬 | 가, 루비 | 소프트웨어 버그 찾기에 중점을 둔 코드 검색 도구입니다. 검색 패턴은 지원되는 언어의 AST 및 그래프(CFG, DFG 등)를 검색할 수 있는 쿼리 언어로 작성됩니다. Visual Studio용 플러그인을 사용할 수 있습니다. |
ConQAT(은퇴) | 2015-02-01 | 예; ASL 2 | 아다 | C#, C++ | 자바 | 자바스크립트 | — | — | ABAP | 품질 분석(아키텍처 적합성, 클론 탐지, 품질 메트릭 등) 및 대시보드를 유연하게 구성할 수 있는 연속 품질 평가 툴킷입니다. |
커버리티 | 2023-04-29 (2022.12)[5] | 아니요; 독점적 | — | C, C++, C#, 목표-C | 자바 | 자바스크립트, 타입스크립트 | — | 파이썬 | 루비, PHP | 보안 및 품질 문제를 위한 다국어 도구입니다. 컴플라이언스 표준(MISRA, ISO 26262 등)을 지원합니다. 오픈 소스 프로젝트에 무료로 사용할 수 있습니다. |
에클레어 | 2021-07-15 (3.11)[6] | 아니요; 독점적 | — | C, C++ | — | — | — | — | — | 소프트웨어 검증을 위한 다국어 도구입니다. 응용 분야는 코딩 규칙 검증부터 테스트 케이스의 자동 생성, 런타임 오류 또는 반례 생성이 없는 증명, 구문 및 의미 조건을 모두 기반으로 한 코드 매칭자 및 재작성자 사양에 이르기까지 다양합니다. 규정 준수 표준(MISRA, Embedded C C C Coding Standard 등)을 지원합니다. |
CPA 체커 | 2022-01-24 (2.1.1) | 예; ASL 2 | — | C | — | — | — | — | — | C의 실행 경로 확인을 위한 구성 가능한 소프트웨어 검증 도구. |
Cppcheck | 2023-09-10 (2.12) | 예; GPLv3 | — | C, C++ | — | — | — | — | — | STL. MISRA 지원을 포함한 여러 유형의 오류를 확인하는 오픈 소스 도구가 추가되고 있습니다. |
Cppdepend | 2023-03-01 (2023.1)[7] | 아니요; 독점적 | — | C, C++ | — | — | — | — | — | 코드 종속성을 분석 및 시각화하고, 설계 규칙을 정의하고, 영향 분석을 수행하고, 코드의 여러 버전을 비교함으로써 복잡한 C/C++ 코드 기반을 단순화합니다. |
카플린트 | 2020-07-29 | Yes; CC-BY-3.0[8] | — | C++ | — | — | — | — | — | C++ 코딩을 위한 Google 스타일 가이드의 준수 여부를 확인하는 오픈 소스 도구입니다. |
변동하는 것 | 2001 | 아니요; 독점적 | 아다95 | C | — | — | — | — | — | 프로그램의 수치 속성을 검증하기 위한 추상적인 해석기. |
프라마-C | 2022-06-21 | Yes; LGPL v2.1, BSD, QPL | — | C | — | — | — | — | — | 여러 개의 분석기와 모든 분석기에 공통된 사양 언어를 가진 C에 대한 오픈 소스 확장형 분석 프레임워크. 추상적 해석, 연역적 검증 및 런타임 모니터링을 기반으로 한 분석을 포함합니다. |
그라마테크 코드소나 | 2020-06-01 (5.3) | 아니요; 독점적 | — | C, C++, 목표 -C | 자바 | — | — | — | — | 결함 탐지(버퍼 오버런, 메모리 유출 등), 동시성 및 보안 검사, 아키텍처 시각화 및 소프트웨어 메트릭. |
GCC | 2023-4-26 (13.1) | 예; GCC 런타임 라이브러리 예외가 있는 GPLv3+ | — | C | — | — | — | — | — | -fanalyzer 플래그(GCC 10에서 사용 가능)로 컴파일하면 정적 분석기 기능이[9] 활성화됩니다. |
HCL 보안 앱스캔 소스 | 2020-12-01 (10.0.3) | 아니요; 독점적 | — | C, C++ | 자바, JSP | 자바스크립트 | .그물 | 파이썬 | 콜드퓨전, ASP, PHP, Perl, Visual Basic 6, PL/SQL, T-SQL, COBOL | 보안 테스트를 소프트웨어 개발 프로세스 및 시스템과 통합하면서 소스 코드를 분석하여 보안 취약점을 식별합니다. |
나선 QAC | 2023-04 (2023.1) | 아니요; 독점적 | — | C, C++ | — | — | — | — | — | 이전 PRQA QA·C 및 QA·C++, MISRA 지원을 통한 품질 보증 및 가이드라인/코딩 표준 시행을 위한 C/C++의 심층 정적 분석. |
정적 분석기 추론 | 2021-03-26 (1.1.0) | 네; MIT | — | C, C++, 목표 -C | 자바 | — | — | — | — | Facebook의 모바일 앱에 대한 널 포인터 문제, 유출, 동시성 문제 및 API 사용을 대상으로 합니다. GitHub에서 오픈 소스로 사용 가능합니다. 가끔은 페이스북 인퍼(Facebook Infer)라고도 합니다. |
이매진스 4D | 2020-10-01 (10.1.0) | 아니요; 독점적 | — | C, C++ | 자바 | — | — | — | — | Windows 및 Linux 버전. |
키우완 | 2020-07-22 | 아니요; 독점적 | — | C, C++, C#, 목표-C | 자바, JSP | 자바스크립트 | VB.NET | — | ABAP, 코볼, PHP, PL/SQL, T-SQL, SQL, Visual Basic, Android | 정적 코드 분석 및 자동화된 코드 검토를 위한 소프트웨어 분석 엔드투엔드 플랫폼입니다. 향상된 수명 주기 및 애플리케이션 거버넌스 기능을 통해 결함 탐지, 애플리케이션 보안 및 IT 위험 관리를 다룹니다. 20개 이상의 언어를 지원합니다. |
클로크워크 | 2023-04-04 (2023.1) | 아니요; 독점적 | — | C, C++, C# | 자바 | 자바스크립트 | — | 파이썬 | 코틀린 | 보안 취약점, 표준 준수(MISRA, ISO 26262 등), 결함 탐지 및 빌드 오버 빌드 추세 분석을 제공합니다. |
LDRA 테스트베드 | 2021-05-07 (v9.8.6) | 아니요; 독점적 | Ada83, Ada95 | C, C++ | — | — | — | — | 어셈블러(Intel, Freescale, Texas Instruments) | 정적 분석, 표준 시행을 수행하는 소프트웨어 분석 및 테스트 도구 모음입니다. MISRAC/C++), 동적 분석, 단위 테스트 및 요구 사항 추적 가능성. |
보풀 | 1978-07-26 | 네, 허용적인 BSD와[10] 유사합니다. | — | C | — | — | — | — | — | 1978년부터 C에 대한 정적 코드 분석기 원본. |
말파스 | 아니요; 독점적 | 아다 | C | — | — | — | — | 파스칼, 어셈블러(인텔, 파워PC, 모토로라) | 다양한 언어를 위한 소프트웨어 정적 분석 도구 세트입니다. 주로 원자력 및 항공 우주 산업에서 안전에 중요한 응용 분야에 사용됩니다. | |
무스 | 2021-01-21 (7.0.3) | 네; MIT | — | C, C++ | 자바 | — | .그물 | — | 스몰토크 | 무스는 소프트웨어를 조작, 평가 또는 시각화할 수 있는 많은 도구를 갖춘 소프트웨어 분석 플랫폼으로 시작했습니다. 보다 일반적인 데이터 분석 플랫폼으로 진화할 수 있습니다. |
엔디펜드 | 2022-03-16 (2022.1)[11] | 아니요; 독점적 | — | — | — | — | C# VB.NET .NET | — | — | 복잡한 관리를 단순화합니다.코드 의존성을 분석하고 시각화하고, 설계 규칙을 정의하고, 영향 분석을 수행하고, 여러 버전을 비교함으로써 NET 코드 기반. Visual Studio에 통합됩니다. |
.NET 컴파일러 플랫폼(로슬린) | 2020-12-08 (3.8.0) | 네; MIT | — | C# | — | — | VB.NET | — | — | C# 및 Visual Basic용 오픈 소스 컴파일러 프레임워크.마이크로소프트가 개발한 NET.NET. 구문 분석 및 조작을 위한 API를 제공합니다. FxCop 규칙이 로슬린에 구현되었습니다. |
파라소프트 C/C++ 검정 | 2020-11-12 (2020.2) | 아니요; 독점적 | — | C, C++ | — | — | — | — | — | 정적 분석, 유닛 테스트, 코드 검토 및 런타임 오류 탐지를 수행하는 C/C++ 도구, Visual Studio 및 Eclipse 기반 IDE에 사용할 수 있는 플러그인. |
PC 보풀 플러스 | 2022-08-02 (2.0 베타2) | 아니요; 독점적 | — | C, C++ | — | — | — | — | — | 광범위한 결함을 탐지하고 의심스러운 코드를 식별하며 다양한 코딩 표준(MISRA/AUTOSAR/등)을 적용하고 복잡한 메트릭을 계산하고 보고하며 사용자 정의 검사를 구현하는 데 사용되는 정적 분석 도구입니다. |
PMD | 2023-2-25 (6.55.0) | 예, BSD와 유사합니다. | — | C, C++ | 자바, JSP | 자바스크립트 | — | — | 콜드퓨전, PHP | 중복 코드 탐지(예:[12] 코드). |
다공간 | 아니요; 독점적 | 아다 | C, C++ | — | — | — | — | — | 추상적 해석을 사용하여 소스 코드에 특정 런타임 오류 및 데드 코드가 없음을 감지하고 증명할 뿐만 아니라 모든 MISRA(2004, 2012) 규칙(디렉티브, 비디렉티브)을 확인하는 데 사용됩니다. | |
프리티 디프 | 2019-04-21 (101.0.0) | 예; CC0 | — | — | — | 자바스크립트, 타입스크립트 | — | — | 마크업, 스크립트 및 스타일 언어(XML, CSS 등) | 언어별 최소화 및 미화 알고리즘 외에 언어별 분석 보고 기능을 포함하는 것을 특징으로 하는 언어별 코드 비교 도구. |
PVS-스튜디오 | 2021-10-07 (7.15) | 아니요; 독점적 | — | C, C++, C++/CLI, C++/CX, C# | 자바 | — | — | — | — | 소프트웨어 분석 도구입니다. |
코다나 | 2023-07-23 (2023.2) | 아니요; 독점적 | — | C# | 자바 주, 코틀린 주 | 자바스크립트, 타입스크립트 | VB.NET | 파이썬 | 이동, HTML, PHP, CSS, Android, Vue.js | 정적 코드 분석을 사용하는 코드 품질 분석 도구입니다. |
립스 | 2020-02-17 (3.4) | 아니요; 독점적 | — | — | 자바 | — | — | — | PHP | 복잡한 보안 취약점을 자동으로 탐지하기 위한 다양한 통합 옵션을 갖춘 정적 코드 분석 솔루션입니다. |
SAST 온라인 | 2022-03-07 (1.1.0) | 아니요; 독점적 | — | — | 자바 | — | — | — | APK 코틀린 | Android Source 코드를 철저히 확인하여 잠재적인 보안 문제와 취약점을 찾아 해결합니다. 정적 응용 프로그램 보안 테스트(정적 코드 분석) 도구 온라인 |
셈그레프 | 2024-02-14 (1.61.1) | Yes; LGPL v2.1 | — | — | 자바 | 자바스크립트, 타입스크립트 | — | 파이썬 | Go, JSON, Ruby, 언어 불가지론 모드 | 코드 표준 및 서페이싱 버그를 조기에 표현하는 데 도움이 되는 정적 분석 도구입니다. 또한 11개의 다른 언어에 대한 실험적 지원이 있습니다. CI 서비스와 규칙 라이브러리도 사용할 수 있습니다. |
사이더 | 2021-02-02 | 아니요; 독점적 | — | — | — | 자바스크립트, 커피스크립트 | — | 파이썬 | 루비, PHP, Go | GitHub 및 GitLab에서 작업하는 정적 코드 분석 기반 자동 코드 검토 도구 스타일, 품질, 종속성, 보안 및 버그를 확인합니다. 다수의 오픈 소스 정적 분석 도구를 통합합니다. |
SLAM 프로젝트 | 2010-07-14 | 아니요; 독점적 | — | C | — | — | — | — | — | 소프트웨어(드라이버)가 사용하는 인터페이스의 중요한 동작 특성을 충족하는지 확인하기 위한 Microsoft Research 프로젝트입니다. |
SofCheck Inspector / 코드피어 | 2020-08-24 (21.x) | 아니요; 독점적 | 아다 | — | 자바 | — | — | — | — | 논리 오류, 인종 조건 및 중복 코드의 정적 검출. 코드에서 사전-사후 조건을 자동으로 추출합니다. |
소나르쿠베 | 2023-04-03 (10.0) | 부분적으로; 프레임워크는 LGPL v3.0이지만 일부 기능은 독점적일 수 있습니다. | — | C, C#, C++, 목표 -C | 자바, 코틀린, 스칼라 | 자바스크립트, 타입스크립트 | VB.NET | 파이썬 | ABAP, Apex, CSS, COBOL, Flex, Go, HTML, PHP, PLI, PL/SQL, Ruby, Swift, TSQL, Visual Basic 6, XML | 취약점, 버그 및 코드 냄새를 찾는 지속적인 검사 엔진입니다. 또한 코드 복잡성, 단위 테스트 적용 범위 및 복제를 추적합니다. 상용 라이센스를 통해 지점 분석 및 C/C++/Objective-C 지원을 제공합니다. |
소스 미터 | 2016-12-16 (8.2) | 아니요; 독점적 | — | C, C++ | 자바 | — | — | 파이썬 | RPG IV (AS/400) | 플랫폼 독립적인 명령줄 정적 소스 코드 분석기입니다. PMD 및 SpotBugs와 통합됩니다. |
소스트레일(은퇴) | 2021-04 (2021.4.19) | 예; GPL | — | C, C++ | 자바 | — | — | 파이썬 | 펄 | 대화형 종속성 그래프를 제공하고 여러 프로그래밍 언어를 지원하는 오픈 소스 소스 코드 탐색기입니다. |
희소성 | 2021-09-06 (0.6.4) | 네; MIT | — | C | — | — | — | — | GCC 확장자 | 리눅스 커널의 결함을 찾도록 설계된 오픈 소스 도구입니다. |
부목 | 2007-07-12 (3.1.2) | 예; GPLv2 | — | C | — | — | — | — | — | C 프로그램의 보안 취약점과 코딩 실수를 정적으로 점검하는 오픈 소스 도구. |
스타일캅 | 2016-05-02 (2016.1.0) | 예; Ms-PL | — | C# | — | — | .그물 | — | — | C# 소스 코드를 분석하여 스타일 및 일관성 규칙 집합을 적용합니다. Microsoft Visual Studio 내부에서 실행하거나 MSBuild 프로젝트에 통합할 수 있습니다. |
제곱근 | 2020-11-27 (20.1) | 아니요; 독점적 | 아다 | C, C++, C#, 목표-C | 자바 | 자바스크립트, 타입스크립트 | VB.NET | 파이썬 | 포트란, PHP, PL/SQL, 스위프트, T-SQL, XAML | 소프트웨어 프로젝트를 위한 다목적 및 다국어 모니터링 도구입니다. 다른 스캐너와 통합됩니다. |
이해하다 | 2023-01-19 (6.3) | 아니요; 독점적 | 아다 | C, C++, C#, 목표-C | 자바 | 자바스크립트 | — | 파이썬 | FORTRAN, Jobial, Pascal, VHDL, HTML, PHP, XML | 대용량 코드 베이스의 코드 분석 및 이해를 위한 멀티 플랫폼 도구입니다. ANSI, K&R, Objective C++처럼 C, C++, C#의 여러 방언을 인식할 수 있습니다. |
비주얼 엑스퍼트 | 2021-09-10 | 아니요; 독점적 | — | — | — | — | — | — | PowerBuilder, Oracle PL/SQL, SQL Server Transact-SQL(T-SQL) | 지속적인 코드 검사, 품질 및 보안 문제에 대한 보고서를 통해 복잡한 코드(교차 참조, 소스 코드 문서화, 코드 비교, 코드 성능 분석)를 이해할 수 있습니다. |
비주얼 스튜디오 | 2021-10-12 (16.11) | 아니요; 독점적 | — | C, C++, C# | — | — | — | — | VB.NET | 편집기 환경과 컴파일러 명령줄 모두에서 C/C++에 대한 정적 코드 분석을 제공하는 IDE입니다. 또한 포함됩니다.C# 및 VB를 제공하는 NET 컴파일러 플랫폼(Roslyn).NET 분석. |
야스카(은퇴) | 2010-11-01 (2.21) | 예, 여러 라이센스 | — | C, C++ | 자바 | 자바스크립트 | — | — | ASP, PHP, HTML, CSS, ColdFusion, COBOL | 그러나 플러그인을 사용하여 임의의 파일 형식을 검색하는 플러그인 기반 프레임워크인 또 다른 소스 코드 분석기. FindBugs, PMD 및 Pixy를 포함한 다른 스캐너와 통합됩니다. |
도구. | 풀어주다 | 자유 소프트웨어 | 지원되는 언어 | 메모들 |
언어들
아다
C, C++
- 나무
- 폭발.
- 클랑
- 코치넬
- 커버리티
- CPA 체커
- Cppcheck
- Cppdepend
- 카플린트
- 에클레어
- 이클립스
- 변동하는 것
- 프라마-C
- GCC
- 나선 QAC
- 페이스북 추론
- 클로크워크
- 보풀
- LDRA 테스트베드
- 파라소프트 C/C++ 검정
- PC 보풀 플러스
- 다공간
- SLAM 프로젝트
- 희소성
- 소나르쿠베
- 부목
- 이해하다
- 비주얼 스튜디오
C#
IEC 61131-3
- CODESYS 정적 분석 – CODESYS용 통합 추가 기능(예: ST, FBD, LD에서 응용 프로그램 코드 실현)
자바
도구. | 최신 릴리스 | 자유 소프트웨어 | 중복 암호를 쓰다 | 메모들 |
---|---|---|---|---|
체크스타일 | 2020-01-26 | 네; LGPL | 아니요. | 일부 정적 코드 분석 외에도 구성된 코딩 표준의 위반을 표시하는 데 사용할 수 있습니다. 중복 코드 탐지가 Checkstyle에서 제거되었습니다[13]. |
이클립스 | 2017-06-28 | 예; EPL | 아니요. | 편집기에서 코드를 즉시 분석하고 전체 프로젝트의 대량 분석에 사용할 수 있는 수백 개의 코드 검사 세트를 갖춘 크로스 플랫폼 IDE. Checkstyle, FindBugs 및 PMD용 플러그인입니다. |
버그 찾기 | 2015-03-06 | 네; LGPL | 메릴랜드 대학의 자카르타 BCEL을 기반으로 합니다. SpotBugs는 FindBugs의 정신적 후계자로, 커뮤니티의 지원으로 중단한 시점부터 계속됩니다. | |
IntelliJ IDEA | 2021-04-06 | 예; ASL 2 | 네. | 코드 검사 및 분석 기능이 내장된 선도적인 Java IDE입니다. Checkstyle, FindBugs 및 PMD용 플러그인입니다. |
건축가 | 2017-06-11 | 아니요; 독점적 | 코드 종속성을 분석 및 시각화하고, 설계 규칙을 정의하고, 영향 분석을 수행하고, 코드의 여러 버전을 비교함으로써 복잡한 코드 기반을 단순화합니다. | |
제이테스트 | 2019-05-21 | 아니요; 독점적 | 네. | 파라소프트의 테스트 및 정적 코드 분석 제품입니다. |
그을음 | 2020-10-28 | 네; LGPL | 중급 언어로 구성된 언어 조작 및 최적화 프레임워크입니다. | |
PMD | 2021-01-30 | 예, BSD 라이센스 | 네. | CPD를 포함한 플러그인을 지원하는 정적 코드 분석기입니다. PMD는 여러 언어의 확인을 지원합니다. |
스콸레 | 2011-05-26 | 네; LGPL | 소프트웨어 품질을 관리하는 플랫폼입니다. | |
스레드세이프 | 2014-03-28 | 아니요; 독점적 | 동시성 버그를 찾는 데 초점을 맞춘 정적 분석 도구입니다. |
자바스크립트
- ESLint – 자바스크립트 구문 검사기 및 포맷터.
- Google의 Closure 컴파일러 – 코드를 더 빠르고 더 작게 다시 작성하고 기본 자바스크립트 기능 사용을 점검하는 자바스크립트 최적화기.
- CodeScene – 코드의 행동 분석.
- JS힌트 – JS린트의 커뮤니티 기반 포크입니다.
- JSLint – 자바스크립트 구문 검사기 및 검증기.
- 클로크워크
- Semgrep – 코드 표준과 버그를 조기에 표현하는 데 도움이 되는 정적 분석 도구입니다. CI 서비스와 규칙 라이브러리도 사용할 수 있습니다.
- 이해하다
목적-C, 목적-C++
- Clang – 무료 Clang 프로젝트에는 정적 분석기가 포함되어 있습니다. 버전 3.2를 기준으로 이 분석기는 Xcode에 포함되어 있습니다.[14]
- 추론 – Facebook의 엔지니어링 팀이 오픈 소스 기여자와 함께 개발했습니다. 널 포인터, 누출, API 사용 및 기타 보풀 검사를 대상으로 합니다. 깃허브에서 오픈 소스로 사용할 수 있습니다.
- 이해하다
오파
- Opa에는 자체 정적 분석기가 포함되어 있습니다. 이 언어는 웹 응용 프로그램 개발을 위한 것이므로, 강력하게 정적으로 입력된 컴파일러는 웹 데이터에 대한 높은 수준의 유형의 유효성을 검사하고 XSS 공격 및 데이터베이스 코드 주입과 같은 많은 취약성을 기본적으로 방지합니다.
포장
펄
- Perl::Critic – 일반적인 Perl 모범 사례를 적용하는 데 도움이 되는 도구입니다. 대부분의 모범 사례는 Damian Conway의 Perl 모범 사례집을 기반으로 합니다.
- PerlTidy – Perl에서 코딩 연습을 위한 구문 검사 및 테스터/수행자 역할을 하는 프로그램입니다.
- Padre – Perl용 IDE - 일반적인 초보자 오류를 확인하기 위한 정적 코드 분석 기능도 제공합니다.
PL/SQL
- TOAD – 일반적인 코드 효율성 및 특정 프로그래밍 문제에 대해 보고하는 Code xPert 구성 요소가 있는 PL/SQL 개발 환경입니다.
- Visual Expert – 프로그래밍 문제를 보고하고 복잡한 코드(Impact Analysis, Source Code 설명서, Call tree, CRUD 매트릭스 등)를 이해하고 유지 관리하는 데 도움을 주는 PL/SQL 코드 분석 도구입니다[15].
파워빌더, 파워스크립트
- Visual Expert – PBL(PowerBuilder Library)을 검색하여 코드 검사, 영향 분석, 소스 코드 설명서, 호출 트리, CRUD 매트릭스를 검색하는 도구입니다.
파이썬
- PyCharm – 교차 플랫폼 Python IDE(코드 검사)를 통해 편집기에서 코드를 즉시 분석하고 전체 프로젝트를 대량으로 분석할 수 있습니다.
- PyDev – Eclipse 기반 Python IDE(에디터에서 즉시 또는 저장 시간에 코드 분석 가능)
- Pylint – 정적 코드 분석기. 매우 엄격합니다. 스타일 경고도 많이 포함되어 있습니다.
- 클로크워크
- Semgrep – 코드 표준 및 서페이싱 버그를 조기에 표현하는 데 도움이 되는 정적 코드 분석기입니다. CI 서비스와 규칙 라이브러리도 사용할 수 있습니다.
- 이해하다
트랜잭션-SQL
- Visual Expert – 프로그래밍 문제에 대해 보고하고 복잡한 코드(영향 분석, 소스 코드 문서화, 호출 트리, CRUD 매트릭스 등)를 이해하고 유지하는 데 도움을 주는 SQL 서버 코드 분석 도구입니다[16].
중복 코드 탐지가 가능한 도구
형식적 방법 도구
사운드를 사용하는 도구, 즉 엄격한 모델을 과도하게 근사화하는 공식적인 방법은 정적 분석에 접근합니다(예: 정적 프로그램 주장 사용). 사운드 메소드는 적어도 버그가 없는 프로그램에 대해 잘못된 부정적인 요소를 포함하지 않습니다("무조건적인" 건전성은 없습니다). 버그가 많은 프로그램에 대한 모든 버그를 보고한다는 보장은 없으며 적어도 하나를 보고할 것입니다.
- Astée – 추상적 해석을 통해 모든 잠재적인 런타임 오류를 찾고, 런타임 오류가 없음을 증명할 수 있으며, 안전에 중요한 C 코드(예: 항공전자)에 맞게 조정된 기능적 주장을 증명할 수 있습니다.
- CodePeer – Ada 하위 프로그램의 사전 및 사후 조건을 정적으로 결정하고 문서화하며, 모든 통화 사이트에서 정적으로 사전 조건을 확인합니다.
- ECLAIR – 제약 조건 만족 기술과 결합된 추상적 해석 및 모델 확인과 같은 형식적 방법 기반 정적 코드 분석 기술을 사용하여 소스 코드에 특정 런타임 오류가 없는지 감지하거나 증명합니다.
- ESC/Java 및 ESC/Java2 – Java의 풍부한 버전인 Java Modeling Language 기반
- Frama-C – ANSI/ISOC 사양 언어(ACSL)를 기반으로 하는 C의 오픈 소스 분석 프레임워크입니다. 주요 기술로는 추상적 해석, 연역적 검증 및 런타임 모니터링이 있습니다.
- KeY – Java Modeling Language의 사양으로 증명된 정리를 기반으로 Java용 분석 플랫폼, 테스트 사례를 반례로 생성할 수 있습니다. 독립 실행형 GUI 또는 Eclipse 통합
- MALPAS – 유향 그래프와 정규 대수를 사용하여 분석 중인 소프트웨어가 수학적 사양을 정확하게 충족하는지 증명하는 공식 방법 도구입니다.
- Polyspace – 형식적인 메소드 기반 기법인 추상적 해석을 사용하여 [17]C/C++ 및 Ada의 소스 코드에 특정 런타임 오류가 없음을 감지하고 증명합니다.
- SPARK Examiner를 포함한 SPARK 도구 세트 – Ada의 하위 집합인 SPARK 언어를 기반으로 합니다.
참고 항목
- 자동화된 코드 리뷰
- Best Coding Practice
- 소프트웨어 개발 철학 목록
- 동적 프로그램 분석
- 소프트웨어 메트릭
- 통합개발환경(IDE) 및 통합개발환경 비교. IDE는 일반적으로 정적 프로그램 분석을 위한 내장형 지원 또는 이러한 지원을 통합하는 옵션과 함께 제공됩니다. Eclipse는 대부분의 다양한 유형의 확장(플러그인)에 대해 이러한 통합 메커니즘을 제공합니다.
참고문헌
- ^ "CPAchecker". 2015-02-08.
- ^ "Static Analysis in Xcode". Apple. Archived from the original on 2009-09-05. Retrieved 2009-09-03.
- ^ "Running the analyzer within Xcode". Archived from the original on 5 December 2021. Retrieved 14 January 2022.
- ^ "Supported Application Security Testing Tools and Languages". codedx.com. Retrieved Apr 25, 2017.
- ^ "Coverity Scan website". Retrieved 2023-08-23.
- ^ "ECLAIR website". Retrieved 2021-10-07.
- ^ "CppDepend what's new". cppdepend.com. Retrieved 1 March 2023.
- ^ "Readme.md of Google Style Guides". GitHub. Retrieved 8 November 2021.
- ^ Malcolm, David (2020-03-26). "Static analysis in GCC 10". Red Hat Developer. Retrieved 2022-04-13.
- ^ "UNIX is free!". lemis.com. 2002-01-24.
- ^ "NDepend what's new". ndepend.com. Retrieved 15 June 2022.
- ^ "PMD - Browse /pmd/5.0.0 at SourceForge.net". Retrieved Dec 9, 2012.
- ^ "Remove StrictDuplicateCodeCheck and whole package · Issue #523 · checkstyle/Checkstyle". GitHub.
- ^ "Static Analysis in Xcode". Apple. Retrieved 2009-09-03.
- ^ "Visual Expert for Oracle - PL/SQL Code Analyzer". www.visual-expert.com. 2017-08-24.
- ^ "Visual Expert for SQL Server - Transact SQL Code Analyzer". www.visual-expert.com. 2017-08-24.
- ^ Cousot, Patrick (2007). "The Role of Abstract Interpretation in Formal Methods". Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007). IEEE International Conference on Software Engineering and Formal Methods. pp. 135–140. doi:10.1109/SEFM.2007.42. ISBN 978-0-7695-2884-7. S2CID 67212.
외부 링크
- Web Application Security Consortium의 정적 코드 분석 도구 목록
- Curlie의 Java 정적 Checkers
- SAMATE 소스코드 보안분석기
- SATE – 정적 분석 도구 설명
- Nick Rutar, Christian Almazan, 그리고 Jeff Foster of Maryland 대학의 "Java용 버그 찾기 도구 비교". Bandera, ESC/Java 2, FindBugs, JLint 및 PMD를 비교합니다.
- "자바 버그 파운더스의 미니 리뷰", 릭 젤리프, 오라일리 미디어.