1ca0716f5SRobert Watson.\"- 222ccb20dSRobert Watson.\" Copyright (c) 2005-2006 Robert N. M. Watson 37a0a89d2SRobert Watson.\" Copyright (c) 2008 Apple Inc. 4ca0716f5SRobert Watson.\" All rights reserved. 5ca0716f5SRobert Watson.\" 6ca0716f5SRobert Watson.\" Redistribution and use in source and binary forms, with or without 7ca0716f5SRobert Watson.\" modification, are permitted provided that the following conditions 8ca0716f5SRobert Watson.\" are met: 9ca0716f5SRobert Watson.\" 1. Redistributions of source code must retain the above copyright 10ca0716f5SRobert Watson.\" notice, this list of conditions and the following disclaimer. 11ca0716f5SRobert Watson.\" 2. Redistributions in binary form must reproduce the above copyright 12ca0716f5SRobert Watson.\" notice, this list of conditions and the following disclaimer in the 13ca0716f5SRobert Watson.\" documentation and/or other materials provided with the distribution. 14ca0716f5SRobert Watson.\" 15ca0716f5SRobert Watson.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16ca0716f5SRobert Watson.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17ca0716f5SRobert Watson.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18ca0716f5SRobert Watson.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19ca0716f5SRobert Watson.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20ca0716f5SRobert Watson.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21ca0716f5SRobert Watson.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22ca0716f5SRobert Watson.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23ca0716f5SRobert Watson.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24ca0716f5SRobert Watson.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25ca0716f5SRobert Watson.\" SUCH DAMAGE. 26ca0716f5SRobert Watson.\" 27*aa772005SRobert Watson.\" $P4: //depot/projects/trustedbsd/openbsm/man/audit.log.5#26 $ 28ca0716f5SRobert Watson.\" 29bc168a6cSRobert Watson.Dd November 5, 2006 30ca0716f5SRobert Watson.Dt AUDIT.LOG 5 31ca0716f5SRobert Watson.Os 32ca0716f5SRobert Watson.Sh NAME 33ca0716f5SRobert Watson.Nm audit 34bc168a6cSRobert Watson.Nd "Basic Security Module (BSM) file format" 35ca0716f5SRobert Watson.Sh DESCRIPTION 36ca0716f5SRobert WatsonThe 37ca0716f5SRobert Watson.Nm 38ca0716f5SRobert Watsonfile format is based on Sun's Basic Security Module (BSM) file format, a 39ca0716f5SRobert Watsontoken-based record stream to represent system audit data. 40ca0716f5SRobert WatsonThis file format is both flexible and extensible, able to describe a broad 41ca0716f5SRobert Watsonrange of data types, and easily extended to describe new data types in a 42ca0716f5SRobert Watsonmoderately backward and forward compatible way. 43ca0716f5SRobert Watson.Pp 44ca0716f5SRobert WatsonBSM token streams typically begin and end with a 45bc168a6cSRobert Watson.Dq file 46ca0716f5SRobert Watsontoken, which provides time stamp and file name information for the stream; 47ca0716f5SRobert Watsonwhen processing a BSM token stream from a stream as opposed to a single file 48ca0716f5SRobert Watsonsource, file tokens may be seen at any point between ordinary records 49ca0716f5SRobert Watsonidentifying when particular parts of the stream begin and end. 50ca0716f5SRobert WatsonAll other tokens will appear in the context of a complete BSM audit record, 51ca0716f5SRobert Watsonwhich begins with a 52bc168a6cSRobert Watson.Dq header 53ca0716f5SRobert Watsontoken, and ends with a 54bc168a6cSRobert Watson.Dq trailer 55ca0716f5SRobert Watsontoken, which describe the audit record. 56ca0716f5SRobert WatsonBetween these two tokens will appear a variety of data tokens, such as 57ca0716f5SRobert Watsonprocess information, file path names, IPC object information, MAC labels, 58ca0716f5SRobert Watsonsocket information, and so on. 59ca0716f5SRobert Watson.Pp 60ca0716f5SRobert WatsonThe BSM file format defines specific token orders for each record event type; 61ca0716f5SRobert Watsonhowever, some variation may occur depending on the operating system in use, 62ca0716f5SRobert Watsonwhat system options, such as mandatory access control, are present. 63ca0716f5SRobert Watson.Pp 64ca0716f5SRobert WatsonThis manual page documents the common token types and their binary format, and 65ca0716f5SRobert Watsonis intended for reference purposes only. 66ca0716f5SRobert WatsonIt is recommended that application programmers use the 67ca0716f5SRobert Watson.Xr libbsm 3 68ca0716f5SRobert Watsoninterface to read and write tokens, rather than parsing or constructing 69ca0716f5SRobert Watsonrecords by hand. 70ca0716f5SRobert Watson.Ss File Token 71ca0716f5SRobert WatsonThe 72bc168a6cSRobert Watson.Dq file 73ca0716f5SRobert Watsontoken is used at the beginning and end of an audit log file to indicate 74ca0716f5SRobert Watsonwhen the audit log begins and ends. 75ca0716f5SRobert WatsonIt includes a pathname so that, if concatenated together, original file 76ca0716f5SRobert Watsonboundaries are still observable, and gaps in the audit log can be identified. 77ca0716f5SRobert WatsonA 78bc168a6cSRobert Watson.Dq file 79ca0716f5SRobert Watsontoken can be created using 80ca0716f5SRobert Watson.Xr au_to_file 3 . 81bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 82bc168a6cSRobert Watson.It Sy "Field Bytes Description" 83bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 84bc168a6cSRobert Watson.It "Seconds 4 bytes File time stamp" 85bc168a6cSRobert Watson.It "Microseconds 4 bytes File time stamp" 86*aa772005SRobert Watson.It "File name length 2 bytes File name of audit trail" 87bc168a6cSRobert Watson.It "File pathname N bytes + 1 NUL File name of audit trail" 88ca0716f5SRobert Watson.El 89ca0716f5SRobert Watson.Ss Header Token 90ca0716f5SRobert WatsonThe 91bc168a6cSRobert Watson.Dq header 92ca0716f5SRobert Watsontoken is used to mark the beginning of a complete audit record, and includes 93ca0716f5SRobert Watsonthe length of the total record in bytes, a version number for the record 94ca0716f5SRobert Watsonlayout, the event type and subtype, and the time at which the event occurred. 9522ccb20dSRobert WatsonA 32-bit 96bc168a6cSRobert Watson.Dq header 97ca0716f5SRobert Watsontoken can be created using 9822ccb20dSRobert Watson.Xr au_to_header32 3 ; 9922ccb20dSRobert Watsona 64-bit 100bc168a6cSRobert Watson.Dq header 10122ccb20dSRobert Watsontoken can be created using 10222ccb20dSRobert Watson.Xr au_to_header64 3 . 103bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 104bc168a6cSRobert Watson.It Sy "Field Bytes Description" 105bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 106bc168a6cSRobert Watson.It "Record Byte Count 4 bytes Number of bytes in record" 107bc168a6cSRobert Watson.It "Version Number 2 bytes Record version number" 108bc168a6cSRobert Watson.It "Event Type 2 bytes Event type" 109bc168a6cSRobert Watson.It "Event Modifier 2 bytes Event sub-type" 110bc168a6cSRobert Watson.It "Seconds 4/8 bytes Record time stamp (32/64-bits)" 111bc168a6cSRobert Watson.It "Nanoseconds 4/8 bytes Record time stamp (32/64-bits)" 112ca0716f5SRobert Watson.El 113ca0716f5SRobert Watson.Ss Expanded Header Token 114ca0716f5SRobert WatsonThe 115bc168a6cSRobert Watson.Dq expanded header 116ca0716f5SRobert Watsontoken is an expanded version of the 117bc168a6cSRobert Watson.Dq header 118ca0716f5SRobert Watsontoken, with the addition of a machine IPv4 or IPv6 address. 11922ccb20dSRobert WatsonA 32-bit extended 120bc168a6cSRobert Watson.Dq header 12122ccb20dSRobert Watsontoken can be created using 12222ccb20dSRobert Watson.Xr au_to_header32_ex 3 ; 12322ccb20dSRobert Watsona 64-bit extended 124bc168a6cSRobert Watson.Dq header 12522ccb20dSRobert Watsontoken can be created using 12622ccb20dSRobert Watson.Xr au_to_header64_ex 3 . 127bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 128bc168a6cSRobert Watson.It Sy "Field Bytes Description" 129bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 130bc168a6cSRobert Watson.It "Record Byte Count 4 bytes Number of bytes in record" 131bc168a6cSRobert Watson.It "Version Number 2 bytes Record version number" 132bc168a6cSRobert Watson.It "Event Type 2 bytes Event type" 133bc168a6cSRobert Watson.It "Event Modifier 2 bytes Event sub-type" 134bc168a6cSRobert Watson.It "Address Type/Length 1 byte Host address type and length" 135bc168a6cSRobert Watson.It "Machine Address 4/16 bytes IPv4 or IPv6 address" 136bc168a6cSRobert Watson.It "Seconds 4/8 bytes Record time stamp (32/64-bits)" 137bc168a6cSRobert Watson.It "Nanoseconds 4/8 bytes Record time stamp (32/64-bits)" 138ca0716f5SRobert Watson.El 139ca0716f5SRobert Watson.Ss Trailer Token 140ca0716f5SRobert WatsonThe 141bc168a6cSRobert Watson.Dq trailer 142ca0716f5SRobert Watsonterminates a BSM audit record, and contains a magic number, 1437a0a89d2SRobert Watson.Dv AUT_TRAILER_MAGIC 144ca0716f5SRobert Watsonand length that can be used to validate that the record was read properly. 145ca0716f5SRobert WatsonA 146bc168a6cSRobert Watson.Dq trailer 147ca0716f5SRobert Watsontoken can be created using 148ca0716f5SRobert Watson.Xr au_to_trailer 3 . 149bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 150bc168a6cSRobert Watson.It Sy "Field Bytes Description" 151bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 152bc168a6cSRobert Watson.It "Trailer Magic 2 bytes Trailer magic number" 153bc168a6cSRobert Watson.It "Record Byte Count 4 bytes Number of bytes in record" 154ca0716f5SRobert Watson.El 155ca0716f5SRobert Watson.Ss Arbitrary Data Token 156ca0716f5SRobert WatsonThe 157bc168a6cSRobert Watson.Dq arbitrary data 158ca0716f5SRobert Watsontoken contains a byte stream of opaque (untyped) data. 159ca0716f5SRobert WatsonThe size of the data is calculated as the size of each unit of data 160*aa772005SRobert Watsonmultiplied by the number of units of data. 161ca0716f5SRobert WatsonA 162bc168a6cSRobert Watson.Dq How to print 163ca0716f5SRobert Watsonfield is present to specify how to print the data, but interpretation of 164ca0716f5SRobert Watsonthat field is not currently defined. 16522ccb20dSRobert WatsonAn 166bc168a6cSRobert Watson.Dq arbitrary data 16722ccb20dSRobert Watsontoken can be created using 16822ccb20dSRobert Watson.Xr au_to_data 3 . 169bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 170bc168a6cSRobert Watson.It Sy "Field Bytes Description" 171bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 172bc168a6cSRobert Watson.It "How to Print 1 byte User-defined printing information" 173bc168a6cSRobert Watson.It "Basic Unit 1 byte Size of a unit in bytes" 174bc168a6cSRobert Watson.It "Unit Count 1 byte Number of units of data present" 175bc168a6cSRobert Watson.It "Data Items Variable User data" 176ca0716f5SRobert Watson.El 177ca0716f5SRobert Watson.Ss in_addr Token 178ca0716f5SRobert WatsonThe 179bc168a6cSRobert Watson.Dq in_addr 18052267f74SRobert Watsontoken holds a network byte order IPv4 address. 181ca0716f5SRobert WatsonAn 182bc168a6cSRobert Watson.Dq in_addr 183ca0716f5SRobert Watsontoken can be created using 184ca0716f5SRobert Watson.Xr au_to_in_addr 3 18552267f74SRobert Watsonfor an IPv4 address. 18652267f74SRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 18752267f74SRobert Watson.It Sy "Field Bytes Description" 18852267f74SRobert Watson.It "Token ID 1 byte Token ID" 18952267f74SRobert Watson.It "IP Address 4 bytes IPv4 address" 19052267f74SRobert Watson.El 19152267f74SRobert Watson.Ss Expanded in_addr Token 19252267f74SRobert WatsonThe 19352267f74SRobert Watson.Dq in_addr_ex 19452267f74SRobert Watsontoken holds a network byte order IPv4 or IPv6 address. 19552267f74SRobert WatsonAn 19652267f74SRobert Watson.Dq in_addr_ex 19752267f74SRobert Watsontoken can be created using 198ca0716f5SRobert Watson.Xr au_to_in_addr_ex 3 199ca0716f5SRobert Watsonfor an IPv6 address. 200ca0716f5SRobert Watson.Pp 201bc168a6cSRobert WatsonSee the 202bc168a6cSRobert Watson.Sx BUGS 203bc168a6cSRobert Watsonsection for information on the storage of this token. 204bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 205bc168a6cSRobert Watson.It Sy "Field Bytes Description" 206bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 207bc168a6cSRobert Watson.It "IP Address Type 1 byte Type of address" 208bc168a6cSRobert Watson.It "IP Address 4/16 bytes IPv4 or IPv6 address" 209ca0716f5SRobert Watson.El 210ca0716f5SRobert Watson.Ss ip Token 211ca0716f5SRobert WatsonThe 212bc168a6cSRobert Watson.Dq ip 213ca0716f5SRobert Watsontoken contains an IP packet header in network byte order. 214ca0716f5SRobert WatsonAn 215bc168a6cSRobert Watson.Dq ip 21623bf6e20SRobert Watsontoken can be created using 217ca0716f5SRobert Watson.Xr au_to_ip 3 . 218bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 219bc168a6cSRobert Watson.It Sy "Field Bytes Description" 220bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 221bc168a6cSRobert Watson.It "Version and IHL 1 byte Version and IP header length" 222bc168a6cSRobert Watson.It "Type of Service 1 byte IP TOS field" 223bc168a6cSRobert Watson.It "Length 2 bytes IP packet length in network byte order" 224bc168a6cSRobert Watson.It "ID 2 bytes IP header ID for reassembly" 225bc168a6cSRobert Watson.It "Offset 2 bytes IP fragment offset and flags, network byte order" 226bc168a6cSRobert Watson.It "TTL 1 byte IP Time-to-Live" 227bc168a6cSRobert Watson.It "Protocol 1 byte IP protocol number" 228bc168a6cSRobert Watson.It "Checksum 2 bytes IP header checksum, network byte order" 229bc168a6cSRobert Watson.It "Source Address 4 bytes IPv4 source address" 230bc168a6cSRobert Watson.It "Destination Address 4 bytes IPv4 destination address" 231ca0716f5SRobert Watson.El 232ca0716f5SRobert Watson.Ss iport Token 233ca0716f5SRobert WatsonThe 234bc168a6cSRobert Watson.Dq iport 235ca0716f5SRobert Watsontoken stores an IP port number in network byte order. 236ca0716f5SRobert WatsonAn 237bc168a6cSRobert Watson.Dq iport 238ca0716f5SRobert Watsontoken can be created using 239ca0716f5SRobert Watson.Xr au_to_iport 3 . 240bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 241bc168a6cSRobert Watson.It Sy "Field Bytes Description" 242bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 243bc168a6cSRobert Watson.It "Port Number 2 bytes Port number in network byte order" 244ca0716f5SRobert Watson.El 245ca0716f5SRobert Watson.Ss Path Token 246ca0716f5SRobert WatsonThe 247bc168a6cSRobert Watson.Dq path 248ca0716f5SRobert Watsontoken contains a pathname. 249ca0716f5SRobert WatsonA 250bc168a6cSRobert Watson.Dq path 251ca0716f5SRobert Watsontoken can be created using 25223bf6e20SRobert Watson.Xr au_to_path 3 . 253bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 254bc168a6cSRobert Watson.It Sy "Field Bytes Description" 255bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 256bc168a6cSRobert Watson.It "Path Length 2 bytes Length of path in bytes" 257bc168a6cSRobert Watson.It "Path N bytes + 1 NUL Path name" 258ca0716f5SRobert Watson.El 259ca0716f5SRobert Watson.Ss path_attr Token 260ca0716f5SRobert WatsonThe 261bc168a6cSRobert Watson.Dq path_attr 262bc168a6cSRobert Watsontoken contains a set of NUL-terminated path names. 263ca0716f5SRobert WatsonThe 264ca0716f5SRobert Watson.Xr libbsm 3 26523bf6e20SRobert WatsonAPI cannot currently create a 266bc168a6cSRobert Watson.Dq path_attr 267ca0716f5SRobert Watsontoken. 268bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 269bc168a6cSRobert Watson.It Sy "Field Bytes Description" 270bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 271bc168a6cSRobert Watson.It "Count 2 bytes Number of NUL-terminated string(s) in token" 272bc168a6cSRobert Watson.It "Path Variable count NUL-terminated string(s)" 273ca0716f5SRobert Watson.El 274ca0716f5SRobert Watson.Ss Process Token 275ca0716f5SRobert WatsonThe 276bc168a6cSRobert Watson.Dq process 277ca0716f5SRobert Watsontoken contains a description of the security properties of a process 278ca0716f5SRobert Watsoninvolved as the target of an auditable event, such as the destination for 279ca0716f5SRobert Watsonsignal delivery. 280ca0716f5SRobert WatsonIt should not be confused with the 281bc168a6cSRobert Watson.Dq subject 282ca0716f5SRobert Watsontoken, which describes the subject performing an auditable event. 283ca0716f5SRobert WatsonThis includes both the traditional 284ca0716f5SRobert Watson.Ux 285ca0716f5SRobert Watsonsecurity properties, such as user IDs and group IDs, but also audit 28623bf6e20SRobert Watsoninformation such as the audit user ID and session. 287ca0716f5SRobert WatsonA 288bc168a6cSRobert Watson.Dq process 289ca0716f5SRobert Watsontoken can be created using 290ca0716f5SRobert Watson.Xr au_to_process32 3 291ca0716f5SRobert Watsonor 292ca0716f5SRobert Watson.Xr au_to_process64 3 . 293bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 294bc168a6cSRobert Watson.It Sy "Field Bytes Description" 295bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 296bc168a6cSRobert Watson.It "Audit ID 4 bytes Audit user ID" 297bc168a6cSRobert Watson.It "Effective User ID 4 bytes Effective user ID" 298bc168a6cSRobert Watson.It "Effective Group ID 4 bytes Effective group ID" 299bc168a6cSRobert Watson.It "Real User ID 4 bytes Real user ID" 300bc168a6cSRobert Watson.It "Real Group ID 4 bytes Real group ID" 301bc168a6cSRobert Watson.It "Process ID 4 bytes Process ID" 302bc168a6cSRobert Watson.It "Session ID 4 bytes Audit session ID" 303bc168a6cSRobert Watson.It "Terminal Port ID 4/8 bytes Terminal port ID (32/64-bits)" 304bc168a6cSRobert Watson.It "Terminal Machine Address 4 bytes IP address of machine" 305ca0716f5SRobert Watson.El 306ca0716f5SRobert Watson.Ss Expanded Process Token 307742561f0SRobert WatsonThe 308bc168a6cSRobert Watson.Dq expanded process 309ca0716f5SRobert Watsontoken contains the contents of the 310bc168a6cSRobert Watson.Dq process 311ca0716f5SRobert Watsontoken, with the addition of a machine address type and variable length 312ca0716f5SRobert Watsonaddress storage capable of containing IPv6 addresses. 31323bf6e20SRobert WatsonAn 314bc168a6cSRobert Watson.Dq expanded process 315ca0716f5SRobert Watsontoken can be created using 316ca0716f5SRobert Watson.Xr au_to_process32_ex 3 317ca0716f5SRobert Watsonor 31823bf6e20SRobert Watson.Xr au_to_process64_ex 3 . 319bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 320bc168a6cSRobert Watson.It Sy "Field Bytes Description" 321bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 322bc168a6cSRobert Watson.It "Audit ID 4 bytes Audit user ID" 323bc168a6cSRobert Watson.It "Effective User ID 4 bytes Effective user ID" 324bc168a6cSRobert Watson.It "Effective Group ID 4 bytes Effective group ID" 325bc168a6cSRobert Watson.It "Real User ID 4 bytes Real user ID" 326bc168a6cSRobert Watson.It "Real Group ID 4 bytes Real group ID" 327bc168a6cSRobert Watson.It "Process ID 4 bytes Process ID" 328bc168a6cSRobert Watson.It "Session ID 4 bytes Audit session ID" 329bc168a6cSRobert Watson.It "Terminal Port ID 4/8 bytes Terminal port ID (32/64-bits)" 330bc168a6cSRobert Watson.It "Terminal Address Type/Length 1 byte Length of machine address" 331bc168a6cSRobert Watson.It "Terminal Machine Address 4 bytes IPv4 or IPv6 address of machine" 332ca0716f5SRobert Watson.El 333ca0716f5SRobert Watson.Ss Return Token 334ca0716f5SRobert WatsonThe 335bc168a6cSRobert Watson.Dq return 336ca0716f5SRobert Watsontoken contains a system call or library function return condition, including 337ca0716f5SRobert Watsonreturn value and error number associated with the global variable 338ca0716f5SRobert Watson.Er errno . 339ca0716f5SRobert WatsonA 340bc168a6cSRobert Watson.Dq return 341ca0716f5SRobert Watsontoken can be created using 342ca0716f5SRobert Watson.Xr au_to_return32 3 343ca0716f5SRobert Watsonor 344ca0716f5SRobert Watson.Xr au_to_return64 3 . 345bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 346bc168a6cSRobert Watson.It Sy "Field Bytes Description" 347bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 348bc168a6cSRobert Watson.It "Error Number 1 byte Errno value, or 0 if undefined" 349bc168a6cSRobert Watson.It "Return Value 4/8 bytes Return value (32/64-bits)" 350ca0716f5SRobert Watson.El 351ca0716f5SRobert Watson.Ss Subject Token 352ca0716f5SRobert WatsonThe 353bc168a6cSRobert Watson.Dq subject 354ca0716f5SRobert Watsontoken contains information on the subject performing the operation described 355ca0716f5SRobert Watsonby an audit record, and includes similar information to that found in the 356bc168a6cSRobert Watson.Dq process 357ca0716f5SRobert Watsonand 358bc168a6cSRobert Watson.Dq expanded process 359ca0716f5SRobert Watsontokens. 360ca0716f5SRobert WatsonHowever, those tokens are used where the process being described is the 361ca0716f5SRobert Watsontarget of the operation, not the authorizing party. 362ca0716f5SRobert WatsonA 363bc168a6cSRobert Watson.Dq subject 364ca0716f5SRobert Watsontoken can be created using 365ca0716f5SRobert Watson.Xr au_to_subject32 3 366ca0716f5SRobert Watsonand 367ca0716f5SRobert Watson.Xr au_to_subject64 3 . 368bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 369bc168a6cSRobert Watson.It Sy "Field Bytes Description" 370bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 371bc168a6cSRobert Watson.It "Audit ID 4 bytes Audit user ID" 372bc168a6cSRobert Watson.It "Effective User ID 4 bytes Effective user ID" 373bc168a6cSRobert Watson.It "Effective Group ID 4 bytes Effective group ID" 374bc168a6cSRobert Watson.It "Real User ID 4 bytes Real user ID" 375bc168a6cSRobert Watson.It "Real Group ID 4 bytes Real group ID" 376bc168a6cSRobert Watson.It "Process ID 4 bytes Process ID" 377bc168a6cSRobert Watson.It "Session ID 4 bytes Audit session ID" 378bc168a6cSRobert Watson.It "Terminal Port ID 4/8 bytes Terminal port ID (32/64-bits)" 379bc168a6cSRobert Watson.It "Terminal Machine Address 4 bytes IP address of machine" 380ca0716f5SRobert Watson.El 381ca0716f5SRobert Watson.Ss Expanded Subject Token 382ca0716f5SRobert WatsonThe 383bc168a6cSRobert Watson.Dq expanded subject 384ca0716f5SRobert Watsontoken consists of the same elements as the 385bc168a6cSRobert Watson.Dq subject 386ca0716f5SRobert Watsontoken, with the addition of type/length and variable size machine address 387ca0716f5SRobert Watsoninformation in the terminal ID. 38823bf6e20SRobert WatsonAn 389bc168a6cSRobert Watson.Dq expanded subject 390ca0716f5SRobert Watsontoken can be created using 391ca0716f5SRobert Watson.Xr au_to_subject32_ex 3 392ca0716f5SRobert Watsonor 393ca0716f5SRobert Watson.Xr au_to_subject64_ex 3 . 394bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 395bc168a6cSRobert Watson.It Sy "Field Bytes Description" 396bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 397bc168a6cSRobert Watson.It "Audit ID 4 bytes Audit user ID" 398bc168a6cSRobert Watson.It "Effective User ID 4 bytes Effective user ID" 399bc168a6cSRobert Watson.It "Effective Group ID 4 bytes Effective group ID" 400bc168a6cSRobert Watson.It "Real User ID 4 bytes Real user ID" 401bc168a6cSRobert Watson.It "Real Group ID 4 bytes Real group ID" 402bc168a6cSRobert Watson.It "Process ID 4 bytes Process ID" 403bc168a6cSRobert Watson.It "Session ID 4 bytes Audit session ID" 404bc168a6cSRobert Watson.It "Terminal Port ID 4/8 bytes Terminal port ID (32/64-bits)" 405bc168a6cSRobert Watson.It "Terminal Address Type/Length 1 byte Length of machine address" 406bc168a6cSRobert Watson.It "Terminal Machine Address 4 bytes IPv4 or IPv6 address of machine" 407ca0716f5SRobert Watson.El 408ca0716f5SRobert Watson.Ss System V IPC Token 409ca0716f5SRobert WatsonThe 410bc168a6cSRobert Watson.Dq System V IPC 411bc168a6cSRobert Watsontoken contains the System V IPC message handle, semaphore handle or shared 412bc168a6cSRobert Watsonmemory handle. 413bc168a6cSRobert WatsonA System V IPC token may be created using 414bc168a6cSRobert Watson+.Xr au_to_ipc 3 . 415bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 416bc168a6cSRobert Watson.It Sy "Field Bytes Description" 417bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 418bc168a6cSRobert Watson.It "Object ID type 1 byte Object ID" 419bc168a6cSRobert Watson.It "Object ID 4 bytes Object ID" 420ca0716f5SRobert Watson.El 421ca0716f5SRobert Watson.Ss Text Token 422ca0716f5SRobert WatsonThe 423bc168a6cSRobert Watson.Dq text 424bc168a6cSRobert Watsontoken contains a single NUL-terminated text string. 425ca0716f5SRobert WatsonA 426bc168a6cSRobert Watson.Dq text 427ca0716f5SRobert Watsontoken may be created using 428ca0716f5SRobert Watson.Xr au_to_text 3 . 429bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 430bc168a6cSRobert Watson.It Sy "Field Bytes Description" 431bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 432bc168a6cSRobert Watson.It "Text Length 2 bytes Length of text string including NUL" 433bc168a6cSRobert Watson.It "Text N bytes + 1 NUL Text string including NUL" 434ca0716f5SRobert Watson.El 435ca0716f5SRobert Watson.Ss Attribute Token 436ca0716f5SRobert WatsonThe 437bc168a6cSRobert Watson.Dq attribute 438ca0716f5SRobert Watsontoken describes the attributes of a file associated with the audit event. 439ca0716f5SRobert WatsonAs files may be identified by 0, 1, or many path names, a path name is not 440ca0716f5SRobert Watsonincluded with the attribute block for a file; optional 441bc168a6cSRobert Watson.Dq path 442ca0716f5SRobert Watsontokens may also be present in an audit record indicating which path, if any, 443ca0716f5SRobert Watsonwas used to reach the object. 44423bf6e20SRobert WatsonAn 445bc168a6cSRobert Watson.Dq attribute 446ca0716f5SRobert Watsontoken can be created using 447ca0716f5SRobert Watson.Xr au_to_attr32 3 448ca0716f5SRobert Watsonor 449ca0716f5SRobert Watson.Xr au_to_attr64 3 . 450bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 451bc168a6cSRobert Watson.It Sy "Field Bytes Description" 452bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 453bc168a6cSRobert Watson.It "File Access Mode 1 byte mode_t associated with file" 454bc168a6cSRobert Watson.It "Owner User ID 4 bytes uid_t associated with file" 455bc168a6cSRobert Watson.It "Owner Group ID 4 bytes gid_t associated with file" 456bc168a6cSRobert Watson.It "File System ID 4 bytes fsid_t associated with file" 457bc168a6cSRobert Watson.It "File System Node ID 8 bytes ino_t associated with file" 458bc168a6cSRobert Watson.It "Device 4/8 bytes Device major/minor number (32/64-bit)" 459ca0716f5SRobert Watson.El 460ca0716f5SRobert Watson.Ss Groups Token 461ca0716f5SRobert WatsonThe 462bc168a6cSRobert Watson.Dq groups 463ca0716f5SRobert Watsontoken contains a list of group IDs associated with the audit event. 464ca0716f5SRobert WatsonA 465bc168a6cSRobert Watson.Dq groups 466ca0716f5SRobert Watsontoken can be created using 467ca0716f5SRobert Watson.Xr au_to_groups 3 . 468bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 469bc168a6cSRobert Watson.It Sy "Field Bytes Description" 470bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 471bc168a6cSRobert Watson.It "Number of Groups 2 bytes Number of groups in token" 472bc168a6cSRobert Watson.It "Group List N * 4 bytes List of N group IDs" 473ca0716f5SRobert Watson.El 474ca0716f5SRobert Watson.Ss System V IPC Permission Token 475ca0716f5SRobert WatsonThe 476bc168a6cSRobert Watson.Dq System V IPC permission 477bc168a6cSRobert Watsontoken contains a System V IPC access permissions. 478bc168a6cSRobert WatsonA System V IPC permission token may be created using 479bc168a6cSRobert Watson.Xr au_to_ipc_perm 3 . 480bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 481bc168a6cSRobert Watson.It Sy "Field Bytes Description" 482bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 483bc168a6cSRobert Watson.It Li "Owner user ID" Ta "4 bytes" Ta "User ID of IPC owner" 484bc168a6cSRobert Watson.It Li "Owner group ID" Ta "4 bytes" Ta "Group ID of IPC owner" 485bc168a6cSRobert Watson.It Li "Creator user ID" Ta "4 bytes" Ta "User ID of IPC creator" 486bc168a6cSRobert Watson.It Li "Creator group ID" Ta "4 bytes" Ta "Group ID of IPC creator" 487bc168a6cSRobert Watson.It Li "Access mode" Ta "4 bytes" Ta "Access mode" 488*aa772005SRobert Watson.It Li "Sequence number" Ta "4 bytes" Ta "Sequence number" 489bc168a6cSRobert Watson.It Li "Key" Ta "4 bytes" Ta "IPC key" 490ca0716f5SRobert Watson.El 491ca0716f5SRobert Watson.Ss Arg Token 492ca0716f5SRobert WatsonThe 493bc168a6cSRobert Watson.Dq arg 494*aa772005SRobert Watsontoken contains information about arguments of the system call. 495bc168a6cSRobert WatsonDepending on the size of the desired argument value, an Arg token may be 496bc168a6cSRobert Watsoncreated using 497bc168a6cSRobert Watson.Xr au_to_arg32 3 498bc168a6cSRobert Watsonor 499bc168a6cSRobert Watson.Xr au_to_arg64 3 . 500bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 501bc168a6cSRobert Watson.It Sy "Field Bytes Description" 502bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 503bc168a6cSRobert Watson.It Li "Argument ID" Ta "1 byte" Ta "Argument ID" 504bc168a6cSRobert Watson.It Li "Argument value" Ta "4/8 bytes" Ta "Argument value" 505bc168a6cSRobert Watson.It Li "Length" Ta "2 bytes" Ta "Length of the text" 506bc168a6cSRobert Watson.It Li "Text" Ta "N bytes + 1 nul" Ta "The string including nul" 507ca0716f5SRobert Watson.El 508ca0716f5SRobert Watson.Ss exec_args Token 509ca0716f5SRobert WatsonThe 510bc168a6cSRobert Watson.Dq exec_args 511*aa772005SRobert Watsontoken contains information about arguments of the exec() system call. 512bc168a6cSRobert WatsonAn exec_args token may be created using 513bc168a6cSRobert Watson.Xr au_to_exec_args 3 . 514bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 515bc168a6cSRobert Watson.It Sy "Field Bytes Description" 516bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 517bc168a6cSRobert Watson.It Li "Count" Ta "4 bytes" Ta "Number of arguments" 5187a0a89d2SRobert Watson.It Li "Text" Ta "* bytes" Ta "Count nul-terminated strings" 519ca0716f5SRobert Watson.El 520ca0716f5SRobert Watson.Ss exec_env Token 521ca0716f5SRobert WatsonThe 522bc168a6cSRobert Watson.Dq exec_env 523*aa772005SRobert Watsontoken contains current environment variables to an exec() system call. 524bc168a6cSRobert WatsonAn exec_args token may be created using 525bc168a6cSRobert Watson.Xr au_to_exec_env 3 . 526bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 527bc168a6cSRobert Watson.It Sy "Field Bytes Description" 528bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 529bc168a6cSRobert Watson.It Li "Count ID" Ta "4 bytes" Ta "Number of variables" 530bc168a6cSRobert Watson.It Li "Text" Ta "* bytes" Ta "Count nul-terminated strings" 531ca0716f5SRobert Watson.El 532ca0716f5SRobert Watson.Ss Exit Token 533ca0716f5SRobert WatsonThe 534bc168a6cSRobert Watson.Dq exit 535ca0716f5SRobert Watsontoken contains process exit/return code information. 536ca0716f5SRobert WatsonAn 537bc168a6cSRobert Watson.Dq exit 538ca0716f5SRobert Watsontoken can be created using 539ca0716f5SRobert Watson.Xr au_to_exit 3 . 540bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 541bc168a6cSRobert Watson.It Sy "Field Bytes Description" 542bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 543bc168a6cSRobert Watson.It "Status 4 bytes Process status on exit" 544bc168a6cSRobert Watson.It "Return Value 4 bytes Process return value on exit" 545ca0716f5SRobert Watson.El 546ca0716f5SRobert Watson.Ss Socket Token 547ca0716f5SRobert WatsonThe 548bc168a6cSRobert Watson.Dq socket 54952267f74SRobert Watsontoken contains information about UNIX domain and Internet sockets. 550bc168a6cSRobert WatsonEach token has four or eight fields. 55152267f74SRobert WatsonDepending on the type of socket, a socket token may be created using 552bc168a6cSRobert Watson.Xr au_to_sock_unix 3 , 55352267f74SRobert Watson.Xr au_to_sock_inet32 3 55452267f74SRobert Watsonor 555bc168a6cSRobert Watson.Xr au_to_sock_inet128 3 . 55652267f74SRobert Watson.Bl -column -offset 3n ".Sy Field Name Width XX" ".Sy XX Bytes XXXX" ".Sy Description" 557ca0716f5SRobert Watson.It Sy "Field" Ta Sy Bytes Ta Sy Description 558ca0716f5SRobert Watson.It Li "Token ID" Ta "1 byte" Ta "Token ID" 559bc168a6cSRobert Watson.It Li "Socket family" Ta "2 bytes" Ta "Socket family" 560bc168a6cSRobert Watson.It Li "Local port" Ta "2 bytes" Ta "Local port" 561bc168a6cSRobert Watson.It Li "Socket address" Ta "4 bytes" Ta "Socket address" 562bc168a6cSRobert Watson.El 563ca0716f5SRobert Watson.Ss Expanded Socket Token 564ca0716f5SRobert WatsonThe 565bc168a6cSRobert Watson.Dq expanded socket 56652267f74SRobert Watsontoken contains information about IPv4 and IPv6 sockets. 5677a0a89d2SRobert WatsonA 5687a0a89d2SRobert Watson.Dq expanded socket 5697a0a89d2SRobert Watsontoken can be created using 5707a0a89d2SRobert Watson.Xr au_to_socket_ex 3 . 571bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 572bc168a6cSRobert Watson.It Sy "Field Bytes Description" 5737a0a89d2SRobert Watson.It Li "Token ID" Ta "1 byte" Ta "Token ID" 5747a0a89d2SRobert Watson.It Li "Socket domain" Ta "2 bytes" Ta "Socket domain" 5757a0a89d2SRobert Watson.It Li "Socket type" Ta "2 bytes" Ta "Socket type" 5767a0a89d2SRobert Watson.It Li "Address type" Ta "2 byte" Ta "Address type (IPv4/IPv6)" 5777a0a89d2SRobert Watson.It Li "Local port" Ta "2 bytes" Ta "Local port" 5787a0a89d2SRobert Watson.It Li "Local IP address" Ta "4/16 bytes" Ta "Local IP address" 5797a0a89d2SRobert Watson.It Li "Remote port" Ta "2 bytes" Ta "Remote port" 5807a0a89d2SRobert Watson.It Li "Remote IP address" Ta "4/16 bytes" Ta "Remote IP address" 581ca0716f5SRobert Watson.El 582ca0716f5SRobert Watson.Ss Seq Token 583ca0716f5SRobert WatsonThe 584bc168a6cSRobert Watson.Dq seq 585ca0716f5SRobert Watsontoken contains a unique and monotonically increasing audit event sequence ID. 586ca0716f5SRobert WatsonDue to the limited range of 32 bits, serial number arithmetic and caution 587ca0716f5SRobert Watsonshould be used when comparing sequence numbers. 588bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 589bc168a6cSRobert Watson.It Sy "Field Bytes Description" 590bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 591bc168a6cSRobert Watson.It "Sequence Number 4 bytes Audit event sequence number" 592ca0716f5SRobert Watson.El 593ca0716f5SRobert Watson.Ss privilege Token 594ca0716f5SRobert WatsonThe 595bc168a6cSRobert Watson.Dq privilege 596ca0716f5SRobert Watsontoken ... 597bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 598bc168a6cSRobert Watson.It Sy "Field Bytes Description" 599bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 600ca0716f5SRobert Watson.El 601ca0716f5SRobert Watson.Ss Use-of-auth Token 602ca0716f5SRobert WatsonThe 603bc168a6cSRobert Watson.Dq use-of-auth 604ca0716f5SRobert Watsontoken ... 605bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 606bc168a6cSRobert Watson.It Sy "Field Bytes Description" 607bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 608ca0716f5SRobert Watson.El 609ca0716f5SRobert Watson.Ss Command Token 610ca0716f5SRobert WatsonThe 611bc168a6cSRobert Watson.Dq command 612ca0716f5SRobert Watsontoken ... 613bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 614bc168a6cSRobert Watson.It Sy "Field Bytes Description" 615bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 616ca0716f5SRobert Watson.El 617ca0716f5SRobert Watson.Ss ACL Token 618ca0716f5SRobert WatsonThe 619bc168a6cSRobert Watson.Dq ACL 620ca0716f5SRobert Watsontoken ... 621bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 622bc168a6cSRobert Watson.It Sy "Field Bytes Description" 623bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 624ca0716f5SRobert Watson.El 625ca0716f5SRobert Watson.Ss Zonename Token 626ca0716f5SRobert WatsonThe 627bc168a6cSRobert Watson.Dq zonename 62852267f74SRobert Watsontoken holds a NUL-terminated string with the name of the zone or jail from 62952267f74SRobert Watsonwhich the record originated. 63052267f74SRobert WatsonA 631*aa772005SRobert Watson.Dq zonename 63252267f74SRobert Watsontoken can be created using 63352267f74SRobert Watson.Xr au_to_zonename 3 . 634bc168a6cSRobert Watson.Bl -column -offset 3n ".No Terminal Address Type/Length" ".No N bytes + 1 NUL" 635bc168a6cSRobert Watson.It Sy "Field Bytes Description" 636bc168a6cSRobert Watson.It "Token ID 1 byte Token ID" 63752267f74SRobert Watson.It "Zonename length 2 bytes Length of zonename string including NUL" 63852267f74SRobert Watson.It "Zonename N bytes + 1 NUL Zonename string including NUL" 639ca0716f5SRobert Watson.El 640ca0716f5SRobert Watson.Sh SEE ALSO 641bc168a6cSRobert Watson.Xr auditreduce 1 , 642bc168a6cSRobert Watson.Xr praudit 1 , 64323bf6e20SRobert Watson.Xr libbsm 3 , 644bc168a6cSRobert Watson.Xr audit 4 , 645bc168a6cSRobert Watson.Xr auditpipe 4 , 64623bf6e20SRobert Watson.Xr audit 8 647bc168a6cSRobert Watson.Sh HISTORY 648bc168a6cSRobert WatsonThe OpenBSM implementation was created by McAfee Research, the security 649bc168a6cSRobert Watsondivision of McAfee Inc., under contract to Apple Computer Inc.\& in 2004. 650bc168a6cSRobert WatsonIt was subsequently adopted by the TrustedBSD Project as the foundation for 651bc168a6cSRobert Watsonthe OpenBSM distribution. 652ca0716f5SRobert Watson.Sh AUTHORS 653ca0716f5SRobert WatsonThe Basic Security Module (BSM) interface to audit records and audit event 654ca0716f5SRobert Watsonstream format were defined by Sun Microsystems. 655ca0716f5SRobert Watson.Pp 656ca0716f5SRobert WatsonThis manual page was written by 657ca0716f5SRobert Watson.An Robert Watson Aq rwatson@FreeBSD.org . 658ca0716f5SRobert Watson.Sh BUGS 659ca0716f5SRobert WatsonThe 660bc168a6cSRobert Watson.Dq How to print 661ca0716f5SRobert Watsonfield in the 662bc168a6cSRobert Watson.Dq arbitrary data 663ca0716f5SRobert Watsontoken has undefined values. 664ca0716f5SRobert Watson.Pp 665ca0716f5SRobert WatsonThe 666bc168a6cSRobert Watson.Dq in_addr 667ca0716f5SRobert Watsonand 668bc168a6cSRobert Watson.Dq in_addr_ex 669ca0716f5SRobert Watsontoken layout documented here appears to be in conflict with the 670ca0716f5SRobert Watson.Xr libbsm 3 67152267f74SRobert Watsonimplementation of 672ca0716f5SRobert Watson.Xr au_to_in_addr_ex 3 . 673