
코드에 무엇이 있는가?'라는 질문에 신속하게 답하기 위해 정적 분석과 JSON 기반 규칙 엔진을 사용하여 관심 기능 및 기타 특성을 표면화하도록 구축된 소스 코드 분석기입니다. 구성 요소를 사용하기 전에 스캔하거나 기능 수준 변경 사항을 감지하는 데 이상적입니다.
Microsoft Application Inspector는 잘 알려진 라이브러리/API 호출을 기반으로 1차 또는 3차 소프트웨어 구성 요소의 코딩 특징을 식별하는 데 도움이 되는 소프트웨어 소스 코드 특성 분석 도구이며, 보안 및 비보안 사용 사례에서 유용합니다. 이 도구는 수백 개의 규칙과 정규식 패턴을 사용하여 소스 코드의 흥미로운 특성을 표면화하여 소프트웨어가 무엇인지 또는 무엇을 하는지 (사용하는 파일 작업, 암호화, 셸 작업, 클라우드 API, 프레임워크 등)를 판단하는 데 도움을 줍니다. 이 도구는 OSS에 대한 새롭고 가치 있는 기여로 업계의 주목을 받았으며, ZDNet, SecurityWeek, CSOOnline, Linux.com/news, HelpNetSecurity, Twitter 등에서 보도되었으며, Microsoft.com에서 처음 소개되었습니다.
Application Inspector는 기존의 정적 분석 도구와 달리 "좋은" 또는 "나쁜" 패턴을 식별하려고 하지 않습니다. 단지 400개 이상의 규칙 패턴 세트(암호화 사용 등 보안에 영향을 미치는 기능 포함)를 기반으로 발견된 내용을 보고합니다. 이는 제한된 문서나 권장 사항에 의존하지 않고 소스를 직접 검사하여 오픈 소스 또는 기타 구성 요소가 무엇을 하는지 확인하는 데 필요한 시간을 크게 줄이는 데 매우 유용할 수 있습니다.
이 도구는 C, C++, C#, Java, JavaScript, HTML, Python, Objective-C, Go, Ruby, PowerShell 및 더 많은 언어를 포함한 다양한 프로그래밍 언어를 지원하며, 혼합 언어 파일이 있는 프로젝트를 스캔할 수 있습니다. HTML, JSON 및 텍스트 출력 형식으로 결과를 생성할 수 있으며, 기본값은 아래와 같은 HTML 보고서입니다.

추가 정보와 도움말은 전체 프로젝트 위키 페이지 https://Github.com/Microsoft/ApplicationInspector/wiki를 참조하십시오.
dotnet tool install --global Microsoft.CST.ApplicationInspector.CLI를 실행합니다.자세한 내용은 wiki를 참조하십시오.
appinspector analyze -s path/to/src.applicationinspector.cli.exe analyze -s path/to/srcMicrosoft Application Inspector는 애플리케이션을 시작부터 배포까지 보호하는 데 도움을 줍니다.
설계 선택 - 불필요하거나 알 수 없는 기능의 비중을 줄여 애플리케이션 공격 표면을 더 작게 유지하고 예상되는 기능(예: 업계 표준 암호화만 사용)을 확인하는 데 도움이 되는 구성 요소를 선택할 수 있게 해줍니다.
기능 차이 식별 - 구성 요소 버전 간의 변경 사항을 감지하여 백도어 주입을 탐지하는 데 중요할 수 있습니다.
보안 규정 준수 검사 자동화 - 빌드 파이프라인의 일부로 추가 보안 검토, 승인 또는 SDL 준수가 필요한 기능이 있는 구성 요소를 식별하거나 모든 엔터프라이즈 애플리케이션에 대한 메타데이터 리포지토리를 생성하는 데 사용합니다.
기능 검출을 위한 강력한 기본 규칙 세트가 있습니다. 하지만 아직 정의되지 않은 많은 기능 식별 패턴이 있으며, 아이디어를 제출하거나 직접 규칙을 정의해 보시기 바랍니다. 이는 문자 그대로 오픈 소스 생태계에 영향을 미쳐 모두가 사용할 수 있는 도구를 제공하는 데 기여할 수 있는 기회입니다. 자세한 내용은 위키의 Rules 섹션을 참조하십시오.
Application Inspector는 GENERAL AUDIENCE 릴리스 상태입니다. 귀하의 피드백은 중요합니다. 기여에 관심이 있으시면 CONTRIBUTING.md를 검토해 주십시오.
Application Inspector는 명령줄 도구 또는 NuGet 패키지로 사용할 수 있으며 Windows, Linux 또는 MacOS에서 지원됩니다.
ApplicationInspector CLI의 플랫폼별 바이너리는 GitHub 릴리스 페이지에서 제공됩니다.
C# 라이브러리는 NuGet에서 Microsoft.CST.ApplicationInspector.Commands로 제공됩니다.
.NET Global Tool은 NuGet에서 Microsoft.CST.ApplicationInspector.CLI로 제공됩니다.
.NET Core 버전을 사용하는 경우 .NET 6.0 이상이 설치되어 있어야 합니다. 자세한 내용은 JustRunIt.md 또는 Build.md 파일을 참조하십시오.
> appinspector --help
ApplicationInspector.CLI 1.8.4-beta+976ee3cdd1
c Microsoft Corporation. All rights reserved.
analyze Inspect source directory/file/compressed file (.tgz|zip)
against defined characteristics
tagdiff Compares unique tag values between two source paths
exporttags Export the list of tags associated with the specified rules.
Does not scan source code.
verifyrules Verify custom rules syntax is valid
packrules Combine multiple rule files into one file for ease in
distribution
help Display more information on a specific command.
version Display version information.
특정 명령에 대한 도움말을 보려면 appinspector <command> --help를 실행하십시오.
분석 명령은 Application Inspector의 핵심입니다.
이 명령은 기본 인수와 규칙을 사용하여 현재 디렉토리에 분석 결과 output.html을 생성합니다.
appinspector analyze -s path/to/files
appinspector analyze -s path/to/files -f sarif -o output.sarif
이 명령은 주요 기능 요약과 함께 CI 환경에 적합한 마크다운 출력을 생성합니다.
appinspector analyze -s path/to/files -f markdown -o report.md
이 명령은 제공된 glob 패턴을 사용하여 test 및 .git 폴더의 모든 파일을 제외하고 현재 디렉토리에 data.json이라는 json 출력을 생성합니다.
appinspector analyze -s path/to/files -o data.json -f json -g **/tests/**,**/.git/**
콘솔 인터페이스 사용에 대한 추가 도움말은 CLI 사용을 참조하십시오.
NuGet 패키지 사용에 대한 도움말은 NuGet 지원을 참조하십시오.
build.md를 참조하십시오.
이 애플리케이션의 사용은 Microsoft 개인정보처리방침의 적용을 받습니다.