Git Product home page Git Product logo

gosdl's Introduction

goSDL

About

goSDL is a web application tool that serves as a self-service entry point for following a Security Development Lifecycle checklist in a software development project. This tool collects relevant information about the feature, determines the risk rating, and generates the appropriate security requirements. The tool tailors the checklist to the developers’ specific needs, without providing unnecessary unrelated security requirements. Security experts can establish custom security guidance and requirements as checklist items for all developers. This checklist is used as a guide and reference for building secure software. This encourages a security mindset among developers when working on a project and can be used to easily track the completion of security goals for that project.

Goals:

  • Self service : Provide self service tool for Project Lead or Developer to get a Security checklist related to their project.
  • Specific : Project Lead or Developer can pick and choose specific components related to their projects. The tool will tailor the checklist to their specific needs without providing unnecessary unrelated checklist items.
  • Standardize : Security team can create a standardized risk assessment and checklist related items throughout the organization.
  • Pluggable and customized components : JSON base components that are easy to modify and update.

General Usage

  1. At the middle or near the end of completion of a project, have a technical person complete the SDL form.

  2. After the initial risk assessment is completed, please complete the Component checklist on the next page. The person filling out this form should check anything that is relevant to the code / feature (language-wise and context-wise) and uncheck anything that they know will always be irrelevant to the project. It's ok to check more things than you need, as there's a way to "uncheck" them later.

  3. After the form is submitted there will be a JIRA ticket or Trello board created with the checklist items.

  4. The goal of the SDL is to have everything checked off. If there is an issue with one of the items, please feel free to ask the Security team for advice and steps on how to move forward. Ideally, a fully-completed SDL checklist will expedite the security review requirement.

Using Trello

Trello is a web-based project management application that has powerful checklist support to enable you to organize your projects.

To use Trello as part of this tool, enable the Trello setting in the include/.env. You also need to generate your Trello application key from https://trello.com/app-key. When using Trello, you don't need to specify any other setting in this file.

TRELLO=true
TRELLO_API_KEY=xxxxxxxxxxxxxx

When the web page loads, it will require the user to authorize the app to get their access token to Trello. The output of this tool will create a link to a Trello board that contains security checklist items that can be used by the development team to follow the security guidelines.

Using JIRA Enterprise

Currently, this tool only supports JIRA Enterprise (on Premise) and doesn't support JIRA Cloud. This is because we need the support from scriptrunner to create the additional REST API endpoint used to populate the checklist plugin. There are some Add-on dependencies required in your JIRA before using this tool:

  1. ScriptRunner for Jira Required to create an additional JIRA API to update custom checklist in a ticket.
  2. Checklist for Jira Enables the checklist custom field in JIRA tickets.

