Code Monkey home page Code Monkey logo

mijn-nijmegen's People

Contributors

bramwithaar avatar github-actions[bot] avatar joostvanderborg avatar marnixdessing avatar martijnvdijk avatar wietekenijmegen avatar wvdeeckhout avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

marnixd

mijn-nijmegen's Issues

Bij lege sessiecookie (na logout) probeert app sessie toch te updaten

Er komen errors uit de logout-functie mbt dynamodb-queries met een lege param:

2022-05-03T14:51:41.950Z 5122398c-0ae1-48e8-b5e0-fb606b84ecce ERROR Error updating session in DynamoDB: ValidationException: One or more parameter values are not valid. The AttributeValue for a key attribute cannot contain an empty string value. Key: sessionid

Dit komt doordat de sessie-cookie geleegd wordt, maar in de sessie-handler niet goed gekeken werd of de sessie-cookie afwezig óf leeg was.

Least-access role voor toegang tot de aws resources

  • lees toegang tot de Lambda functies (om bv de configuratie te kunnen zien)
  • Lees toegang tot de cloudwatch logging van de lambda functies
  • lees toegang tot de cloudwatch Lambda insights (bij voorkeur alleen voor deze lambda's, maar vooralsnog geen probleem als ook de data van andere lambda's te zien is)
  • lees toegang tot de DynamoDb session store
  • GEEN toegang tot de KMS key waarmee DynamoDb encrypt wordt

Deze role is bedoeld voor:

  • beheerders van aws omgeving
  • pentester

WAF inrichten

  • WAF toevoegen + koppelen aan Cloudfront
  • Logging WAF regelen

Opzetten dynamodbclients e.d. buiten handler-functie lambda's

Zoveel mogelijk in de setup doen, zodat de lambda's in requests sneller zijn.

session.js bevat this.dbClient = new DynamoDBClient();
const secretsManagerClient = new SecretsManagerClient();
in OpenIdConnect.js
daar ook nog omdat er limieten zitten aan aantal requests/sec naar parameter store/secretsmanager

Certificaat aanmaken voor mijn.nijmegen.nl en mijn.csp-nijmegen.nl

Certificaat moet aangemaakt in us-east-1 (voor Cloudfront). DNS validation gaat automatisch voor cap-nijmegen.nl, maar niet voor nijmegen.nl.

Opzet: Om CloudFormation zover te krijgen dat het ook valideert als de records voor nijmegen.nl al bestaan, maken we een zone aan voor *.nijmegen.nl en zetten we daar validatierecords in. Daadwerkelijke validatie gebeurt met de 'echte' dns-servers.

Waf is uitgebreider dan nodig, volgorde kan anders en geen leesbare naam

De Waf heeft een gegeneerde naam, ipv een leesbare. Op zich handig, maar niet voor analyse icm Athena e.d.
In de WAF staan ook rulesets aan die helemaal niet aan hoeven, omdat ze niet van toepassing zijn (elke ruleset die aanstaat kost geld, nog los van het verkeer dat erdoor gaat).
Zie ook het hoofdstukje 'AWS WAF Web ACL capacity units (WCU)' hier: https://docs.aws.amazon.com/waf/latest/developerguide/how-aws-waf-works.html

Rulesets die volgens mij uit kunnen:

  • AWS-AWSManagedRulesKnownBadInputsRuleSet (lijkt voornamelijk gericht op java exploits)
  • AWS-AWSManagedRulesAdminProtectionRuleSet (er zijn geen admin pages om te exposen)
  • AWS-AWSManagedRulesSQLiRuleSet (afhankelijk hoe de code werkt, maar aangezien die een api aanroept en niet zelf een sql-call doet lijken deze ook niet nodig).
  • AnonymousIp: we willen faciliteren dat inwoners met een anoniem ip (bv een vpn) gebruik kunnen maken van onze diensten.

suggestie voor de volgorde (want bij een block is het request meteen eruit)

  1. bot control ruleset
  2. rate-limiter obv ip (zie de WAF van de webformulieren), om ddos scenario's te voorkomen.
  3. Amazon Ip Reputation
  4. ManagedRulesCommonRuleset

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.