이번에 참여하는 프로젝트에서 SpotBugs와 FindSecurityBugs를 이용하는 보안탐지 작업을 진행하게 되었다. 그 과정에서 FindSecurityBugs에서는 탐지못하지만 SpotBugs 에서는 탐지할수 있는 탐지 룰(Detector)들이 몇몇 있는 것이 확인되었다. 탐지 룰들의 경우 대부분은 FindSecurityBugs에서 탐지 가능했으며 그중 일부는 SpotBugs 에서도 같이 탐지가 가능한 것들이었다. 그러나 개중 몇몇은 SpotBugs에서만 탐지 가능한 것들이 있었다. 이것들에 대한 정리가 별도로 되어 있질 않아서 이 부분만 정리해서 글을 작성했다. 참고로 이 글은 소프트웨어 개발보안 가이드(2017.1월).pdf 문서를 보고 작성한 것임을 알려둔다.
행안부 SW 보안약점 | 관련 Detector | 비고 |
정수형 오버플로우 | FindPuzzlers | 이 Dector는 정수형 오버플로우 뿐만 아니라 기타 다른 보안약점들도 같이 검사하기 때문에 검사 결과로 나온것들중 정수형 오버플로우 항목에 해당되지 않는 것들도 나올 수 있다 |
메모리 버퍼 오버플로우 | InfiniteRecursiveLoop | |
경쟁조건: 검사시점과 사용시점(TOCTOU) | SynchronizeOnClassLiteralNotGetClass | |
종료되지 않는 반복문 또는 재귀함수 | InfiniteRecursiveLoop | |
부적절한 예외처리 | RuntimeExceptionCapture | |
널(Null) 포인터 역참조 | FindNullDeref, FindUninitializedGet | |
초기화되지 않은 변수 사용 | FindUninitializedGet | |
Public 메소드로부터 반환된 private 배열 | FindReturnRef | |
private 배열에 public 데이터 할당 | FindReturnRef |
'프로그래밍 > Java' 카테고리의 다른 글
Optional 클래스의 orElse와 orElseGet에 대한 정리 (1) | 2020.04.04 |
---|---|
Eclipse에서 Darkest Dark Theme 적용 후 추가로 해줄것 (0) | 2018.11.13 |
Map과 VO(Value Object)의 해묵은 논쟁과 나의 결론.. (19) | 2015.04.13 |
JBoss Application Server 7에 Oracle Database Connection Pool 생성시 주의점.. (0) | 2015.03.23 |
Mybatis의 Plug-In을 이용한 SQL문 파라미터 바인딩 로그 출력.. (5) | 2015.03.23 |