Inspiration

We wanted to bridge the gap between enterprise security and everyday users—so many people fall victim to phishing, malware, and data leaks simply because the tools are too complex or expensive. ShadowSec was born from a past experience we both faced at our old workplace, where a staff member got phished causing our community college to face a ransomware attack. This led to financial losses, operational disruption, and reputational damage.

What it does

  • Secure File Vault: Encrypts Docs Client-Side in‑browser and uploads them to AWS S3 Storage; only holders of the decryption key can read the files.
  • AI‑Driven Phishing Detector: Paste an email or URL, get a “Safe / Suspicious / Phish” response, plus a plain‑English breakdown of why it is was rated as so.
  • Interactive Security Coach: Chat with an AI assistant to learn about phishing, malware, and best practices through personalized scenarios and quizzes.
  • Incident Post‑Mortem Generator: Upload log files or connect your cloud audit trail to auto‑generate detailed breach reports, timelines, and remediation steps.

How we built it

  • Frontend: React with Tailwind CSS for rapid UI components and responsive layouts.
  • Frontend: Material Tailwind React + lucide‑react/Heroicons for ready‑made components and icons
  • Encryption: for encryption we used Web Crypto API1 for browser key generation and file encryption/decryption
  • Storage & API: AWS S3 (presigned URLs) and MongoDB to store MetaData
  • AI Integration: Lightweight backend endpoints call Gemini to scan text for phishing indicators and inform users about the dangers of malicious online threats via an integrated chat interface. It also scans log files to inform users potential or actual attacks and generates a detailed report on various topics.
  • Backend: Express.js handles presigned‑URL generation and AI‑scanner proxy.

Challenges we ran into

  • Client‑side crypto complexities: Managing key generation, passphrases, and large‑file streaming in the browser took careful tuning to avoid performance bottlenecks.
  • Connecting to the Gemini API: Setting up authentication, environment variables, and CORS‑compatible endpoints to securely proxy requests from our frontend.
  • CORS & security headers: Locking down S3 buckets and ensuring secure cross‑origin requests without exposing credentials.

Accomplishments that we're proud of

  • Fully zero‑knowledge file encryption working end‑to‑end in the browser.
  • Seamless presigned‑URL workflow to AWS, eliminating the need for server‑side file storage.
  • A clear, user‑friendly phishing detector that educates users in real time, not just flags content.

What we learned

  • Client‑side Encryption Workflows: Gained deep understanding of the Web Crypto API and OpenPGP.js for seamless in‑browser key generation, encryption, and decryption without blocking the UI.
  • AI API Integration: Learned the ins and outs of the Gemini endpoints— streaming vs. non‑streaming calls, and shaping requests to get reliable, non‑hallucinatory responses.
  • **How to integrate and fine‑tune an LLM (Gemini) for domain‑specific tasks like scam detection.
  • Error Handling & Resilience: Built robust retry and back‑off logic for network failures and rate limits, ensuring the UI stays responsive under real‑world conditions.
  • Full‑Stack Security Best Practices: Reinforced the importance of zero‑knowledge principles, secure environment variable handling, and least‑privilege IAM roles in both front‑end and back‑end code.

What's next for ShadowSec

  • Vulnerability Explainer: Let users paste logs or CVEs for on‑the‑fly vulnerability breakdowns.
  • CloudTrail & Log Integration: Connect AWS CloudTrail (or other audit logs) for real‑time threat intelligence and automatic incident post‑mortems.
  • Community Hub: Add shared threat‑bulletin boards and collaborative phishing simulations to foster peer learning.
  • Mobile Support: Ship a lightweight React Native client for on‑the‑go security awareness.

Built With

Share this project:

Updates