YADS
Yet Another DNS Sinkhole(GitHub Link)
Inspiration
Earlier installing an effective URL blocking system (which blocks advertisements, trackers, and malware URLs) was either very tremendous and time is taken work or not any free application was available, and it has to be updated manually.
What it does
We simply automated it in just one single click! Its simply going to block/update millions of URLs just with a single click.
The primary objectives of this project are building: a DNS Sinkhole application (which blocks advertisements, trackers, and malware URLs and updates the database regularly)
- open source license (not decided with one exactly)
- mainly written in C language, for fast performance.
- should handle at least millions of URLs efficiently.
- easy interface for both GUI and CUI/CLI.
How we built it
- Using C programming language (for also greater compatibility in Linux based systems and perform fast operations)
- CMake (to build the project, so it can be built on almost every system)
- using basic fundamental C libraries like GTK4 and cURL Lib.
- using Linux builtin DNS system
Challenges we ran into
- Understanding how networking works on Linux-based systems.
- Built by using CMake, as it should be compactable with the majority of systems.
- working on C Projects means the very easy introduction of bugs, so maintaining very good debugging/testing habits.
Accomplishments that we're proud of
- Our theoretical implementation works perfectly fine! As we already tested and learned all major components and how it works.
- Good code implementation, that itself removing the possibility of a lot of future bugs.
- the decentralized way we access different databases, maintaining net neutrality completely.
What we learned
- how networking, especially DNS resolving on Linux works.
- how to use GTK4 (for GUI using C), cURL, and RestAPI.
- how to build C/C++ application using CMake and Makefiles.
- Using Linux as a Virtual Operating System.
What's next for SW - F08
Trying to build a decentralized open database of active malware links, using blockchain.
- aims to provide a free and open database for malware links and hashes
- anyone can submit URLs having malware with proof (like virus-total results, hash results) and some stake initially
- if the proof is valid, its added to the database.
- if a proof is not valid, then the stake by the provider is lost.
- This database is automatically added to the DNS sinkhole, and with help of zero-knowledge proofs, it's been known which URLs are actually saved.
- then on basis of this an award is shared with the data "providers".
Build the Project
Build project using CMake
cd <project directory>
mkdir build && cd build
cmake ../
cmake --build .
And then Install application using
sudo ./yads init
Log in or sign up for Devpost to join the conversation.