<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Valentin Vie, Auteur</title>
	<atom:link href="https://www.riskinsight-wavestone.com/en/author/valentin-vie/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com/author/valentin-vie/</link>
	<description>The cybersecurity &#38; digital trust blog by Wavestone&#039;s consultants</description>
	<lastBuildDate>Fri, 03 Nov 2023 15:00:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/Blogs-2024_RI-39x39.png</url>
	<title>Valentin Vie, Auteur</title>
	<link>https://www.riskinsight-wavestone.com/author/valentin-vie/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>CI/CD in AWS: The Solution to All Your Problems? What You Need to Know.</title>
		<link>https://www.riskinsight-wavestone.com/en/2023/11/ci-cd-in-aws-the-solution-to-all-your-problems-what-you-need-to-know/</link>
					<comments>https://www.riskinsight-wavestone.com/en/2023/11/ci-cd-in-aws-the-solution-to-all-your-problems-what-you-need-to-know/#respond</comments>
		
		<dc:creator><![CDATA[Valentin Vie]]></dc:creator>
		<pubDate>Fri, 03 Nov 2023 14:46:35 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[CICD]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=21758</guid>

					<description><![CDATA[<p>Integrating security directly into the configuration of CI/CD pipelines, especially through the practice of DevSecOps, enables the development of secure applications while increasing delivery frequency. This relieves pressure on security teams, which can often be a limiting factor in the...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2023/11/ci-cd-in-aws-the-solution-to-all-your-problems-what-you-need-to-know/">CI/CD in AWS: The Solution to All Your Problems? What You Need to Know.</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p style="text-align: justify;">Integrating security directly into the configuration of CI/CD pipelines, especially through the practice of DevSecOps, enables the development of secure applications while increasing delivery frequency. This relieves pressure on security teams, which can often be a limiting factor in the production release cycle.</p>
<p style="text-align: justify;">However, setting up a relevant and effective CI/CD pipeline for each project context can be complex. Technologies vary, security requirements can differ, and target environments are not always identical. Given the ambitions and challenges posed by creating a unified CI/CD pipeline, it may not always be prudent to leverage IaaS or on-premise services, which also require infrastructure team investments. Cloud (PaaS) solutions offer a good middle ground between customizing the CI/CD pipeline and ease of implementation. Cloud solutions also allow for on-demand resource provisioning to better adapt to business needs.</p>
<p style="text-align: justify;">There are numerous cloud-based CI/CD solutions that can potentially meet both security and efficiency requirements for the development pipeline. In this article, we aim to present our perspective on Amazon Web Services (AWS) solutions, which remain one of the market leaders.</p>
<h3 style="text-align: justify;"><strong>What can AWS CI/CD services offer in terms of features and added value?</strong></h3>
<p style="text-align: justify;">If you are not familiar with AWS CodeCommit, CodePipeline, CodeBuild, or CodeDeploy, we offer an introduction to better understand the workings of the AWS DevSecOps environment. To provide an overview of the tools offered by AWS, we describe the functionality of these different services in the following paragraphs.</p>
<p> </p>
<h2 style="text-align: justify;">Let&#8217;s start from the beginning: From DevOps to DevSecOps</h2>
<p style="text-align: justify;">DevOps is a key element in the software development lifecycle of companies. DevOps relies on CI/CD tooling and is  pipeline on which the evolution of source code into a production-ready application depends. CI/CD accelerates the phases of build, test, and deployment to increase the delivery frequency of applications. This acceleration is made possible by automating many tasks within a CI/CD pipeline, which is a series of actions leading to production deployment.</p>
<p style="text-align: justify;">DevSecOps adds security aspects to DevOps and relies on certain internal tools within the CI/CD pipeline. These tools integrate at every level of the CI/CD pipeline to scan the source code (SAST – Static Application Security Testing), dependencies (SCA – Software Composition Analysis), and more. The goal, as discussed in our <a href="https://www.riskinsight-wavestone.com/en/2022/09/security-in-agility-and-devsecops-linked-fates/">previous article</a>, is to integrate security as early as possible. The CI/CD pipeline is a significant component in ensuring the security of developments. One could even say that the CI/CD pipeline plays as important a role in secure development as Identity and Access Management (IAM) does in identity and access management.</p>
<p> </p>
<h2 style="text-align: justify;">CI/CD in AWS</h2>
<p style="text-align: justify;">AWS offers a multitude of services that not only provide classic infrastructure services but also allow the establishment of continuous development pipelines (from source code to deployment), while ensuring proper security testing.</p>
<p> </p>
<figure id="attachment_21745" aria-describedby="caption-attachment-21745" style="width: 554px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="wp-image-21745 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image1.png" alt="" width="554" height="388" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image1.png 554w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image1-273x191.png 273w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image1-56x39.png 56w" sizes="(max-width: 554px) 100vw, 554px" /><figcaption id="caption-attachment-21745" class="wp-caption-text"><em>Example of a CI/CD pipeline primarily hosted on AWS</em></figcaption></figure>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">The orchestrator CodePipeline organises and links the different stages of the CI/CD pipeline. This tool coordinates the progression within the CI/CD pipeline based on the results of other tools and services. If one of the tools returns a failure code, the pipeline can be blocked if necessary. The reasons for a pipeline failure can vary, such as insufficient code security score or tool deployment failure.</p>
<p> </p>
<h3 style="text-align: justify;">Code Management: SCM and AWS CodeCommit</h3>
<p style="text-align: justify;">Code version control systems (or SCM: Source Code Manager) are essential tools for collaborative code editing during  development and serve as the starting point for continuous integration pipelines. Currently, only three SCMs offer native integration: GitHub, BitBucket, and AWS CodeCommit. For any other integration with a non-natively supported SCM, you can create a serverless Lambda function-based routine and a webhook (HTTP notification) to download source code to AWS S3 with each developer commit.</p>
<p style="text-align: justify;">AWS CodeCommit is the SCM service offered by AWS. It&#8217;s a code hosting service that supports version control and collaboration, similar to GitHub or GitLab, with Git commands. The advantage of AWS CodeCommit is its full integration with the AWS environment, making it easier to interconnect with other AWS services. Using AWS CodeCommit also allows for the use of AWS Identity and Access Management (IAM), avoiding the duplication of identity repositories and role management within a third-party SCM. All of this makes AWS CodeCommit a suitable solution when used within an entirely AWS environment due to its close integration with other AWS services. However, AWS CodeCommit offers relatively limited features compared to GitHub such as user experience and interface, and has a smaller community than GitHub or GitLab. If the CI/CD pipeline includes multiple solutions external to AWS, other solutions such as GitHub or GitLab will likely provide more flexibility.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Build Phase: AWS CodeBuild</h3>
<p style="text-align: justify;">Once development is complete, AWS CodeBuild takes over. This tool can be used for both compiling/building an application and running tests via CI runners. The service executes the instructions provided in an input file called buildspec.yml. It is a versatile tool, similar to classic CI tools like GitLab CI or GitHub Actions.</p>
<p> </p>
<figure id="attachment_21747" aria-describedby="caption-attachment-21747" style="width: 877px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-21747 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2.png" alt="" width="877" height="526" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2.png 877w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2-318x191.png 318w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2-65x39.png 65w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2-768x461.png 768w" sizes="(max-width: 877px) 100vw, 877px" /><figcaption id="caption-attachment-21747" class="wp-caption-text"><em>Example of BitBucket Integration in AWS CodeBuild*</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">AWS CodeBuild also allows for running security tests (SAST, SCA, etc.) by installing and using applications on its runners. Take SonarQube, for example, a code quality tool with a SAST module for scanning source code to identify vulnerabilities. The execution works as follows:</p>
<p> </p>
<figure id="attachment_21749" aria-describedby="caption-attachment-21749" style="width: 605px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-21749 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image3.png" alt="" width="605" height="363" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image3.png 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image3-318x191.png 318w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image3-65x39.png 65w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption id="caption-attachment-21749" class="wp-caption-text"><em>Launching a SonarQube code scan with AWS CodeBuild</em></figcaption></figure>
<p style="text-align: justify;"> </p>
<ol style="text-align: justify;">
<li>When the source code is modified, a webhook notification (HTTP POST request from the SCM) is sent to AWS (in practice, this event is managed by AWS EventBridge or AWS CodePipeline), triggering the test.</li>
<li>The source code is duplicated on the CI runner, which scans it and produces a report.</li>
<li>This report is then sent to a SonarQube server (on-premise or on an EC2).</li>
<li>After analysis, SonarQube produces a final report indicating the code&#8217;s security level.</li>
<li>These results are sent to CodeBuild, which interprets, based on the conditions in the buildspec.yml file, whether the test was successful or not.</li>
</ol>
<p style="text-align: justify;">Again, the key advantage of CodeBuild is its integration with the environment, allowing close collaboration with other AWS services. For example, it&#8217;s easier to assign specific roles to CodeBuild projects, use AWS Secrets Manager (for secret management), or enable deployment with AWS CodeDeploy.</p>
<p> </p>
<h3 style="text-align: justify;">Deployment: AWS CodeDeploy</h3>
<p style="text-align: justify;">The deployment of an application marks the end of its development cycle. Within AWS, deployment is achieved through AWS CodeDeploy. Its role is to retrieve the artifacts and necessary configuration files from dedicated S3 buckets and deploy them on the chosen server (EC2, etc.). AWS CodeDeploy differs from AWS Elastic Beanstalk, which deploys an application solely based on its code (usually not supporting compiled languages like C/C++).</p>
<p style="text-align: justify;">CodeDeploy operates by deploying code to any type of server, whether hosted by AWS or not. Its operation is simple: an agent (CodeDeploy agent) is installed on the target server. This agent is responsible for downloading the artifacts, installing them, and launching the application.</p>
<p> </p>
<figure id="attachment_21751" aria-describedby="caption-attachment-21751" style="width: 605px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-21751 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4.png" alt="" width="605" height="347" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4.png 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4-333x191.png 333w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4-68x39.png 68w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4-120x70.png 120w" sizes="auto, (max-width: 605px) 100vw, 605px" /><figcaption id="caption-attachment-21751" class="wp-caption-text"><em>Deployment of an application on an EC2 instance using AWS CodeDeploy and GitHub (no artifacts are downloaded from AWS S3 in this example)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">It is necessary to define in advance the instances involved in the deployment and assign them an arbitrary AWS tag for identification. All these instances then constitute a &#8220;deployment group.&#8221; When deployment is initiated, CodeDeploy selects the relevant instances and publishes its instructions. However, communication is initiated by the target instance; the CodeDeploy agent contacts the CodeDeploy service by polling for new instructions (polling mode). This communication method avoids opening ports, enhancing the security posture of the instance.</p>
<p style="text-align: justify;">AWS CodeDeploy is an effective tool for deploying code to any type of infrastructure. However, it requires the installation of an agent managed by AWS on the instance where the code is deployed, which may not always be desirable depending on the client&#8217;s context. Polling by EC2 instances may impact the performance of a critical application or be detected as malicious by Endpoint Detection and Response (EDR) or Network Detection &amp; Response (NDR) systems.</p>
<p> </p>
<h2 style="text-align: justify;">Securing the AWS CI/CD Pipeline</h2>
<p style="text-align: justify;">Given the critical role of the CI/CD pipeline in application development, it is essential to secure this infrastructure, including tooling, integration, and pipeline configuration. Below, we summarise some areas to consider when implementing an AWS CI/CD pipeline, which can be managed through the creation of AWS policies to alert or enforce their application.</p>
<p> </p>
<h3 style="text-align: justify;">Flow Management</h3>
<p style="text-align: justify;">By default, flows to AWS managed services (CodeBuild, CodeDeploy, etc.) transit over the internet before returning to the client instance of the resource. To avoid sending all flows to AWS services over the internet, we recommend setting up VPC endpoints. These network access points allow instances within a VPC to contact AWS services as if they were deployed within the VPC.</p>
<p> </p>
<h3 style="text-align: justify;">Secret Management</h3>
<p style="text-align: justify;">Secrets required to access services or other APIs should not be stored in plaintext in SCMs or pipeline configuration files. To avoid any leakage of confidential information during legitimate or unauthorised access to these directories, we recommend implementing an AWS Secret Manager to store secrets (e.g., SonarQube API keys) and distribute them to services only when necessary. Retrieving a secret is done through an API call to this vault, with privilege verification.</p>
<p> </p>
<h3 style="text-align: justify;">Supervision/Monitoring</h3>
<p style="text-align: justify;">Like any infrastructure, the CI/CD pipeline requires monitoring. Native AWS solutions for service monitoring include AWS CloudWatch for log collection, AWS EventBridge for creating alerts, and AWS SNS/SQS for sending notifications to predefined groups (email, SMS, push notifications, etc.). Monitoring the CI/CD pipeline allows for alerting against potentially dangerous production releases, for example, if a project attempts to bypass implemented security policies.</p>
<p> </p>
<h3 style="text-align: justify;">Identity and Access Management</h3>
<p style="text-align: justify;">Privilege management within AWS is based on Role-Based Access Control (RBAC) whereby each user action requires specific permissions. For example, if a user wants access to an S3 bucket, they must first obtain read permission associated with the corresponding S3 resource. It is essential to adhere to the principle of least privilege, which involves assigning clients (users and services) only the rights they need. AWS permissions allow for complete configuration of client access to each service/resource. However, the granularity of rights can be cumbersome to configure in a large-scale CI/CD infrastructure. AWS offers predefined roles that allow for quick application of sets of permissions. Still, these predefined roles often do not adhere to the principle of least privilege. Therefore, it is important to create roles that apply the principle of least privilege without delving into micromanagement of rights.</p>
<p> </p>
<h2 style="text-align: justify;">Our Beliefs on AWS CI/CD</h2>
<p style="text-align: justify;">The CI/CD solutions available in AWS cloud are interesting and natively integrated with other AWS services. Native integration is particularly useful in the case of a pipeline hosted entirely by AWS. When most of a company&#8217;s infrastructure is already migrated to AWS, you can take advantage of interconnections between services and powerful access management and monitoring solutions with minimal additional configuration. However, for a simple and isolated use case, AWS CodeCommit or AWS CodeBuild might not be the preferred choice. Solutions such as GitHub and GitLab offer more comprehensive solutions, better integration with other vendors, and a more user-friendly interface. Similarly, regarding security, AWS does not offer native CI/CD security services for code validation (SAST, DAST, etc.). AWS does not provide native integration, but third-party services can still be integrated relatively easily.</p>
<p> </p>
<p style="text-align: justify;"><em>*Example of BitBucket Integration in AWS CodeBuild &#8211; </em><em><a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-bitbucket-pull-request.html">Source</a></em></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2023/11/ci-cd-in-aws-the-solution-to-all-your-problems-what-you-need-to-know/">CI/CD in AWS: The Solution to All Your Problems? What You Need to Know.</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/en/2023/11/ci-cd-in-aws-the-solution-to-all-your-problems-what-you-need-to-know/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ChatGPT &#038; DevSecOps – What are the new cybersecurity risks introduced by the use of AI by developers? </title>
		<link>https://www.riskinsight-wavestone.com/en/2023/08/chatgpt-devsecops-what-are-the-new-cybersecurity-risks-introduced-by-the-use-of-ai-by-developers/</link>
					<comments>https://www.riskinsight-wavestone.com/en/2023/08/chatgpt-devsecops-what-are-the-new-cybersecurity-risks-introduced-by-the-use-of-ai-by-developers/#respond</comments>
		
		<dc:creator><![CDATA[Valentin Vie]]></dc:creator>
		<pubDate>Tue, 22 Aug 2023 15:00:00 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[chatgpt]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=21035</guid>

					<description><![CDATA[<p>In November 2022, the conversational agent ChatGPT developed by OpenAI was made accessible to the general public. Since then, it&#8217;s an understatement to say that this new tool has garnered interest. Just two months after its launch, the tool became...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2023/08/chatgpt-devsecops-what-are-the-new-cybersecurity-risks-introduced-by-the-use-of-ai-by-developers/">ChatGPT &amp; DevSecOps – What are the new cybersecurity risks introduced by the use of AI by developers? </a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><span data-contrast="auto">In November 2022, the conversational agent ChatGPT developed by OpenAI was made accessible to the general public. Since then, it&#8217;s an understatement to say that this new tool has garnered interest. Just two months after its launch, the tool became the fastest-growing application in history, with nearly 100 million active users per month (a record later surpassed by Threads).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">As users have adopted this product en masse, it now raises several fundamental cybersecurity questions.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Should companies allow their employees – specifically development teams – to continue using this tool without any restrictions? Should they suspend its usage until security teams address the issue? Or should it be outright banned?</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Some companies like J.P. Morgan or Verizon have chosen to prohibit its usage. Apple initially decided to <a href="https://www.businessinsider.com/chatgpt-companies-issued-bans-restrictions-openai-ai-amazon-apple-2023-7">allow the tool for its employees before reversing its decision and prohibiting it</a></span><span data-contrast="auto">. Amazon and Microsoft have simply asked their employees to be cautious about the information shared with OpenAI.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">The most restrictive approach of blocking the platform avoids all cybersecurity questions but raises other concerns, including team performance, productivity, and the overall competitiveness of companies in rapidly changing markets.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Today, the question of blocking AI in IT remains relevant. We propose to provide some answers to this question for a </span><b><span data-contrast="auto">population particularly concerned with the issue: development teams.</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p> </p>
<h2 aria-level="3"><b><span data-contrast="none">ChatGPT, Personal Information Collection, and GDPR</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></h2>
<p><span data-contrast="auto">OpenAI&#8217;s product is freely accessible and usable under the condition of creating a user account. It&#8217;s a known trend: if an online tool is free, its source of revenue doesn&#8217;t come from access to the tool. For the specific case of ChatGPT, the information from the history of millions of users helps improve the platform and the quality of the language model. ChatGPT is a preview service: any data entered by the user may be reviewed by a human to improve the services.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Currently, ChatGPT doesn&#8217;t seem compliant with GDPR and data protection laws, but no legal decision has been made. The terms and conditions currently don&#8217;t mention the right to limitation of processing, the right to data portability, or the right to object. The US-based company OpenAI doesn&#8217;t mention GDPR but emphasizes that ChatGPT complies with &#8220;CALIFORNIA PRIVACY RIGHTS.&#8221; However, this regulation only applies to California residents and doesn&#8217;t extend beyond the United States of America. OpenAI also doesn&#8217;t provide a solution for individuals to verify if the editor stores their personal data or to request its deletion.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">When we delve into ChatGPT&#8217;s </span><a href="https://openai.com/policies/privacy-policy"><span data-contrast="none">privacy policy</span></a><span data-contrast="auto">  we can understand that:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<ol>
<li data-leveltext="%1." data-font="Calibri" data-listid="17" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">OpenAI collects user IP addresses, their web browser type, and data and interactions with the website. For example, this includes the type of content generated with AI, use cases, and functions used.</span></li>
<li data-leveltext="%1." data-font="Calibri" data-listid="17" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">OpenAI also collects information about users&#8217; browsing activity on the web. It reserves the right to share this personal information with third parties, without specifying which ones.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
</ol>
<p><span data-contrast="auto">All of this is done with the goal of improving existing services or developing new features.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Turning back to developer populations, today we observe that the majority of code is written collaboratively using Git tools. Thus, it&#8217;s not uncommon for a developer to have to understand a piece of code they didn&#8217;t write themselves. Instead of asking the original author, which can take several minutes (at best), a developer might turn to ChatGPT to get an instant answer. The response might even be more detailed than what the code&#8217;s author could provide.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<table style="width: 100%; border-collapse: collapse; background-color: #b8bab8;">
<tbody>
<tr>
<td style="width: 100%;">
<p><span style="color: #ffffff;">As a result, it&#8217;s more than necessary to anonymize the elements shared with the Chatbot. Otherwise, some individuals might gain unauthorized access to confidential data. Thus, if a developer wants to understand the functionalities of a piece of code they&#8217;re not familiar with using ChatGPT&#8217;s help, they should: </span></p>
<ul style="list-style-type: circle;">
<li data-leveltext="•" data-font="Calibri" data-listid="19" data-list-defn-props="{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;•&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="0" data-aria-level="1"><span style="color: #ffffff;">Break down the code to avoid revealing complete functionalities, </span></li>
<li data-leveltext="•" data-font="Calibri" data-listid="19" data-list-defn-props="{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;•&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="0" data-aria-level="1"><span style="color: #ffffff;">Remove all secrets and potential passwords present in the code (a good practice to follow even without using ChatGPT), </span></li>
<li data-leveltext="•" data-font="Calibri" data-listid="19" data-list-defn-props="{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;•&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="0" data-aria-level="1"><span style="color: #ffffff;" data-contrast="auto">Change the names of variables that are too explicit.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p> </p>
<h2 aria-level="3"><b><span data-contrast="none">Classic Attacks on AI Still Apply</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></h2>
<p><span data-contrast="auto">Today, over half of companies are ready and willing to invest in and equip themselves with tools based on artificial intelligence. Consequently, it will become increasingly important for attackers to exploit this kind of technology. This is especially considering that cybersecurity as a notion is often overlooked when discussing artificial intelligence.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">OpenAI&#8217;s AI isn&#8217;t immune to </span><b><span data-contrast="auto">poisoning attacks</span></b><span data-contrast="auto">. Even if the AI is trained on a substantial knowledge base, it&#8217;s unlikely that all of that knowledge has undergone manual review. If we return to the topic of </span><b><span data-contrast="auto">code generation, it&#8217;s plausible that based on certain specific inputs, the AI might suggest code containing a backdoor.</span></b><span data-contrast="auto"> While this scenario hasn&#8217;t been observed, it&#8217;s not possible to prove that it won&#8217;t occur for a specific user input.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">We can also assume that the tool has been trained only on relatively safe web sources. The Large Language Model (LLM) on which ChatGPT is based: GPT3, could be susceptible to &#8220;self-poisoning.&#8221; As GPT3 is used by millions of users, it&#8217;s highly likely that text generated by GPT3 ends up in trusted internet content. The training of GPT4 could theoretically contain text generated by GPT3. Thus, the AI might learn from knowledge generated by previous versions of the same LLM model. It will be interesting to see how OpenAI addresses the poisoning issue as the model evolves.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Poisoning is one technique for adding backdoors to AI-generated code, but this isn&#8217;t the only attack vector. It&#8217;s also possible that compromising OpenAI&#8217;s systems could allow modifying ChatGPT&#8217;s configuration to suggest code containing backdoors under specific conditions. A malicious attacker might even filter based on the user account identity of ChatGPT (e.g., an account ending with @internationalfirm.com) to decide whether to generate code containing backdoors and other vulnerabilities. Thus, it&#8217;s necessary to remain vigilant about OpenAI&#8217;s security level to prevent any rebound compromise.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p> </p>
<h2 aria-level="3"><b><span data-contrast="none">ChatGPT and Code Generation</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></h2>
<p><span data-contrast="auto">Code generation via ChatGPT is one of the features that can save developers the most time on a daily basis. For instance, a developer could ask to write a code skeleton for a function and then complete/correct the AI&#8217;s errors as needed. The main risk introduced by this practice is the insertion of malicious code into an application.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">However, the risk existed well before ChatGPT. A malicious developer could very well obfuscate their code and deliberately insert a backdoor into an application. However, the introduction of AI brings a new dimension to the risk since a well-intentioned user might </span><b><span data-contrast="auto">inadvertently</span></b><span data-contrast="auto"> introduce a backdoor. This needs to be considered in the context of the </span><b><span data-contrast="auto">organization&#8217;s maturity regarding its CI/CD pipeline. Conducting SAST, DAST scans, and various audits before production helps reduce the risk.</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">We have observed that code generation via ChatGPT does not follow security best practices by default. The tool can generate code using </span><b><span data-contrast="auto">insecure functions like scanf in C programming language</span></b><span data-contrast="auto">. We provided the following query to the tool: &#8220;Can you write a function in C language that creates a list of integers using user inputs?&#8221; (initially prompted in French).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-21041 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT1.png" alt="xtrait de code - Code généré par ChatGPT suite à l’entrée utilisateur décrite ci-dessus " width="732" height="624" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT1.png 732w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT1-224x191.png 224w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT1-46x39.png 46w" sizes="auto, (max-width: 732px) 100vw, 732px" /></p>
<p style="text-align: center;"><i><span data-contrast="none">Code generated by ChatGPT following the described user input</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p><span data-contrast="auto">Analyzing the code generated by ChatGPT, among other things, we notice three significant vulnerabilities:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<ol>
<li><span data-contrast="auto">To begin, the use of the scanf function allows the user to enter any input length (int overflow&#8230;). There&#8217;s no validation of the user&#8217;s input, which remains a key vulnerability type highlighted by the OWASP TOP10.</span></li>
<li>Additionally, the function is sensitive to buffer overflow: beyond the 100th input, the list &#8220;list&#8221; no longer has space to store additional data, which can either end execution with an error or allow a malicious user to write data in a memory area that&#8217;s not authorized,<b style="font-size: revert; color: initial;"><span data-contrast="auto"> to take control of program execution.</span></b></li>
<li>Finally, ChatGPT allocates memory to the list via the malloc function but forgets to free the memory once the list is no longer used, which could lead to <b style="font-size: revert; color: initial;"><span data-contrast="auto">memory leaks.</span></b><span style="font-size: revert; color: initial;" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
</ol>
<p><span data-contrast="auto">So, by default, Chat GPT does not generate code securely, unlike an experienced developer. </span><b><span data-contrast="auto">The tool proposes code containing critical vulnerabilities</span></b><span data-contrast="auto">. If the user is cybersecurity-aware, they can ask ChatGPT to identify vulnerabilities in their own code. ChatGPT is fully capable of detecting some vulnerabilities in the code generated by itself.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-21046 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT3.png" alt="" width="815" height="339" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT3.png 815w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT3-437x182.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT3-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT3-768x319.png 768w" sizes="auto, (max-width: 815px) 100vw, 815px" /></p>
<p style="text-align: center;"><em>ChatGPT is able to detect vulnerabilities in code it has generated.</em></p>
<p><span data-contrast="auto">To summarize, code generation via ChatGPT doesn&#8217;t introduce new risks but </span><b><span data-contrast="auto">increases the probability of a vulnerability appearing in production</span></b><span data-contrast="auto">. Recommendations can vary based on the organization&#8217;s maturity and confidence in securing code delivered to production. A robust CI/CD pipeline and strong processes with automatic security scans (SAST, DAST, FOSS&#8230;) have a good chance of detecting the most critical vulnerabilities.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p aria-level="3"> </p>
<p><span data-contrast="auto">ChatGPT isn&#8217;t the only online resource accessible to users that can lead to data exfiltration (Google Drive, WeTransfer&#8230;). The risk of data leakage already looms over any organization that hasn&#8217;t implemented an allow-list on its users&#8217; internet proxy. The differentiating factor in the case of ChatGPT is that the user doesn&#8217;t necessarily realize the public nature of the data posted on the platform. The benefits and time saved by the tool are often too tempting for the user, making them forget best practices. In this sense, ChatGPT doesn&#8217;t introduce new risks but increases the likelihood of data leakage.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><b><span data-contrast="auto">An organization therefore has two options to prevent data leakage via ChatGPT: (1) train and educate its users and trust them, or (2) block the tool.</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">For developer populations, once again, code generation via ChatGPT doesn&#8217;t introduce new risks but increases the probability of a vulnerability appearing in production. It&#8217;s up to the organization to assess the capabilities of its CI/CD pipeline and production processes to evaluate residual risks, particularly concerning false negatives from integrated security tools (SAST, DAST&#8230;).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">To make an informed decision, a </span><b><span data-contrast="auto">risk analysis remains a valuable tool for deciding whether to potentially block access to ChatGPT</span></b><span data-contrast="auto">. The following aspects should be considered: user awareness level, sensitivity of manipulated data, internet filtering paradigm, maturity of the CI/CD pipeline&#8230; These analyses should, of course, be balanced against potential productivity gains for teams.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2023/08/chatgpt-devsecops-what-are-the-new-cybersecurity-risks-introduced-by-the-use-of-ai-by-developers/">ChatGPT &amp; DevSecOps – What are the new cybersecurity risks introduced by the use of AI by developers? </a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/en/2023/08/chatgpt-devsecops-what-are-the-new-cybersecurity-risks-introduced-by-the-use-of-ai-by-developers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Stay in control of your external developments</title>
		<link>https://www.riskinsight-wavestone.com/en/2023/02/stay-in-control-of-your-external-developments/</link>
					<comments>https://www.riskinsight-wavestone.com/en/2023/02/stay-in-control-of-your-external-developments/#respond</comments>
		
		<dc:creator><![CDATA[Valentin Vie]]></dc:creator>
		<pubDate>Fri, 03 Feb 2023 10:00:00 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[outsourcing]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=19585</guid>

					<description><![CDATA[<p>How to ensure the security of your applications despite outsourcing their development?   Integrating security into projects is an important process for companies to define and integrate security aspects into products as early as possible. This avoids increasing the cost...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2023/02/stay-in-control-of-your-external-developments/">Stay in control of your external developments</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<blockquote>
<p style="text-align: justify;">How to ensure the security of your applications despite outsourcing their development?</p>
</blockquote>
<p> </p>
<p style="text-align: justify;">Integrating security into projects is an important process for companies to define and integrate security aspects into products as early as possible. This avoids increasing the cost of remediation if it has not been planned and is implemented at the end of the project.</p>
<p style="text-align: justify;">In the context of developments, Agile Security and DevSecOps define the processes and tools to be put in place to integrate security as early as possible, as presented in our previous article giving examples.</p>
<p style="text-align: justify;">These methods are often defined on internal developments. However, <strong>it is often the case that companies call on external service providers to develop a particular application or functionality</strong>. In this case, it is important to ensure that these providers follow rigorous security practices and that they integrate security into their development processes to the same standards as the requester. This leads to the following question:</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">External developments: how to maintain confidence in externally developed code?  </h1>
<p style="text-align: justify;">In the remainder of this article, external code is defined as all code elements that have not been developed through an internalised CI/CD chain. For example, a freelance developer using the internal CI/CD chain or an enterprise workstation is not considered external code.</p>
<p style="text-align: justify;">In addition, we will consider two models of application delivery depending on the development model used by the provider:</p>
<ul style="text-align: justify;">
<li>delivery of the source code itself</li>
<li>delivery of the executable, i.e. the already precompiled code</li>
</ul>
<p style="text-align: justify;">It is important to note that these two application delivery models have different implications in terms of cyber security and DevSecOps.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Code delivery</h1>
<p style="text-align: justify;">In the case of code delivery, external providers hand over the code they have written, usually in the form of source files (e.g. .java files for Java code), to the company. The company can then audit, compile and deploy the code on its own servers.</p>
<p style="text-align: justify;">Code delivery has several advantages. The first advantage is flexibility: by delivering the source code, the company can easily make changes and customisations to the code. It can also integrate the code into its existing development and deployment environment (CI/CD) containing all the pre-configured security tools.</p>
<p style="text-align: justify;">The company then does not have to place its trust in the security of the provider&#8217;s CI chain over which it has no control. In addition, the company with access to the source code can also audit it and thus verify that it is secure. These audits tend to be more comprehensive as the auditor has access to much more detail about the operation of the code and can perform both static and dynamic analysis of the code.</p>
<p style="text-align: justify;">On the other hand, code delivery has some disadvantages. The company must have the skills to adapt the build and deployment stages to the production context. If these skills are not available in-house, this can lead to additional costs.  </p>
<p style="text-align: justify;">Here are some good practices to maximise confidence in the delivered code:</p>
<ul style="text-align: justify;">
<li>Share as early as possible (contract, kick-off meeting) the expected requirements on security in development, software versions, internal tooling used for deployment, confidentiality of source code, etc. Some clients require external developers to have a certain level of certification or training (for example, a level of training on Secure Code Warrior, in a certain programming language).</li>
<li>Define and contractualise commitments on the remediation processes for identified vulnerabilities after code delivery and the associated monitoring (monitoring tools, SLAs, etc.)</li>
<li>Implement a hash or signature type control on the code sent to ensure its integrity and define the methods for secure transfer of the source code with the service provider</li>
<li>Integrate the code received into the existing CI/CD chain, including the Infrastructure as Code (IaC) files</li>
<li>Carry out the functional security tests initially defined during the threat modelling: Evil User Stories and Security Stories</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Some organisations may be faced with a situation where the notion of external developers corresponds to developers from other entities within the same group. These entities may have their own CI chains but depend on the CD or CI/CD chain of the central production team.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-19574 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1EN.png" alt="" width="929" height="313" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1EN.png 929w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1EN-437x147.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1EN-71x24.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1EN-768x259.png 768w" sizes="auto, (max-width: 929px) 100vw, 929px" /></p>
<p style="text-align: justify;">In these cases, an interconnection of the different CI chains to the central CI/CD chain can be considered. This solution allows the different teams to develop with the tools that best suit them.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">The level of security provided by the project CI/CD chain is ideally equivalent to that of production but this is not necessarily the case. The production CI/CD chain controls the code to be deployed.</p>
<p style="text-align: justify;">However, security control is often carried out too late in the development process. To ensure effective security in developments, it is crucial to ensure that security is integrated from the beginning of the development cycle (shift-left). To address this, it is recommended to provide self-service security tools for project teams to identify vulnerabilities early in their development using the appropriate target tools.</p>
<p style="text-align: justify;">Otherwise, the security tools in the production CI/CD chain will ensure compliance with the group&#8217;s rules without slowing down the production release if automated security controls have been put in place within the project chain.</p>
<p style="text-align: justify;">This solution also allows production to ensure the use of images (systems, docker, etc.) or artefacts (libraries) validated by the company.</p>
<p style="text-align: justify;">These interconnections between the different pipelines can, for example, clone the branch to be deployed by the product team in order to push them into the CD chain. However, the production teams must have the appropriate rights. Technically, the model for managing the rights granted (ideally temporarily) must meet both the need to facilitate execution and the need for rights provisioning (manual vs. automatic), while limiting access to all branches or projects in order to respect the principle of least privilege.</p>
<p style="text-align: justify;">Most of the good practices mentioned above also apply to reduce the time to production.</p>
<p style="text-align: justify;">Although the methods described above appear to be the most effective for gaining control over applications developed by third parties, companies sometimes find themselves receiving executables without access to the source code. This may be due to licensing restrictions, for example. In this case, some of the good practices outlined above do not apply, and it is necessary to rethink how to integrate changes into production so as not to neglect certain security aspects.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Executable delivery</h1>
<p style="text-align: justify;">In the case of executable delivery, external providers hand over an executable file (e.g., an .exe file for Windows servers) that can be directly executed by the company without compilation. This delivery method is often used for commercial software that still requires some configuration adjustments.</p>
<p style="text-align: justify;">In this context, the integration in the deployment chain is much more limited and only a few classical CD steps can be performed without the security steps of the CI chain being verified:</p>
<ul style="text-align: justify;">
<li>Performing an artefact scan</li>
<li>Performing a DAST scan to detect the most common vulnerabilities</li>
<li>Performing penetration tests</li>
</ul>
<p style="text-align: justify;">Reports from the security tools of the development provider&#8217;s chain can also be requested. This must be included in the service contract, along with the security requirements for the level of security of the code.</p>
<p style="text-align: justify;">Finally, a signature of the code to ensure its integrity is necessary at the time of the exchange and the executable. For this purpose, it is better to use signatures via certificates rather than hash prints, since the latter make it possible to verify the origin (non-repudiation) in addition to the integrity of the executable.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">In conclusion, it is important for companies to ensure the quality and security of the code delivered by external providers, especially when the latter are developing code on external CI chains. There are several ways to convince yourself of the security of the delivered code:</p>
<ul style="text-align: justify;">
<li>Clear and precise contractual clauses can help define the expectations and responsibilities of each party with regard to the quality and security of the code.</li>
<li>Sharing specifications and security expectations with external providers can also help ensure that the delivered code meets the company&#8217;s requirements.</li>
<li>Integration with internal development chain tools can facilitate verification of code quality and security, as well as the implementation of automated testing. These integrations raise both technical and process challenges that must be anticipated to facilitate the deployment of external developments.</li>
</ul>
<p style="text-align: justify;">By implementing these different approaches, companies can increase their confidence in the code delivered by external providers and ensure the security of their application.</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2023/02/stay-in-control-of-your-external-developments/">Stay in control of your external developments</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/en/2023/02/stay-in-control-of-your-external-developments/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
