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 종속성도 사용했습니다.
이 취약성 정보는 보안 위험을 초래하는 전이적 종속성과 가능하다면 이를 완화하는 방법을 이해하는 데 도움이 됩니다. 이 경우 진행 중인 전이적 종속성은 중간 수준의 취약점을 가지고 있는 것으로 감지됩니다.
Snyk는 내 잠금 파일과 종속성이 잠재적으로 오래되어 교정 경로를 찾을 수 없음을 감지합니다. 하지만 GitHub 코드 저장소를 Snyk로 가져올 때 실제로 자동화되는 모습을 살펴보겠습니다. 그렇게 하면 Snyk 애플리케이션에 다음 정보가 표시됩니다.
이 시점부터 Snyk는 내 패키지 매니페스트에서 보안 취약점이 감지되면 종속성 업그레이드를 제안하기 위해 자동으로 새로운 끌어오기 요청을 엽니다.
종속성 관리는 프로젝트에 직접 포함하는 라이브러리에 관한 것이 아닙니다. 직접적인 종속성에 의해 가져온 전이적 종속성 역시 취약점을 유발할 수 있습니다. Snyk는 직접적 종속성과 전이적 종속성 모두에서 취약점을 식별하고 해결하는 데 탁월합니다.
다음 시나리오를 고려해보세요.
{ "dependencies": { "express": "^4.17.1", "lodash": "^4.17.20" } }
이 예에서 express와 lodash는 직접적인 종속성입니다. 그러나 Express에는 자체 종속성 세트가 있을 수 있으며, 이는 다시 자체 종속성을 가질 수도 있습니다. Snyk는 이 전체 종속성 트리를 탐색하여 모든 수준에서 취약점을 식별하고 해결합니다.
컨테이너 취약성 관리와 관련하여 Snyk Container는 보안 패치를 통해 기본 이미지 태그를 최신 상태로 유지해야 하는 부담을 덜어줍니다.
Snyk Container는 개발자와 보안 팀이 컨테이너 취약성을 효과적으로 관리할 수 있도록 설계된 포괄적인 솔루션입니다. 컨테이너화된 애플리케이션 워크로드는 기업에서 널리 퍼져 있으며 이러한 환경을 보호해야 할 필요성도 있습니다. Snyk Container는 CI/CD 파이프라인에 원활하게 통합되어 컨테이너 이미지의 취약점을 지속적으로 모니터링하고 사전에 해결합니다.
Snyk Container의 뛰어난 기능 중 하나는 컨테이너 이미지의 취약점을 해결하기 위해 끌어오기 요청 생성을 자동화하는 기능입니다. 이 자동화는 컨테이너 이미지를 안전하게 유지하는 데 필요한 수동 작업을 크게 줄여 개발자와 보안 팀 모두에게 획기적인 변화를 가져옵니다.
다음은 Snyk Container가 PR을 자동화하여 Dockerfile의 취약한 패키지를 업데이트하는 방법에 대한 예입니다.
FROM node:14.1.0 RUN npm install express COPY . /app CMD ["node", "/app/index.js"]
Snyk Container가 취약점을 감지하면 문제를 완화하기 위해 필요한 변경 사항이 포함된 PR을 자동으로 생성합니다. 여기에는 취약한 패키지 업데이트 또는 보안 패치 적용이 포함될 수 있습니다. Snyk Container는 이 프로세스를 자동화함으로써 취약점이 즉시 해결되도록 보장하여 노출 기간을 줄입니다.
이러한 권장 기본 이미지를 따르면 컨테이너 이미지의 취약점 수를 크게 줄여 애플리케이션의 전반적인 보안을 강화할 수 있습니다.
Snyk Container는 이 기본 이미지에서 여러 취약점을 식별하고 PR을 자동으로 생성하여 이미지 및 관련 종속성을 업데이트했습니다. 팀은 이러한 PR을 신속하게 검토하고 병합할 수 있었으며, 끌어오기 요청을 병합하고 CI/CD 파이프라인 테스트가 성공적으로 통과하도록 보장하여 몇 초 만에 취약점 수를 30% 이상 줄일 수 있었습니다.
이러한 사전 예방적 접근 방식은 애플리케이션의 보안 상태를 개선했을 뿐만 아니라 개발자가 취약성을 관리하는 대신 새로운 기능을 구축하는 데 집중할 수 있는 귀중한 시간을 확보했습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3