본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Java(자바)/Java 기본

Java SpotBugs 정적 분석 도구(Java 취약점검, 자바 취약점검)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2020. 12. 16.

공공기관 프로젝트를 하면서 취약점검을 받는 경우에는 일반적으로 사용한 무료 툴인 아라크니(arachni) 를 활용하여 응답 및 요청에 대해서 문제가 없는지 검증 하였었습니다.

그런데, 소스코드(Java)에 대해서 문제가 있는지 없는지를 검증 해 달라는 요구사항에 대해서는 무엇을 써야 되는지 난감하였습니다.

야스카(yasca)같은 툴은 자바버전이 1.7만 넘어가도 Java 코드(code)에 대해서는 아무것도 찾지 못하는 현상이 존재하였고, 그렇다고 상용화된 서비스를 이용하자니 비용문제가 발생 하여서 고민하던 찰나 SpotBugs 라는 훌륭한 툴을 알게 되었습니다.

 

SpotBugs는 주로 코드의 정확도(Correctness), 스타일(Style), 성능(Performance) 등 코드 품질에 관련된 패턴을 분석해서 알려 주는 무료 버전의 코드 검증 시스템 입니다.

설치 및 사용법은 매우 간단합니다.

 

* 개발 환경 : 이클립스(SpotBugs는 인텔리J에서도 사용 가능하다고 알고 있습니다!)

 

#설치 방법 ─

 

1. 이클립스 마켓 플레이스에서 SpotBugs를 검색하여 설치하여 줍니다.

설치합니다!

 

2. 설치가 완료되면 스팟버그(SpotBugs)가 세부 정보를 출력하기 위해 필요한 jar 파일을 받습니다.

* 사이트 : https://find-sec-bugs.github.io/download.htm

자르 파일을 받습니다.

3. window - Preferences늘 누른 다음에 Java를 선택합니다.

선택한 Java에는 SpotBugs라는 항목이 생긴 것을 볼 수 있습니다.

SpotBugs를 누르면 아래 사진과 같은 모양이 나오는데, Plugins and misc. Settings를 눌러 줍니다.

그리고 Add 버튼을 눌러 다운받은 jar파일을 추가하여 줍니다.

자르 파일을 추가 합니다.

 

여기까지가 스팟버그(SpotBugs)에 대한 환경 설정 부분 이었습니다.

가장 처음 소개한 첫번째 설치가 끝나면 이클립스를 반드시 껏다가 켜 주어야 합니다.

 

#사용 방법 ─

 

이제 사용법 입니다.

1. 스팟버그(SpotBugs)를 통해서 검사할 프로젝트를 선택 합니다.

선택한 뒤에 마우스 오른쪽 버튼을 눌러주면 아래 사진처럼 SpotBugs라는 항목이 생긴 것을 볼 수 있습니다.

SpotBugs라는 항목이 생겼습니다~

 

2. Find Bugs를 눌러준 뒤에 잠시 기다려 줍니다.

그러면 아래 사진처럼 새로운 View 항목인 Bug Explorer 라는 내용이 추가되며 분석한 결과가 나타나게 됩니다.

찾아낸 정보가 나타 납니다.

 

만약 Bug Explorer가 나타나지 않는다면 Window 탭에서 Show view를 누른뒤 Other를 선택합니다.

그리고 SpotBugs를 눌러보면 Bug Explorer가 보이는데 해당 항목을 선택하여 줍니다.

버그 익스플로러가 안보이면 이렇게 눌러서 추가하여 주세요.

 

3. 찾아낸 정보에서 마우스 오른쪽 버튼을 누르면 아래 사진처럼 Bug Info탭이 나타나며 상세한 설명을 볼 수 있습니다.

일단 제가 만들지는 않았지만(?) 어떤분이 만든 클래스를 가져다 쓰고 있었는데 아래처럼 일반적 표현식이 아닌 것에 대해서 오류가 존재한다는 내용이 나타났습니다.

주황색 부분은 패키지명이 나와서 가려두었습니다.

 

4. 문제가 있다는 클래스의 메소드로 이동하여 보았습니다.

removeOSCmdRisk라는 메소드의 리턴 값 부분에 빨강색 벌래 모양이 붙어있습니다.

딱 봐도...마지막 replaceAll부분에서의 문제 입니다.

* 제가 만든 클래스는 아닙니다!!

 

5. 올바른 표현식으로 수정한 뒤에 다시한번 Find Bugs를 눌러줍니다.

그러면 벌래 모양도 사라지고 버그 익스플로러에서도 해당 항목이 사라진 것을 볼 수 있습니다.

가장 위험하다는 Scariest가 사라졌습니다!

 

이상으로 스팟버그(SpotBugs)를 통해서 자바(Java) 소스코드에 대해서 검증을 하는 방법에 대해서 살펴 보았습니다.

문의사항이나 틀린부분은 언제든 연락주세요!

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글