2022년 1월 11일

SpotBugs Maven Plugin 을 이용한 Maven 프로젝트 정적 보안 취약점 분석

FindSecurityBugs

자바 웹 어플리케이션과 안드로이드 애플리케이션에 대한 보안 감사를 지원하는 StopBugs 플러그인이다. Command Injection, XPath Injection, SQL/HQL Injection, XXE 및 Cryptography 취약점을 포함하여 128개의 다른 취약점 유형을 탐지할 수 있다.


Spotbugs 는 AVA 언어를 대상으로 하지만 Groovy, Scala 및 Kotlin 에서도 작동하는 정적 분석도구이다.

Development 환경

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 을 설정을 추가한다.


	
    
	
		
			
				org.apache.maven.plugins
				maven-compiler-plugin
				2.3.2
				
					${javac.src.version}
					${javac.target.version}
					${project.build.sourceEncoding}
				
			
			
			
	            com.github.spotbugs
	            spotbugs-maven-plugin
	            4.5.0.0
	            
	                spotbugs-security-include.xml
	                spotbugs-security-exclude.xml
	                
	                    
	                        com.h3xstream.findsecbugs
	                        findsecbugs-plugin
	                        1.10.1
	                    
	                
	            
        	 
        	
		
	


다음으로 아래 ② 필터 파일 추가한다. ( 세부 설정은 매뉴얼 을 참고. 따로 설정하여 테스트 하지 않음)
  • spotbugs-security-include.xml
  • spotbugs-security-exclude.xml

spotbugs-security-exclude.xml





spotbugs-security-include.xml


    
        
    


취약점 검사 및 결과 확인

이제 다음 명령을 사용하여 취약점을 검사하고 결과를 보도록 하자.

mvn compile
mvn spotbugs:spotbugs

spotbugs:spotbugs 는 컴파일된 코드(target/classes)를 요구하기 때문에 반듯이 컴파일 이후에 실행해야한다.


이메 마지막으로 분석 결과를 확인해보자. 결과 확인인 아래와 같은 명령을 실행하여 GUI 도구를 통하여 확인할 수 있다.

mvn spotbugs:gui


GUI 도구는 검사된 보안  취약점 사항에 대한 결과를 아래와 같이 보여 준다. 영어로 되어 있지만 보안에 관한 기본적인 이해가 있다면 어렵지는 않다.



참고자료


댓글 없음:

댓글 쓰기