DNS prefetching based on triggers for increased security
Techniques for DNS prefetching based on application or contextual triggers to increase security in prefetching. The techniques can include storing historical DNS information from sources of DNS information. The historical DNS information can include historical DNS requests and triggering events correlated to the historical DNS requests. The techniques can also include identifying, by a processor or one or more sensors, an occurrence of a triggering event. The techniques can also include, in response to identifying the occurrence of the triggering event, resolving one or more answers to one or more DNS requests correlated with the triggering event based on the stored historical DNS information. The techniques can also include storing the one or more answers for later use by requesters.
1. A method, comprising:
storing, in a computing device, historical domain name system (DNS) information from a plurality of sources of DNS information,
wherein the historical DNS information comprises a plurality of historical DNS requests and a plurality of triggering events correlated to the plurality of historical DNS requests,
wherein a triggering event of the plurality of triggering events is correlated to at least one historical DNS request of the plurality of historical DNS requests, and
wherein the correlation between the triggering event and the at least one historical DNS request is configurable with a threshold confidence level associated with the correlation, the threshold confidence level stored in association with the correlation in the DNS information;
identifying, by one or more sensors, an occurrence of a triggering event of the plurality of triggering events by detecting user action on the computing device,
wherein the one or more sensors are in the computing device, attached to the computing device, connected to the computing device by a network link, or any combination thereof, and the user action is detected using data from the sensors;
in response to identifying the occurrence of the triggering event, resolving, within a certain configurable time period after the triggering event, one or more answers to one or more DNS requests correlated with the triggering event based on the stored historical DNS information;
storing, in the computing device, the one or more answers, such that the one or more answers are useable by requesters making the one or more DNS requests; and
requesting, by a particular application running on the computing device, the one or more answers.
2. The method of claim 1 , wherein:
the particular application is a web browser, and
the one or more answers are answers to the one or more DNS requests that comprise DNS requests for an initial rendering of a website.
3. The method of claim 1 , wherein:
the particular application is a downloadable mobile application, and
the one or more answers are answers to the one or more DNS requests that comprise DNS requests for an initial rendering of the downloadable mobile application.
4. The method of claim 1 , further comprising:
retrieving, by a transparent proxy connected to or running on the computing device, DNS information used in an initial rendering of a website; and
storing with the stored historical DNS information, the retrieved DNS information used in the initial rendering of the website.
5. The method of claim 1 , further comprising:
retrieving, by a transparent proxy connected to or running on the computing device, DNS information used in a startup process of a downloaded mobile application; and
storing with the stored historical DNS information, the retrieved DNS information used in the startup process of the downloaded mobile application.
6. The method of claim 1 , wherein:
the historical DNS information further comprises a plurality of DNS answers,
a group of the plurality of triggering events are further correlated to the plurality of historical DNS answers,
a triggering event of the group is correlated to at least one historical DNS answer of the plurality of historical DNS answers, and
the resolving of the one or more answers to the one or more DNS requests is based on one or more historical DNS answers of the plurality of historical DNS answers corresponding to the one or more DNS requests when the one or more historical DNS answers have an unexpired time to live (TTL).
7. The method of claim 1 , further comprising:
storing, with the historical DNS information, assessments for each of the plurality of historical DNS requests;
in response to identifying the occurrence of the triggering event, determining a legitimacy level of the one or more answers to the one or more DNS requests correlated with the triggering event based on the assessments, wherein the legitimacy level comprises a probability that the one or more answers include a phishing attack; and
acting on the one or more answers according to the determined legitimacy level of the one or more answers.
8. The method of claim 7 , wherein acting on the one or more answers comprises the storing of the one or more answers when the determined legitimacy level of the one or more answers exceeds a predetermined threshold.
9. The method of claim 8 , wherein acting on the one or more answers comprises modifying the one or more answers and storing the one or more modified answers, such that the one or more modified answers are useable by requesters making the one or more DNS requests, when the determined legitimacy level of the one or more answers does not exceed the predetermined threshold.
10. The method of claim 8 , wherein acting on the one or more answers comprises blocking the one or more answers, such that the one or more answers are not accessible by requesters making the one or more DNS requests, when the determined legitimacy level of the one or more answers does not exceed the predetermined threshold.
11. The method of claim 7 , further comprising:
storing, with the historical DNS information, assessments for each of the plurality of triggering events correlated to the plurality of historical DNS requests;
in response to identifying the occurrence of the triggering event, determining a legitimacy level of the triggering event based on the assessments, wherein the legitimacy level of the triggering event comprises a probability that the triggering event includes a phishing attack; and
acting on the one or more answers according to the determined legitimacy level of the triggering event.
12. The method of claim 11 , wherein acting on the one or more answers comprises the storing of the one or more answers, when the respective determined legitimacy levels of the one or more answers and the triggering event each exceed a predetermined threshold.
13. A system, comprising:
a first computing device, comprising a processor and a non-transitory computer-readable storage medium for tangibly storing thereon program logic for execution by the processor of the first computing device, the program logic of the first computing device comprising:
executable logic for storing historical domain name system (DNS) information from a plurality of sources of DNS information,
wherein the historical DNS information comprises a plurality of historical DNS requests and a plurality of triggering events correlated to the plurality of historical DNS requests,
wherein a triggering event of the plurality of triggering events is correlated to at least one historical DNS request of the plurality of historical DNS requests, and
wherein the correlation between the triggering event and the at least one historical DNS request is configurable with a threshold confidence level associated with the correlation, the threshold confidence level stored in association with the correlation in the DNS information; and
a second computing device communicatively coupled to the first computing device, comprising a processor and a non-transitory computer-readable storage medium for tangibly storing thereon program logic for execution by the processor of the second computing device, the program logic of the second computing device comprising:
executable logic for identifying, via one or more sensors, an occurrence of a triggering event of the plurality of triggering events by detecting user action on the second computing device,
wherein the one or more sensors are in the second computing device, attached to the second computing device, connected to the second computing device by a network link, or any combination thereof, and the user action is detected using data from the sensors;
executable logic for, in response to identifying the occurrence of the triggering event, resolving, within a certain configurable time period after the triggering event, one or more answers to one or more DNS requests correlated with the triggering event based on the stored historical DNS information;
executable logic for storing the one or more answers, such that the one or more answers are useable by requesters making the one or more DNS requests; and
executable logic for hosting a particular application, running on the second computing device, that requests the one or more answers.
14. The system of claim 13 , wherein:
the particular application is a web browser, and
the one or more answers are answers to the one or more DNS requests that comprise DNS requests for an initial rendering of a website.
15. The system of claim 13 , wherein:
the particular application is a downloadable mobile application, and
the one or more answers are answers to the one or more DNS requests that comprise DNS requests for an initial rendering of the downloadable mobile application.
16. The system of claim 13 , wherein the program logic of the first computing device comprises:
executable logic for retrieving, by a transparent proxy connected to or running on the first computing device, DNS information used in an initial rendering of a website; and
executable logic for storing with the stored historical DNS information, the retrieved DNS information used in the initial rendering of the website.
17. The system of claim 13 , wherein the program logic of the first computing device comprises:
executable logic for retrieving, by a transparent proxy connected to or running on the first computing device, DNS information used in a startup process of a downloaded mobile application; and
executable logic for storing with the stored historical DNS information, the retrieved DNS information used in the startup process of the downloaded mobile application.
18. The system of claim 13 , wherein:
the historical DNS information further comprises a plurality of DNS answers,
a group of the plurality of triggering events are further correlated to the plurality of historical DNS answers,
a triggering event of the group is correlated to at least one historical DNS answer of the plurality of historical DNS answers, and
the resolving of the one or more answers to the one or more DNS requests is based on one or more historical DNS answers of the plurality of historical DNS answers corresponding to the one or more DNS requests when the one or more historical DNS answers have an unexpired time to live (TTL).
19. The system of claim 13 , wherein:
the program logic of the first computing device comprises executable logic for storing, with the historical DNS information, assessments for each of the plurality of historical DNS requests; and
the program logic of the second computing device comprises:
executable logic for, in response to identifying the occurrence of the triggering event, determining a legitimacy level of the one or more answers to the one or more DNS requests correlated with the triggering event based on the assessments, wherein the legitimacy level comprises a probability that the one or more answers include a phishing attack; and
executable logic for acting on the one or more answers according to the determined legitimacy level of the one or more answers.
20. A non-transitory computer-readable storage medium tangibly encoded with computer-executable instructions, that when executed by a processor associated with a computing device, performs a method, the method comprising:
storing historical domain name system (DNS) information from a plurality of sources of DNS information,
wherein the historical DNS information comprises a plurality of historical DNS requests and a plurality of triggering events correlated to the plurality of historical DNS requests,
wherein a triggering event of the plurality of triggering events is correlated to at least one historical DNS request of the plurality of historical DNS requests, and
wherein the correlation between the triggering event and the at least one historical DNS request is configurable with a threshold confidence level associated with the correlation, the threshold confidence level stored in association with the correlation in the DNS information;
identifying, via one or more sensors, an occurrence of a triggering event of the plurality of triggering events by detecting user action on the computing device, wherein the user action is detected using data from the sensors;
in response to identifying the occurrence of the triggering event, resolving, within a certain configurable time period after the triggering event, one or more answers to one or more DNS requests correlated with the triggering event based on the stored historical DNS information; and
storing the one or more answers, such that the one or more answers are useable by requesters making the one or more DNS requests.
21. The method of claim 1 , wherein the one or more sensors include at least one of an accelerometer or a gyroscope.