1717 */
1818
1919// TODO: cache containers JSON config instead of query for all checks
20- // TODO: check if Docker or Podman is used, to know which command we should use
2120// TODO: check: <https://github.com/docker/docker-bench-security>
22- // TODO: ensure all docker/podman apps inside containers are running as user
23- // podman container inspect -l --format '{{.Id}}={{.Config.User}}'
21+ // docker container inspect -l --format '{{.Id}}={{.Config.User}}'
2422// each line are id=user
2523// the user should also define the group, ex: `999:999`
2624// with uid and gid > 0 and < 1000
3735use std:: process;
3836use std:: process:: Stdio ;
3937
40- use crate :: { check, log_debug} ;
38+ use crate :: { check, log_debug, log_trace } ;
4139
4240/// Ensure containers are not started with `--privileged` flag.
4341///
4442/// Don't start containers with `--privileged`.
4543/// Check manually with:
4644/// docker container inspect -l --format '{{.Id}}={{.Config.CreateCommand}}'
4745pub fn docker_not_privileged ( ) -> check:: CheckReturn {
48- // can be docker or podman
4946 let mut cmd = process:: Command :: new ( "docker" ) ;
5047 cmd. stdin ( Stdio :: null ( ) ) ;
5148 cmd. args ( vec ! [
@@ -69,8 +66,7 @@ pub fn docker_not_privileged() -> check::CheckReturn {
6966 // remove []
7067 let cmd: Vec < & str > = create_cmd[ 1 ..create_cmd. len ( ) - 1 ] . split ( " " ) . collect ( ) ;
7168
72- // debug
73- log_debug ! ( "{} {:?}" , id, cmd) ;
69+ log_trace ! ( "docker privileged {} {:?}" , id, cmd) ;
7470
7571 if cmd. contains ( & "--privileged" ) {
7672 Some ( id. to_string ( ) )
@@ -98,7 +94,6 @@ pub fn docker_not_privileged() -> check::CheckReturn {
9894/// check manually with:
9995/// docker container inspect -l --format '{{.Id}}={{.Config.CreateCommand}}'
10096pub fn docker_cap_drop ( ) -> check:: CheckReturn {
101- // can be docker or podman
10297 let mut cmd = process:: Command :: new ( "docker" ) ;
10398 cmd. stdin ( Stdio :: null ( ) ) ;
10499 cmd. args ( vec ! [
@@ -122,8 +117,7 @@ pub fn docker_cap_drop() -> check::CheckReturn {
122117 // remove []
123118 let cap_list: Vec < & str > = cap_drop[ 1 ..cap_drop. len ( ) - 1 ] . split ( " " ) . collect ( ) ;
124119
125- // debug
126- log_debug ! ( "{} {:?}" , id, cap_list) ;
120+ log_trace ! ( "docker cap {} {:?}" , id, cap_list) ;
127121
128122 if cap_list. len ( ) < 11 {
129123 Some ( id. to_string ( ) )
0 commit comments