무작위 공격 보호는 Cloud SQL 리소스에 대한 무단 액세스를 방지하여 무작위 공격 액세스 시도로부터 인스턴스를 보호하는 기본 제공 보안 기능입니다. 무작위 공격 액세스 시도는 악의적인 행위자가 반복적인 로그인 시도를 자동화하고 데이터베이스에 액세스하기 위해 여러 사용자 이름과 비밀번호 조합을 체계적으로 시도할 때 발생합니다.
Cloud SQL은 무작위 공격 액세스 시도로부터 데이터베이스를 보호하기 위해 다음과 같은 옵션을 제공합니다.
무작위 공격 액세스 감지: Cloud SQL은 각 인스턴스의 로그인 실패 시도를 지속적으로 모니터링하고 첫 번째 로그인 성공을 감지합니다. 연속 로그인 시도 횟수가 Cloud SQL에서 정의한 기준점을 초과하면 Cloud SQL은 인스턴스 로그에 경고 메시지를 생성합니다. 이 로그 메시지는 연결된 IP 주소와 사용자 이름을 포함하여 무작위 공격 액세스 시도를 식별합니다.
무작위 공격 액세스 감지는 모든 Cloud SQL 버전에서 사용할 수 있습니다.
무작위 공격 액세스 보호: Cloud SQL은 무작위 공격 액세스 시도를 감지하면 Cloud SQL은 로그인 응답에 지연을 추가하고 실시간으로 조절하여 로그인 시도를 자동으로 늦춥니다. Cloud SQL이 연결을 무작위 공격 액세스 시도로 식별하고 해당 연결이 로그인 성공으로 이어지면 Cloud SQL은 이를 조절하고 이 로그인 성공을 식별하는 로그 이벤트를 생성합니다. 이 로그 이벤트는 연결된 IP 주소와 사용자 이름을 포함하여 무작위 공격 액세스 시도를 식별합니다.
무작위 공격 액세스 보호는 Cloud SQL Enterprise Plus 버전에서만 사용할 수 있습니다.
Cloud SQL은 인스턴스에 대한 무작위 공격 액세스 감지 및 보호를 제공하여 이러한 무작위 공격 액세스 시도로 인해 발생하는 위험의 소스를 식별하고 완화하는 데 도움이 됩니다. 이러한 무작위 공격 액세스 시도에서 식별된 IP 주소와 사용자 이름 을 사용하여 인스턴스를 보호하고 향후 무작위 공격 액세스 시도로부터 보호하세요. 인스턴스의 무작위 공격 시도를 식별하려면 무작위 공격 시도 로그 보기를 참고하세요.
무작위 공격 액세스 시도 로그 보기
Cloud SQL은 무작위 공격 액세스 시도를 감지하면
인스턴스 로그에 이벤트를 로깅하고
an anomaly was found라는 텍스트를 표시합니다. Cloud SQL은 다음과 같은 세부 이벤트를 로깅합니다.
| 이벤트 | 설명 |
|---|---|
| 무작위 공격 액세스 시도 감지 | IP IP에서 계정 user
로의 로그인 시도가 실패했습니다. 이 IP에서 반복적으로 로그인 시도가 실패하는 비정상적인 상황이 발견되었습니다. |
| 무작위 공격 액세스 시도를 완화하기 위한 자동 조절 (Enterprise Plus 버전만 해당) | IP
IP에서 계정 user로의 로그인 시도가 실패했습니다. 이 IP에서 반복적으로 로그인 시도가 실패하는 비정상적인 상황이 발견되었습니다. Cloud SQL은 잠재적인 무작위 공격 시도를 완화하기 위해 응답을 조절했습니다. |
| 반복적인 로그인 실패 후 첫 번째 로그인 성공 감지 | 반복적인 로그인 시도 실패 후 IP IP에서 계정 user
로의 로그인에 성공하는 비정상적인 상황이 발견되었습니다. 이 활동이 예상치 못한 경우 사용자 비밀번호를 변경하는 것이 좋습니다. |
| 반복적인 로그인 실패 후 첫 번째 로그인 성공 자동 조절 (Enterprise Plus 버전만 해당) | 반복적인 로그인 시도 실패 후 IP IP에서 계정
user로의 로그인에 성공하는 비정상적인 상황이 발견되었습니다. Cloud SQL은 잠재적인 무작위 공격 시도를 완화하기 위해 응답을 조절했습니다. 이 활동이 예상치 못한 경우 사용자
비밀번호를 변경하세요. |
이러한 무작위 공격 시도에 대한 세부정보를 보려면,
인스턴스의 로그를 보고 각 로그의 텍스트에서 An anomaly was found를 찾으세요.
로그 기반 알림 정책 설정
Cloud SQL 인스턴스에서 무작위 공격 액세스 시도가 감지되거나 조절될 때 알림을 받도록 로그 기반 알림 정책을 설정할 수 있습니다. 이 알림을 설정하는 방법에 대한 자세한 내용은 로그 탐색기를 사용하여 로그 기반 알림 정책 구성을 참고하세요.
예를 들어 알림 정책에서 다음 쿼리를 사용하여 무작위 공격 액세스 시도 로그를 식별할 수 있습니다.
resource.type="cloudsql_database"
textPayload =~ "An anomaly was found, successful login into the account"
인스턴스 보호
무작위 공격 액세스 시도가 식별되면 인스턴스를 보호하는 것이 좋습니다. 잠재적인 무작위 공격 액세스 시도를 보려면 무작위 공격 액세스 시도 로그 보기를 참고하세요.
Cloud SQL이 인스턴스에 대한 무작위 공격 액세스 시도를 식별하면 다음을 수행합니다.
- Cloud SQL이 무작위 공격 액세스 시도를 감지했지만 로그인이 실패한 경우 식별된 IP 주소를 승인된 네트워크에서 삭제하여 이러한 IP의 향후 로그인 시도를 방지합니다. 이렇게 하려면 인스턴스의 승인된 네트워크에서 좁은 IP 범위를 사용하거나 승인된 네트워크 목록에서 IP 주소를 삭제합니다.
- Cloud SQL이 무작위 공격 액세스 시도를 감지하고 식별된 IP 주소와 사용자 이름으로 인해 로그인이 성공한 경우 사용자 계정의 비밀번호를 변경하고 승인된 네트워크 목록에서 IP를 삭제합니다.
또한 승인된 네트워크 대신 인증 프록시 또는 Cloud SQL 언어 커넥터 를 사용하여 인스턴스에 연결할 수도 있습니다. 인증 프록시 및 Cloud SQL 언어 커넥터는 Identity and Access Management 인증을 사용하여 인스턴스에 대한 연결을 관리하므로 더 안전한 연결을 제공하며 인스턴스 승인된 네트워크 목록에 특정 IP 주소를 추가할 필요가 없습니다.
Cloud SQL 인스턴스를 추가로 보호하려면 비공개 IP 대신 공개 IP를 사용하고 IAM 기반 데이터베이스 인증 대신 사용자 이름 및 비밀번호 기반 인증을 사용하세요.
무작위 공격 액세스 시도 모니터링
무작위 공격 액세스 시도를 모니터링하기 위해 Cloud SQL은 /database/network/connection_attempt_count 측정항목을 사용하여 인스턴스에 대한 각 연결 이벤트 유형의 발생 횟수를 집계합니다. 이 측정항목은 다음 필드를 사용하여 연결이 무작위 공격 액세스 시도인지 확인합니다.
login_status: 연결이 로그인 성공으로 이어졌는지 추적합니다.anomaly_detected: 연결이 Cloud SQL에서 설정한 로그인 시도 기준점을 초과했는지 여부에 따라 연결이 무작위 공격 액세스 시도인지 추적합니다.anomalous_connection_throttled: 무작위 공격 액세스 시도 연결이 조절되는지 추적합니다.
이 측정항목을 모니터링하여 각 연결 이벤트 유형의 개수를 식별할 수 있습니다. 다음 표는 측정항목에서 추적하는 연결 이벤트와 해당 필드 값을 보여줍니다.
| 이벤트 | 설명 |
|---|---|
| 로그인 완료 | 무작위 공격 액세스
시도가 감지되지 않은 인스턴스에 대한 로그인 성공입니다. 추적된 필드 값: login_status: succeeded
anomaly_detected: none
anomalous_connection_throttled: false
|
| 로그인 실패 | 무작위 공격 액세스
시도가 감지되지 않은 인스턴스에 대한 로그인 실패입니다. 추적된 필드 값: login_status: failed
anomaly_detected: none
anomalous_connection_throttled: false
|
| 무작위 공격 로그인 시도가 감지됨 (조절되지 않음) | Cloud SQL에서 설정한 로그인 시도 기준점을 초과하므로 무작위 공격 액세스
시도로 식별되는 로그인 시도 실패입니다. 연결이 조절되지 않았습니다. 추적된 필드 값: login_status: failed
anomaly_detected: brute-force login
anomalous_connection_throttled: false
|
| 무작위 공격 로그인 시도가 감지되어 조절됨 | Cloud SQL에서 설정한 로그인 시도 기준점을 초과하므로 무작위 공격 액세스
시도로 식별되고 로그인을 방지하기 위해 조절되는 로그인 시도 실패입니다.
추적된 필드 값: login_status: failed
anomaly_detected: brute-force login
anomalous_connection_throttled: true
|
| 무작위 공격 액세스 시도가 감지된 후 로그인 성공 (조절되지 않음) | 연결이 무작위 공격 액세스 시도로 식별된 후 인스턴스에 대한 로그인 성공입니다. 연결이 조절되지 않았습니다.
추적된 필드 값: login_status: succeeded
anomaly_detected: brute-force login
anomalous_connection_throttled: false
|
| 무작위 공격 액세스 시도가 감지되어 조절된 후 로그인 성공 | 연결이 무작위 공격 액세스 시도로 식별되고 조절된 후 인스턴스에 대한 로그인 성공입니다.
추적된 필드 값: login_status: succeeded
anomaly_detected: brute-force login
anomalous_connection_throttled: true
|
제한사항
- 무작위 공격 보호에는 최소 유지보수 버전
MYSQL_$version.R20250531.01_23이 필요합니다. 자세한 내용은 셀프 서비스 유지보수 수행을 참고하세요. - 무작위 공격 보호는 MySQL 버전 5.7 이상에서만 사용할 수 있습니다.