A method for providing security on an externally connected automotive controller (156, 202) within a vehicle, the method comprising: launching, by the automotive controller (156, 202), a kernel level security layer (158, 216) that includes a whitelist of permitted processes on the automotive controller (156, 202), the whitelist being part of a custom security policy for the automotive controller (156, 202) and including (i) signatures for processes that are authorized to be executed by the automotive controller (156, 202) and (ii) context information identifying permitted vehicle contexts within which the processes are authorized to be executed by the automotive controller (156, 202); receiving, at the security layer (158, 216), a request to run a particular process (204, 206); determining, by the security layer (158, 216), a signature for the particular process (204, 206); determining, by the security layer (158, 216), whether the particular process (204, 206) is permitted to be run on the automotive controller (156, 202) based on a comparison of the determined signature with a verified signature for the particular process from the whitelist; identifying, by the security layer (158, 216), a current vehicle context (161a, 161b) for the automotive controller (156, 202), the current vehicle context (161a, 161b) including at least one of a determined context internal to the vehicle or a determined context external to the vehicle; determining, by the security layer (158, 216), whether the particular process (204, 206) is permitted to be run on the automotive controller (156, 202) based on a comparison of the current vehicle context (161a, 161b) with one or more permitted vehicle contexts for the particular process from the whitelist; and blocking, by the security layer (158, 216), the particular process from running on the automotive controller based on whether the determined signature matches the verified signature for the process and whether the current vehicle context (161a, 161b) is included in the one or more permitted vehicle contexts. launching, by the automotive controller (156, 202), a kernel level security layer (158, 216) that includes a whitelist of permitted processes on the automotive controller (156, 202), the whitelist being part of a custom security policy for the automotive controller (156, 202) and including (i) signatures for processes that are authorized to be executed by the automotive controller (156, 202) and (ii) context information identifying permitted vehicle contexts within which the processes are authorized to be executed by the automotive controller (156, 202); receiving, at the security layer (158, 216), a request to run a particular process (204, 206); determining, by the security layer (158, 216), a signature for the particular process (204, 206); determining, by the security layer (158, 216), whether the particular process (204, 206) is permitted to be run on the automotive controller (156, 202) based on a comparison of the determined signature with a verified signature for the particular process from the whitelist; identifying, by the security layer (158, 216), a current vehicle context (161a, 161b) for the automotive controller (156, 202), the current vehicle context (161a, 161b) including at least one of a determined context internal to the vehicle or a determined context external to the vehicle; determining, by the security layer (158, 216), whether the particular process (204, 206) is permitted to be run on the automotive controller (156, 202) based on a comparison of the current vehicle context (161a, 161b) with one or more permitted vehicle contexts for the particular process from the whitelist; and blocking, by the security layer (158, 216), the particular process from running on the automotive controller based on whether the determined signature matches the verified signature for the process and whether the current vehicle context (161a, 161b) is included in the one or more permitted vehicle contexts.