Most people think about cybersecurity in terms of passwords, malware, and hacking. We wanted to focus on a quieter problem: how seemingly harmless pieces of public information can become much more revealing when connected together.
A username on one platform, an email address on another, and a public profile might seem insignificant individually. But when those pieces can be correlated, they can create a much clearer picture of a person’s digital identity. We built AttackGraph to make that invisible connection visible.
We realized that individual pieces of public information can become much more revealing when connected. A username, email, and public profile may seem harmless alone, but together they can expose a much clearer digital identity.
AttackGraph visualizes a user's public digital footprint as an interactive graph, showing how accounts and information may be connected. It highlights potential exposure paths and provides recommendations for reducing unnecessary exposure.
The backend is Python/FastAPI, it pulls public data from GitHub's API, checks 15 other sites for username reuse, and looks up Gravatar, then scores how confidently those pieces connect. The frontend is Next.js with React Flow for the graph, showing attack paths, what your data reveals when combined, and a "remove this" simulator that shows what breaks if you delete something.
Our biggest challenge was distinguishing real connections from coincidences. We had to account for uncertainty rather than treating every matching username or piece of information as proof.
We're proud of turning an abstract cybersecurity concept into something users can actually see and interact with. Instead of simply listing exposed information, AttackGraph shows how that information can connect.
We learned that cybersecurity isn't always about one dangerous piece of information. Often, the real risk comes from how seemingly harmless information can be combined.
In the future, we want to improve relationship detection and add more public data sources,
