2024-12-05 Meeting notes

Date

Attendees

Discussion items

TimeItemWhoNotes
0 minIssue tagging ideaJens Heinrich

Idea: Have a Tag security-preparedness or 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...
    • Exclude these by default 
    • Add a quick filter?
    • etc.
  • Jens Heinrich will try to update the filters
  • Do we need other tags as well?  e.g. "EOL"?
0 minJira Group and Security Level reviewTeam

From Craig in slack:

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:
  1. Add descriptions to each of the security groups, like we have for "FOLIO Security Group"
  2. Maybe add a new security group and level for FOLIO devops
  3. Review membership of each of these groups and remove users no longer on the project
  4. Review the Security Level -> Group mappings.  Some of these don't look quite right to me.

  • If it makes this easier, we could invite Peter to a meeting so we can see the groups/levels interactively and makes adjustments as we go
  • Not exactly this, but related... 
    • Issues submitted to the SECURITY JIRA project should automatically be embargoed (Security Level = Folio Security Group)
    • The submitter of issues to the SECURITY JIRA project should be able to view issues they submit, regardless of their Security Level
    • Email notification sent to the Folio Security Group when an issue is created in the SECURITY Jira project.
  • ActionCraig McNally to setup a meeting with Peter and representatives from the Security Team to work through these things after WOLFcon?  
    • We need to look into how security level configuration works to gain a better understanding of why it behaves the way it does.  
      • Why do we have All Folio Developers in the "Sys Ops and Core Team" security level?

Today:

  • (Craig) no progress due to lack of time to spend on this.  Does someone else have time to work through this with Peter?
0 min

SECURITY-177 - Getting issue details... STATUS SECURITY-182 - Getting issue details... STATUS SECURITY-189 - Getting issue details... STATUS

Team

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: 

25 minPolicy for deprecating and eventulaly removing unsupported codeTeam

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.

Today:

Jens Heinrich created a draft and Julian Ladisch gave inputs on better handling of edge cases


Proposal draft
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.



A dedicated page has been created at  https://folio-org.atlassian.net/wiki/x/KAAHJw

*

Anything Urgent?
Review Mike's Kanban board?
Review Security board?
Review labels=security?

Under Review Filter:  Getting issues...

Team
  • Snyk review - criticals!
  • mod-reporting has 5 critical issues
    • Uses Go language
    • TC has officially decided that FOLIO will support Go language for module development.  The OST pages have not yet been updated.
    • Would need for Go language to be approved and mod-reporting needs to be approved by TC to be included in Sunflower release
    • Other modules that are used in production are higher priority to address
  • mod-graphql has 1 critical issue
    • Mike Taylor is the owner. Need to reach out to see if he can fix the issue. If he is not available, need to go through TC. MODGQL-160 - Getting issue details... STATUS
  • SECURITY-218 - Getting issue details... STATUS was discussed.  Eureka team should provide details.  Craig McNally will coordinate.
Topic Backlog
Time permittingAdvice for handling of sensitive banking informationTeam

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.  

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

Due to some absences on different reasons the group stalled. Axel will try to reactivate the group.


Okapi Debian Package FOLIO-3896 - Getting issue details... STATUS
  • We're officially dropping support for this going forward - no new debian packages will be created.
  • Once the last version of the debian packages is out of the support window we can call this done.
  • Revisit this around Ramsons GA

Action items

  •