Why modern software delivery introduces risks that are hard to manage, and how to think about them.
Software teams ship faster than ever. Code flows through automated pipelines, pulls in hundreds of open-source dependencies, and deploys to distributed infrastructure multiple times a day. That speed is a strength, but it also means that the number of places where something can go wrong has grown dramatically. A single compromised dependency, an unreviewed commit, or an unnoticed configuration change can reach production before anyone is aware of it.The reason these risks are hard to manage is not that teams are careless. It is that the delivery process spans so many tools, environments, and people that no single person has full visibility. Evidence of what happened (and whether it should have happened) is scattered across CI logs, chat threads, ticketing systems, and cloud consoles. Reconstructing the full picture after an incident, or during an audit, is slow and unreliable.
In this context, a risk is a condition or event in your software delivery lifecycle (SDLC) that could compromise the integrity, security, or compliance posture of your software. These are not hypothetical. They reflect real-world incidents that have affected organizations across industries.
Modern software is largely assembled, not written from scratch. Your application depends on libraries, base images, and build tools maintained by third parties. If any of those components are tampered with, malicious code enters your pipeline without anyone writing a single bad line. At the same time, the build process itself can introduce vulnerabilities if security scanning is skipped or secrets are accidentally embedded in artifacts.
Risk
Description
Supply chain compromise
Third-party dependencies or build tools are tampered with, injecting malicious code into your software.
Vulnerable software in production
Known vulnerabilities ship to production because scanning was skipped, ignored, or incomplete.
Credential and secret exposure
Developers commit API keys, tokens, or passwords to source control or embed them in artifacts.
Not all risks come from outside. Authorized users can introduce problems too, whether through honest mistakes or deliberate circumvention of process. Code that skips peer review, deployments that bypass approval gates, and changes that no one documents all create gaps that are invisible until something breaks or an auditor asks questions.
Risk
Description
Insider threat
Changes made using authorized credentials without proper review or approval. This includes mistakes by team members, deliberate circumvention of process, or third parties who have compromised legitimate credentials.
Unauthorized deployment
Software reaches production without passing required gates or approvals.
Unreviewed changes
Code or configuration changes bypass peer review, increasing the chance of defects or policy violations.
Lack of auditability
There is no reliable record of what changed, when, why, or by whom, making audits costly and unreliable.
Once software is deployed, the runtime environment becomes its own source of risk. Configurations drift from their expected state, artifacts appear that cannot be traced back to any known build, and changes happen outside the deployment pipeline entirely. These “shadow changes” are particularly dangerous because they bypass every control you have put in place during build and release.
Risk
Description
Configuration drift
Production environments diverge from their expected state without anyone noticing.
Shadow changes
Changes appear in production that cannot be traced back to any known build or deployment process.
Kosli’s SDLC Controls Framework organizes these nine risks with detailed descriptions and risk-to-control mappings. Your organization may identify additional risks or prioritize them differently depending on your industry, regulatory environment, and threat model.
These risks are not unique to Kosli. They are the same concerns addressed by compliance frameworks like SOC 2, ISO 27001, and FDA 21 CFR Part 11. Each framework codifies requirements for managing some or all of these risks through documented controls and evidence. For example, SOC 2’s Change Management criteria address unauthorized deployment and unreviewed changes, while its Logical Access controls relate to insider threat and credential exposure.Kosli does not replace a compliance framework. The reason it is designed this way is that frameworks define what you must demonstrate, while Kosli automates how you demonstrate it. The alternative (building compliance tooling into each framework individually) would mean duplicating effort across SOC 2, ISO 27001, and every other standard your organization adopts. Kosli instead provides a single evidence layer that serves all of them. When your CI pipeline attests that a security scan passed, or Kosli detects unexpected changes in a production environment, that is compliance evidence recorded automatically. Without Kosli, producing and maintaining that evidence requires manual effort, and manual evidence has a tendency to be incomplete, inconsistent, or simply missing when you need it most.Now that you understand what can go wrong, the next step is understanding the controls that prevent it and how Kosli implements them.
Last modified on April 2, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Kosli Documentation","colors":{"primary":"#1C4BC6","light":"#ABBDFF","dark":"#1C4BC6"},"logo":{"light":"https://mintcdn.com/kosli/Cee1LAu-Jhawp1Om/logo/kosli-logo-light-main.svg?fit=max\u0026auto=format\u0026n=Cee1LAu-Jhawp1Om\u0026q=85\u0026s=fb05fdbb0c9c9ae7da266a500eac2be6","dark":"https://mintcdn.com/kosli/Cee1LAu-Jhawp1Om/logo/kosli-logo-dark-main.svg?fit=max\u0026auto=format\u0026n=Cee1LAu-Jhawp1Om\u0026q=85\u0026s=c230555c5e1d57d0f9f9630117a1467d"},"favicon":"https://mintcdn.com/kosli/CktiOOFhqneQZXyH/favicon-32x32.png?fit=max\u0026auto=format\u0026n=CktiOOFhqneQZXyH\u0026q=85\u0026s=1b16e66cd5c7266604a6a683f334f672","api":{"playground":{"display":"interactive"}},"background":{"decoration":"windows","color":{"light":"#F6F8FC","dark":"#111A26"}},"navbar":{"links":[{"href":"mailto:support@kosli.com","label":"Support"}],"primary":{"type":"button","label":"Kosli App","href":"https://app.kosli.com"}},"footer":{"socials":{"website":"https://kosli.com","github":"https://github.com/kosli-dev","linkedin":"https://linkedin.com/company/kosli-dev"},"links":[{"header":"Resources","items":[{"label":"Privacy Policy","href":"https://www.kosli.com/privacy-policy"},{"label":"Status","href":"https://status.app.kosli.com/"}]},{"header":"Learn","items":[{"label":"Labs","href":"/labs"},{"label":"Blog","href":"https://kosli.com/blog"}]},{"header":"Company","items":[{"label":"About Kosli","href":"https://www.kosli.com/about"},{"label":"Privacy","href":"https://www.kosli.com/privacy-policy"},{"label":"Community","href":"https://www.kosli.com/community"}]}]},"fonts":{"family":"IBM Plex Sans"},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":"dracula","languages":{"custom":["/languages/rego.json"]}},"latex":false},"integrations":{"posthog":{"apiKey":"phc_vKbCGJq5rzV4apArUzYDRwh6azCmgCPcLz8jTa9CgmGR","apiHost":"https://eu.posthog.com","sessionRecording":false},"cookies":{"key":"kosli_consent","value":"accepted"}},"banner":{"content":"🌱 The docs have a new layout, grouped by what you're here to do.","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kosli","hasAudioNarration":false,"actualSubdomain":"kosli","customDomains":["docs.kosli.com"],"gitSource":{"type":"github","owner":"kosli-dev","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aecb97adab9b27b24420669","collectionId":"a80df489-8e62-492b-84de-7995fdccc9c0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecb97adab9b27b24420669"},"feedback":{"thumbs":true,"edits":false,"issues":false,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED","enabled":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED","enabled":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aedf0a1f454d7a498161a36","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Reference","count":290},{"language":"default","tag":"API Reference","count":152},{"language":"default","tag":"CLI Reference","count":103},{"language":"default","tag":"Platform administration","count":28},{"language":"default","tag":"Discover Kosli","count":28},{"language":"default","tag":"Terraform Reference","count":22},{"language":"default","tag":"Environments","count":21},{"language":"default","tag":"Attestation","count":18},{"language":"default","tag":"kosli get","count":15},{"language":"default","tag":"kosli attest","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":false,"showHelpButton":false}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"[data-component-part=\"step-number\"]>div{background-color:#CFD8FF!important;color:#111A26!important}"}],"page":{"pagePath":"understand_kosli/risks","slug":"/understand_kosli/risks","pageMetadata":{"title":"Risks","description":"Why modern software delivery introduces risks that are hard to manage, and how to think about them.","href":"/understand_kosli/risks"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Why modern software delivery introduces risks that are hard to manage, and how to think about them.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Icon,Table,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Icon)_missingMdxReference(`Icon`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Software teams ship faster than ever. Code flows through automated pipelines, pulls in hundreds of open-source dependencies, and deploys to distributed infrastructure multiple times a day. That speed is a strength, but it also means that the number of places where something can go wrong has grown dramatically. A single compromised dependency, an unreviewed commit, or an unnoticed configuration change can reach production before anyone is aware of it.`}),`\n`,_jsx(_components.p,{children:`The reason these risks are hard to manage is not that teams are careless. It is that the delivery process spans so many tools, environments, and people that no single person has full visibility. Evidence of what happened (and whether it should have happened) is scattered across CI logs, chat threads, ticketing systems, and cloud consoles. Reconstructing the full picture after an incident, or during an audit, is slow and unreliable.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-a-risk`,children:`What is a risk?`}),`\n`,_jsx(_components.p,{children:`In this context, a risk is a condition or event in your software delivery lifecycle (SDLC) that could compromise the integrity, security, or compliance posture of your software. These are not hypothetical. They reflect real-world incidents that have affected organizations across industries.`}),`\n`,_jsx(Heading,{level:`2`,id:`the-risk-landscape`,children:`The risk landscape`}),`\n`,_jsx(_components.p,{children:`Kosli identifies nine categories of risk across the SDLC. They fall into three broad groups depending on where in the lifecycle they originate.`}),`\n`,_jsxs(Heading,{level:`3`,id:`risks-from-your-supply-chain-and-build-process`,children:[_jsx(Icon,{icon:`box-open`}),` Risks from your supply chain and build process`]}),`\n`,_jsx(_components.p,{children:`Modern software is largely assembled, not written from scratch. Your application depends on libraries, base images, and build tools maintained by third parties. If any of those components are tampered with, malicious code enters your pipeline without anyone writing a single bad line. At the same time, the build process itself can introduce vulnerabilities if security scanning is skipped or secrets are accidentally embedded in artifacts.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Risk`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Supply chain compromise`})}),_jsx(_components.td,{children:`Third-party dependencies or build tools are tampered with, injecting malicious code into your software.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Vulnerable software in production`})}),_jsx(_components.td,{children:`Known vulnerabilities ship to production because scanning was skipped, ignored, or incomplete.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Credential and secret exposure`})}),_jsx(_components.td,{children:`Developers commit API keys, tokens, or passwords to source control or embed them in artifacts.`})]})]})]}),`\n`,_jsxs(Heading,{level:`3`,id:`risks-from-within-your-team`,children:[_jsx(Icon,{icon:`users`}),` Risks from within your team`]}),`\n`,_jsx(_components.p,{children:`Not all risks come from outside. Authorized users can introduce problems too, whether through honest mistakes or deliberate circumvention of process. Code that skips peer review, deployments that bypass approval gates, and changes that no one documents all create gaps that are invisible until something breaks or an auditor asks questions.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Risk`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Insider threat`})}),_jsx(_components.td,{children:`Changes made using authorized credentials without proper review or approval. This includes mistakes by team members, deliberate circumvention of process, or third parties who have compromised legitimate credentials.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Unauthorized deployment`})}),_jsx(_components.td,{children:`Software reaches production without passing required gates or approvals.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Unreviewed changes`})}),_jsx(_components.td,{children:`Code or configuration changes bypass peer review, increasing the chance of defects or policy violations.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Lack of auditability`})}),_jsx(_components.td,{children:`There is no reliable record of what changed, when, why, or by whom, making audits costly and unreliable.`})]})]})]}),`\n`,_jsxs(Heading,{level:`3`,id:`risks-from-your-runtime-environments`,children:[_jsx(Icon,{icon:`server`}),` Risks from your runtime environments`]}),`\n`,_jsx(_components.p,{children:`Once software is deployed, the runtime environment becomes its own source of risk. Configurations drift from their expected state, artifacts appear that cannot be traced back to any known build, and changes happen outside the deployment pipeline entirely. These “shadow changes” are particularly dangerous because they bypass every control you have put in place during build and release.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Risk`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Configuration drift`})}),_jsx(_components.td,{children:`Production environments diverge from their expected state without anyone noticing.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Shadow changes`})}),_jsx(_components.td,{children:`Changes appear in production that cannot be traced back to any known build or deployment process.`})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Kosli’s `,_jsx(_components.a,{href:`https://sdlc.kosli.com`,children:`SDLC Controls Framework`}),` organizes these nine risks with detailed descriptions and risk-to-control mappings. Your organization may identify additional risks or prioritize them differently depending on your industry, regulatory environment, and threat model.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`risks-and-compliance-frameworks`,children:`Risks and compliance frameworks`}),`\n`,_jsx(_components.p,{children:`These risks are not unique to Kosli. They are the same concerns addressed by compliance frameworks like SOC 2, ISO 27001, and FDA 21 CFR Part 11. Each framework codifies requirements for managing some or all of these risks through documented controls and evidence. For example, SOC 2’s Change Management criteria address unauthorized deployment and unreviewed changes, while its Logical Access controls relate to insider threat and credential exposure.`}),`\n`,_jsxs(_components.p,{children:[`Kosli does not replace a compliance framework. The reason it is designed this way is that frameworks define `,_jsx(_components.em,{children:`what`}),` you must demonstrate, while Kosli automates `,_jsx(_components.em,{children:`how`}),` you demonstrate it. The alternative (building compliance tooling into each framework individually) would mean duplicating effort across SOC 2, ISO 27001, and every other standard your organization adopts. Kosli instead provides a single evidence layer that serves all of them. When your CI pipeline attests that a security scan passed, or Kosli detects unexpected changes in a production environment, that is compliance evidence recorded automatically. Without Kosli, producing and maintaining that evidence requires manual effort, and manual evidence has a tendency to be incomplete, inconsistent, or simply missing when you need it most.`]}),`\n`,_jsxs(_components.p,{children:[`Now that you understand what can go wrong, the next step is understanding the `,_jsx(_components.a,{href:`/understand_kosli/controls`,children:`controls`}),` that prevent it and how Kosli implements them.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":"dracula","languages":{"custom":["/languages/rego.json"]}},"config":{},"pageMetadata":{"title":"Risks","description":"Why modern software delivery introduces risks that are hard to manage, and how to think about them.","href":"/understand_kosli/risks"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is a risk?","slug":"what-is-a-risk","depth":2,"children":[]},{"title":"The risk landscape","slug":"the-risk-landscape","depth":2,"children":[{"title":" Risks from your supply chain and build process","slug":"risks-from-your-supply-chain-and-build-process","depth":3,"children":[]},{"title":" Risks from within your team","slug":"risks-from-within-your-team","depth":3,"children":[]},{"title":" Risks from your runtime environments","slug":"risks-from-your-runtime-environments","depth":3,"children":[]}]},{"title":"Risks and compliance frameworks","slug":"risks-and-compliance-frameworks","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/kosli/a8952d14c382591c/termly.js"],"subdomain":"kosli","siteName":"Kosli Documentation","title":"Risks - Kosli Documentation","contextualStarterQuestions":[{"_id":"69e229a7f00f77c4dc7ee4b3","deploymentId":"694a567a82866c4f503bbfbf","questionText":"Why is visibility hard in delivery?","status":"active","generatedBy":"contextual","path":"understand_kosli/risks","createdAt":"2026-04-17T12:37:59.622Z","updatedAt":"2026-04-17T12:37:59.622Z","__v":0},{"_id":"69e229a7f00f77c4dc7ee4b2","deploymentId":"694a567a82866c4f503bbfbf","questionText":"How do supply chain risks occur?","status":"active","generatedBy":"contextual","path":"understand_kosli/risks","createdAt":"2026-04-17T12:37:59.622Z","updatedAt":"2026-04-17T12:37:59.622Z","__v":0},{"_id":"69e229a7f00f77c4dc7ee4b1","deploymentId":"694a567a82866c4f503bbfbf","questionText":"What are the main SDLC risks?","status":"active","generatedBy":"contextual","path":"understand_kosli/risks","createdAt":"2026-04-17T12:37:59.622Z","updatedAt":"2026-04-17T12:37:59.622Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-02T15:51:04.274Z","gitLastModified":"2026-04-02T15:50:40.000Z","originalFileLocation":"understand_kosli/risks.md"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Why modern software delivery introduces risks that are hard to manage, and how to think about them.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kosli Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Risks - Kosli Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Why modern software delivery introduces risks that are hard to manage, and how to think about them.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kosli Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kosli.com/understand_kosli/risks\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kosli.mintlify.site/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Risks\u0026amp;description=Why+modern+software+delivery+introduces+risks+that+are+hard+to+manage%2C+and+how+to+think+about+them.\u0026amp;theme=381f3588bbad67d04f5be36e\u0026amp;signature=9ad05c86d93b435dde98898120762eae6b933394642a209e4acf95cf7321ed7b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Risks - Kosli Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Why modern software delivery introduces risks that are hard to manage, and how to think about them.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kosli.mintlify.site/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Risks\u0026amp;description=Why+modern+software+delivery+introduces+risks+that+are+hard+to+manage%2C+and+how+to+think+about+them.\u0026amp;theme=381f3588bbad67d04f5be36e\u0026amp;signature=9ad05c86d93b435dde98898120762eae6b933394642a209e4acf95cf7321ed7b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kosli Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1C4BC6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kosli.com/understand_kosli/risks\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/understand_kosli/risks.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kosli.com/#organization\",\"name\":\"Kosli Documentation\",\"url\":\"https://docs.kosli.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kosli/Cee1LAu-Jhawp1Om/logo/kosli-logo-light-main.svg?fit=max\u0026auto=format\u0026n=Cee1LAu-Jhawp1Om\u0026q=85\u0026s=fb05fdbb0c9c9ae7da266a500eac2be6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kosli.com#website\",\"name\":\"Kosli Documentation\",\"url\":\"https://docs.kosli.com\",\"publisher\":{\"@id\":\"https://docs.kosli.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kosli.com/understand_kosli/risks#webpage\",\"url\":\"https://docs.kosli.com/understand_kosli/risks\",\"name\":\"Risks\",\"description\":\"Why modern software delivery introduces risks that are hard to manage, and how to think about them.\",\"dateModified\":\"2026-04-02T15:50:40.000Z\",\"isPartOf\":{\"@id\":\"https://docs.kosli.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kosli.com/understand_kosli/risks#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kosli.com/understand_kosli/risks#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Kosli Documentation\",\"item\":\"https://docs.kosli.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Risks\",\"item\":\"https://docs.kosli.com/understand_kosli/risks\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kosli.com/understand_kosli/risks#article\",\"headline\":\"Risks\",\"name\":\"Risks\",\"description\":\"Why modern software delivery introduces risks that are hard to manage, and how to think about them.\",\"url\":\"https://docs.kosli.com/understand_kosli/risks\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kosli.com/understand_kosli/risks#webpage\"},\"dateModified\":\"2026-04-02T15:50:40.000Z\",\"publisher\":{\"@id\":\"https://docs.kosli.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kosli.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kosli Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kosli Documentation","nav":{"global":null,"tabs":[{"tab":"Discover Kosli","pages":[{"title":"Discover Kosli","href":"/understand_kosli/what_is_kosli"}]},{"tab":"Platform administration","pages":[{"title":"Platform administration","href":"/user/default_organization"}]},{"tab":"Risks and controls","groups":[{"group":"Concepts","pages":[{"title":"Risks","href":"/understand_kosli/risks"},{"title":"Controls","description":"Why SDLC controls exist, how they mitigate software delivery risks, and how Kosli implements them.","href":"/understand_kosli/controls"}]},{"group":"Implementing controls","pages":[{"title":"Working with controls","href":"/tutorials/working_with_controls"},{"title":"Enforce policies","href":"/getting_started/enforce_policies"},{"title":"Evaluate trails with OPA policies","href":"/tutorials/evaluate_trails_with_opa"}]},{"group":"Runtime controls","pages":[{"title":"Detecting unexpected statefile changes","href":"/tutorials/detecting_unexpected_statefile_changes"},{"title":"Detecting non-Terraform changes","href":"/tutorials/detecting_non_terraform_changes"}]},{"group":"Investigate and audit","pages":[{"title":"Querying Kosli","href":"/tutorials/querying_kosli"},{"title":"MCP server","tag":"BETA","href":"/integrations/mcp_server"},{"title":"From commit to production","href":"/tutorials/following_a_git_commit_to_runtime_environments"},{"title":"Tracing a production incident to its git commit","href":"/tutorials/tracing_a_production_incident_back_to_git_commits"}]}]},{"tab":"Environments and runtime","pages":[{"title":"Environments and runtime","href":"/administration/managing_environments/overview"}]},{"tab":"Record evidence","pages":[{"title":"Record evidence","href":"/tutorials/organizing_with_spaces"}]},{"tab":"Reference","menu":[{"item":"CLI Reference","icon":"terminal","pages":[{"title":"CLI Reference","href":"/client_reference/overview"}]},{"item":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"item":"GitHub Action Reference","icon":"github","pages":[{"title":"GitHub Action Reference","href":"/github-action-reference/setup_cli_action"}]},{"item":"Terraform Reference","icon":"cubes","pages":[{"title":"Terraform Reference","href":"/terraform-reference"}]},{"item":"Helm Reference","icon":"layer-group","pages":[{"title":"Helm Reference","href":"/helm/k8s_reporter/overview"}]},{"item":"Template Reference","icon":"file-code","pages":[{"title":"Template Reference","href":"/template-reference/flow_template"}]},{"item":"Policy Reference","icon":"scroll","pages":[{"title":"Policy Reference","href":"/policy-reference/environment_policy"}]}],"pages":[{"title":"Reference","href":"/client_reference/overview"}]},{"tab":"Changelog","icon":"clock","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Risks - Kosli Documentation","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}