Important
이 기능은 베타 버전으로 제공됩니다. Azure Databricks는 베타 기간 동안 지원되는 작업 영역에 대해 코드 보안 스캔을 지원합니다.
Important
보안 스캔은 오탐을 유발할 수 있으며 모든 보안 버그를 식별하지 못할 수 있습니다.
Databricks Apps는 소스 코드 변경을 배포할 때마다 일반적인 보안 문제를 검사하기 위해 앱의 소스 코드를 스캔합니다. 스캔은 배포를 차단하거나 실패시키지 않습니다. 발견 사항은 앱의 보안 페이지에 나타나며, 앱 관리자가 이를 검토하고 우선순위를 지정할 수 있습니다.
코드 보안 스캔 작동 원리
코드 보안 스캔은 배포 과정에서 앱 소스 코드에 대한 정적 분석을 수행합니다:
- 소스 코드 변경 시 실행: 소스 코드 변경 사항을 배포하면 스캔이 자동으로 실행됩니다. 소스 코드 변경 없이 기존 빌드를 재사용하는 배포는 스캔되지 않습니다.
- 원본만 읽습니다: 스캐너는 소스 코드를 실행하지 않고 분석하며, 앱을 수정하지 않습니다.
- 비차단: 스캐너는 보안 결과를 보고하지만 배포를 차단하거나 실패시키지 않습니다. 심각성과 보안 요구 사항에 따라 결과를 검토하고 처리하세요.
- 안전 실패: 스캔이 완료되지 않으면 결과가 정상으로 처리되지 않고 사용 불가로 기록되어, 누락된 스캔이 통과된 스캔으로 오인되지 않습니다.
스캐닝이 감지하는 것
코드 보안 스캔은 오직 앱의 소스 코드만 분석합니다. 앱의 의존성을 스캔하지 않고, 실행 중인 앱에 대한 동적 분석도 수행하지 않습니다.
스캐너는 Azure Databricks가 Databricks 앱용으로 선택, 생성, 조정한 탐지 규칙을 사용합니다. Azure Databricks는 탐지 범위와 정확성을 높이기 위해 시간이 지남에 따라 규칙을 추가, 삭제 또는 업데이트할 수 있습니다. 규칙들은 다음과 같은 일반적인 취약점 유형을 탐지합니다:
- 하드코딩된 자격 증명과 시크릿
- SQL 인젝션
- XSS(교차 사이트 스크립팅)
- 서버 측 요청 위조(SSRF)
- 경로 탐색
- 안전하지 않은 역직렬화
- 허용적 교차 출처 자원 공유(CORS) 구성
- 안전하지 않은 YAML 로딩
- 사용자(대신 수행) 토큰의 노출
Note
깨끗한 스캔이 앱의 안전을 보장하지는 않습니다. 스캐너는 특정 문제 유형만 확인하므로 규칙이 다루지 않는 문제는 감지되지 않습니다. 특히 민감한 데이터를 다루는 앱의 경우, 자신만의 코드 검토 및 보안 관행을 계속 적용하세요. 더 많은 보안 지침은 보안 모범 사례를 참조하세요.
보안 발견 사항 보기
앱의 보안 결과를 보려면 앱에 대한 CAN MANAGE 권한이 있어야 합니다.
Databricks 앱에 대한 권한 구성을 참조하세요.
결과 보기:
- 워크스페이스에서 앱을 여세요. Databricks 앱에 대한 세부 정보 보기를 참조 하세요.
- 보안 탭을 선택합니다.
보안 페이지는 선택한 배포에 대한 결과를 파일별로 그룹화하여 보여줍니다. 각 탐지 결과에는 다음이 포함됩니다:
- 일치하는 확인 항목
- 파일 경로와 라인 번호
- 심각도 수준
- 문제에 대한 설명
발견 사항은 다음과 같은 심각도 수준을 사용합니다:
- 치명적: 앱을 신뢰하기 전에 반드시 해결해야 할 심각한 문제(예: 취약점일 가능성이 높은 문제)입니다.
- 경고: 귀하의 앱에 해당하는 경우 검토하고 수정해야 할 잠재적 문제입니다.
- 정보: 주의해야 할 낮은 위험 관찰 또는 보안 코딩 제안입니다.
페이지 상단의 요약에는 미해결 결과 수, 중요한 결과 수, 전체 위험 수준, 해결 또는 무시한 결과 수가 표시됩니다. 위험 수준은 열린 결과 항목과 그 심각성을 반영합니다; 해결하거나 무시한 발견은 위험 수준 산정에 반영되지 않습니다. 결과를 심각도별로 필터링하여 가장 중요한 문제에 집중하세요.
이전 배포의 결과를 검토하려면 코드 버전 선택기를 사용해 이전 배포를 선택하세요.
트리아지 결과
트리아지를 사용하면 어떤 결과를 다뤘는지 추적할 수 있습니다. 결과를 보는 것과 마찬가지로, 이를 분류하려면 앱에 대한 CAN MANAGE 권한이 있어야 합니다.
각 발견은 다음 상태 중 하나를 가집니다:
- 열림: 새로운 파인딩의 기본 상태.
- 해결: 근본 문제를 해결한 후 발견 사항을 해결됨으로 표시하세요.
- 무시: 귀하의 앱에 적용되지 않거나 이미 알려진 위험으로 인정한 결과를 무시하세요.
발견을 분류하려면 해당 발견에 대해 'Mark resolved' 또는 'Ignore'를 선택하세요. 문제를 다시 열기로 옮기려면 다시 열기를 선택하세요. 여러 소견을 동시에 선별 처리하려면 여러 소견을 선택하고 한 행동을 일괄적으로 적용하세요.
분류 상태는 각 발견 항목별로 저장되며 배포 전반에 걸쳐 유지됩니다. 동일한 문제가 나중 배포에서 나타나면, 설정한 상태를 유지해 이미 검토한 문제를 다시 분류하지 않습니다.
검사 결과
보안 페이지는 배포 스캔 결과를 반영합니다. 스캔 결과는 스캔이 발견한 것을 나타내고, 스캔 상태는 스캔이 완료되었는지 여부를 나타냅니다.
결과는 스캔이 실행될 당시 적용된 탐지 규칙을 반영합니다. Azure Databricks는 규칙이 변경될 때 기존 배포를 재스캔하지 않기 때문에, 이전 결과(보안 발견 없음 포함)는 현재 규칙을 반영하지 않을 수 있습니다. 다음 소스 코드 변경 시 자동으로 새 스캔이 실행됩니다.
다음 결과는 스캔에서 발견된 내용을 설명합니다:
| 결과 | Description |
|---|---|
| 보안 발견 사항 없음 | 스캔은 완료되었고 현재 규칙 세트에서 문제는 발견되지 않았습니다. |
| 결과 | 스캔 결과 하나 이상의 문제가 발견되어 검토 및 분류가 필요합니다. |
다음 상태들은 스캔 자체의 상태를 설명합니다:
| 상태 | Description |
|---|---|
| 이 배치를 스캔하는 중 | 스캔이 진행 중입니다. 스캔이 끝나면 페이지가 자동으로 업데이트됩니다. |
| 스캔이 완료되지 않음 | 스캔은 실행되었지만 일부 파일이나 규칙을 건너뛰어 결과가 부분적일 수 있습니다. |
| 스캔 결과를 사용할 수 없음 | 이 배포에 대한 스캔을 완료할 수 없습니다. |
| 이 배치는 스캔되지 않았다 | 배포는 소스 코드 변경 없이 기존 빌드를 재사용한 것입니다. 코드 변경 후 다시 배포해서 검사하세요. |