Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Ontwerp voor uploads vertrouwelijke bestanden

15-08-2015, 12:55 door SecOff, 8 reacties
Laatst bijgewerkt: 17-08-2015, 13:09
<edit: internet, browser een specs verbindingen toegevoegd>

Een klant wil een website waar derden vertrouwelijke documenten kunnen uploaden. Toegang tot deze documenten moet goed beveiligd zijn tegen eventuele hacks van buitenaf. De documenten hoeven na het uploaden niet meer voor de uploaders toegankelijk te zijn.

Nu heb ik het volgende ontwerp bedacht:

Backend-DB <-> Backend-App -> Firewall -> Frontend-DB <-> Frontend-Webapp <-> Internet <-> Webbrowser Gebruiker

* De Frontend-Webapp en Frontend-DB staan op een server met 2 netwerk interfaces.
* De interface waarop de Frontend-Webapp luistert is alleen (op de webserver alleen met een goed geconfigureerde https verbinding) bereikbaar vanaf het internet.
* De interface waarop de Frontend-DB luistert is alleen bereikbaar vanaf de Backend-App server.
* De Backend-App en Backend-DB staan op een server die niet vanaf internet bereikbaar is.

De Frontend-Webapp wordt gebruikt om vertrouwelijke bestanden te uploaden naar de Frontend-DB. (via de localhost interface)
De Backend-App monitort of er nieuwe bestanden worden geplaatst in de Frontend-DB, kopieert deze bestanden naar de Backend-DB en verwijdert ze daarna.

De firewall staat alleen statefull connecties toe van de Backend-App naar de Frontend-DB

Zien jullie nog verbeteringen voor dit ontwerp?
Reacties (8)
15-08-2015, 14:35 door Anoniem
je kan ook google docs nemen

kan je naar ook documenten delen.
17-08-2015, 09:06 door Anoniem
Als je iets aan het internet hangt kan het nooit goed beveiligd zijn tegen hacks.
17-08-2015, 10:49 door Anoniem
Misschien kan je voor de duidelijkheid internet ook nog even intekenen.
Verder mis ik nog hoe de communicatie over internet verloopt:
'k zou minstens https met sterk certificaat, cipher en protocol adviseren, of wellicht nog beter: een eigen VPN-tunnel.
17-08-2015, 13:58 door Anoniem
Ik zou een firewall tussen frontend en internet aanraden.
Voor de rest is het mij niet duidelijk of het systeem een "dropbox" moet zijn voor anonieme bezoekers (dan moet je rekening houden met documenten met "payload" aan de backend kant) of dat het bedoeld is om gebruikt te worden door een vertrouwde groep "zakenrelaties" (dan is het de moeite waard om te investeren in authenticatie voor het front-end.)
17-08-2015, 16:00 door Anoniem
De front end server kan je ook configureren dat deze alleen maar bepaalde type bestanden (bijv pdf) mag laten uploaden en hoe groot het bestand mag zijn.

Tevens de type commando's afschermen. denk hierbij HTTP post, get etc.

Captha invoeren

De firewall doet alleen filtering op port? Het verkeer moet je ook inspecteren, denk aan een Palo Alto...

(windows) firewall configureren op de servers, antivirus.

geen admin accounts gebruiken voor de applicatie (app, db), maar werken vanuit de least privilege rol.
17-08-2015, 20:55 door Anoniem
Na het uploaden (of misschien tijdens al) direct voorzien van een versleuteling met bijvoorbeeld PGP.
Private key alleen op je interne server laten staan.
Als de klant het bestand op de front-end heeft gezet. De back-end het met een job laten ophalen en het van de front-end deleten. De initiatie dus laten lopen vanaf de back-end zodat je daar geen poorten naar binnen hoeft open te zetten.
17-08-2015, 21:51 door Anoniem
Het valt of staat denk ik met hoe goed de code is van het software pakket dat je gaat gebruiken.
En natuurlijk met hoe snel je updates installeert.

Geen virus/malware scanners ertussen trouwens?
18-08-2015, 13:54 door SecOff
Dank voor de reacties: aan de virusscanner, beveiliging tegen "payload" uploads en protocol inspectie had ik inderdaad ook al gedacht. Er komt zowiezo authenticatie voor aan de Front-end Webapp. Uitsluitend een pull actie vanaf de back-end was al gepland. De PGP optie met de secret key alleen op de interne server had ik nog niet aan gedacht en is ook een goed idee, ga ik zeker naar kijken.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.