-
[버그 관리] 보안 검수 방법카테고리 없음 2020. 2. 14. 16:23
정의
- 서비스의 보안 상 문제가 없는지 확인하기 위함.
- 기존 코드에 이미 수행 했던 동일한 보안 평가를 서비스에 새로 추가된 코드에 반복적으로 수행해야 하는 경우
- 개발자가 코드를 작성하는 과정에서 보안에 취약점을 자동으로 발견하게 해주는 도구
정적분석과 동적분석
1.정적분석
- 프로그램을 실행하지 않은 상태에서 소스 코드나 컴파일된 코드를 이용해 코드를 분석
- 실행할 때에만 알 수 있는 데이터가 필요한 경우엔 정확히 분석할 수 없다.
2.동적분석
- 실제로 실행해 보면서 분석하기에 실행 환경에서의 상태를 잘 알 수 있다.
- 실행할 수 동일한 보안 평가를 서비스에 새로 추가된 코드에 반복적으로 수행해야 하는 경우
- 개발자가 코드를 작성하는 과정에서 보안에 취약점을 자동으로 발견하게 해주는 도구
- 정적분석과 동적분석
1.정적분석
- 프로그램을 실행하지 않은 상태에서 소스 코드나 컴파일된 코드를 이용해 코드를 분석
- 실행할 때에만 알 수 있는 데이터가 필요한 경우엔 정확히 분석할 수 없다.
2.동적분석
- 실제로 실행해 보면서 분석하기에 실행 환경에서의 상태를 잘 알 수 있다.
- 개발을 진행할 땐 코드를 실행 할 수 있는 환경을 만드는데 어려움이 있다.
표
분석 대상 소스 코드 또는 컴파일된 코드 프로그램 실행 환경 테스트 범위 소스 코드의 모든 부분 실행 가능한 경로 활용 코드 상의 문제나 실수를 찾음 테스트, 모니터 SpotBugs
- 정적 분석을 도와주는 도구
- 바이트 코드로 컴파일된 자바 소스 코드를 분석하는 방식으로 되어있어 소스 파일이 없는 외부 패키지도 분석 가능
- 코드의 정확도,스타일,성능 등 코드 품질에 관련된 패턴을 분석해서 알려준다.
- 사용자가 원하는 패턴을 추가하여 사용할 수 있도록 프러그인 방식을 지원한다.
장점
- Coverity,SonarQube와 같은 다른 정적 분석 도구에 SpotBugs를 추가로 붙여 사용할 수 있다.
-새로운 패턴을 추가하면 다른 도구에서도 쉽게 해당 패턴을 적용할 수 있다.- - 웹 애플리케이션의 보안을 검수할 수 있는 FSB(Find Security Bugs)플러그인이 있다.
-다양한 프레임워크를 사용한 자바 어플리케이션을 수월하게 분석하기 위해선 각 프레임 워크의 구조에 맞게
처리하는 것이 중요한데 FSB가 구조파악을 하고 SpringBugs가 그것을 바탕으로 분석한다- - 애플리케이션 테스트를 각종 빌드도구,개발 도구에 연동하여 쉽게 진행할 수 있다.
SpotBugs 설치
1.FindBugs 설치하기
- 버그를 발견해 정적 분석을 하는 도구
- Help->MarketPlace에서 spotbugs 검색 후 Install
- Preferences ->findbugs-> Reported bug categories에서 Securiy 체크
2.FindSecurityBugs 설치
- 자바 웹 어플리케이션에 대한 보안감사를 지원하는 FindBugs의 플러그인
- mvnrepository에서 findsecbugs 검색후 OWASP Find Security Bugs Plugin의 dependency 복사 후 등록
- pom.xml에 삽입
- Open Perspective에서 SpotBugs등록 한다.
SpotBugs 사용
- 프로젝트 우클릭 ->spotbugs ->Find Bugs 클릭 -> 오른쪽 상단 벌레 모양 클릭 ->BugExplorer 버그 확인
클릭하면 해당 코드로 이동한다. - 버그가 있는 코드에 벌레모양이 생긴다.