Git Product home page Git Product logo

book_secdevops_risk_workflow's People

Contributors

ambg05 avatar davevs avatar diniscruz avatar eoftedal avatar henrikrossen avatar jameswharton avatar joykchepkorir 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

Watchers

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

book_secdevops_risk_workflow's Issues

expand on 'where to start when adding Security to CI Pipeline'

  • The key is to have Test APIs that know how to reach particular parts of the application (so that you can put the payloads)
  • The tools to use depend on the level of maturity of your existing pipeline.
  • You should be looking at static analysis (SAST), Dynamic testing (DAST) and Interactive Application Security Testing (IAST)
  • DAST
    • Proxying traffic though OWASP ZAP
    • key is for existing e2e/integration tests to have enough coverage so that the ZAP tool can fuzz it (you need powerful Test API and DSLs)
    • see zaproxy/community-scripts
    • number of other commercial vendors in this space (Burp, Netparker, WebInspect, acunetix, Qualis, IBM AppSec) including pure SAAS offerings like WhiteHat Sentinel
    • for DAST it is key that complete test/QA environments (for each full test execution stute) can be spun up and destoyed (after some analsysis of it)
  • SAST
    • Opensource: FindBugs, PMD,
    • Commercial
      • tools: Checkmarks, Fortify, IBM AppScan Source,
      • SAAS: Codiscope Jacks, Veracode (SAAS)
  • (add other tools in this spaces)
  • Start small and automate everything. The hard part of using the tools is getting the pipeline working (which is why it is good to start with Open Source tools, before sending £100k+ on commercial tools)
  • See Achieving Secure Continuous Delivery presentation, done at OWASP London
  • All tools (open source and commercial) will need to be customised in order to allow them to have enough visibility into the apps. There is no 'silver bullet' out there which will work really well with your apps.
    • The OWASP O2 Platform has a large number of PoCs and mini-tools that help with this kind of customisations
    • ThreadFix is a good tool to aggregate results created by multiple engines

process Steve's feedback

image
(from Microsoft SDLC )

Requirements & Analysis

  • The driving force here is market/business goals
  • CTO/CISO should be monitoring this phase. Early insights into what direction the business is moving can help to mitigate potential security implications of new products and features.
  • Start reviewing resources needed for creating the AppSec team

High Level design

  • AppSec team lead responsible for identifying Static analysis and other tools appropriate for the environment.
  • Champion that Tools should be incorporated into the build environment
    • run as part of the build process
    • output goes to DB (later used to feed dashboards)
    • output should be filtered so previously found issues are not duplicated
    • tag should be added to identify when issue first found (can be used in dashboard for days to resolve)
    • Dashboard requirements initial planning
    • Security issues tracking system initial requirements defined
    • Issue tracking system identified (JIRA) and requirements defined
    • Issues/bugs found by static tools should auto generate tickets (filtering to prevent duplictes)
    • Issues/bug should feed to dashboard

CTO/CISO to identify skills for AppSec team (may change in next phase)

  • Identify team lead
  • Team lead main job is to:
  • Evangelize AppSec to the PM/DEV/Test Team
  • Identify Security Champs
  • Assign tasks to Security Champs such as reviewing issues found, initiating threat modeling, which may be updating existing threat models or creating new
  • Team lead works with Security champs, sets up weekly/bi-weekly meetings. Summarize finding and report to LT (leadership team)
    I am going to suggest an outline using the first on the left graph. There are many other processes which might be better suited to your approach, but it is a place to start.

Detailed Design

(to do)

Construction & Assembly

(to do)

Independent Verification

(to do)

Release & Maintenance

(to do)

