728x90
반응형
FindBugs/FindSecurityBugs
FindBugs 란?
- FindBugs는 자바 코드에서 버그를 찾기 위한 정적 분석 도구이다.
- FindBugs에서 지원하는 플러그인
- Eclipse
- NetBeans
- IntelliJ IDEA
- Gradle
- Hudson and Jenkins
- Android Studio
- FindBugs에서 지원하는 플러그인
- FindBugs는 자바에서 발생할 수 있는 약 100여 개의 잠재적 위협을 탐지하여 각 위협을 Scariest, Scary, Troubling, Concernd의 4등급으로 구별하여 그 결과를 XML로 지원한다.
- FindBugs에서는 Bad practice, Correctness, Dodgy code, Experimental, Internationalization, Malicious code vulnerability, Multithreaded correctness, Performance, Security 등 9개 이상의 카테고리와 400개가 넘는 규칙이 등록되어 있어 잠재적인 버그를 알려준다.
- 룰셋 커스텀이 가능하여 기업마다 원하는 형태로 만들 수 있다.
- FindBugs에서 제공하는 탐지 유형
탐지유형 설명 Bad practice 클래스 명명 규칙, null 처리 실수 등 개발자의 나쁜 습관 탐지 Correctness 잘못된 상수, 무의미한 메소드 호출 등 문제의 소지가 있는 코드 탐지 Dodgy code int의 곱셈 결과를 long으로 변환하는 등 부정확하거나 오류를 발생시킬 수 있는 코드 탐지 Experimental 메소드에서 생성된 stream이나 리소스가 해제하지 못한 코드를 탐지 Internationalization Default 인코딩을 지정하지 않은 경우 등 지역 특성을 고려하지 않은 코드 탐지 Malicious code vulnerability 보안 코드에 취약한 가변적인 배열이나 컬렉션, Hashtable 탐지 Multithreaded correctness 멀티스레드에 안전하지 않은 객체 사용 등 탐지 Performance 미사용 필드, 비효율적 객체 생성 등 성능에 영향을 미치는 코드 탐지 Security CSS, DB 패스워드 누락 등 보안에 취약한 코드 탐지
FindSecurityBugs 란?
- FindSecurityBugs는 FindBugs의 보안 취약점에 좀 더 중점적인 검사를 해주는 정적 분석기이다.
- FindSecurityBugs는 약 200개 이상의 보안 취약점을 78개의 캍고리로 패턴화하여 CWE, OWASP 등에서 제공하는 보안 취약점들을 탐지한다.
- FindSecurity에서 탐지 가능한 버그 패턴 78개에 대한 탐지 유형
탐지유형 설명 부적절한 입력 탐지 Untrusted Servlet parameter, Session Cookie, ,Query String 등 SQL Injection Hibernate, JDO, JPA, Spring JDBC, LDAP Injection 등 XSS JSP, Servlet, JavaScript(Android) XSS를 탐지 취약한 암호화 알고리즘 SHA-1, MD2/MD4/MD5 또는 NullCipher 등 취약한 암호화 함수 탐지 취약한 URL Redirection 유효하지 않은 URL로 Redirection 취약점 탐지 기타 보안 플래그가 없는 쿠키, Regex DOS 취약점, 신뢰할 수 없는 Context-type 또는 헤더
- FindSecurity에서 탐지 가능한 버그 패턴 78개에 대한 탐지 유형
FindBugs/FindSecurityBugs 활용
- 안드로이드 스튜디오에서의 FindSecurityBugs를 설치하는 방법은 PMD와 같은 방법이다.
- FindBugs-IDEA 플러그인 설치 후 안드로이드 스튜디오를 재실행하면 FindBugs-IDEA 메뉴가 생성된다.
- 분석이 끝나면 종료 메시지가 뜨며 프로젝트 이름 아래에 분석 결과가 출력된다.
728x90
반응형