Skip to content

tristanluther28/network_security_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Live demo will showcase an example use case of client fingerprinting to alert users of new (unidentified) logins.

  • Similar to banking systems and Gmail which notify you of new logins

Services used

  • Firebase
  • AWS
    • Lambda Function
    • Lambda Layer
    • Cloudwatch logging
    • Simple Email Service (SES)
    • Relational Database Service (RDS)

Local softwares needed

Prerequisite Setup

  1. Configure AWS credentials and follow prompts
aws configure

Lambda backend

Setup

  1. Install dependencies
npm i
  1. Create lambda/firebaseAdminCredential.json and paste credentials you downloaded from https://console.firebase.google.com/u/0/project/<your project id>/settings/serviceaccounts/adminsdk
  2. Update database credentials in lambda/rds.js

Test locally

  1. Run local test
node test.js

Website

Setup

  1. Install dependencies
composer install
  1. Update AWS profile to your profile (typically default) in src/services/logger.php
  2. Update src/services/firebase.php with configuration from https://console.firebase.google.com/u/0/project/<your project id>/settings/general
  3. Update vapidKey in getFcmToken() in src/js/messaging.js with Web Push certificate Key pair from https://console.firebase.google.com/u/0/project/<your project id>/settings/cloudmessaging
  4. Update database credentials in src/classes/Db.php

Run

php -S localhost:8000 -t ./src

Go to http://localhost:8000

  • You must accept the notifiation popup
  • Note: website must be run on a live server (not locally) in order for ip capture to work

Troubleshooting

  • Error AwsCloudwatchLogging
    • Make sure to configure AWS credentials properly
  • Curl SSL error
    1. Download cacert.pem from https://curl.se/docs/caextract.html
    2. Go to PHP directory and update curl.cainfo = <path to cacert.pem in php.ini
    3. Restart PHP if using XAMP
  • Website is frozen or stuck loading on auth/details page
    • Disable your VPN
    • Try on a different browser like Chrome, Edge, Safari
    • Make sure you're not on an incognito tab