On 15/12/17, Gulland, Scott A wrote:
> Hi Steve,
> 
> > On Tuesday, December 15, 2015 05:13:14 AM Gulland, Scott A wrote:
> > > I have a fairly common use case that I'm not sure is covered by the audit
> > > library and I need some advice on how best to handle it.   I have a daemon
> > > running as root that services REST API calls (or a web UI from a browser).
> > > An external application first establishes a session by authenticating a
> > > user which returns a token/session ID to the caller.   All future REST API
> > > calls, supplies the token/session ID which allows them authenticated 
> > > access
> > > to the requested resource.   The token/session ID indicates what user the
> > > request is associated with.  Obviously, there can be many users
> > > simultaneously issuing requests.
> > >
> > > What I need to do is specify the user on each audit log call.   For 
> > > example,
> > > I need to have a way to specify which user is issuing the request when I
> > > call audit_log_user_message().  Is this possible?   This is a very common
> > > use case and really needs to be handled.
> > 
> > Would these users be able to interact with the system in any way they
> > please?
> > If its not an interactive session, then I don't think its a _system_ event.
> > There are perfectly fine application logging frameworks to choose from. The
> > main issue is making sure that users cannot influence the records being
> > written about what they are doing.
> > 
> > But if you feel that you really would like to have this in the audit trail, 
> > then
> > you can use the AUDIT_TRUSTED_APP event type and format the event any
> > way that you wish. The audit tools sort of ignore those events because
> > there's no telling what's in them.
> > 
> > -Steve
> 
> No, this is an HTTP server that handles standard HTTP requests like GET, 
> POST, PUT, and DELETE.  The URI specifies what resource is being acted upon.  
> These requests could come from something as simple as curl, or a full blown 
> management application, or a web GUI (which is interactive in the browser).  
> For example, you could issue a POST request to URI /openswitch/v1/users to 
> create a new user.  The body of the request would contain JSON or XML data 
> indicating the user and password.  There are pre-determined actions/resources 
> that can be changed.   In standard REST APIs, all of the URIs, their 
> parameters and the scheme of the body are documented and only these requests 
> can be issued.
> 
> It's based on client/server and the client may or may not be interactive 
> (e.g. a web browser).   In these types of servers, we'd almost exclusively be 
> using the audit_log_user_message() API with an event type of 
> AUDIT_USYS_CONFIG.   We're only logging configuration changes to the switch.  
>  I think I don't understand how the "message" parameter is used in this call. 
>  The man page implies a simple text message, but looking at the audit.log 
> file it appears to consist of a set of key-value pairs.   Is my understanding 
> correct?
> 
> My problem is I don't know what the proper set of "keys" are and the values 
> they should contain.  If my assumptions are correct, is there any 
> documentation on on the key-value pairs and how to format the contents of the 
> message parameter?  Based on what I've seen in the audit log file, I would 
> add "acct=<user>" to the contents of the message to reflect the particular 
> authenticated user who issued the REST API call.

Well, Steve has published these as a starting point.  I'm sure he'll
chime in when he sees your message.

        http://people.redhat.com/sgrubb/audit/audit-events.txt
        http://people.redhat.com/sgrubb/audit/audit-parse.txt

> Thanks,
> 
> Scott

- RGB

--
Richard Guy Briggs <[email protected]>
Senior Software Engineer, Kernel Security, AMER ENG Base Operating Systems, Red 
Hat
Remote, Ottawa, Canada
Voice: +1.647.777.2635, Internal: (81) 32635, Alt: +1.613.693.0684x3545

--
Linux-audit mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/linux-audit

Reply via email to