[apparmor] [patch] libapparmor: add log-parsing support for encoded comm strings

John Johansen john.johansen at canonical.com
Wed Nov 30 18:27:00 UTC 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 11/30/2011 10:21 AM, Steve Beattie wrote:
> While trying to track down the source of the problem for
> https://bugs.launchpad.net/apparmor/+bug/897957/ I discovered that the
> libapparmor log parsing library doesn't take into account comm entries
> that have been hex-encoded; these occur when the binary path name
> includes a space or other character that needs encoding.
> 
> The attached patch fixes the issue as well as adding a testcase that
> demonstrates the issue.
> 
> Unfortunately, this does not appear to be the cause of LP: #897957.
> 

Acked-by: John Johansen <john.johansen at canonical.com>

> === modified file 'libraries/libapparmor/src/grammar.y'
> --- libraries/libapparmor/src/grammar.y	2011-02-23 22:02:45 +0000
> +++ libraries/libapparmor/src/grammar.y	2011-11-30 18:08:05 +0000
> @@ -246,7 +246,7 @@
>  	{ ret_record->fsuid = $3;}
>  	| TOK_KEY_OUID TOK_EQUALS TOK_DIGITS
>  	{ ret_record->ouid = $3;}
> -	| TOK_KEY_COMM TOK_EQUALS TOK_QUOTED_STRING
> +	| TOK_KEY_COMM TOK_EQUALS safe_string
>  	{ ret_record->comm = $3;}
>  	| TOK_KEY_APPARMOR TOK_EQUALS apparmor_event
>  	| TOK_KEY_CAPABILITY TOK_EQUALS TOK_DIGITS
> 
> === modified file 'libraries/libapparmor/src/scanner.l'
> --- libraries/libapparmor/src/scanner.l	2011-02-22 11:51:16 +0000
> +++ libraries/libapparmor/src/scanner.l	2011-11-30 18:08:39 +0000
> @@ -265,7 +265,7 @@
>  {key_error}		{ return(TOK_KEY_ERROR); }
>  {key_fsuid}		{ return(TOK_KEY_FSUID); }
>  {key_ouid}		{ return(TOK_KEY_OUID); }
> -{key_comm}		{ return(TOK_KEY_COMM); }
> +{key_comm}		{ BEGIN(safe_string); return(TOK_KEY_COMM); }
>  {key_capability}	{ return(TOK_KEY_CAPABILITY); }
>  {key_capname}		{ return(TOK_KEY_CAPNAME); }
>  {key_offset}		{ return(TOK_KEY_OFFSET); }
> 
> === added file 'libraries/libapparmor/testsuite/test_multi/testcase_encoded_comm.err'
> === added file 'libraries/libapparmor/testsuite/test_multi/testcase_encoded_comm.in'
> --- libraries/libapparmor/testsuite/test_multi/testcase_encoded_comm.in	1970-01-01 00:00:00 +0000
> +++ libraries/libapparmor/testsuite/test_multi/testcase_encoded_comm.in	2011-11-30 18:04:43 +0000
> @@ -0,0 +1,1 @@
> +type=AVC msg=audit(1322676143.201:455): apparmor="ALLOWED" operation="open" parent=10357 profile=2F686F6D652F73746576652F746D702F6D792070726F672E7368 name=2F686F6D652F73746576652F746D702F6D792070726F672E7368 pid=22918 comm=6D792070726F672E7368 requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
> 
> === added file 'libraries/libapparmor/testsuite/test_multi/testcase_encoded_comm.out'
> --- libraries/libapparmor/testsuite/test_multi/testcase_encoded_comm.out	1970-01-01 00:00:00 +0000
> +++ libraries/libapparmor/testsuite/test_multi/testcase_encoded_comm.out	2011-11-30 18:12:12 +0000
> @@ -0,0 +1,16 @@
> +START
> +File: test_multi/testcase_encoded_comm.in
> +Event type: AA_RECORD_ALLOWED
> +Audit ID: 1322676143.201:455
> +Operation: open
> +Mask: r
> +Denied Mask: r
> +fsuid: 1000
> +ouid: 1000
> +Profile: /home/steve/tmp/my prog.sh
> +Name: /home/steve/tmp/my prog.sh
> +Command: my prog.sh
> +Parent: 10357
> +PID: 22918
> +Epoch: 1322676143
> +Audit subid: 455
> 
> 
> 
> 
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBCgAGBQJO1nVnAAoJEAUvNnAY1cPYkEEQAIv63mb9iqB0AHPgkIhKWHv+
+JxZjnlfuEyKFSLJ+icrQzkxyd1Pjk9A4CPgNvQGW5IbqoykrCYRPgVfwDWG8ERm
4apRN5PYxAwbAF8vvwgFM6PUQGCsD7VC9q4AQ2eeCj+QRG2gdvDOMbEzdKN2u4Vy
oZiTKskI34xN9zYRWaAliIxH8xML93csCZSVHrWzVLH4ZarlKPUX0PYMzqU/P5mb
PhU31JSVVAHIfjIKA6QE1h+x3dK6JbN1CMhvdRjRad/zUeuyTB/dqK57ekSkZtP5
mCeb5l8XlHoNSKBcOyDjcxcMhv8dTm4SPkkG+G/rmSCCsApfL+gyvqGODGSUq5Ub
GK0I8JVtQlH7vYaYWqWisSvQ7fZDGb+L5uV4uRhfWfxkimpGxTOUSMIKTrS98Zor
NVH3HcAHDBIK7Odej/CaCdDaTqkRfhgFvDTw5yVWVPGenkMavYLd9qxko4KrpBVT
8w/egb4mv+Tfq/ZYY0VQsYbY8CZFv2fvVolsy98o2Uh3yapNbwYuenBMyjkcOF17
vE0bQpIlj41OX2WsH8tm6JqdRaT2nngVUM2abO9HgV1v6RizUMTzoH4fijobyM45
w15y6Ahz5wFR6PhBjDT3cYAAXxLwWQIMN4fjbIvXVbqXUl7hgHrQ5A9f9QR4u4f8
0Mc9rBs+ZoZyAg1MoxCI
=KzkT
-----END PGP SIGNATURE-----



More information about the AppArmor mailing list