From fc895948bba51d01f5958dab07878e52ac0c0228 Mon Sep 17 00:00:00 2001 From: Christian Schaible Date: Thu, 12 Sep 2024 13:14:33 +0200 Subject: [PATCH] Filter out ip adresses in service name detection --- audit/api/model.go | 4 +++- audit/api/model_test.go | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/audit/api/model.go b/audit/api/model.go index 92975ae..c55282f 100644 --- a/audit/api/model.go +++ b/audit/api/model.go @@ -12,6 +12,7 @@ import ( "google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/timestamppb" "google.golang.org/protobuf/types/known/wrapperspb" + "net" "net/url" "regexp" "slices" @@ -371,7 +372,8 @@ func NewAuditLogEntry( func GetCalledServiceNameFromRequest(request *Request, fallbackName string) string { var calledServiceName = fallbackName host := request.Host - if !strings.Contains(host, "localhost") { + ip := net.ParseIP(host) + if ip == nil && !strings.Contains(host, "localhost") { dotIdx := strings.Index(host, ".") if dotIdx != -1 { calledServiceName = host[0:dotIdx] diff --git a/audit/api/model_test.go b/audit/api/model_test.go index d98c3b3..da0b7a0 100644 --- a/audit/api/model_test.go +++ b/audit/api/model_test.go @@ -86,6 +86,22 @@ func Test_GetCalledServiceNameFromRequest(t *testing.T) { serviceName := GetCalledServiceNameFromRequest(&request, "resource-manager") assert.Equal(t, "resource-manager", serviceName) }) + + t.Run( + "ip", func(t *testing.T) { + request := Request{Host: "127.0.0.1"} + serviceName := GetCalledServiceNameFromRequest(&request, "resource-manager") + assert.Equal(t, "resource-manager", serviceName) + }, + ) + + t.Run( + "ip short", func(t *testing.T) { + request := Request{Host: "::1"} + serviceName := GetCalledServiceNameFromRequest(&request, "resource-manager") + assert.Equal(t, "resource-manager", serviceName) + }, + ) } func Test_NewPbInt64Value(t *testing.T) {