Idea: Have a Tagsecurity-preparednessor similar for the preventative upgrade issues so we can regularly remind the teams to upgrade their dependencies. Let's talk about this next week
Seems like a good idea, and can help increase visibility of these issues.
May also help the Security team streamline weekly meetings
Once we have the label in place and it's being used, we should update our filters/boards accordingly...
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.
Do we need to backport these fixes to Q? If so, it will need to go into CSP6
It seems clear that we DON'T need this for Poppy, but probably do need it for Quesnelia
(Craig) will clarify if the fix in mod-data-export-spring needs to be backported (See SECURITY-189 / MODDEXPSP-270 (sp?)
Today:
5 min
Policy for deprecating and eventulaly removing unsupported code
Team
The idea is to draft a proposal policy for this and run it by the TC for approval...
"mod-foo has known security vulnerabilities which are high/critical and have not been addressed in N months. If these aren't addressed within N months the repository will be archived" Something like that...
Communication will be key here... Need to sort out the details.
Proposal for a Deprecation Policy for FOLIO Modules outside of the official supported set with a Severe Security Vulnerability
Introduction
This proposal outlines a policy for the deprecation of FOLIO modules outside of the official supported set (i.e. flower releases) that are identified to have severe security vulnerabilities and have not been updated in the last three months despite being informed by the Security Team. The purpose of this policy is to maintain the overall security and integrity of the FOLIO ecosystem by deprecating and archiving unmaintained/abandoned software.
1. Objectives
Enhance Security: To mitigate risks associated with unaddressed vulnerabilities, ensuring the safety of the FOLIO project.
Encourage Maintenance: To promote regular updates and maintenance of existing modules.
Inform Stakeholders: To provide clear communication regarding the status of FOLIO modules and associated risks.
2. Pre-deprecation steps
To ensure developers have a reasonable amount of time to fix the vulnerability a three month period is started after the developers have been privately notified by the Security Team. If the notification is not acknowledged within one month, the deprecation process starts immediately.
3. Deprecation Steps after the grace time has expired
Notification:
Inform relevant stakeholders (developers, users, libraries, etc.) about the identified vulnerability and the impending deprecation of the affected module.
Provide guidance on the risks and advise on possible alternatives.
Deprecation Announcement:
Officially announce the deprecation of the module on the FOLIO community platforms (e.g., comments in README in GitHub).
Set a clear timeline for the deprecation phase, providing stakeholders with a timeline for migration. This timeline should usually be one month for modules outside of the official supported set which are not planned for the next release.
Module Removal:
Archive the GitHub repositories and update documentation to reflect the changes and indicate alternative solutions.
4. Exceptions
Modules that are part of a larger, ongoing development project with a clear and communicated timeline for resolution may be exempt from immediate deprecation.
Modules that have an active and engaged community working toward updates or patches may be considered for extended timelines.
5. Conclusion
The proposed deprecation policy aims to create a safer ecosystem for all FOLIO users by addressing severe security vulnerabilities in a timely and organized manner. By implementing this policy, we can ensure that the FOLIO platform remains robust, secure, and adaptable to the evolving security landscape.
Snyk review - the go modules (mod-reporting, eureka-setup) have 5 criticals, but they are false positives, Snyk is wrong. Other vulnerability tools for go don't report them.
These have been "ignored" in snyk. We may want to report these false positives to Snyk.
SECURITY-218
-
Getting issue details...STATUS
was discussed. Eureka team should provide details. Craig McNally will coordinate.
66 high severity issues for perf-testing... Probably don't have JIRAs for these, but if we can get them created, it's possible that PTF can make some progress on resolving some of these.
Discussed vulnerabilities raised against ui-users where the yarn.lock file specifies a vulnerable version of jspdf → dompurify. Ryan Berger will look into how this yarn.lock file is maintained.
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