Skip to content

Commit

Permalink
obfuscate ip addresses in alert error message (#511)
Browse files Browse the repository at this point in the history
* obfuscate ip addresses in alert error message

Signed-off-by: Surya Sashank Nistala <[email protected]>

* make ip obfuscation lower case

Signed-off-by: Surya Sashank Nistala <[email protected]>

* update test with lowercase ip obfuscation

Signed-off-by: Surya Sashank Nistala <[email protected]>

---------

Signed-off-by: Surya Sashank Nistala <[email protected]>
(cherry picked from commit b8e6e75)
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • Loading branch information
github-actions[bot] committed Sep 8, 2023
1 parent 55b98e6 commit 51cf1ee
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ import org.opensearch.core.xcontent.XContentParserUtils.ensureExpectedToken
import java.io.IOException
import java.time.Instant

data class AlertError(val timestamp: Instant, val message: String) : Writeable, ToXContent {
data class AlertError(val timestamp: Instant, var message: String) : Writeable, ToXContent {
init {
this.message = obfuscateIPAddresses(message)
}

@Throws(IOException::class)
constructor(sin: StreamInput) : this(
Expand Down Expand Up @@ -54,6 +57,12 @@ data class AlertError(val timestamp: Instant, val message: String) : Writeable,
fun readFrom(sin: StreamInput): AlertError {
return AlertError(sin)
}

fun obfuscateIPAddresses(exceptionMessage: String): String {
val ipAddressPattern = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"
val obfuscatedMessage = exceptionMessage.replace(ipAddressPattern.toRegex(), "x.x.x.x")
return obfuscatedMessage
}
}

override fun toXContent(builder: XContentBuilder, params: ToXContent.Params): XContentBuilder {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package org.opensearch.commons.alerting.alerts

import org.junit.Assert
import org.junit.jupiter.api.Test
import java.time.Instant

class AlertErrorTests {

@Test
fun `test alertError obfuscates IP addresses in message`() {
val message =
"AlertingException[[5f32db4e2a4fa94f6778cb895dae7a24][10.212.77.91:9300][indices:admin/create]]; " +
"nested: Exception[org.opensearch.transport.RemoteTransportException: [5f32db4e2a4fa94f6778cb895dae7a24][10.212.77.91:9300]" +
"[indices:admin/create]];; java.lang.Exception: org.opensearch.transport.RemoteTransportException: [5f32db4e2a4fa94f6778cb895" +
"dae7a24][10.212.77.91:9300][indices:admin/create]"
val alertError = AlertError(Instant.now(), message = message)
Assert.assertEquals(
alertError.message,
"AlertingException[[5f32db4e2a4fa94f6778cb895dae7a24][x.x.x.x:9300][indices:admin/create]]; " +
"nested: Exception[org.opensearch.transport.RemoteTransportException: [5f32db4e2a4fa94f6778cb895dae7a24][x.x.x.x:9300]" +
"[indices:admin/create]];; java.lang.Exception: org.opensearch.transport.RemoteTransportException: " +
"[5f32db4e2a4fa94f6778cb895dae7a24][x.x.x.x:9300][indices:admin/create]"
)
}
}

0 comments on commit 51cf1ee

Please sign in to comment.