Detection rules › Kusto

GitLab - Repository visibility to Public

Status
available
Severity
medium
Time window
1d
Source
github.com/Azure/Azure-Sentinel

'This query leverages GitLab Audit Logs. A repository in GitLab changed visibility from Private or Internal to Public which could indicate compromise, error or misconfiguration leading to exposing the repository to the public.'

MITRE ATT&CK coverage

Rule body

id: 8b291c3d-90ba-4ebf-af2c-0283192d430e
name: GitLab - Repository visibility to Public
description: |
  'This query leverages GitLab Audit Logs. A repository in GitLab changed visibility from Private or Internal to Public which could indicate compromise, error or misconfiguration leading to exposing the repository to the public.'
severity: Medium
status: Available
requiredDataConnectors:
  - connectorId: SyslogAma
    dataTypes: 
      - Syslog
queryFrequency: 1h
queryPeriod: 1d
triggerOperator: gt
triggerThreshold: 0
tactics:
  - Persistence
  - DefenseEvasion
  - CredentialAccess
relevantTechniques:
  - T1556
query: |
  GitLabAudit
  | where SourceVisibility != "Public" and ChangeType == "visibility" and TargetVisibility == "Public"
  | project TimeGenerated, EventTime, IPAddress, AuthorName, ChangeType, TargetType, SourceVisibility,  TargetVisibility, EntityName
entityMappings:
  - entityType: IP
    fieldMappings:
      - identifier: Address
        columnName: IPAddress
  - entityType: Account
    fieldMappings:
      - identifier: FullName
        columnName: AuthorName
  - entityType: URL
    fieldMappings:
      - identifier: Url
        columnName: EntityName        
version: 1.0.1
kind: Scheduled

Stages and Predicates

Stage 1: source

GitLabAudit

Stage 2: where

| where SourceVisibility != "Public" and ChangeType == "visibility" and TargetVisibility == "Public"

Stage 3: project

| project TimeGenerated, EventTime, IPAddress, AuthorName, ChangeType, TargetType, SourceVisibility,  TargetVisibility, EntityName

Indicators

These rows show field, operator, and value matches.

Output fields

These fields are emitted when the rule matches.

FieldSource
AuthorNameproject
ChangeTypeproject
EntityNameproject
EventTimeproject
IPAddressproject
SourceVisibilityproject
TargetTypeproject
TargetVisibilityproject
TimeGeneratedproject