An apparatus, comprising: a processor; and a memory coupled to the processor, wherein the memory is configured to store a set of permission chains, wherein each permission chain comprises an indication that a prior process accessed a current process and the current process requested access to a next process, wherein the processor is configured to: receive a permission request from a calling process, wherein the permission request comprises a request for an access permission to allow a first current process to access a first next process and an indication that the first current process was accessed from a first prior process; search the set of permission chains for a matching permission chain, wherein the matching permission chain comprises a second prior process that is the same as the first prior process, a second current process that is the same as the first current process, and a second next process that is the same as the first next process; when the matching permission chain is not found, receive an input granting or denying the requested access permission; when the received input grants the requested access permission, update the set of permission chains to include a new permission chain comprising an indication that the first prior process accessed the first current process and the first current process requested access to the first next process; and grant the requested access permission to the calling process. a processor; and a memory coupled to the processor, wherein the memory is configured to store a set of permission chains, wherein each permission chain comprises an indication that a prior process accessed a current process and the current process requested access to a next process, wherein the processor is configured to: receive a permission request from a calling process, wherein the permission request comprises a request for an access permission to allow a first current process to access a first next process and an indication that the first current process was accessed from a first prior process; search the set of permission chains for a matching permission chain, wherein the matching permission chain comprises a second prior process that is the same as the first prior process, a second current process that is the same as the first current process, and a second next process that is the same as the first next process; when the matching permission chain is not found, receive an input granting or denying the requested access permission; when the received input grants the requested access permission, update the set of permission chains to include a new permission chain comprising an indication that the first prior process accessed the first current process and the first current process requested access to the first next process; and grant the requested access permission to the calling process. wherein the memory is configured to store a set of permission chains, wherein each permission chain comprises an indication that a prior process accessed a current process and the current process requested access to a next process, wherein the processor is configured to: receive a permission request from a calling process, wherein the permission request comprises a request for an access permission to allow a first current process to access a first next process and an indication that the first current process was accessed from a first prior process; search the set of permission chains for a matching permission chain, wherein the matching permission chain comprises a second prior process that is the same as the first prior process, a second current process that is the same as the first current process, and a second next process that is the same as the first next process; when the matching permission chain is not found, receive an input granting or denying the requested access permission; when the received input grants the requested access permission, update the set of permission chains to include a new permission chain comprising an indication that the first prior process accessed the first current process and the first current process requested access to the first next process; and grant the requested access permission to the calling process. receive a permission request from a calling process, wherein the permission request comprises a request for an access permission to allow a first current process to access a first next process and an indication that the first current process was accessed from a first prior process; search the set of permission chains for a matching permission chain, wherein the matching permission chain comprises a second prior process that is the same as the first prior process, a second current process that is the same as the first current process, and a second next process that is the same as the first next process; when the matching permission chain is not found, receive an input granting or denying the requested access permission; when the received input grants the requested access permission, update the set of permission chains to include a new permission chain comprising an indication that the first prior process accessed the first current process and the first current process requested access to the first next process; and grant the requested access permission to the calling process.