Some general comments: (no particular order)

  • Title may need some work, needs to have a bit more “eye Candy”
  • AppSec road map using JIRA
  • No mention of mobile (un-necessary access to mobile features, (GPS, contacts, camera, etc) or IoT security (transport security, tampering, etc) issues.
  • There is little reference to privacy/data protection which has a significant security component (encrypting data, access controls, etc.

Change Book title (scope creep?)

While doing the review sessions and adding my comments I can't help to notice that the contents are more about 'how to set up a SecDevOps' organisation and not only about 'Jira Risk Flow'.

Should we consider this a scope creep and refocus or do you want this to be the natural flow of the book and maybe change the title to be more in line?

Process Steve's comment on 'Abusing the concept of RISK'

for https://github.com/DinisCruz/Book_SecDevOps_Risk_Workflow/blob/master/content/2.Risk-workflow/Concepts/Abusing-the-concept-of-risk.md

  • add something regarding privacy, if an app is compromised how do you protect the data since that is the reason for needing security. Perimeter security only goes so far, bottom line is to protect the data.
  • mention methods such as STRIDE, CIA, etc. to help with defining the risks
  • make a reference to the appendix where the concepts of RISK and behaviors is expanded

Mario Robles - Add section on 'JIRA Risk Resolutions'

Mario Robles mentioned:

it’s very nice to see your Jira workflow very similar to the one I’ve been working on, one thing that I would suggest is including custom “resolutions” consistent to the status in the kanban so you can add the Resolution field in the Screen used for closing the issues:

image

Here are the Resolutions I have configured in the JIRA RISK Workflow:

image

expand on 'JavaScript protection on advanced SecDevOps workflows'

  • not for the faint of heart, but can be a really good defence in depth for really hostile (and under attack) execution environments

here is a description from the https://jscrambler.com tool (which is a lead player in this field)

JavaScript protection. Jscrambler is all about JavaScript enabled environments protection. With Jscrambler's first layer of protection, using Obfuscation techniques, we provide you polymorphic JavaScript: each time you request a protection, you will get a different source code.

You can go even further applying Control Flow Flattening which will create also different application flows. Just with this layer you will prevent any attacker to keep knowledge of your application internals.

On top of this first layer you can get RASP (Runtime Application Self-defending Protection) features which right now only applies to JavaScript, but soon will also enable you to get notified about DOM tampering and JavaScript poisoning (browser global objects and event handlers) or even remove DOM injections on client-side.

expand on "Are developers writing broken code"

When we say

It is really time for application developers to stop believing that they are protected by perimeter defenses and fix the real issue, which is “Stop writing broken code”

is this really fair of developers?

I don't think developers want to write broken code (i.e. code with security issues). I think the problem is more to do with the developer's workflow than with a desire to write vulnerabilities.

related posts:

(related to #53)

Expand on 'Using iriusrisk for the Risk management workflow'

  • commercial product more focused on Threat Modeling, but since it now has an 'Accept Risk' button, it could be used for the Risk Workflow
    • integrates with JIRA (can be used to create and manage issues)
    • very active development and lead by known AppSec security experts
    • would be interesting in seeing it's cost when compared with JIRA (in an environment that doesn't have JIRA)
  • there is an community edition: https://community.iriusrisk.com/

Process Steve's comment on "Introduction"

from #59

  • Line 27: JIRA & RISK. Note: Acronyms need to be defined on first use
  • Line 31: There are 2 main target audiences is AppSec and Developers. Note: Need to state clearly what #1 & #2 are.
  • Line 31 “AppSec”. Note: Maybe add ‘team’
  • Line 35: “AppSec (Application Security) has massive problem of how modern developers work and therefor how to communicate with developers” Note: Needs better structure.
  • Line 41: “Because developers can use this workflow to control their development workflow, and handle the 'backlog pit of despair' problem”. Note: Poorly structured sentence.
  • Line 46: “features” Note: What are the key features maybe add two or three bullets
  • Line 47: “tools”. Note: Provide a few example names of the tools
  • Line 50: “InfoSec”. Note: Needs to be defined
  • Line 52: “InfoSec tickets don't tend to work that well with JIRA tickets”. Note: Few bullets as to why they don’t work
  • Line 54: “Yes but since I don't have that much experience with it, I will leave it to the reader”. Note: Too subjective, what are the drawbacks what types of risks could InfoSec tickets be used for, a few bullets.
  • Line 57: “code, apps, CI, secure coding standards, threat models, frameworks, code dependencies, QA, testing, fuzzing, dev environments,” Note: Use bullets.
    Line 57: “DevOps”. Note: What is this?
  • Line 61: “Note that if your ‘InfoSec’ team/person cannot code (and would not be hired by the Dev team), then that is NOT AppSec. InfoSec is very important, but it is key to understand its limitations when there are no coding skills in that department (there are a number of conversions and activities that can only be done by professionals that understand development)”. Note: Very unclear what point you are trying to make, consider re-writing
  • Line 63: “Is this view too restrictive?” Note: If you ask a question provide an answer.
  • Line 63: “Can someone be a valuable AppSec specialist without actually being able to code.”
    Note: Answer here is a qualified yes.
  • Line 71-73: Define 02, REPL, & IDE

Expand on 'should AppSec Requirements be listed on its own Epic?'

Andre Gironda asked:

_I liked the parts about making Risk a separate project but what if appsec requirements/documentation are listed in its own Epic instead? _

My answer:

That can work, the prob is that it is easy for those Epics to fall into the 'backlog pit of despair' and start to be ignored (i.e. unless you have that 'Risk Accepted' button, it is 'cheap and easy' to just keep prioritising other 'really important' features required by the business/users).

Another issue is that I like to use the JIRA Risk project to describe 'reality' (i.e. the Risks/Issues/features that exists or will exist soon) and then let the dev's use their JIRA project (or whatever bug tracking system they use) to describe what needs to be done (i.e. how they would address those RISK issues)

For example a RISK issue (in the separate RISK or APPSEC Jira project) would be "Xyz app - There is no Authentication on exposed Web Service's methods" , who would (when in the 'Allocated for Fix' stage) be linked into another ticket (or multiple tickets) in the application's JIRA project that would be called "Use Spring Security to authenticate users of service"

Articles that don't contain enough info to make them into paragraphs

Can an AppSec specialist do a good job without being able to code?

on https://github.com/DinisCruz/Book_Jira_Risk_Workflow/pull/7/files#diff-d81580da3b8096a9abb99b1e6e1c6ef2R48 @davevs asks:

I thinks this is too restrictive. Yes, understanding code is critical, but I believe you can be a (valuable) AppSec specialist without actually being able to code. More important qualities are: understanding modern development, being able to explain and discuss issues with developers, being able to explain, configure, and use tools, etc.

Process Steve's comment on "Creating small tests"

from #58

  • Line 3: "bug tracking project". Note: If you introduce multiple bug/issue tracking systems no one will do it. Using a single system flexible enough to track issues and is searchable/filterable will make adoption easier. Having to train on multiple systems will be a blocker in most environments
  • Line 19: " I also find that fixing these kind of easy tests are a good warm up for more complex Development tasks." Note: Not getting the point across consider rephrasing.

expand on "Continuous Application Risk Management"

from #17 (comment)

"Continuous Application Risk Management" - And how to foster security as part of a DevOps culture.

This would allow setting the stage by talking about the history of Agile, DevOps and how traditional security approaches are not working in environments where software is released frequently. Then introduces the concept of embedding security into an Agile + DevOps environment and what the key aspects are in terms of culture and responsibilities. Which then leads to the main topic of the book which is how application risk can be managed seamlessly in an ongoing and integrated fashion.

This deserves a good set of chapters and maybe event its own section

Review these blog posts which covered similar concepts in the past

Add Section on 'OWASP'

  • What is Owasp? #127
  • OWASP community
  • Why OWASP is great!
  • Why you should be involved in OWASP
  • OWASP projects to be involved
  • Speak at OWASP conferences or local chapters
  • Start an OWASP Chapter or project

Question on "In DevOps everything is Code"

Pull Request #72

A few questions on meaning:

On line 9:

  • I couldn't find a relevant meaning for 'jerkins'
  • "you create pristine built"--I'm not sure what this means
  • "It should be modifying stuff"--What does 'it' refer to?

On line 19, I just want to be sure I have made sense of the text. If you want me to make further changes let me know.

Process Steve's comment on "Accepting risk"

from https://github.com/DinisCruz/Book_SecDevOps_Risk_Workflow/pull/57/files

  • Line 7: "the short term". Note: is this 1 month 3 months or other
  • Line 9: "the cost of fixing operational issues". Note: needs more context, such as it is not an externally exploitable and does not process sensitive data.
  • Line 11: "live". Note: Off line or test systems are not at risk, issues need to be addressed but that is part of the process, consider deleting
  • Line 12: "not that important". Note: Need to define 'not important'.
  • Line 13: "change it". Note: Mitigations are in place to reduce the impact a threat may be exploited.
  • Line 24: "properly, or publicly". Note: Think that this may not be the best way to say this
  • Line 28: “As one staff member or manager accepts risk on behalf of his boss, and this action is replicated throughout a company, all the way to the CTO,” Note: Replace with "Accepting risk is the responsibility of the business owner".
  • Line 28: “risks are accumulated”. Note: needs clarity.

Expand on 'Workflow and tools used to create this book'

I think a number of readers will be interested in my current workflow and CI.

Here are the tools/technologies used:

  • Github: holds content and issues
  • Atom (with [markdown-preview-enhanced extension)](http://atom.io/packages/markdown-preview-enhanced extension): edit content locally and offline
  • SourceTree: used to manage git workflow and branches
  • GitHub Service: Used to send an notification to Leanpub when new content is available
  • Leanpub: Creates book from markdown (with a preview being created every-time there is a service request web-hook received from GitHub)
  • leanpub-book-site: NodeJs app that handles the workflow of creating the book content from source files (which have a different file structure), creating extra commits and pushing them into build repo Book_SecDevOps_Risk_Workflow_Build
  • Dropbox: Leanpub pushes previews and final versions to a shared folder
  • Twitter and blogs: repost book's content

here is my workflow to push some content changes:

  1. Make content changes in Atom (locally)
  2. Save them
  3. run ./commit_and_build.sh script from command line
  4. wait for dropbox notification that preview has been created (or open Leanpub site and see status of the preview generation)
  5. if want to publish version, go to Leanpub site for the book and manually publish it to readers (for bigger changes I chose the option to write release notes and email all readers)

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.