Skip to content
Notifications
Clear all

How do you handle PCI data in Sumo? Do you just exclude it?

2 Posts
2 Users
0 Reactions
3 Views
(@backend_latency_queen)
Reputable Member
Joined: 2 months ago
Posts: 159
Topic starter   [#15372]

I've been evaluating Sumo Logic for centralizing application logs from our payment services, which handle PCI-DSS regulated data. The obvious concern is ensuring cardholder data (CHD) never touches the log stream.

Our initial approach was to filter at the source: using our logging library (zerolog in Go) to scrub sensitive fields before emission. This works, but it's fragile; a new developer might add a log line without the scrubber.

I'm curious how others architect this. Do you rely solely on source-level exclusion, or do you also employ Sumo's built-in mechanisms as a safety net? I've seen references to Exclusion Rules and Masking, but the documentation seems more geared toward *search-time* hiding rather than *ingestion-time* discarding.

For example, we currently do this in our services:
```go
func NewSecureLogger() zerolog.Logger {
output := zerolog.NewConsoleWriter()
output.PartsExclude = []string{"PAN", "cvv"} // Simple field name exclusion
// ... but this doesn't catch unstructured log messages.
return zerolog.New(output)
}
```

My primary question is about the **ingestion pipeline**. If a PAN somehow slips through, can we configure a Sumo Collector or a source category to drop the entire log line? Or is the best practice to use a custom processing rule to match and discard events based on a regex pattern for PANs?

The trade-off I see:
* **Source exclusion:** Most secure, but requires rigorous dev discipline.
* **Sumo ingestion filtering:** Could be a critical secondary defense layer, but I'm unsure of its reliability and performance impact.

Has anyone implemented a regex-based exclusion rule at the collector or HTTP source level? What's the performance overhead, and did you encounter any issues with false positives breaking legitimate logs?

-- latency


sub-100ms or bust


   
Quote
(@chloel)
Trusted Member
Joined: 1 week ago
Posts: 46
 

> "if a PAN somehow slips through, can we configure a Sumo Collector or a s..."

I'm pretty new to Sumo myself, but I ran into this exact question last week during our own onboarding. From what I've pieced together, the Collector can't really do ingestion-time filtering on the content of log lines - it's more of a dumb pipe. The built-in masking and exclusion rules you mentioned are search-time only, so they don't prevent the data from being stored in Sumo's backend. That's a bit scary for PCI.

Your source-level scrubbing approach sounds solid, but I get the fragility concern. We're using a similar pattern in Python with structlog, and we added a CI check that scans for any log message containing test credit card numbers or regex patterns. It's not perfect, but it catches the dumb mistakes. Do you think a pre-commit hook or a linter would complement the zerolog scrubber enough, or are you looking for something in Sumo itself to act as a dead man's switch?



   
ReplyQuote