Skip to main content

CodeQL 분석용 Java 및 Kotlin 쿼리

          `default` 또는 `security-extended` 쿼리 도구 모음을 선택하면, CodeQL이 Java 또는 Kotlin으로 작성된 코드를 분석하는 데 사용하는 쿼리를 탐색합니다.

누가 이 기능을 사용할 수 있나요?

CodeQL은(는) 다음 리포지토리 유형에 사용할 수 있습니다.

CodeQL에는 Java 및 Kotlin 코드 분석을 위한 여러 쿼리가 포함되어 있습니다. default 쿼리 도구 모음의 모든 쿼리는 기본적으로 실행됩니다. security-extended 쿼리 도구 모음을 사용하도록 선택하면 추가 쿼리가 실행됩니다. 자세한 내용은 CodeQL 쿼리 도구 모음을(를) 참조하세요.

Java 및 Kotlin 분석용 기본 제공 쿼리

이 표에는 CodeQL 작업과 CodeQL CLI의 최신 릴리스에서 사용할 수 있는 쿼리가 나열되어 있습니다. 자세한 내용은 CodeQL 설명서 사이트에서 CodeQL 변경 로그를 참조하세요.

참고

GitHub Enterprise Server 3.17의 초기 릴리스에는 CodeQL 작업과 CodeQL CLI 2.20.7이 포함되었는데, 여기에는 이러한 쿼리가 모두 포함되지 않을 수도 있습니다. 사이트 관리자가 CodeQL 버전을 최신 릴리스로 업데이트할 수 있습니다. 자세한 내용은 어플라이언스에 대한 코드 스캐닝 구성을(를) 참조하세요.

