🗃️
PropScreen
  • PropScreen Overview
  • Introduction
    • The Problem
    • Problem Importance and Impact
    • Solution Overview
      • How Propscreen Addresses the Problem
      • Use Cases
      • User Personas
  • System Architecture
    • Core Components of Propscreen
      • PropScreen's Checks
      • Context Strings Database
      • Hashed Organizational Sensitive Information
      • Interdiction Log Database (Reports)
    • Architecture Overview
    • Sequence Diagrams by Use Case
      • Use Case 1 Sensitive Information Disclosure Interdiction
      • Use Case 2 Logging of Interdiction Events
  • Project Considerations
    • Threat Modeling
      • Key Threats
      • Key Threat 1
      • Key Threat 2
      • Key Threat 3
    • Secure by Design
    • Alternative Solutions
      • NER and Regex Based Scans
      • Traditional Data Loss Prevention
    • PropScreen's LLM Implementation
  • The Proof of Concept
    • Demo Video
    • Try the Proof of Concept
  • Going Forward...
    • SIEM Integration
    • Role Based Access Control Dependent Response Filtering
    • The Good, The Bad, and the Learning
Powered by GitBook
On this page
  • Containerization Locally and In "Production"
  • Acknowledgements
  1. The Proof of Concept

Try the Proof of Concept

PreviousDemo VideoNextSIEM Integration

Last updated 9 months ago

Go to our to clone the repository and follow these instructions.

Containerization Locally and In "Production"

Flask Env File

Before deployment you need to create a .flaskenv file with the following information

SECRET_KEY=your_secret_key
FLASK_APP=flask_for_startups.py
FLASK_DEBUG=1
FLASK_CONFIG=dev
DEV_DATABASE_URI=postgresql://postgres:postgres@db/postgres
TEST_DATABASE_URI=postgresql://postgres:postgres@db/postgres
REMEMBER_COOKIE_HTTPONLY=True
SESSION_COOKIE_SAMESITE=Lax
AWS_ACCESS_KEY_ID=YOUR_AWS_KEY
AWS_SECRET_ACCESS_KEY=YOUR_AWS_ACCESS_KEY
AWS_DEFAULT_REGION=YOUR_AWS_REGION
PGADMIN_DEFAULT_EMAIL=YOUR_DEFAULT_ADMIN_EMAIL
PGADMIN_DEFAULT_PASSWORD=YOUR_DEFAULT_ADMIN_PASSWORD
PGADMIN_DISABLE_POSTFIX=true
PGADMIN_LISTEN_ADDRESS=0.0.0.0
PGADMIN_LISTEN_PORT=3000
MASTER_PASSWORD_REQUIRED=False
CONTEXT_BUCKET=YOUR_AWS_S3_BUCKET_1
CONTEXT_OBJECT=YOUR_AWS_S3_CSV_FILE_1
ORG_SI_HASH_DB=YOUR_AWS_S3_BUCKET_2
HASHES_OBJECT=YOUR_AWS_S3_CSV_FILE_2

Set up Credentials for PGAdmin

export PG_USER=postgres
echo "$(cat <<EOM
{
  "Servers": {
  "1": {
      "Name": "PropScreen_DB",
      "Group": "Server_Group_1",
      "Port": 5432,
      "Username": "$PG_USER",
      "Host": "db",
      "SSLMode": "prefer",
      "MaintenanceDB": "postgres"
    }
  }
}
EOM
)" > .pgadmin_servers.json

Build and Launch the Containers

Locally:

Only starts the containers that make sense on the localhost, e.g. Caddy is skipped because it won't be able to manage the SSL certificates for the production domain from the NAT'd LAN anyway.

docker compose up app db pgadmin

If you've made changes to the source code that you need the be included in the "app" container (the flask app) then you can do this (the extra --build flag)

docker compose up app db pgadmin --build

In "Production" (starts all 4 of the containers, including Caddy):

docker compose up -d

Create an account

Go to this URL

http://localhost:5000/register

Create your credentials

Go to this URL

http://localhost:5000/login

Enter your credentials

You will be brought to the interface page after successful authentication

You are now free to try the PropScreen Proof of Concept!

If you need to wipe the database

docker compose down -v

Acknowledgements

Nuvic's Flask For Startups, pgAdmin, caddy, LLM Guard,

GitHub
link here
link here
link here
link here
Register Page
Login Page
Main Page