Settings:

  1. Add a custom REST API in scriptrunner.

    • Go to "Administration" -> "Script Runner" -> "Custom Endpoint"
    • Fill out the inline script with the script in scriptrunner/Scriptrunner_REST_API.groovy
  2. Create the checklist custom field for each individual SDL component. These custom fields will be used as a placeholder template for the security checklist item.

    • Go to "Administration" -> "Issue" -> "Custom Fields" -> "add custom field"
    • Enter "SDL General" as the name. Configure the checklist custom field to not have a default option. You can also associate the new checklist custom field with a specific issue type.
    • Also note your custom field id when configuring the new custom field. You can get the id # from the URL (e.g https://your_domain.com/secure/admin/ConfigureCustomField!default.jspa?customFieldId=11909). The custom field id on this sample is "customfield_11909". This value is required when setting the .env.
    • Later you need to update your JIRA screen to include this new checklist custom field. Please reach out to your JIRA adminstrator to get more information on how to setup your project with custom checklist.
  3. After setting your project, you need to set the .env file. Sample file:

    JIRA_USERNAME=username
    JIRA_PASSWORD=password
    
    JIRA_PROJECT=PRODSEC
    JIRA_URL="https://your_domain.com"
    
    JIRA_GENERAL_FIELD=customfield_111
    JIRA_LANGUAGE_FIELD=customfield_112
    JIRA_NATIVE_FIELD=customfield_113
    JIRA_PARSING_FIELD=customfield_114
    JIRA_WEB_FIELD=customfield_115
    JIRA_THRIDPARTY_FIELD=customfield_116
    JIRA_LEGAL_FIELD=customfield_117
    JIRA_QA_FIELD=customfield_118
    

    Description:

    • JIRA_USERNAME : username of you jira account. Highly recomended to use a service account in your jira

    • JIRA_PASSWORD : your jira account password

    • JIRA_PROJECT : your JIRA project key (e.g. PRODSEC)

    • JIRA_URL : your JIRA enterprise API (e.g. "JIRA_URL="https://your_domain.com)

    • JIRA_GENERAL_FIEL : checklist custom field for SDL General (e.g. customfield_11909)

    • JIRA_LANGUAGE_FIELD : checklist custom field for SDL Language

    • JIRA_NATIVE_FIELD : checklist custom field for SDL Native Clients

    • JIRA_PARSING_FIELD : checklist custom field for SDL Parsing

    • JIRA_WEB_FIELD : checklist custom field for SDL Web

    • JIRA_THRIDPARTY_FIELD : checklist custom field for SDL Third Party and External

    • JIRA_LEGAL_FIELD : checklist custom field for SDL Legal & Policy

    • JIRA_QA_FIELD : checklist custom field for SDL QA

Usage

  1. git clone [email protected]:slackhq/goSDL.git

  2. composer install

  3. cp include/env-sample include/.env then modify the .env setting to fit with your enviroment.

    TRELLO=true
    TRELLO_API_KEY=
    
    JIRA_USERNAME=
    JIRA_PASSWORD=
    
    JIRA_PROJECT=
    JIRA_URL=
    
    JIRA_GENERAL_FIELD=
    JIRA_LANGUAGE_FIELD=
    JIRA_NATIVE_FIELD=
    JIRA_PARSING_FIELD=
    JIRA_WEB_FIELD=
    JIRA_THRIDPARTY_FIELD=
    JIRA_LEGAL_FIELD=
    JIRA_QA_FIELD=
    
  4. cd www

  5. php -S localhost:8000

  6. Visit http://localhost:8000/sdl.php

Usage with docker

  1. Build locally: docker build -t gosdl .

  2. Run it: docker run -ti --rm --env-file <your dotenv> -p 8080:8080 gosdl

  3. Visit http://localhost:8000/sdl.php

Customize the checklist contents

Follow this guide to understand the structures of the SDL contents.

gosdl's People

Contributors

fyunaz avatar gvarisco avatar pieterlange avatar xenph avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gosdl's Issues

Jira Cloud support

Description

Scriptrunner for Jira was released for Jira Cloud on May 1 18 (about four days after your article on medium. https://slack.engineering/moving-fast-and-securing-things-540e6c5ae58a

Does this mean that this would work now for Jira Cloud? Its an awesome idea!

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Fix contributing link

Description

When opening a PR or issue, a link to the Contributing guidelines is provided. That link is broken. It is pointing to https://github.com/slackhq/goSDL/blob/master/.github/contributing.md instead of https://github.com/slackhq/goSDL/blob/master/CONTRIBUTING.md.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Reproducible in:

{project_name} version: N/A

{platform_name} version: N/A

OS version(s): MacOS 10.15.7

Steps to reproduce:

  1. Submit a PR
  2. Click on the Contributing Guidelines link
  3. Observe

Expected result:

Link works

Actual result:

Link doesn't work

Attachments:

image

Where does this log?

Description

I'm having a problem where the ticket just isn't getting created. Where does the application log?

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • [x ] question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • [ x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

{project_name} version:

{platform_name} version:

OS version(s):

Steps to reproduce:

Expected result:

What you expected to happen

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

Slack for Debian suffers from segfault

Updated my Kali Linux box (Debian based distro x64 arch) and slack doesnt open up.. dmesg shows seg fault output here

[ 1969.540044] slack[6316]: segfault at dbf060 ip 0000000000dbf060 sp 00007ffe56e72458 error 15 in slack[200000+160c000]
[ 1969.540047] Code: 50 01 60 69 36 00 b8 da 50 01 78 69 36 00 38 de 50 01 a8 69 36 00 c8 e1 50 01 d0 69 36 00 b8 e2 50 01 18 6a 36 00 f8 e2 50 01 <38> 6a 36 00 88 e3 50 01 60 6a 36 00 e8 e9 50 01 98 6a 36 00 38 ea 
[ 2051.204631] slack[6681]: segfault at dbf060 ip 0000000000dbf060 sp 00007ffeb6408748 error 15 in slack[200000+160c000]
[ 2051.204634] Code: 50 01 60 69 36 00 b8 da 50 01 78 69 36 00 38 de 50 01 a8 69 36 00 c8 e1 50 01 d0 69 36 00 b8 e2 50 01 18 6a 36 00 f8 e2 50 01 <38> 6a 36 00 88 e3 50 01 60 6a 36 00 e8 e9 50 01 98 6a 36 00 38 ea 
[ 2522.424384] slack[7282]: segfault at dbf060 ip 0000000000dbf060 sp 00007ffd096a5778 error 15 in slack[200000+160c000]
[ 2522.424387] Code: 50 01 60 69 36 00 b8 da 50 01 78 69 36 00 38 de 50 01 a8 69 36 00 c8 e1 50 01 d0 69 36 00 b8 e2 50 01 18 6a 36 00 f8 e2 50 01 <38> 6a 36 00 88 e3 50 01 60 6a 36 00 e8 e9 50 01 98 6a 36 00 38 ea 
[ 2760.019834] slack[8681]: segfault at dbf060 ip 0000000000dbf060 sp 00007ffdfc341248 error 15 in slack[200000+160c000]
[ 2760.019837] Code: 50 01 60 69 36 00 b8 da 50 01 78 69 36 00 38 de 50 01 a8 69 36 00 c8 e1 50 01 d0 69 36 00 b8 e2 50 01 18 6a 36 00 f8 e2 50 01 <38> 6a 36 00 88 e3 50 01 60 6a 36 00 e8 e9 50 01 98 6a 36 00 38 ea 
[ 3205.761886] slack[9894]: segfault at dbf060 ip 0000000000dbf060 sp 00007ffdb51936c8 error 15 in slack[200000+160c000]
[ 3205.761889] Code: 50 01 60 69 36 00 b8 da 50 01 78 69 36 00 38 de 50 01 a8 69 36 00 c8 e1 50 01 d0 69 36 00 b8 e2 50 01 18 6a 36 00 f8 e2 50 01 <38> 6a 36 00 88 e3 50 01 60 6a 36 00 e8 e9 50 01 98 6a 36 00 38 ea 
[ 4242.329214] slack[10221]: segfault at dbf060 ip 0000000000dbf060 sp 00007fffafc1fa58 error 15 in slack[200000+160c000]
[ 4242.329217] Code: 50 01 60 69 36 00 b8 da 50 01 78 69 36 00 38 de 50 01 a8 69 36 00 c8 e1 50 01 d0 69 36 00 b8 e2 50 01 18 6a 36 00 f8 e2 50 01 <38> 6a 36 00 88 e3 50 01 60 6a 36 00 e8 e9 50 01 98 6a 36 00 38 ea 
^[[A
[ 4255.544196] slack[10239]: segfault at dbf060 ip 0000000000dbf060 sp 00007ffeb6d50408 error 15 in slack[200000+160c000]
[ 4255.544199] Code: 50 01 60 69 36 00 b8 da 50 01 78 69 36 00 38 de 50 01 a8 69 36 00 c8 e1 50 01 d0 69 36 00 b8 e2 50 01 18 6a 36 00 f8 e2 50 01 <38> 6a 36 00 88 e3 50 01 60 6a 36 00 e8 e9 50 01 98 6a 36 00 38 ea 
[ 4256.638294] slack[10241]: segfault at dbf060 ip 0000000000dbf060 sp 00007fff4a61df28 error 15 in slack[200000+160c000]
[ 4256.638297] Code: 50 01 60 69 36 00 b8 da 50 01 78 69 36 00 38 de 50 01 a8 69 36 00 c8 e1 50 01 d0 69 36 00 b8 e2 50 01 18 6a 36 00 f8 e2 50 01 <38> 6a 36 00 88 e3 50 01 60 6a 36 00 e8 e9 50 01 98 6a 36 00 38 ea 
[ 4257.154284] slack[10243]: segfault at dbf060 ip 0000000000dbf060 sp 00007fff83522ae8 error 15 in slack[200000+160c000]
[ 4257.154287] Code: 50 01 60 69 36 00 b8 da 50 01 78 69 36 00 38 de 50 01 a8 69 36 00 c8 e1 50 01 d0 69 36 00 b8 e2 50 01 18 6a 36 00 f8 e2 50 01 <38> 6a 36 00 88 e3 50 01 60 6a 36 00 e8 e9 50 01 98 6a 36 00 38 ea 

how to delete dependent on trello and jira?

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • [ x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • [ x] I've read and agree to the Code of Conduct.
  • [ x] I've searched for any related issues and avoided creating a duplicate issue.

Feature request

I don't wanna use trello or jira, how can I delete the dependent on them or use other tool?

Does this work with Jira Cloud?

Description

Your readme states this does not work on Jira Cloud but both the script runner and the checklist say they are compatible. Are the docs just needing updated?

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • [/] question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

{project_name} version:

{platform_name} version:

OS version(s):

Steps to reproduce:

Expected result:

What you expected to happen

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

goSDL in DMZ

Description

Hi There, It all works fine when I hosted the application on my mac with internet connection.. but when I struggling to make it work on office network with no internet connection. I have taken the code files from my mac where it works and deployed to office network to show goSDL in action with JIRA integration in non production env. Please some one assist if I am missing anything..

I am not a PHP developer, I am part of security team..

I see - "First off, we need some info from you about your project" section not showing any text boxes and labels....

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • [X ] question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • [X ] I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • [ X] I've read and agree to the Code of Conduct.
  • [ X] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

{project_name} version:

{platform_name} version:

OS version(s):

Steps to reproduce:

Expected result:

What you expected to happen

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

Authentication

Description

Does this application use any type of authentication? If not, how is it being protected at Slack?

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • [ x] question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

I do not believe this is a bug. I think there's an implementation at Slack that's not detailed in the project docs.

Reproducible in:

All versions/All OSs

Steps to reproduce:

  1. Deploy app
  2. Access main page

Expected result:

Prior to being able to interact with the application I would need to supply some type of data to verify I'm an authorized user.

Actual result:

App loaded and I was able to use it unchallenged.

Attachments:

CURLOPT_SSL_VERIFYPEER disabled for JIRA integration

Description

Hello friends! It appears that the current JIRA integration doesn't enable certificate verification.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

It appears that the CURLOPT_SSL_VERIFYPEER parameter in the https://github.com/slackhq/goSDL/blob/master/include/lib_jira.php file is currently disabled for each curl session.

Reproducible in:

goSDL version: 1

{platform_name} version: N/A

OS version(s): N/A

Steps to reproduce:

N/A

Expected result:

N/A

Actual result:

N/A

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

Project status?

Description

Project is open sourced only to be immediately abandoned.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Reproducible in:

github.

Steps to reproduce:

  1. Open pull request
  2. Have it sit idle for months
  3. ☠️

Expected result:

Some @slackhq teammember to respond to open issues/PR's.

Actual result:

What actually happened: nothing

Attachments:

https://github.com/slackhq/goSDL/pulls
https://github.com/slackhq/goSDL/issues

GoSDL does not fail on HTTP status codes >=400

Description

GoSDL does not fail on HTTP status codes >=400

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

{project_name} version: ALL

{platform_name} version: ALL

OS version(s): ALL

Steps to reproduce:

  1. Fill out GoSDL questionnaire without setting any environment variables for JIRA

Expected result:

GoSDL api and UI inform the user that the ticket creation operation failed

Actual result:

GoSDL api and UI inform the user that everything worked

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

Documentation does not mention required JIRA configuration

Description

Documentation is missing a required step in the JIRA setup process. We must create a custom issue type named exactly "SDL Checklist" and associate it with the appropriate project.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

{project_name} version: ALL

{platform_name} version: ALL

OS version(s): ALL

Steps to reproduce:

  1. Follow README for JIRA Enterprise
  2. Submit default form using any combination of options

Expected result:

GoSDL tool creates ticket against specified project

Actual result:

GoSDL tool submits request to JIRA and it fails as a bad request

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

Composer replace tabs with spaces

Description

The ./composer.json file has tabs instead of spaces for one of the dependencies

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Attachments:

image

Seems sdl submodule not working

Description

Submodules' questions are not recorded in trello or jira.

What type of issue is this? (place an x in one of the [ ])

  • [ x ] bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • [ x ] I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • [ x ] I've read and agree to the Code of Conduct.
  • [ x ] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

{project_name} version:

{platform_name} version:

OS version(s):

Steps to reproduce:

Expected result:

What you expected to happen

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

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.