소나큐브는 다양한 룰을 포함하고 있다. 이 페이지는 행안부의 보안취약점에 대응하는 SonaQube 대응룰을 정리한다.
- 소나큐브 룰 = https://rules.sonarsource.com
| 분류 | 행안부 SW 보안약점 | Rules | 지원여부 | 비고 | |
|---|---|---|---|---|---|
| 1 | 입력데이터 검증 및 표현 | 크로스사이트 스크립트 | CWE-80 | 지원 | CWE-80은 없지만, CWE-79 지원 |
| 2 | SQL 삽입 | CWE-89 | 지원 | ||
| 3 | SQL 삽입공격: JDO | CWE-89 | 지원 | ||
| 4 | SQL 삽입공격: Persistence | CWE-89 | 지원 | ||
| 5 | SQL 삽입공격: myBatis Data Map | CWE-89 | 지원 | ||
| 6 | 상대 디렉토리 경로 조작 | CWE-23 | 지원 | CWE-23은 없지만, CWE-20, CWE-22 지원 | |
| 7 | 절대 디렉토리 경로 조작 | CWE-36 | 지원 | CWE-36은 없지만, CWE-20, CWE-22 지원 | |
| 8 | 운영체제 명령어 삽입 | CWE-78 | 지원 | ||
| 9 | LDAP 삽입 | CWE-90 | 지원 | ||
| 10 | LDAP 처리 | CWE-90 | 지원 | ||
| 11 | 자원 삽입 | CWE-99 | 지원 | CWE-99은 없지만, CWE-20, CWE-22 지원 | |
| 12 | HTTP 응답분할 | CWE-113 | 지원 | ||
| 13 | 시스템 또는 구성 설정의 외부 제어 | CWE-15 | 지원 | C# | |
| 14 | 크로스 사이트 스크립트 공격 취약점 : DOM | CWE-80 | 지원 | CWE-80은 없지만, CWE-79 지원 | |
| 15 | 동적으로 생성되어 수행되는 명령어 삽입 | CWE-95 | 지원 | ||
| 16 | 프로세스 제어 | CWE-114 | 미지원 | ||
| 17 | 정수형 오버플로우 | CWE-190 | 지원 | ||
| 18 | 무제한 파일 업로드 | CWE-434 | 지원 | Javascript | |
| 19 | 안전하지 않은 리플렉션 | CWE-470 | 지원 | ||
| 20 | 무결성 점검 없는 코드 다운로드 | CWE-494 | 미지원 | ||
| 21 | SQL 삽입공격 : Hibernate | CWE-564 | 지원 | ||
| 22 | 신뢰되지 않는 URL 주소로 자동접속 연결 | CWE-601 | 지원 | ||
| 23 | XPath 삽입 | CWE-643 | 지원 | ||
| 24 | XQuery 삽입 | CWE-652 | 미지원 | ||
| 25 | 보안기능 결정에 사용되는 부적절한 입력값 | 지원 | |||
| 26 | API 악용 | J2EE 직접 연결 관리 | CWE-245 | 미지원 | |
| 27 | J2EE 직접 소켓 사용 | CWE-246 | 미지원 | ||
| 28 | DNS Lookup에 의존한 보안결정 | CWE-247 | 미지원 | ||
| 29 | J2EE System.exit() 사용 | CWE-382 | 지원 | ||
| 30 | null 매개변수 미검사 | CWE-398 | 미지원 | ||
| 31 | EJB: 소켓 사용 | CWE-577 | 미지원 | ||
| 32 | equals()와 hashCode() 하나만 정의 | CWE-581 | 지원 | ||
| 33 | 보안특성 | 하드코드된 패스워드 | CWE-259 | 지원 | |
| 34 | 부적절한 인가 | CWE-285 | 지원 | ||
| 35 | 사이트 간 요청 위조 | CWE-352 | 미지원 | ||
| 36 | 적절하지 못한 세션 만료 | CWE-613 | 미지원 | ||
| 37 | 패스워드 관리: 힙메모리 조사 | CWE-226 | 미지원 | ||
| 38 | 하드코드된 사용자 계정 | CWE-225 | 미지원 | ||
| 39 | 패스워드 평문 저장 | CWE-256 | 미지원 | ||
| 40 | 설정파일에 패스워드 | CWE-260 | 미지원 | ||
| 41 | 패스워드에 사용된 취약한 암호화 | CWE-261 | 미지원 | ||
| 42 | 중요한 함수 사용시 자격인증 미비 | CWE-306 | 지원 | Kubernetes | |
| 43 | 취약한 암호화: 충분하지 못한 키의 길이 | CWE-310 | 미지원 | ||
| 44 | 민감한 데이터의 암호화 실패 | CWE-311 | 미지원 | ||
| 45 | 기밀 정보의 단순한 텍스트 전송 | CWE-319 | 미지원 | ||
| 46 | 하드코드된 암호화 키 사용 | CWE-321 | 미지원 | ||
| 47 | 취약한 암호화: 적절하지 못한 RSA 패딩 | CWE-325 | 미지원 | ||
| 48 | 취약한 암호화 해쉬함수: 하드코드된 솔트 | CWE-798 | 미지원 | ||
| 49 | 취약한 암호화 알고리즘 사용 | CWE-327 | 지원 | ||
| 50 | 적절하지 않은 난수값 사용 | CWE-330 | 지원 | ||
| 51 | 패스워드 관리: 리다이렉트시 패스워드 | CWE-359 | 미지원 | ||
| 52 | 취약한 패스워드 요구조건 | CWE-521 | 지원 | ||
| 53 | 사용자 하드디스크 저장되는 쿠키를 통한 정보노출 | CWE-539 | 미지원 | ||
| 54 | 같은 포트 번호로의 다중 연결 | CWE-605 | 미지원 | ||
| 55 | HTTPS 세션내에 보안속성없는 민감한 쿠키 | CWE-614 | 미지원 | ||
| 56 | 주석문 안에 포함된 패스워드 | CWE-615 | 지원 | 주석은 HTML 룰에서 커버됨 | |
| 57 | 중요한 자원에 대한 잘못된 권한 허용 | CWE-732 | 지원 | ||
| 58 | 시간 및 상태 | 경쟁조건: 정적 데이터베이스 연결 | 미지원 | C++/C | |
| 59 | 경쟁조건: 싱글톤 멤버 필드 | 미지원 | C++/C | ||
| 60 | 경쟁조건: 검사시점과 사용시점 (TOCTOU) | 미지원 | C++/C | ||
| 61 | J2EE 잘못된 습관: 스레드의 직접 사용 | CWE-383 | 미지원 | ||
| 62 | 심볼릭명이 정확한 대상에 매핑되어 있지 않음 | CWE-386 | 미지원 | ||
| 63 | 중복 검사된 잠금 | 지원 | |||
| 64 | 제대로 제어되지 않은 재귀 | CWE-674 | 미지원 | ||
| 65 | 에러처리 | 취약한 패스워드 요구조건 | 지원 | ||
| 66 | 오류 메시지를 통한 정보노출 | 지원 | C# | ||
| 67 | 오류 상황 대응 부재 | 지원 | C# | ||
| 68 | 비정상적 혹은 예외적 조건의 부적절한 검사 | CWE-754 | 지원 | ||
| 69 | 코드 품질 | 코드 정확성: notify() 호출 | CWE-362 | 미지원 | |
| 70 | 부적절한 자원 해제 | 지원 | |||
| 71 | Null Pointer 역참조 | 지원 | |||
| 72 | 코드 정확성: 부정확한 serialPersistentFields 조정자 | CWE-485 | 미지원 | ||
| 73 | 코드 정확성: Thread.run() 호출 | CWE-572 | 미지원 | ||
| 74 | 코드 정확성: 동기화된 메소드를 비동기화된 메소드로 재정의 | CWE-665 | 미지원 | ||
| 75 | 무한 자원 할당 | CWE-770 | 지원 | ||
| 76 | 캡슐화 | 잘못된 세션에 의한 데이터 정보노출 | CWE-488 | 미지원 | |
| 77 | 제거되지 않고 남은 디버그 코드 | 지원 | |||
| 78 | 민감한 데이터를 가진 내부 클래스 사용 | CWE-492 | 미지원 | ||
| 79 | Final 변경자 없는 주요 공용 변수 | 지원 | |||
| 80 | Public 메소드부터 반환된 Private 배열 | CWE-495 | 미지원 | ||
| 81 | Private 배열에 Public 데이터 할당 | CWE-496 | 미지원 | ||
| 82 | 시스템 데이터 정보노출 | 지원 | Docker | ||
| 83 | 동적 클래스 로딩 사용 | CWE-545 | 미지원 |
행정안전부 - Java 시큐어 코딩 가이드