FindSecurityBugs
자바 웹 어플리케이션과 안드로이드 애플리케이션에 대한 보안 감사를 지원하는 StopBugs 플러그인이다. Command Injection, XPath Injection, SQL/HQL Injection, XXE 및 Cryptography 취약점을 포함하여 128개의 다른 취약점 유형을 탐지할 수 있다.
Spotbugs 는 AVA 언어를 대상으로 하지만 Groovy, Scala 및 Kotlin 에서도 작동하는 정적 분석도구이다.
HW : MacBook Pro 2019
- 2.3Ghz 8Core Intel Corei9
- 16GB 2667 Mhz DDR4
- SSD 1TB
- OS : macOS Monterey 12.0.1
SW :
- JDK 14.0.2
- Visual Studio Code 1.63.2
- Maven 3.8.4
Maven
적용하려는 Maven 프로젝트 pom.xml 파일을 아래와 같이 ① SpotBugs Maven Plugin 을 설정을 추가한다.
다음으로 아래 ② 필터 파일 추가한다. ( 세부 설정은 매뉴얼 을 참고. 따로 설정하여 테스트 하지 않음)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < build > < plugins > < plugin > < groupid >org.apache.maven.plugins</ groupid > < artifactid >maven-compiler-plugin</ artifactid > < version >2.3.2</ version > < configuration > < source >${javac.src.version} < target >${javac.target.version}</ target > < encoding >${project.build.sourceEncoding}</ encoding > </ configuration > </ plugin > <!-- Integrate Find Security Bugs into spotbugs-maven-plugin --> < plugin > < groupid >com.github.spotbugs</ groupid > < artifactid >spotbugs-maven-plugin</ artifactid > < version >4.5.0.0</ version > < configuration > < includefilterfile >spotbugs-security-include.xml</ includefilterfile > < excludefilterfile >spotbugs-security-exclude.xml</ excludefilterfile > < plugins > < plugin > < groupid >com.h3xstream.findsecbugs</ groupid > < artifactid >findsecbugs-plugin</ artifactid > < version >1.10.1</ version > </ plugin > </ plugins > </ configuration > </ plugin > <!-- ./Integrate Find Security Bugs into spotbugs-maven-plugin --> </ plugins > </ build > </ project > |
- spotbugs-security-include.xml
- spotbugs-security-exclude.xml
1 2 3 4 | <!--xml version="1.0" encoding="UTF-8"?--> < findbugsfilter > <!-- in --> </ findbugsfilter > |
1 2 3 4 5 6 | <!--xml version="1.0" encoding="UTF-8"?--> < findbugsfilter > < match > < bug category = "SECURITY" > </ bug ></ match > </ findbugsfilter > |
취약점 검사 및 결과 확인
이제 다음 명령을 사용하여 취약점을 검사하고 결과를 보도록 하자.
1 2 | mvn compile mvn spotbugs:spotbugs |
※ spotbugs:spotbugs 는 컴파일된 코드(target/classes)를 요구하기 때문에 반듯이 컴파일 이후에 실행해야한다.
1 | mvn spotbugs:gui |
GUI 도구는 검사된 보안 취약점 사항에 대한 결과를 아래와 같이 보여 준다. 영어로 되어 있지만 보안에 관한 기본적인 이해가 있다면 어렵지는 않다.
댓글 없음:
댓글 쓰기