go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/macos_alf.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package resources
     5  
     6  import (
     7  	"go.mondoo.com/cnquery/llx"
     8  	"go.mondoo.com/cnquery/providers-sdk/v1/plugin"
     9  	"go.mondoo.com/cnquery/providers/os/connection/shared"
    10  	"go.mondoo.com/cnquery/types"
    11  )
    12  
    13  func initMacosAlf(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) {
    14  	conn := runtime.Connection.(shared.Connection)
    15  
    16  	if args == nil {
    17  		args = map[string]*llx.RawData{}
    18  	}
    19  
    20  	f, err := conn.FileSystem().Open("/Library/Preferences/com.apple.alf.plist")
    21  	if err != nil {
    22  		return nil, nil, err
    23  	}
    24  	defer f.Close()
    25  
    26  	alfConfig, err := Decode(f)
    27  	if err != nil {
    28  		return nil, nil, err
    29  	}
    30  
    31  	explicitAuthsRaw := alfConfig["explicitauths"].([]interface{})
    32  	explicitAuths := []interface{}{}
    33  	for i := range explicitAuthsRaw {
    34  		entry := explicitAuthsRaw[i].(map[string]interface{})
    35  		explicitAuths = append(explicitAuths, entry["id"])
    36  	}
    37  
    38  	args["allowDownloadSignedEnabled"] = llx.IntData(int64(alfConfig["allowdownloadsignedenabled"].(float64)))
    39  	args["allowSignedEnabled"] = llx.IntData(int64(alfConfig["allowsignedenabled"].(float64)))
    40  	args["firewallUnload"] = llx.IntData(int64(alfConfig["firewallunload"].(float64)))
    41  	args["globalState"] = llx.IntData(int64(alfConfig["globalstate"].(float64)))
    42  	args["loggingEnabled"] = llx.IntData(int64(alfConfig["loggingenabled"].(float64)))
    43  	args["loggingOption"] = llx.IntData(int64(alfConfig["loggingoption"].(float64)))
    44  	args["stealthEnabled"] = llx.IntData(int64(alfConfig["stealthenabled"].(float64)))
    45  	args["version"] = llx.StringData(alfConfig["version"].(string))
    46  	args["exceptions"] = llx.ArrayData(alfConfig["exceptions"].([]interface{}), types.Dict)
    47  	args["explicitAuths"] = llx.ArrayData(explicitAuths, types.String)
    48  	args["applications"] = llx.ArrayData(alfConfig["applications"].([]interface{}), types.Dict)
    49  
    50  	return args, nil, nil
    51  }