Skip to main content

CodeQL 분석을 위한 Java 및 Kotlin 쿼리

default 또는 security-extended 쿼리 도구 모음을 선택할 때 CodeQL에서 Java 또는 Kotlin으로 작성된 코드를 분석하는 데 사용하는 쿼리를 살펴봅니다.

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

Code scanning는 GitHub.com의 모든 퍼블릭 리포지토리에 사용할 수 있습니다. Code scanning는 또한 GitHub Enterprise Cloud를 사용하고 GitHub Advanced Security에 대한 라이선스가 있는 조직이 소유한 프라이빗 리포지토리에서 사용할 수 있습니다. 자세한 내용은 "GitHub Advanced Security 정보.

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

참고: Kotlin에 대한 CodeQL 분석은 현재 베타 버전입니다. 베타 중에 Kotlin 분석은 다른 언어의 CodeQL 분석보다 덜 포괄적입니다.

Java 및 Kotlin 분석을 위한 기본 제공 쿼리

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

참고: code scanning에 대한 GitHub 자동 수정 기능은 베타 버전입니다. 기능 및 설명서는 변경될 수 있습니다. 이 단계에서는 기능이 CodeQL에 의해 식별되는 C#, Go, Java, JavaScript/TypeScript, Python, Ruby 경고로만 제한됩니다. 엔터프라이즈 계정이 있고 GitHub Advanced Security을(를) 사용하는 경우, 엔터프라이즈가 베타에 액세스할 수 있습니다.

쿼리 이름관련 CWE기본값확장자동 수정
모든 인증서를 수락하는 TrustManager295
모든 인증서를 수락하는 Android WebView295
Android 디버깅 가능 특성 사용489
Android 프래그먼트 삽입470
PreferenceActivity에 Android 프래그먼트 삽입470
Android 의도 리디렉션926, 940
Android 웹 보기 디버깅 사용489
보관 파일의 압축을 푸는 중 임의 파일 액세스("Zip Slip")022
문자열 연결로 명령줄 빌드078, 088
쿠키에 중요한 정보의 일반 텍스트 저장315
교차 사이트 스크립팅079
아티팩트 리포지토리로 JCenter/Bintray 사용1104
사용자 제어 데이터의 역직렬화502
JHipster 생성기 취약성 CVE-2019-16303 검색338
Netty HTTP 헤더 유효성 검사 사용 안 함93, 113
Spring CSRF 보호 사용 안 함352
식 언어 삽입(JEXL)094
식 언어 삽입(MVEL)094
식 언어 삽입(Spring)094
Maven 아티팩트 업로드/다운로드에서 HTTPS 또는 SFTP URL 사용 실패300, 319, 494, 829
보안 쿠키 사용 실패614
Groovy 언어 삽입094
HTTP 응답 분할113
복합 할당의 암시적 축소 변환190, 192, 197, 681
암시적으로 내보낸 Android 구성 요소926
브로드캐스트 수신기의 의도에 대한 부적절한 검증925
비효율적인 정규식1333, 730, 400
스택 추적을 통한 정보 노출209, 497
보안에 취약한 Bean 유효성 검사094
보안에 취약한 LDAP 인증522, 319
안전하지 않은 로컬 인증287
보안에 취약한 임의성330, 338
의도 URI 권한 조작266, 926
사용자 제어 이름으로 JNDI 조회074
사용자 제어 원본에서 빌드된 LDAP 쿼리090
JWT 서명 검사 누락347
사용자 제어 입력이 있는 OGNL 식 언어 문917
지나치게 허용적인 정규식 범위020
원격의 부분 경로 통과 취약성023
제어되지 않은 데이터에 사용되는 다항식 정규식1333, 730, 400
사용자 제어 원본에서 빌드된 쿼리089, 564
쓰기 가능한 월드 파일에서 읽기732
정규식 삽입730, 400
사용자 제어 데이터에서 XML 외부 엔터티 확인611, 776, 827
서버 쪽 요청 위조918
서버 쪽 템플릿 삽입1336, 094
제어되지 않은 명령줄078, 088
콘텐츠 확인에 제어되지 않은 데이터 사용됨441, 610
경로 식에 제어되지 않은 데이터 사용됨022, 023, 036, 073
안전하지 않은 호스트 이름 검증297
원격 원본에서 전달되는 URL552
원격 원본에서 URL 리디렉션601
손상되었거나 위험한 암호화 알고리즘 사용327, 328
키 크기가 부족한 암호화 알고리즘 사용326
보안 난수 생성기에서 예측 가능한 시드 사용335, 337
외부에서 제어되는 형식 문자열 사용134
암시적 PendingIntents 사용927
OAEP 없이 RSA 알고리즘 사용780
숫자 캐스트의 사용자 제어 데이터197, 681
권한 검사에 사용자 제어 데이터 사용됨807, 290
암호화에 정적 초기화 벡터 사용329, 1204
XPath 삽입643
사용자 제어 스타일시트를 사용한 XSLT 변환074
JavaScript 노출을 통해 Java 개체 메서드 액세스079
Android APK 설치094
Android에서 인증서 고정 누락295
Android 중요한 키보드 캐시524
Android WebSettings 파일 액세스200
Android 웹 보기 JavaScript 설정079
Android 웹 보기 설정에서 콘텐츠 링크 액세스 허용200
응용 프로그램 백업 허용312
삽입된 환경 변수를 사용하여 명령 빌드078, 088, 454
Android 파일 시스템에 중요한 정보의 일반 텍스트 저장312
'Properties' 클래스를 사용하여 중요한 정보의 일반 텍스트 저장313
Android에서 SharedPreferences를 사용하여 중요한 정보의 일반 텍스트 저장312
Android에서 로컬 데이터베이스를 사용하여 중요한 정보의 일반 텍스트 저장312
루프 조건에서 좁은 형식과 넓은 형식 비교190, 197
상대 경로로 명령 실행078, 088
알림에 중요한 정보 노출200
UI 텍스트 보기에 중요한 정보 노출200
API 호출에서 하드 코드된 자격 증명798
사용자가 제공한 배열 인덱스의 잘못된 유효성 검사129
배열 생성에 사용되는 사용자 제공 크기의 잘못된 유효성 검사129
보안에 취약한 기본 인증522, 319
보안에 취약한 JavaMail SSL 구성297
로컬 인증에 대하여 안전하지 않게 생성된 키287
로그 파일에 중요한 정보 삽입532
ResultReceiver를 통해 중요한 정보 유출927
암시적 의도를 통해 중요한 정보 유출927
임시 디렉터리의 로컬 정보 공개200, 732
로그 삽입117
연결할 수 없는 종료 조건이 있는 루프835
콘텐츠 공급자의 읽기 또는 쓰기 권한 누락926
부분 경로 통과 취약성023
신뢰할 수 없는 문자열과 연결하여 빌드된 쿼리089, 564
소켓 인증의 경합 상태421
검사 시간 사용 시간 경합 상태367
신뢰 경계 위반501
산술 식의 제어되지 않은 데이터190, 191
해제되지 않은 잠금764, 833
안전하지 않은 인증서 신뢰273
Android 웹 보기에서 안전하지 않은 리소스 페치749, 079
잠재적으로 손상되었거나 위험한 암호화 알고리즘 사용327, 328
잠재적으로 위험한 함수 사용676
중요한 메서드의 사용자 제어 우회807, 290
산술 식의 사용자 제어 데이터190, 191