오픈 소스의 미래가 위협받고 있습니까?
게시 됨: 2023-01-24오픈 소스 소프트웨어(OSS)는 오늘날 애플리케이션 아키텍처의 중추입니다. 출시 시간을 단축하고 종종 과로한 개발자의 부담을 줄임으로써 오픈 소스는 DevOps 환경 내에서 혁신적인 위치를 확고히 했습니다. 최신 애플리케이션 개발에 큰 변화를 가져왔지만 오픈 소스 복사 및 붙여넣기는 조직과 개인 모두에게 계속해서 주요 보안 위험을 나타냅니다. 이를 방지하려면 오픈 소스 코드의 전체 블랙리스트 또는 차세대 WAF 솔루션 과 같은 대책의 사전 예방적 구현이 필요합니다.
타사 코드는 앱 개발에 매우 중요합니다.
라이브러리는 웹 또는 모바일 애플리케이션 구성 요소를 위한 소스 코드를 매우 편리하게 보관하는 곳입니다. 이러한 라이브러리는 모든 사람이 무료로 사용할 수 있는 오픈 소스일 수도 있고 결제 뒤에 코드를 잠그는 독점일 수도 있습니다. 오픈 소스가 많은 영예를 주장하지만 독점 코드는 엔터프라이즈 애플리케이션의 지속적인 기능에도 중요한 역할을 합니다.
이 타사 소프트웨어를 책임감 있게 사용하면 개발자가 계속해서 바퀴를 재발명해야 하는 것을 방지할 수 있습니다. 이는 개발 프로세스의 효율성을 크게 향상시키는 동시에 고품질의 최종 제품 생산을 돕습니다. 궁극적으로 오픈 소스 코드를 자유롭고 자유롭게 사용하면 긍정적인 피드백 루프가 생성되어 개발자가 최소한의 실행 가능한 제품을 더 빨리 출시할 수 있으므로 사용자 피드백 및 평가를 신속하게 수집하고 구현할 수 있습니다. 개발자는 DevOps 프로세스 내에서 오픈 소스의 중요한 위치를 깊이 인식하고 있지만 경영진은 최신 애플리케이션을 지원 하는 코드의 80%가 기존 코드에서 생성된다는 사실에 종종 놀라곤 합니다.
전이 의존성의 어두운 위험
오픈 소스 코드에 위험이 따른다는 것은 뉴스가 아닙니다. Log4j 및 HeartBleed와 같은 최근 널리 퍼진 약점은 지도에 오픈 소스 위험을 돌이킬 수 없는 위치에 놓았습니다. 점점 더 많은 이해 영역이 남아 있는 것은 오픈 소스가 사용되는 순수한 빈도와 취약성이 활성 프로젝트에 잠입할 수 있는 은밀함입니다. 오픈 소스 프로젝트가 제시하는 지속적인 위험에도 불구하고 오픈 소스가 제시하는 특정 유형의 위험에 대한 연구는 거의 수행되지 않았습니다. Endor Labs의 연구원들은 주요 OSS 위협의 근원을 명확히 함으로써 이를 바꾸기 시작했습니다.
소프트웨어 내에서 전이 종속성은 두 구성 요소 간의 고유하고 간접적인 관계를 설명합니다. 예를 들어 개발팀이 진행 중인 프로젝트에 패키지 B를 추가한다고 가정해 보겠습니다. 패키지 B는 패키지 C를 자동으로 다운로드합니다. 이 시나리오에서 개발 중인 소프트웨어는 패키지 B와 직접적인 관계를 누리고 있지만 패키지 C는 백그라운드에 숨어 있습니다. 통합적이지만 거의 보이지 않습니다. 보다 안전한 개발 관행에 대한 시도를 좌절시키는 것은 오픈 소스 소프트웨어 종속성의 5%만이 DevOps 프로세스 내에서 구현을 위해 수동으로 선택된다는 사실입니다. 이러한 방식으로 대부분의 종속성은 단순히 자동으로 코드베이스로 가져옵니다. 이는 전이적 취약성의 출처를 설명합니다. Endor Labs의 최근 보고서에 따르면 놀랍게도 95%의 오픈 소스 취약성이 전이 종속성에서 비롯된 것으로 나타났습니다.
이 데이터는 가장 인기 있는 무료 오픈 소스 소프트웨어를 나열한 Core Infrastructure의 Census II 보고서에서 수집되었습니다. 그런 다음 이 데이터는 Endor 연구원이 널리 사용되는 패키지 관리자 및 OSS 라이브러리를 스캔할 수 있는 다른 소스로 보강되었습니다. 연구원들은 Census II 데이터에 언급된 254개의 패키지 중 대부분이 평균 14개의 전이 종속성으로 인해 어려움을 겪고 있음을 발견했습니다. 진공 상태에서 14는 놀라울 정도로 높지 않을 수 있지만 대부분의 애플리케이션은 수백은 아니더라도 수십 개의 직접적인 종속성에 의존합니다. 전이적 대응물은 기하급수적으로 확장됩니다.
연구원들이 제기한 주요 우려는 업계에서 널리 퍼진 문제에 대한 과소평가에 근거합니다. 경영진은 개발 프로세스 내에서 사용 중인 소스 코드의 양을 지속적으로 약화시키고 있습니다. 전이적 종속성은 아직 감지되지 않았습니다. 보안 문제의 깊이는 계속해서 표면 아래에 숨어 있어 타이포스쿼팅 및 원격 코드 실행 공격의 폭발 반경을 증가시킵니다. 오픈 소스 코드의 지속적인 재사용이 그 잠재력을 완전히 발휘하려면 DevOps 프로세스 내에서 보안이 더 높은 우선 순위가 되어야 합니다.
숨어 있는 취약점으로부터 보호하는 방법
보안 기술 스택을 유지 관리하는 프로세스가 그 어느 때보다 복잡해졌습니다. 패치 알림이 급속도로 증가함에 따라 엔터프라이즈 보안이 자동화된 패치 없는 보호의 우선 순위를 정해야 할 때입니다. 정적 및 동적 분석과 함께 경계 보안을 우선시하는 기존 조치는 수동 업데이트에 의존하므로 제로 데이에 대한 보호가 없습니다. 악명 높은 SolarWinds 공격에서 공격자가 사용한 백도어 코드는 기술적으로 오류가 없었기 때문에 어떤 정적 분석에서도 탐지되지 않았습니다.
악용 시도를 식별하고 차단하려면 작은 연동 소프트웨어 제품군이 필요합니다. 먼저 애플리케이션의 경계를 정의하고 보호하기 위해 차세대 웹 애플리케이션 방화벽(WAF)을 배포할 수 있습니다. 외부와 내부 사이의 경계에 있는 WAF는 애플리케이션을 오가는 모든 트래픽을 모니터링합니다. 차세대 측면을 통해 이 WAF는 새로운 정책을 자동으로 적용하고 구현할 수 있습니다. 이 지속적인 진화의 자동화된 배포는 구식 WAF가 그렇지 않으면 낭비할 보안 팀의 상당한 시간과 에너지를 확보합니다.
WAF가 코드를 실행하려는 외부 시도를 처리하는 동안 RASP(런타임 애플리케이션 자체 보호)는 내부 약점 및 코드 주입으로부터 보호합니다. 이 수준의 보호는 모든 페이로드(예: SQL 쿼리 및 운영 체제 명령)를 실시간으로 평가합니다. 이 프로세스에는 서명이나 학습 단계가 필요하지 않으며 전적으로 애플리케이션 컨텍스트 내에서 발생합니다. 이는 애플리케이션 내에서 작동하므로 거의 모든 컨텍스트를 다룹니다. 즉, 악용으로 인해 경계가 침해될 수 있더라도 의심스러운 응용 프로그램 동작이 RASP 종료를 트리거하므로 공격자가 측면으로 이동할 수 없습니다. 이것은 의심스러운 활동을 종료하고 보안 팀에 경고합니다. 이러한 방식으로 RASP는 차세대 WAF를 보완합니다. WAF는 악성 트래픽을 차단하는 데 도움이 되지만 RASP는 숨어 있는 전이적 악용으로 인한 위험을 완화합니다. 기술 스택을 보호하는 이러한 구성 요소를 통해 OSS가 현재 보안에 부과하는 부담이 크게 줄어듭니다.