Skip to content

Update RedisHoneyPot parser for next branch schema#19

Open
t3chn0m4g3 wants to merge 1 commit into
masterfrom
redishoneypot
Open

Update RedisHoneyPot parser for next branch schema#19
t3chn0m4g3 wants to merge 1 commit into
masterfrom
redishoneypot

Conversation

@t3chn0m4g3

Copy link
Copy Markdown
Member

@trixam @elivlo : Please review and test

Adapt redishoneypot integration to the RedisHoneyPot next branch JSONL log format: https://github.com/t3chn0m4g3/RedisHoneyPot/tree/next

  • parse command events using timestamp/src/dest/network fields
  • preserve Redis command/session metadata as AdditionalData
  • keep EWS core field mapping and existing config unchanged
  • add focused parser tests for sample-style next branch logs

Sample logs:

{"timestamp":"2026-06-16T16:16:57.417861509Z","level":"INFO","message":"connect","event":"connect","protocol":"redis","network":"tcp","profile":"legacy6","session_id":"0d25cd5e6d652b7a1bd4739e4d9ebefc","client_id":3,"src_ip":"172.22.0.1","src_port":59444,"dest_ip":"172.22.0.2","dest_port":6379,"session_start":"2026-06-16T16:16:57.417699135Z","session_duration":0.000156,"session_duration_ms":0,"client_library_name":"container-smoketest","user_agent":"container-smoketest"}
{"timestamp":"2026-06-16T16:16:57.417938009Z","level":"INFO","message":"command","event":"command","protocol":"redis","network":"tcp","profile":"legacy6","session_id":"0d25cd5e6d652b7a1bd4739e4d9ebefc","client_id":3,"src_ip":"172.22.0.1","src_port":59444,"dest_ip":"172.22.0.2","dest_port":6379,"session_start":"2026-06-16T16:16:57.417699135Z","session_duration":0.000234041,"session_duration_ms":0,"client_library_name":"container-smoketest","user_agent":"container-smoketest","redis_db":0,"command":"CLIENT","command_category":"recon","arg_count":3,"response_class":"simple_string","response_bytes":5,"outcome":"success","close_after_command":false,"args_text":"SETINFO LIB-NAME container-smoketest","args_truncated":false,"args_sha256":"7adfa79651e84be2c0488a2d8b4424f60a3251b3accd36260571151d30815e44","analysis_hint":"redis_client","client_subcommand":"setinfo"}
{"timestamp":"2026-06-16T16:16:57.418024717Z","level":"INFO","message":"command","event":"command","protocol":"redis","network":"tcp","profile":"legacy6","session_id":"0d25cd5e6d652b7a1bd4739e4d9ebefc","client_id":3,"src_ip":"172.22.0.1","src_port":59444,"dest_ip":"172.22.0.2","dest_port":6379,"session_start":"2026-06-16T16:16:57.417699135Z","session_duration":0.000322625,"session_duration_ms":0,"client_library_name":"container-smoketest","user_agent":"container-smoketest","redis_db":0,"command":"PING","command_category":"session","arg_count":0,"response_class":"simple_string","response_bytes":7,"outcome":"success","close_after_command":false}
{"timestamp":"2026-06-16T16:16:57.418392675Z","level":"INFO","message":"command","event":"command","protocol":"redis","network":"tcp","profile":"legacy6","session_id":"0d25cd5e6d652b7a1bd4739e4d9ebefc","client_id":3,"src_ip":"172.22.0.1","src_port":59444,"dest_ip":"172.22.0.2","dest_port":6379,"session_start":"2026-06-16T16:16:57.417699135Z","session_duration":0.000688832,"session_duration_ms":0,"client_library_name":"container-smoketest","user_agent":"container-smoketest","redis_db":0,"command":"SET","command_category":"write","arg_count":2,"response_class":"simple_string","response_bytes":5,"outcome":"success","close_after_command":false,"args_text":"smoke-key smoke-value","args_truncated":false,"args_sha256":"3893be80bc0b2d59314d66faf0b5b80fdfc42eb5e2efa214897d815d2f4a461f","analysis_hint":"redis_set","key":"smoke-key","key_count":1,"value_size":11,"value_sha256":"656bacf87e249e74405c09eb79525f3a2a05207aadbbf1c9d04e5a62ca2edff8"}
{"timestamp":"2026-06-16T16:16:57.41855605Z","level":"INFO","message":"command","event":"command","protocol":"redis","network":"tcp","profile":"legacy6","session_id":"0d25cd5e6d652b7a1bd4739e4d9ebefc","client_id":3,"src_ip":"172.22.0.1","src_port":59444,"dest_ip":"172.22.0.2","dest_port":6379,"session_start":"2026-06-16T16:16:57.417699135Z","session_duration":0.000854707,"session_duration_ms":0,"client_library_name":"container-smoketest","user_agent":"container-smoketest","redis_db":0,"command":"GET","command_category":"read","arg_count":1,"response_class":"bulk_string","response_bytes":18,"outcome":"success","close_after_command":false,"args_text":"smoke-key","args_truncated":false,"args_sha256":"c1e9511acb17ae357da9e3f21b8caa079a0c4eb2add8f148c69bb2ec42cded93","analysis_hint":"redis_get","key":"smoke-key","key_count":1}
{"timestamp":"2026-06-16T16:16:57.418856882Z","level":"INFO","message":"command","event":"command","protocol":"redis","network":"tcp","profile":"legacy6","session_id":"0d25cd5e6d652b7a1bd4739e4d9ebefc","client_id":3,"src_ip":"172.22.0.1","src_port":59444,"dest_ip":"172.22.0.2","dest_port":6379,"session_start":"2026-06-16T16:16:57.417699135Z","session_duration":0.001154498,"session_duration_ms":1,"client_library_name":"container-smoketest","user_agent":"container-smoketest","redis_db":0,"command":"CONFIG","command_category":"recon","arg_count":3,"response_class":"simple_string","response_bytes":5,"outcome":"success","close_after_command":false,"args_text":"SET dir /tmp","args_truncated":false,"args_sha256":"97751ec7a771e38d3371e6b92520ce3782bb6905ef9a106ba6efc35aa3e060f4","analysis_hint":"redis_write_file_attempt","config_subcommand":"set","config_key":"dir","config_value":"/tmp","config_value_truncated":false,"config_value_sha256":"e9671acd244849c57167c658fa2f969752048f7ab184a3dcf5c46cb4d56ae124"}
{"timestamp":"2026-06-16T16:16:57.418967591Z","level":"INFO","message":"command","event":"command","protocol":"redis","network":"tcp","profile":"legacy6","session_id":"0d25cd5e6d652b7a1bd4739e4d9ebefc","client_id":3,"src_ip":"172.22.0.1","src_port":59444,"dest_ip":"172.22.0.2","dest_port":6379,"session_start":"2026-06-16T16:16:57.417699135Z","session_duration":0.00126679,"session_duration_ms":1,"client_library_name":"container-smoketest","user_agent":"container-smoketest","redis_db":0,"command":"SAVE","command_category":"unknown","arg_count":0,"response_class":"simple_string","response_bytes":5,"outcome":"success","close_after_command":false}
{"timestamp":"2026-06-16T16:16:57.419043715Z","level":"INFO","message":"command","event":"command","protocol":"redis","network":"tcp","profile":"legacy6","session_id":"0d25cd5e6d652b7a1bd4739e4d9ebefc","client_id":3,"src_ip":"172.22.0.1","src_port":59444,"dest_ip":"172.22.0.2","dest_port":6379,"session_start":"2026-06-16T16:16:57.417699135Z","session_duration":0.001343498,"session_duration_ms":1,"client_library_name":"container-smoketest","user_agent":"container-smoketest","redis_db":0,"command":"QUIT","command_category":"session","arg_count":0,"response_class":"simple_string","response_bytes":5,"outcome":"success","close_after_command":true}
{"timestamp":"2026-06-16T16:16:57.419122382Z","level":"INFO","message":"close","event":"close","protocol":"redis","network":"tcp","profile":"legacy6","session_id":"0d25cd5e6d652b7a1bd4739e4d9ebefc","client_id":3,"src_ip":"172.22.0.1","src_port":59444,"dest_ip":"172.22.0.2","dest_port":6379,"session_start":"2026-06-16T16:16:57.417699135Z","session_duration":0.001421748,"session_duration_ms":1,"session_end":"2026-06-16T16:16:57.419120882Z","client_library_name":"container-smoketest","user_agent":"container-smoketest"}

Adapt redishoneypot integration to the RedisHoneyPot next branch JSONL log format:
https://github.com/t3chn0m4g3/RedisHoneyPot/tree/next

- parse command events using timestamp/src/dest/network fields
- preserve Redis command/session metadata as AdditionalData
- keep EWS core field mapping and existing config unchanged
- add focused parser tests for sample-style next branch logs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants