Skip to content

Logs

A kiosk has no login and accepts no connection: its logs are brought back with a signed maintenance device, or sent as they are logged to a SIEM by an online kiosk.

In short

image/maintenance-key.sh /media/$USER/KEY            # any kiosk
image/maintenance-key.sh /media/$USER/KEY kiosk-1    # only kiosk.name = kiosk-1

Insert the key into the kiosk: it writes its logs to pandora-box-maintenance/<kiosk>-<date>/ and ejects the key.

For a continuous export, see Log export to a SIEM.

What the kiosk logs

Log Path on the kiosk Content
Kiosk /var/log/pandora-box/pandora-box.log JSON lines: devices inserted and removed, scans and their verdicts, infected files, quarantine and cleaning, signature and image updates, maintenance devices, errors
Scan reports /var/lib/pandora-box/reports/ One JSON report per scanned device (see Scan report)
Quarantine /var/lib/pandora-box/quarantine/ Copies of the infected files removed from the keys
Journal journalctl System, services and kernel; one folder per boot, within the journald size limits
USBGuard /var/log/usbguard/usbguard-audit.log Devices allowed and blocked
Audit /var/log/audit/audit.log Kernel modules loaded, mounts, programs started, ptrace, changes of the clock, of the signature sets and of the staged image updates

Every entry of the kiosk log holds timestamp, level, kiosk (kiosk.name) and event, then the fields of the event. The level is set by logging.level (INFO by default). logrotate moves the log file every month and keeps 12 months, compressed.

Everything is on the data partition (/var), kept across reboots and image updates.

Maintenance device

A maintenance device brings the logs of a kiosk back without taking its disk out. On the computer that holds the update key, with a USB key mounted:

image/maintenance-key.sh /media/$USER/KEY            # any kiosk
image/maintenance-key.sh /media/$USER/KEY kiosk-1    # only kiosk.name = kiosk-1

writes pandora-box-maintenance/ on the key: a request signed with the update key, valid 7 days. Inserted into the kiosk, even one without signatures, the key is not scanned: the kiosk verifies the request, writes its logs to pandora-box-maintenance/<kiosk>-<date>/ and ejects the key (src/pandora_box/maintenance.py).

File Content
pandora-box.log Log of the kiosk
journal.txt, journal-previous-boot.txt Journal of the boot and of the previous one
kernel.txt Kernel messages
boots.txt, boot-entries.txt Boots, installed versions of the image (System updates)
services.txt, failed-services.txt systemd units, failed units
usbguard-audit.log, usb-devices.txt, usb-rules.txt USB devices allowed and blocked, rules
disks.txt Disks and partitions
hardware.txt, cpuinfo.txt, meminfo.txt, input-devices.txt Hardware and screens, input devices
os-release.txt, cmdline.txt Version of the image, kernel command line
signatures.txt Installed signature set

Nothing changes on the kiosk, and the export holds no key, credential or scan report. A request signed by another key, too old, for another kiosk or modified is refused (maintenance_refused in the log).

One key can hold a maintenance request, a signature set (pandora-box-signatures/) and an image update (pandora-box-image/): the kiosk handles them in that order in one insertion, each verified on its own; the export shows the kiosk before the updates, and the image update comes last as it restarts the kiosk.

Useful events

Event Meaning
device_verdict Verdict of a scanned device
infected_files Dangerous files found on a device
signatures_installed, signatures_refused, signatures_not_newer Result of a signature update device
signatures_changed New signature set loaded after an online update
maintenance_refused Maintenance request refused
display_started, display_resized Size of the screen the interface draws for

Export to a SIEM

An online kiosk can send every entry of its log to a SIEM (Wazuh, Elastic, Graylog, Splunk, or any syslog server), over syslog or JSON, TLS, TCP or UDP: see Log export to a SIEM.