Zak: Lax doesn't really buy us anything, we should use either none or strict. This is because stripes is an SPA. It's the backend that cares/uses the cookies, the frontend doesn't know anything about these since they're http-only cookies.
This comes up when using deep links, e.g. to other domains
Update from Zak (6/13):
WRT LOGIN_COOKIE_SAMESITE env variable in mod-login, Steve Ellis and I chatted and confirmed we could default to Strict instead of Lax without any downside.
He will create JIRAs for mod-login and mod-login-keycloak to adjust the default, and if needed we can create another story for devops if they're overriding the default for hosted reference envs.
Action: Craig McNally to touch base with Zak on progress of the Jira creation.
Some feel that the hosted reference envs should be setup like production (e.g. SAMESITE=Strict). However that interferes with UI developer's ability to point a local build of the UI at these envs.
Potential compromise: configure one of the snapshot envs to have Strict, and the other to have None.
I've been in communication with David Crossley, Wayne Schneider, John Malconian and Peter Murray about the issue above. They apparently didn't have access to these embargoed issues (SysOps and Core Team). Peter shared this screenshot with me, which doesn't look right. I'd like to review this at one of our meetings and come up with a list of changes/improvements for Peter to make. A few ideas off the top of my head:
Add descriptions to each of the security groups, like we have for "FOLIO Security Group"
Maybe add a new security group and level for FOLIO devops
Review membership of each of these groups and remove users no longer on the project
Review the Security Level -> Group mappings. Some of these don't look quite right to me.
on or if they don't have bandwidth, and the debian packages aren't used anymore, archive them. It sounds like some SysOps do use this, but we know that DevOps has very little bandwidth these days.Image Modified
There is potential for a conflict between Strict Transport Security Header and the proxy approach used for cookies with SameSite=Strict. We need to think through how this will work.
Problems stem from UI devs hosting dev builds of the UI locally (e.g. http://localhost:3000), and pointing to a hosted backend (e.g. folio-snapshot).
Maybe we can make the proxy listen on https (using a self-signed cert)
Jens proposed the idea of rewriting the cookie domain in the proxy
What about CORS though?
Action: John Coburn will discuss this with the dev who implemented the proxy stuff in stripes-cli.
Today:
TODO: Need to review/triage new SECURITY issues reported (found via PRISMA scan):
Today:
Unembargoed several issues which were rejected/completed (SECURITY-171-178
Jira Legacy
server
System Jira
serverId
01505d01-b853-3c2e-90f1-ee9b165564fc
key
SECURITY-177
remains open. See also
Jira Legacy
server
System Jira
serverId
01505d01-b853-3c2e-90f1-ee9b165564fc
key
SECURITY-182
Action: Craig will provide updates via slack as Taras digs into this.
Action: Julian Ladisch to create a brief wiki page listing 3rd party dependencies/frameworks/etc. which are out of support. Maybe we should link to this from the flower release notes?
Topic Backlog
Time permitting
Advice for handling of sensitive banking information
Team
From slack conversation, I think I've gathered the following:
In this case (bank account and transit numbers), the information is highly sensitive.
Highly sensitive information should:
Be stored in it's own table
Accessed via a dedicated API
Protected by a dedicated permission
Encrypted in the database, not only on disk.
This could mean either:
Explicitly encrypting/decrypting in the application layer and storing the encrypted data in postgres
Let's review and discuss before providing this feedback to Raman.
Axel Dörrer also suggested that defining classes of sensitivity could help teams determine which techniques are applicable in various situations. I agree having some general guidelines on this would be helpful.
regular data
low sensitive - permission based on same API
high sensitive - permission based on dedicated API
It would probably help to provide concrete examples of data in each class. This can be a longer term effort, we don't need to sort out all the details today.
Next Steps:
Clearly define/formalize the various classes
Come up with concrete examples of each class
Build out guidance
Come up with concrete examples of how to protect each class of data.
Consider storing some classes of data outside of postgres altogether - e.g. in secret storage.
What would be the guidance we provide to teams for this so we don't end up with each team doing things differently?
SecretStore interface and existing implementations are currently only read-only. They would need to be extended to allow for creation/mgmt of this information.
Craig to start a conversation in slack about this.
Seeking a volunteer to generate a draft document for us to review at a later meeting.
Today:
Axel Dörrer to do a first draft as a base for further discussions
Status on pentesting works within Network traffic control group