<spanid="evennia-contrib-security-auditing-package"></span><h1>evennia.contrib.security.auditing package<aclass="headerlink"href="#module-evennia.contrib.security.auditing"title="Permalink to this headline">¶</a></h1>
<divclass="section"id="submodules">
<h2>Submodules<aclass="headerlink"href="#submodules"title="Permalink to this headline">¶</a></h2>
<spanid="evennia-contrib-security-auditing-outputs-module"></span><h2>evennia.contrib.security.auditing.outputs module<aclass="headerlink"href="#module-evennia.contrib.security.auditing.outputs"title="Permalink to this headline">¶</a></h2>
<p>Auditable Server Sessions - Example Outputs
Example methods demonstrating output destinations for logs generated by
audited server sessions.</p>
<p>This is designed to be a single source of events for developers to customize
and add any additional enhancements before events are written out– i.e. if you
want to keep a running list of what IPs a user logs in from on account/character
objects, or if you want to perform geoip or ASN lookups on IPs before committing,
or tag certain events with the results of a reputational lookup, this should be
the easiest place to do it. Write a method and invoke it via
<cite>settings.AUDIT_CALLBACK</cite> to have log data objects passed to it.</p>
<codeclass="sig-prename descclassname">evennia.contrib.security.auditing.outputs.</code><codeclass="sig-name descname">to_file</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/outputs.html#to_file"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.outputs.to_file"title="Permalink to this definition">¶</a></dt>
<dd><p>Writes dictionaries of data generated by an AuditedServerSession to files
in JSON format, bucketed by date.</p>
<p>Uses Evennia’s native logger and writes to the default
log directory (~/yourgame/server/logs/ or settings.LOG_DIR)</p>
<codeclass="sig-prename descclassname">evennia.contrib.security.auditing.outputs.</code><codeclass="sig-name descname">to_syslog</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/outputs.html#to_syslog"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.outputs.to_syslog"title="Permalink to this definition">¶</a></dt>
<dd><p>Writes dictionaries of data generated by an AuditedServerSession to syslog.</p>
<p>Takes advantage of your system’s native logger and writes to wherever
you have it configured, which is independent of Evennia.
Linux systems tend to write to /var/log/syslog.</p>
<p>If you’re running rsyslog, you can configure it to dump and/or forward logs
to disk and/or an external data warehouse (recommended– if your server is
compromised or taken down, losing your logs along with it is no help!).</p>
<spanid="evennia-contrib-security-auditing-server-module"></span><h2>evennia.contrib.security.auditing.server module<aclass="headerlink"href="#module-evennia.contrib.security.auditing.server"title="Permalink to this headline">¶</a></h2>
<p>Auditable Server Sessions:
Extension of the stock ServerSession that yields objects representing
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.security.auditing.server.</code><codeclass="sig-name descname">AuditedServerSession</code><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/server.html#AuditedServerSession"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.server.AuditedServerSession"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">audit</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/server.html#AuditedServerSession.audit"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.server.AuditedServerSession.audit"title="Permalink to this definition">¶</a></dt>
<dd><p>Extracts messages and system data from a Session object upon message
send or receive.</p>
<dl>
<dt>Kwargs:</dt><dd><p>src (str): Source of data; ‘client’ or ‘server’. Indicates direction.
text (str or list): Client sends messages to server in the form of</p>
<blockquote>
<div><p>lists. Server sends messages to client as string.</p>
</div></blockquote>
</dd>
</dl>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><dlclass="simple">
<dt>Dictionary object containing parsed system and user data</dt><dd><p>related to this message.</p>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/server.html#AuditedServerSession.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.server.AuditedServerSession.data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook for protocols to send incoming data to the engine.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>kwargs (any): Other data from the protocol.</p>
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/server.html#AuditedServerSession.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.server.AuditedServerSession.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Generic hook for sending data out through the protocol.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>kwargs (any): Other data to the protocol.</p>
<codeclass="sig-name descname">mask</code><spanclass="sig-paren">(</span><emclass="sig-param">msg</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/server.html#AuditedServerSession.mask"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.server.AuditedServerSession.mask"title="Permalink to this definition">¶</a></dt>
<dd><p>Masks potentially sensitive user information within messages before
writing to log. Recording cleartext password attempts is bad policy.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>msg</strong> (<em>str</em>) – Raw text string sent from client <-> server</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>Text string with sensitive information masked out.</p>
<spanid="evennia-contrib-security-auditing-tests-module"></span><h2>evennia.contrib.security.auditing.tests module<aclass="headerlink"href="#module-evennia.contrib.security.auditing.tests"title="Permalink to this headline">¶</a></h2>
<p>Module containing the test cases for the Audit system.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.security.auditing.tests.</code><codeclass="sig-name descname">AuditingTest</code><spanclass="sig-paren">(</span><emclass="sig-param">methodName='runTest'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/tests.html#AuditingTest"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.tests.AuditingTest"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_audit</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/tests.html#AuditingTest.test_audit"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.tests.AuditingTest.test_audit"title="Permalink to this definition">¶</a></dt>
<dd><p>Make sure the ‘audit’ function is returning a dictionary based on values
<codeclass="sig-name descname">test_mask</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/security/auditing/tests.html#AuditingTest.test_mask"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.security.auditing.tests.AuditingTest.test_mask"title="Permalink to this definition">¶</a></dt>
<dd><p>Make sure the ‘mask’ function is properly masking potentially sensitive