오픈 소스, 크로스 플랫폼, 다목적 보안 감사 도구
참고: DevAudit은 OSS Index 데이터베이스를 사용하며, 일부 속도 제한이 있습니다. 제한에 도달하는 것을 발견하면 이슈를 제기해 주십시오. 인증된 사용자는 더 높은 제한을 받으며, 곧 DevAudit에 인증을 구현할 예정입니다. 대부분의 비인증 사용자는 많은 사용 사례에서 제한을 느끼지 못할 것입니다. 일반적으로 더 큰 프로젝트나 더 많은 프로젝트 볼륨에서만 작동합니다.
최신 릴리즈는 releases 페이지에서 받으십시오.


DevAudit은 오픈 소스, 크로스 플랫폼, 다목적 보안 감사 도구입니다. DevOps 및 DevSecOps를 채택하는 개발자와 팀을 대상으로 하며, 솔루션 스택의 여러 수준에서 보안 취약점을 감지합니다. DevAudit은 소프트웨어 개발 수명 주기에서 보안 관행과 보안 감사 구현을 자동화하는 광범위한 감사 기능을 제공합니다. DevAudit은 운영 체제 및 응용 프로그램 패키지 종속성, 응용 프로그램 및 응용 프로그램 서버 구성, 응용 프로그램 코드를 스캔하여, OSS Index 및 Vulners와 같은 공급자가 국가 취약점 데이터베이스(NVD) CVE 데이터 피드, Debian 보안 권고 데이터 피드, Drupal 보안 권고 등 다양한 출처와 데이터 피드로부터 집계한 데이터를 기반으로 잠재적 취약점을 찾아냅니다.
DevAudit은 개발자가 웹 응용 프로그램 개발에 대한 OWASP Top 10 위험 중 최소 4가지를 해결할 수 있도록 도와줍니다:
또한 MITRE가 CWE 사전에서 분류한 CWE-2 환경 및 CWE-200 정보 노출과 같은 위험도 다룹니다.
개발이 진행되고 기능이 성숙해짐에 따라, DevAudit은 Injection 및 XSS와 같은 OWASP Top 10 및 CWE 목록의 다른 위험도 해결할 수 있게 될 것입니다. 오늘날의 소프트웨어 개발은 웹, 클라우드, 분산 다중 사용자 응용 프로그램에 초점을 맞추면서 점점 복잡해지고 있으며, 개발자가 응용 프로그램을 제공하기 위해 의존하는 스택의 모든 수준에서 보안 문제와 잠재적 취약점이 발생합니다. DevAudit의 목표는 라이브러리 패키지 종속성부터 응용 프로그램 및 서버 구성, 소스 코드에 이르기까지 솔루션 스택의 모든 수준에서 개발 보안 검토 및 모범 사례의 구현을 자동화하는 플랫폼을 제공하는 것입니다.
Docker 이미지도 제공되는 크로스 플랫폼. DevAudit은 Windows 및 Linux에서 실행되며 *BSD 및 Mac 및 ARM Linux 지원이 계획되어 있습니다. DevAudit을 실행하려면 최신 버전의 .NET 또는 Mono만 필요합니다. DevAudit Docker 이미지는 Docker Hub에서 가져와 Mono를 설치하지 않고 실행할 수 있습니다.
CLI 인터페이스. DevAudit은 비대화형 출력 옵션이 있는 CLI 인터페이스를 제공하며, CI 빌드 파이프라인 또는 개발자 IDE의 빌드 후 명령줄 작업으로 쉽게 통합할 수 있습니다. 핵심 감사 라이브러리를 IDE GUI에 통합하는 작업은 Audit.Net Visual Studio 확장 프로그램으로 이미 시작되었습니다.
지속적으로 업데이트되는 취약점 데이터. DevAudit은 OSS Index 및 Vulners와 같은 백엔드 데이터 제공자를 사용하며, 이들은 NVD CVE 피드, Drupal 보안 권고 등 광범위한 보안 데이터 피드 및 출처에서 수집한 지속적으로 업데이트되는 취약점 데이터를 제공합니다. vFeed 및 Libraries.io와 같은 추가 취약점 및 패키지 데이터 제공자에 대한 지원이 추가될 예정입니다.
운영 체제 및 개발 패키지 종속성 감사. DevAudit은 Windows MSI, Chocolatey 및 OneGet을 통해 설치된 Windows 응용 프로그램 및 패키지, Dpkg, RPM 및 YUM을 통해 설치된 Debian, Ubuntu 및 CentOS Linux 패키지의 특정 버전에 대해 보고된 취약점을 감사합니다. 개발 패키지 종속성 및 라이브러리의 경우 DevAudit은 .NET용 NuGet v2 종속성, nodejs용 Yarn/NPM 및 Bower 종속성, PHP용 Composer 패키지 종속성을 감사합니다. 다양한 언어에 대한 다른 패키지 관리자 지원이 정기적으로 추가됩니다.
응용 프로그램 서버 구성 감사. DevAudit은 OpenSSH sshd, Apache httpd, MySQL/MariaDB, PostgreSQL 및 Nginx 서버의 서버 버전 및 서버 구성을 감사하며, 더 많은 서버가 추가될 예정입니다. 구성 감사는 Alpheus 라이브러리를 기반으로 하며, 서버 구성 파일의 전체 구문 분석을 통해 수행됩니다. 서버 구성 규칙은 YAML 텍스트 파일에 저장되며 개발자의 필요에 맞게 사용자 정의할 수 있습니다. 데이터베이스 감사와 같은 더 많은 서버와 응용 프로그램 및 분석 유형에 대한 지원이 정기적으로 추가됩니다.
응용 프로그램 구성 감사. DevAudit은 Microsoft ASP.NET 응용 프로그램을 감사하고 응용 프로그램 구성에서 발견된 취약점을 탐지합니다. 응용 프로그램 구성 규칙은 YAML 텍스트 파일에 저장되며 개발자의 필요에 맞게 사용자 정의할 수 있습니다. Drupal, WordPress 및 DNN CMS와 같은 응용 프로그램에 대한 응용 프로그램 구성 감사가 곧 제공될 예정입니다.
정적 분석을 통한 응용 프로그램 코드 감사. DevAudit은 현재 .NET CIL 바이트코드의 정적 분석을 지원합니다. 분석기는 외부 스크립트 파일에 있으며 개발자의 필요에 따라 완전히 사용자 정의할 수 있습니다. Roslyn을 통한 C# 소스 코드 분석, PHP7 소스 코드 및 더 많은 언어와 외부 정적 코드 분석 도구에 대한 지원이 곧 제공될 예정입니다.
원격 에이전트 없는 감사. DevAudit은 SSH를 통해 원격 호스트에 연결할 수 있으며, 로컬 환경과 동일한 감사 기능을 원격 환경에서도 사용할 수 있습니다. 유효한 SSH 로그인만 있으면 원격 호스트를 감사할 수 있으며, Windows에서 실행되는 DevAudit은 SSH를 통해 Linux 호스트에 연결하여 감사할 수 있습니다. Windows에서 DevAudit은 WinRM을 사용하여 다른 Windows 시스템에 원격으로 연결하여 감사할 수도 있습니다.
에이전트 없는 Docker 컨테이너 감사. DevAudit은 Docker 호스트에서 실행 중인 Docker 컨테이너를 감사할 수 있으며, 로컬 환경과 동일한 기능을 컨테이너 환경에서도 사용할 수 있습니다.
GitHub 저장소 감사. DevAudit은 GitHub에 호스팅된 프로젝트 저장소에 직접 연결하여 패키지 소스 및 응용 프로그램 구성 감사를 수행할 수 있습니다.
PowerShell 지원. DevAudit은 PowerShell 시스템 관리 환경 내에서 cmdlet으로 실행될 수도 있습니다. PowerShell 지원 작업은 현재 중단되었지만, 가까운 시일 내에 Windows 및 Linux 모두에서 크로스 플랫폼 Powershell을 지원하여 재개될 예정입니다.
DevAudit은 .NET 4.6 응용 프로그램입니다. 컴퓨터에 로컬로 설치하려면 Windows에서는 Microsoft .NET Framework 4.6 런타임, Linux에서는 Mono 4.4+가 필요합니다. .NET 4.6은 대부분의 최신 Windows 버전에 이미 설치되어 있어야 하며, 그렇지 않은 경우 Windows 기능으로 켜거나 소비자 Windows의 프로그램 및 기능 제어판 애플릿, 또는 서버 버전 Windows의 서버 관리자에서 역할 및 기능 추가 옵션을 통해 설치할 수 있습니다. 이전 Windows 버전의 경우 Microsoft의 .NET 4.6 설치 프로그램은 여기에서 찾을 수 있습니다.
Linux에서 지원되는 최소 Mono 버전은 4.4입니다. DevAudit이 Mono 4에서 실행되기는 하지만(알려진 문제 하나 있음), Mono 5를 설치하는 것이 좋습니다. Mono 5는 DevAudit에 도움이 되는 빌드 및 런타임 구성 요소에 많은 개선 사항을 가져옵니다.
배포판에서 제공하는 기존 Mono 패키지는 아직 Mono 5가 아닐 가능성이 높으므로 Mono 5를 사용하려면 Mono 패키지를 수동으로 설치해야 합니다. 여러 주요 Linux 배포판에 대한 Mono 프로젝트가 제공하는 가장 최근 패키지의 설치 지침은 여기에 있습니다. mono-devel 패키지를 설치하는 것이 좋습니다. 이렇게 하면 어셈블리 누락 가능성이 줄어듭니다.
또는 Linux에서 Mono를 설치하지 않으려면 컴퓨터에 Docker가 이미 설치되어 있는 경우 DevAudit Docker 이미지를 사용할 수 있습니다.
DevAudit은 다음 방법으로 설치할 수 있습니다:
선행 조건: Mono 4.4+ (Mono 5 권장) 및 Mono 앱 빌드에 필요한 컴파일러 및 기타 도구를 제공하는 mono-devel 패키지. 배포판에 Mono 버전 4.4 이상의 패키지가 있어야 하며, 그렇지 않은 경우 여러 주요 Linux 배포판에 대한 Mono 프로젝트가 제공하는 가장 최근 패키지의 수동 설치 지침은 여기에 있습니다.
https://github.com/OSSIndex/DevAudit.git 에서 DevAudit 저장소를 클론합니다.
DevAudit 루트 디렉토리에서 build.sh 스크립트를 실행합니다. DevAudit은 오류 없이 컴파일되어야 합니다.
./devaudit --help를 실행하면 DevAudit 버전과 도움말 화면이 출력됩니다.
Linux의 NuGet이 때때로 Error: NameResolutionFailure와 함께 종료될 수 있습니다. 이는 NuGet 패키지를 포함하는 서버에 연결하는 일시적인 문제로 보입니다. 빌드가 정상적으로 완료될 때까지 ./build.sh를 다시 실행하면 됩니다.