Inspiration

With phishing attacks becoming more common, especially here in Ireland, where many people unintentionally click on phishing SMS and emails, I wanted to build a solution that empowers users to protect themselves and their data. Many people unknowingly fall victim to these attacks, compromising sensitive information. PhishTank was inspired by the need to provide a comprehensive, user-friendly tool that detects phishing attempts in real-time and educates and informs users through personalized security recommendations.

What it does

PhishTank analyzes phishing messages and scam information using Google Gemini, and also lets user know if their email has been affected by a breach, and details about it. The app also analyzes user data with user consent to provide them recommendations and suggestions including reminding users to constantly change their passwords.

How we built it

The app is built for macOS using SwiftUI, and Google Gemini along with Google Cloud Functionalities, such as Google Cloud IAM, Firebase, Firebase Firestore, Google Cloud Run, Google Cloud Secret Manager and Cloud Scheduler. The app is designed for macOS and can quickly be translated into iOS or iPadOS app due to the ARM architecture that the mac application was built on. As, an extra step I had also designed Github Actions to build and deploy macOS application as a release, so I decided to integrate this action with Google Gemini, to analyze my previous commits, and commit message to understand what I had done to add to the release description. The backend is hosted on Google Cloud Run, to which a request is made whenever user triggers phishing or breach attempt. If a user has opted in for monitoring, then the Cloud Scheduler will pick up the user's phishing data and process it to Gemini for recommendation purposes. The Cloud Scheduler task runs every 1 hour, where it makes a request to GCP Cloud Run endpoint.

Challenges we ran into

Understanding where I could use Google Gemini within the app was a little challenging, and writing prompts such that Gemini would return the exact data was a little complex, but I got around it eventually. On an architectural level basis, I had to understand how the backend would work with complex data storage and processing, so I initially decided to write the backend in Swift for Google Cloud Run to process, but was quite a challenging process with Debugging, even after I had written the Dockerfile. However, I then moved on to use .NET, so I had lost a chunk of time with Swift.

Accomplishments that we're proud of

Finally built a prototype of the app, with some known bugs, such as sign in with Firebase is a little buggy, but Google Signin for the win.

What we learned

How to use leverage Gemini for creating powerful phishing apps, and the tech behind it, involving integration and maximizing GCP Cloud Run and Cloud Scheduler to create a monitoring functionality based on users' phishing data to ensure that users dont fall for scams and phishing texts.

What's next for PhishTank

Fixing all the existing bugs, and creating a more better UI for the macOS app. As a backend developer, all the backend code looks perfect to me, but having a good friendly user interface is definitely needed.

Built With

Share this project:

Updates