쿼리 이름관련 CWE기본값확장Copilot Autofix
TrustManager(모든 인증서를 수락)295
Android WebView(모든 인증서를 수락)295
Android 디버깅 가능 특성 활성화489
Android 프래그먼트 삽입470
Android 프래그먼트를 PreferenceActivity에 삽입470
Android 의도 리디렉션926, 940
Android 웹 보기 디버깅 활성화489
보관 파일 압축을 푸는 중 임의 파일 액세스("Zip Slip")022
쿠키에 민감 정보의 일반 텍스트 저장315
교차 사이트 스크립팅079
JCenter/Bintray를 아티팩트 리포지토리로 사용1104
사용자 제어 데이터의 역직렬화5:02
JHipster 생성기 취약성 탐지 CVE-2019-16303338
Netty HTTP 헤더 유효성 검사 비활성화093, 113
Spring CSRF 보호 비활성화3:52
노출된 Spring Boot 액추에이터200
노출된 구성 파일 Spring Boot 액추에이터200
식 언어 삽입(JEXL)094
식 언어 삽입(MVEL)094
식 언어 삽입(Spring)094
Maven 아티팩트 업로드/다운로드에서 HTTPS 또는 SFTP URL 사용 실패300, 319, 494, 829
보안 쿠키 사용 실패6:14
Groovy 언어 삽입094
HTTP 응답 분할113
복합 할당의 암시적 축소 변환190, 192, 197, 681
암시적으로 내보낸 Android 구성 요소9:26
브로드캐스트 수신기의 의도에 대한 부적절한 검증925
비효율적인 정규식1333, 730, 400
스택 추적을 통한 정보 노출209, 497
오류 메시지를 통한 정보 노출2:09
안전하지 않은 Bean 유효성 검사094
안전하지 않은 LDAP 인증522, 319
안전하지 않은 로컬 인증287
안전하지 않은 무작위성330, 338
의도 URI 권한 조작266, 926
사용자 지정 이름으로 JNDI 조회074
사용자 지정 원본에서 빌드된 LDAP 쿼리090
JWT 서명 검사 누락3:47
사용자 지정 입력이 있는 OGNL 식 언어 문917
지나치게 허용적인 정규식 범위020
원격에서 부분 경로 통과 취약성023
지정되지 않은 데이터에 사용되는 다항식 정규식1333, 730, 400
사용자 지정 원본에서 빌드된 쿼리089.564
쓰기 가능한 월드 파일에서 읽기7:32
정규식 삽입730, 400
사용자 지정 데이터에서 XML 외부 엔터티 확인611, 776, 827
          [HttpOnly 응답 헤더가 설정되지 않은 민감한 쿠키](https://codeql.github.com/codeql-query-help/java/java-sensitive-cookie-not-httponly/) | 1004 | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="check icon" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="check icon" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="x icon" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |

| 서버 쪽 요청 위조 | 918 | | | | | 서버 측 템플릿 삽입 | 1336, 094 | | | | | 지정되지 않은 명령줄 | 078, 088 | | | | | 지정되지 않은 데이터가 콘텐츠 확인에 사용됨 | 441, 610 | | | | | 지정되지 않은 데이터가 경로 식에 사용됨 | 022, 023, 036, 073 | | | | | 안전하지 않은 호스트 이름 검증 | 297 | | | | | 원격 원본에서 URL 전달 | 5:52 | | | | | 원격 원본에서 URL 리디렉션 | 601 | | | | | 손상되었거나 위험한 암호화 알고리즘 사용 | 327, 328 | | | | | 키 크기가 부족한 암호화 알고리즘 사용 | 326 | | | | | 보안 난수 생성기에서 예측 가능한 시드 사용 | 335, 337 | | | | | 외부에서 지정되는 형식 문자열 사용 | 오전 1:22:34 | | | | | 암시적 PendingIntents 사용 | 9:27 | | | | | OAEP 없이 RSA 알고리즘 사용 | 780 | | | | | 숫자 캐스트의 사용자 지정 데이터 | 197, 681 | | | | | 사용자 지정 데이터가 권한 검사에 사용됨 | 807, 290 | | | | | 정적 초기화 벡터를 암호화에 사용 | 329, 1204 | | | | | XPath 삽입 | 643 | | | | | 사용자 제어 스타일시트를 사용한 XSLT 변환 | 074 | | | | | JavaScript 노출을 통해 Java 개체 메서드 액세스 | 079 | | | | | Android APK 설치 | 094 | | | | | Android 인증서 고정 누락 | 295 | | | | | Android 민감 키보드 캐시 | 5:24 | | | | | Android WebSettings 파일 액세스 | 200 | | | | | Android 웹 보기 JavaScript 설정 | 079 | | | | | Android 웹 보기 설정에서 콘텐츠 링크 액세스 허용 | 200 | | | | | 응용 프로그램 백업 허용 | 312 | | | | | 문자열 연결로 명령줄 빌드 | 078, 088 | | | | | 삽입된 환경 변수를 사용하여 명령 빌드 | 078, 088, 454 | | | | | Android 파일 시스템에 민감 정보의 일반 텍스트 저장 | 312 | | | | | 'Properties' 클래스를 사용하여 민감 정보의 일반 텍스트 저장 | 313 | | | | | Android에서 SharedPreferences을(를) 사용하는 민감 정보의 일반 텍스트 저장 | 312 | | | | | 로컬 데이터베이스를 사용하여 민감 정보의 일반 텍스트 저장(Android) | 312 | | | | | 루프 조건에서 좁은 형식과 넓은 형식 비교 | 190, 197 | | | | | 상대 경로로 명령 실행 | 078, 088 | | | | | 알림에 민감 정보 노출 | 200 | | | | | UI 텍스트 보기에 민감 정보 노출 | 200 | | | | | CSRF에서 보호되지 않는 HTTP 요청 형식 | 3:52 | | | | | 사용자 제공 배열 인덱스의 잘못된 유효성 검사 | 1:29 | | | | | 배열 생성에 사용된 사용자 제공 크기의 잘못된 유효성 검사 | 1:29 | | | | | 안전하지 않은 기본 인증 | 522, 319 | | | | | 안전하지 않은 JavaMail SSL 구성 | 297 | | | | | 안전하지 않게 로컬 인증에 대하여 생성된 키 | 287 | | | | | 로그 파일에 민감 정보 삽입 | 5:32 | | | | | ResultReceiver를 통해 민감 정보 유출 | 9:27 | | | | | 암시적 의도를 통해 민감 정보 유출 | 9:27 | | | | | 임시 디렉터리의 로컬 정보 공개 | 200, 732 | | | | | 로그 삽입 | 117 | | | | | 연결할 수 없는 종료 조건이 있는 루프 | 835 | | | | | 콘텐츠 공급자의 읽기 또는 쓰기 권한 누락 | 9:26 | | | | | 부분 경로 통과 취약성 | 023 | | | | | 신뢰할 수 없는 문자열과 연결하여 빌드된 쿼리 | 089.564 | | | | | 소켓 인증의 경합 상태 | 421 | | | | | 검사 시간 사용 시간 경합 상태 | 367 | | | | | 신뢰 경계 위반 | 501 | | | | | 산술 식의 지정되지 않은 데이터 | 190, 191 | | | | | 해제되지 않은 잠금 | 764, 833 | | | | | 안전하지 않은 인증서 신뢰 | 273 | | | | | Android 웹 보기에서 안전하지 않은 리소스 페치 | 749, 079 | | | | | 잠재적으로 손상되었거나 위험한 암호화 알고리즘 사용 | 327, 328 | | | | | 잠재적으로 위험한 함수 사용 | 676 | | | | | 민감 메서드의 사용자 제어 우회 | 807, 290 | | | | | 산술 식의 사용자 지정되지 않은 데이터 | 190, 191 | | | |