USER SESSION RECORDING IN COCKPIT
Nikolai Kondrashov Software Engineer 03.02.2018
USER SESSION RECORDING IN COCKPIT Nikolai Kondrashov Software - - PowerPoint PPT Presentation
USER SESSION RECORDING IN COCKPIT Nikolai Kondrashov Software Engineer 03.02.2018 INTRODUCTION Nikolai spbnick Kondrashov, a software engineer Working at Red Hat Common Logging team Focusing on the User Session Recording project
Nikolai Kondrashov Software Engineer 03.02.2018
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 2
Nikolai “spbnick” Kondrashov, a software engineer
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 3
User Session Recording Project:
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 4
Government, medical, financial, and others:
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 5
A great number of commercial offerings:
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 6
All we have is:
○
popular, but not security-oriented, needs lots of DIY
○
security-oriented, has searching, but not centralized
○
security-oriented, can be centralized, but only for input
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 7
○
Centralization solved
○
Easily correlate with other logs
○
Save on resources and maintenance
○
Fast to iterate
○
Easy for users to try
○
Commands executed, files accessed, everything already there
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 8
Long- and short-term
○
Storage in Elasticsearch
○
Central control with FreeIPA and SSSD
○
Playback via a Web UI component
○
Embedded in OpenShift, CloudForms, etc.
○
Storage in Journal
○
Control via SSSD or manual
○
Configuration and playback in Cockpit Web UI
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 9
A server management WebUI with a new twist:
○
Each login creates an actual user session
○
Jump between the WebUI and the command line any time
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 11
In this demo:
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 13
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 14
Optimized for streaming and searching:
pieces, but can be merged back
For every message
{ "ver" : "2.2", "host" : "tlog-client.example.com", "rec" : "c8aa248c81264f5d98d1..." "user" : "user1", "term" : "xterm", "session" : 23, "id" : 1, "pos" : 0, "timing" : "=56x22+98>23", "in_txt" : "", "in_bin" : [ ], "out_txt" : "[user1@tlog-client ~]$ ", "out_bin" : [ ] }
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 15
Exposes key fields
_AUDIT_SESSION=23 _AUDIT_LOGINUID=1000 TLOG_REC=c8aa248c81264f5d98d1... TLOG_USER=user1 _UID=987 TLOG_SESSION=23 TLOG_ID=1 _COMM=tlog-rec-sess _EXE=/usr/bin/tlog-rec-session _TRANSPORT=journal MESSAGE={"ver":"2.2","host":...} SYSLOG_IDENTIFIER=tlog-rec-session ... { "ver" : "2.2",_ "host" : "tlog-client.example.com", "rec" : "c8aa248c81264f5d98d1..." "user" : "user1", "term" : "xterm", "session" : 23, "id" : 1, "pos" : 0, "timing" : "=56x22+98>23", "in_txt" : "", "in_bin" : [ ], "out_txt" : "[user1@tlog-client ~]$ ", "out_bin" : [ ] }
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 16
Simple but effective
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 17
○
E.g. _UID=987
○
E.g. TLOG_USER=user1
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 18
○
E.g. _UID=987
○
E.g. TLOG_REC=c8aa248c81264f5d98d1...
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 20
Herding cats
○
Session boundaries
○
Commands executed
○
Files accessed
○
Unreliable under load (says auditd team)
○
Raw, messy data
○
Parses, augments, normalizes
○
Logs in JSON or XML
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 21
Befriending cats
○
Searching commands/files is inconvenient
○
Searching I/O is impossible
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 22
time, recorded and otherwise
New design
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 23
changing their shells
users/groups via SSSD
○
Only available for accounts managed by SSSD
New design
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 24
○
Ensures single terminal type to deal with
○
Libvterm seems a good fit
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 25
○
Original I/O compressed?
○
Converted I/O sanitized?
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat 26
○
Slow for big recordings
○
Build and use terminal state snapshots — “key frames”
○
Take and log “key frames” on the fly
User Session Recording in Cockpit - Nikolai Kondrashov, Red Hat
○
Read HACKING.md
28
https://github.com/Scribery/cockpit/tree/scribery
plus.google.com/+RedHat linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHatNews