CISO를 바쁘게 만드는 현대 소프트웨어 개발 환경에서 증가하는 사이버 보안 위험에는 어떤 것이 있나요?
개발자와 보안 팀은 정교한 오픈 소스 및 공급업체가 제어하는 공급망 공격부터 신속한 삽입 및 GitHub Copilot의 열악한 코드 보안과 같은 AI 생성 코드로 인해 발생하는 취약점에 이르기까지 점점 더 증가하는 위협에 직면하고 있습니다. 종종 오픈 소스 구성 요소(예: npm, PyPI 또는 RubyGems에서 찾을 수 있는 구성 요소)와 컨테이너화된 배포에 크게 의존하는 현대 애플리케이션의 복잡성이 문제를 가중시킵니다.
이러한 위험의 규모와 복잡성을 고려할 때 취약점 관리 자동화는 필수가 되었습니다. 수동 사이버 보안 프로세스로는 잠재적인 취약점과 소프트웨어 개발의 규모와 속도를 따라잡을 수 없습니다. 자동화는 보안 문제의 식별 및 해결 속도를 높일 뿐만 아니라 보안 팀이 정기적으로 따르는 이러한 프로세스가 소프트웨어 개발 수명 주기의 모든 단계에 일관되게 적용되도록 보장합니다.
이를 좀 더 자세히 분석해 보겠습니다. 세간의 이목을 끄는 공급망 공격의 또 다른 예는 Codecov에 대한 공격입니다. Codecov에서는 공격자가 널리 사용되는 코드 검사 도구의 취약점을 악용하여 민감한 데이터에 액세스할 수 있습니다. 개발자의 일상에는 오픈 소스 종속성과 관련된 위험을 관리하는 것이 포함됩니다. 오픈 소스 종속성으로 인해 코드베이스에 직접적 및 전이적 취약점이 모두 발생할 수 있습니다. 직접적인 취약점은 명시적으로 포함된 라이브러리에서 발견되는 반면 전이적 취약점은 해당 라이브러리의 종속성에 존재합니다. 이러한 위험을 수동으로 관리하는 것은 어려운 일이므로 자동화는 강력한 보안 전략의 중요한 구성 요소입니다.
GenAI를 사용하면 GitHub Copilot 또는 ChatGPT와 같은 AI 코드 도우미가 실제 잠재적인 취약점을 드러냅니다. GenAI는 실수로 안전하지 않은 코딩 관행을 도입하거나 상황별 보안 요구 사항을 인식하지 못할 수 있습니다. 예를 들어 AI 모델은 SQL 주입이나 XSS(교차 사이트 스크립팅) 공격에 취약한 코드를 생성할 수 있습니다. 따라서 AI 생성 코드를 모니터링하고 보호하는 것은 애플리케이션 보안을 유지하는 데 중요합니다.
새로운 컨테이너 취약점을 따라잡는 복잡성은 보안 팀에서도 피할 수 없습니다. 새로운 컨테이너 취약점의 빠른 속도는 압도적일 수 있습니다. 각각의 새로운 취약점은 잠재적인 악용을 방지하기 위해 적시에 식별하고 해결해야 합니다. 이러한 복잡성으로 인해 컨테이너 보안을 효과적으로 관리하려면 보안 전문 지식을 갖춘 자동화된 솔루션이 필요합니다.
컨테이너 취약성은 애플리케이션의 전반적인 보안에 상당한 영향을 미칠 수 있습니다. 취약한 단일 컨테이너 이미지가 전체 애플리케이션 스택을 손상시킬 수 있습니다. Snyk Container와 같은 도구는 컨테이너 이미지의 취약점을 식별하고 해결하는 프로세스를 자동화합니다. Snyk Container는 취약점 수를 최소화하고 풀 요청을 자동화하여 코드 저장소를 업데이트하는 새로운 기본 이미지 태그를 제안할 수 있습니다.
이러한 모든 AppSec 사이버 보안 위협을 어떻게 완화할 수 있나요?
AI 생성 코드와 관련된 위험을 완화하려면 Snyk Code와 같은 도구를 사용하는 것이 좋습니다. Snyk DeepCode AI로 구동되는 이 빠른 SAST 도구는 플러그인을 통해 개발자의 IDE에 직접 통합될 수 있습니다. 보안 관련 데이터 교육을 사용하여 취약하고 안전하지 않은 코드를 인식함으로써 개발 초기에 문제를 식별하고 해결할 수 있습니다.
Snyk DeepCode AI를 시작하는 방법은 간단합니다. 플러그인은 Visual Studio Code, IntelliJ IDEA, VS Code, PyCharm과 같은 널리 사용되는 IDE를 지원합니다.
설치하고 나면 사이드바의 Snyk 로고에 오픈 소스 종속성, 자체 코드(또는 GenAI에서 생성된 코드) 및 IaC 문제에서 발견된 취약점과 보안 문제가 표시됩니다.
GenAI가 도입한 취약점을 완화한 사례를 살펴보겠습니다. 이 프로젝트에서는 GitHub Copilot을 사용하여 OpenAI API를 쿼리하기 위한 Express POST 엔드포인트 경로를 생성하는 코드를 자동 완성한 다음 res.send()를 사용하여 브라우저에 응답을 보냈습니다.
그러나 이 페이로드의 응답이 브라우저에서 직접 렌더링된다면 어떻게 될까요? 이 요청을 보내는 데 기본 text/html 콘텐츠 유형 헤더가 사용된 경우 크로스 사이트 스크립팅 취약점이 실행 중인 애플리케이션에 영향을 미칠 수 있습니다. 이에 대해 어떻게 해야 할까요?
31행 위의 주석에서 볼 수 있듯이 Snyk는 이 보안 문제를 해결할 것을 제안합니다. 이를 클릭하자 몇 초 내에 Snyk DeepCode AI 확장 프로그램이 다음과 같이 res.send()를 res.json으로 대체하는 완화 방법을 제안했습니다.
res.json(response.choices[0].message.content);
이러한 변경으로 Express 애플리케이션은 응답의 콘텐츠 유형을 일반 텍스트이고 경고()와 같은 텍스트를 허용할 수 있는 application/json으로 강제 지정합니다.
개발자는 IDE에서 Snyk를 활용함으로써 기본 Snyk DeepCode AI 엔진을 사용하여 취약점을 사전에 식별하고 완화할 수 있으므로 처음부터 코드의 보안을 유지할 수 있습니다. 애플리케이션 보안에 대한 이러한 사전 예방적 접근 방식은 오픈 소스 공급망 및 GenAI 생성 코드와 관련된 위험이 항상 존재하는 오늘날의 환경에서 필수적입니다.
Snyk Open Source는 개발자와 보안 팀이 오픈 소스 종속성과 관련된 위험을 관리할 수 있도록 설계된 강력한 도구입니다. 오픈 소스 라이브러리에 대한 의존도가 높아짐에 따라 강력하고 자동화된 종속성 관리에 대한 필요성이 그 어느 때보다 중요해졌습니다. Snyk Open Source는 포괄적인 취약성 검색 및 해결 기능을 제공하여 프로젝트의 보안과 규정 준수를 보장합니다.
이전 Node.js 애플리케이션에서는 Snyk가 다음과 같이 보안 문제를 경고하는 SQLite 종속성을 사용하기도 했습니다.
This vulnerability information is helpful to understand which transitive dependency is introducing the security risk and how to mitigate it, if at all possible. In this case, the transitive dependency inflight is detected to have a medium vulnerability.
Snyk detects that my lockfile and dependency is potentially out of date and so it can’t find a remediation path. However, let’s see the automation in practice when we import the GitHub code repository to Snyk. Doing so, shows the following information on the Snyk application:
From this point on, Snyk will automatically open new Pull Requests to suggest dependency upgrades when security vulnerabilities are detected in my package manifest.
Managing dependencies is not just about the libraries you directly include in your project. Transitive dependencies—those pulled in by your direct dependencies—can also introduce vulnerabilities. Snyk excels at identifying and remediating vulnerabilities in both direct and transitive dependencies.
Consider the following scenario:
{ "dependencies": { "express": "^4.17.1", "lodash": "^4.17.20" } }
In this example, express and lodash are direct dependencies. However, express might have its own set of dependencies, which in turn might have their own dependencies. Snyk will traverse this entire dependency tree, identifying and addressing vulnerabilities at every level.
When it comes to managing container vulnerabilities, Snyk Container helps remove the burden of keeping base image tags up-to-date with security patches.
Snyk Container is a comprehensive solution designed to help developers and security teams manage container vulnerabilities effectively. Containerized application workloads is prevalent at the Enterprise and as is the need to secure these environments. Snyk Container integrates seamlessly into your CI/CD pipeline, providing continuous monitoring and proactive remediation of vulnerabilities in your container images.
One of the standout features of Snyk Container is its ability to automate the creation of Pull Requests to address vulnerabilities in your container images. This automation is a game-changer for both developers and security teams, as it significantly reduces the manual effort required to keep container images secure.
Here's an example of how Snyk Container might automate a PR to update a vulnerable package in a Dockerfile:
FROM node:14.1.0 RUN npm install express COPY . /app CMD ["node", "/app/index.js"]
When Snyk Container detects a vulnerability, it automatically generates a PR with the necessary changes to mitigate the issue. This could include updating a vulnerable package or applying a security patch. By automating this process, Snyk Container ensures that vulnerabilities are addressed promptly, reducing the window of exposure.
By following these recommended base images, you can significantly reduce the number of vulnerabilities in your container images, enhancing the overall security of your applications.
Snyk Container identified multiple vulnerabilities in this base image and automatically generated PRs to update the image and associated dependencies. The team was able to review and merge these PRs quickly, reducing their vulnerability count by over 30% within seconds by merging the Pull Request and ensuring the CI/CD pipeline tests pass with flying colors.
This proactive approach not only improved the security posture of their applications but also freed up valuable time for developers to focus on building new features rather than managing vulnerabilities.
위 내용은 개발자 및 보안팀을 위한 사전 예방적인 AppSec 지속적인 취약점 관리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!