1. A method for monitoring applications on user devices, the method comprising: monitoring applications requesting to open files using system dynamic-link libraries; searching for hashes corresponding to the files requested by the applications in caches of the user devices; upon locating hashes of the files requested by the applications, searching for security policies associated with the hashes; upon locating the security policies associated with the hashes, enforcing restrictions of the security policies; and upon failing to locate the hashes of the files requested by the applications: scanning contents of the files; calculating hashes for the files; and updating the caches of the user devices by adding mappings for the hashes to the caches of the user devices and requesting trust scores and establishing security policies based on the trust scores for the files requested by the applications.