@liquidjoe the design is purposefully flexible to accommodate different âcharactersâ. In some use cases, blocking known bad is the only practical approach, but if bundled with good awareness that such a policy provides functionality but not protection, then it may be a fit for a researcher, for example. On the other hand, when protecting a hyper-focused CFO, youâd want the filter to work by default on an allow-list, so all unknown threats are automatically blocked. Both methods are possible: start with a block-known-bad, or start with allow-known-good and build from there.
Forcing all traffic to use internal DNS requires several ingredients. Blocklisting known public DNS servers is a whack-a-mole you can never win so when you force-redirect, ie. hijack TCP/UDP port 53 to your server of choice, you address all legacy custom-configured DNS servers to be answered by policy instead. Double win because endpoints get answers, but they are forcefully answered by policy.
DTTS (Donât Talk To Strangers) has the byproduct that even if thereâs some obscure hole through which DNS can be queried, those destination arenât available if they werenât queried through the required channels.
As for whose DNS filter is the best, you donât need to have that argument anymore. With DNSharmony you combine your various DNS threat intel sources into a real-time aggregation. If any of the DNS resolvers you choose deem fqdn.example.com as a threat, itâs blocked.
If Clouflareâs 1.1.1.3 says itâs bad, so be it.
If Quad9âs 9.9.9.9 says itâs bad, so be it.
If CleanBrowsing says itâs bad, fine.
And, if you need to override something because they all dislike example.com
that was hijacked yesterday but itâs your own, then you override them all. We love Dr. Paul Vixiesâ modicum âMy network, my rulesâ
As for having a blocklist that isnât too aggressive thatâs not up to us to tell. The use cases are so broad that it only makes sense that you make a policy specific to each device role type. Most of our managed clients end up with about 6-8 policies that address the orgâs needs. Hereâs a sampling of what we consider âprotection levelsâ
Protection Level 0: unfiltered â no DTTS (Donât Talk To Strangers) is enforced, no DNS is filtered, queries are upstreamed to the likes of 8.8.8.8/8.8.4.4
Protection Level 1: DNSharmony with DTTS bypass â here you combine threat intelligence from the likes of CloudFlareâs 1.1.1.3/1.0.0.3 along with Quad9, CleanBrowsing, AdGuard, etc, but with the DTTS bypass you keep full functionality of legacy IP-based applications that could break with DTTS
Protection Level 2: DNSharmony with DTTS enforcement â simply adding DTTS now offers massive protection but in a business/enterprise environment, if you have any applications on endpoints that are referencing static IPs rather than FQDNs, theyâll need to be provisioned via Enablers (think of Enablers as exemptions to DTTS)
Protection Level 3: Reflex AI with DTTS â now youâre taking advantage of per-FQDN tags, of which there are 74 fairly industry-standard ones from known-bad pornography, phishing, malware, etc and known-ok from education, government, business, economy, etc and you create as many of these policies as you like in order to fit a given role in a business, enterprise, school, church, etc⌠the key with this protection level is that the typical innocent user doesnât even know theyâre behind a filter of any kind until and unless they stumble on something in a blocked tag. The most important one here is âunknownâ, so if a given FQDN has no reputation, itâs a low popularity domain, itâs simply blocked. This is why most DGA-domains simply donât work to ensnare an intended victim with this protection level and above.
Protection Level 4: Adaptive AI with DTTS â adding strength to the previous one, the existing tags are ignored until the user actually says âunblock requestâ and then itâs a fresh sandboxed AI-driven review of the destination to make sure it is still safe at time of inspection. A vulnerable CFO or wire transfer agent is a perfect character for this type of policy.
Protection Level 5: Static Allowlist â this is just as it suggests⌠maybe it only needs to updates its Windows/Linux OS, offer the MSP remote access, make some internet-bound API calls and thatâs it. Static, safe, everything works. When a new application is installed, it goes through a workflow to confirm any new requirements are added. This is how we protect Active Directory controllers for example. In a traditional environment where endpoints all ask AD for DNS, it means AD is necessarily the most relaxed policy. Not here. Itâs the strictest policy. We describe this in more detail at adamnet.io/dttsad
Protection Level 6: Holding Tank Quarantine â this one is neat because if you make it the default, the OS âthinksâ it is online because the likes of captive.apple.com and dns.msftncsi.com and other âconnectivity checksâ pass, and thatâs it. Nothing else. When you make this the default, you get the similar intended effect as we did years ago when the industry designed NAC, but without the complexities. Just apply a default policy to yet-unknown devices so they canât do damage (including, for example, having access to AD) - think how much fun the Blue teams would have when RED teams try to implant a Pi in a boardroom ethernet port 
Protection Level 7: No internet (no boundary crossing) at all â this will cause mobile endpoints to throw up a typical captive portal page, but for devices requiring a unidirectional firewall, itâs perfect.
You get the picture. These are just examples, but when you take things from basic building blocks of inverting the old âblock known badâ to âallow known goodâ, you get all kinds of possibilities.