window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster가 이미 존재합니다') } else { w.LeadBooster = { q: [], on: 함수 (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 함수 (n) { this.q.push({ t: 't', n: n }) }, } } })() 자바스크립트 패키지의 보안 - The Codest
The Codest
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 산업 분야
    • 핀테크 및 뱅킹
    • E-commerce
    • 애드테크
    • 헬스 테크
    • 제조
    • 물류
    • 자동차
    • IOT
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
뒤로 화살표 뒤로 가기
2019-03-26
소프트웨어 개발

자바스크립트 패키지의 보안

다니엘 그렉

매일 자바스크립트 패키지의 양이 증가하고 있습니다. 이는 한편으로는 새로운 솔루션을 요구하는 커뮤니티 활동의 결과이며, 다른 한편으로는 자기 개발 또는 실현의 한 형태로서 새로운 솔루션을 생성합니다. 이러한 큰 성장은 새로운 문과 가능성을 열어주지만 모든 개발자가 알아야 할 위험을 동반하기도 합니다.

2018년 11월 말, 깃허브 커뮤니티에서 다음과 같은 심각한 취약점에 대한 보고가 있었습니다. 이벤트 스트림 - 패키지로 작업하는 데 도움이 되는 노드 이벤트를 더 효율적으로 진행했습니다. 특정 기간 동안 다운로드 횟수가 주당 220만 건 이상에 달할 정도로 꽤 인기가 있었습니다(React의 370만 건과 비교하면). 이벤트 스트림과 그 종속성은 다른 라이브러리에 의존하고 있었습니다. 플랫맵-스팀, 크립토 포켓 멀웨어로 업데이트되었습니다. 이 패키지가 번들로 제공된 컴퓨터의 사용자 계정에서 개인 키와 기타 세부 정보를 훔칠 수 있었습니다.

결국 flatmap-stream은 NPM에서 제거되었고, 이로 인해 다른 많은 라이브러리에서 시간적 문제가 발생했습니다. 같은 해 5월, 커뮤니티는 다음에서 백도어를 발견했습니다. 겟쿠키 패키지는 다른 많은 종속 요소의 일부이기도 합니다. 이러한 예는 여러 가지로 늘어날 수 있으며, 이는 한 패키지에 설치된 종속성에 주의를 기울이는 것이 중요하다는 것을 보여줍니다. 프로젝트에서뿐만 아니라 자바스크립트 관점뿐만 아니라 일반적인 맥락에서도 마찬가지입니다.

공식 솔루션과 대규모 커뮤니티에 의존하세요

가능한 한 프로젝트에서 공식 솔루션을 사용하는 것이 중요합니다. 더 나은 개발 프로세스로 인해 취약성이 덜한 것만이 아닙니다. 일반적으로 더 나은 브랜드와 함께 제공되는 대규모 커뮤니티는 문제를 훨씬 더 빨리 식별하고 더 중요한 것은 좋은 솔루션을 찾는 데 도움이 됩니다.

NPM 트렌드 사용

보안 JavaScript

그림 1 웹팩 NPM 트렌드.

차트

그림 2. 이벤트 스트림 NPM 트렌드.

때로는 패키지의 현재 상태에 대한 지식이 과거를 대표하지 못할 수도 있습니다. npm 트렌드 차트를 간단히 살펴보면 실제 패키지의 추세를 확인할 수 있습니다. 여기에는 취약점이 발견될 수 있는 큰 피크뿐만 아니라 특정 패키지의 일반적인 상태도 표시됩니다(참고: 12월 24일부터 30일까지의 Google 트렌드에서 큰 피크는 휴가 시즌을 나타내며, 반드시 문제가 있는 것은 아닐 수 있습니다). 예를 들어, 그림 1을 보면 주당 웹팩 다운로드 추세를 확인할 수 있습니다. 중단점 없이 안정적으로 성장하는 것을 볼 수 있으며, 이는 Webpack이 안정적이고 안전한 패키지임을 시사할 수 있습니다. 반면에 그림 2를 보면 11월에 큰 폭으로 감소한 것을 볼 수 있는데, 이는 해당 기간에 문제가 발생했을 수 있다는 분명한 신호입니다(이미 알고 있는 사실입니다).

종속성 감사

종속성 상태를 확인하는 가장 신뢰할 수 있는 가장 좋은 방법은 다음을 수행하는 것입니다. 감사. 이 명령은 최신 버전이 필요하지만 이제 기본적으로 yarn과 npm 모두에서 사용할 수 있습니다. 이 명령은 현재 종속성 목록을 적절한 엔드포인트로 전송하고 현재 취약점과 문서 참조를 포함한 기타 사용 세부 정보가 포함된 정보를 반환합니다. (그림3).

흥미로운 데이터

그림 3. npm 감사 명령 결과의 예입니다. 출처: https://docs.npmjs.com

자바스크립트에서 종속성을 관리하는 것은 쉬운 일이 아닙니다. 수많은 솔루션이 매일 증가하고 있으므로 종속성을 현명하고 신중하게 선택해야 한다는 점을 잊지 마세요. 현재 프로젝트를 계속 감사하고 패키지를 정기적으로 업데이트하세요.

자바스크립트 종속성과 그 문제를 해결하는 방법에 대해 자세히 알아보세요, 이 글을 확인해 주세요.

출처:

  1. https://github.com/dominictarr/event-stream/issues/116
  2. https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident
  3. https://blog.npmjs.org/post/173526807575/reported-malicious-module-getcookies
  4. https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities
  5. https://docs.npmjs.com/cli/audit
  6. https://yarnpkg.com/lang/en/docs/cli/audit/

관련 문서

소프트웨어 개발

미래 지향적인 웹 앱 구축: The Codest의 전문가 팀이 제공하는 인사이트

The Codest가 최첨단 기술로 확장 가능한 대화형 웹 애플리케이션을 제작하고 모든 플랫폼에서 원활한 사용자 경험을 제공하는 데 탁월한 성능을 발휘하는 방법을 알아보세요. Adobe의 전문성이 어떻게 디지털 혁신과 비즈니스를 촉진하는지 알아보세요...

최신
소프트웨어 개발

라트비아에 본사를 둔 10대 소프트웨어 개발 기업

최신 기사에서 라트비아 최고의 소프트웨어 개발 기업과 그들의 혁신적인 솔루션에 대해 알아보세요. 이러한 기술 리더들이 어떻게 귀사의 비즈니스를 향상시키는 데 도움을 줄 수 있는지 알아보세요.

thecodest
엔터프라이즈 및 스케일업 솔루션

Java 소프트웨어 개발 필수 사항: 성공적인 아웃소싱을 위한 가이드

The Codest로 효율성을 높이고 전문 지식을 활용하며 프로젝트 성공을 이끌 수 있는 성공적인 outsourcing Java 소프트웨어 개발에 대한 이 필수 가이드를 살펴보세요.

thecodest
소프트웨어 개발

폴란드 아웃소싱을 위한 최고의 가이드

폴란드에서 outsourcing가 급증한 것은 경제, 교육, 기술 발전으로 인한 IT 성장과 비즈니스 친화적인 환경이 조성된 덕분입니다.

더코데스트
엔터프라이즈 및 스케일업 솔루션

IT 감사 도구 및 기술에 대한 완벽한 가이드

IT 감사는 안전하고 효율적이며 규정을 준수하는 시스템을 보장합니다. 전체 기사를 읽고 그 중요성에 대해 자세히 알아보세요.

The Codest
야쿱 야쿠보비치 CTO & 공동 설립자

지식창고를 구독하고 IT 분야의 전문 지식을 최신 상태로 유지하세요.

    회사 소개

    The Codest - 폴란드에 기술 허브를 둔 국제 소프트웨어 개발 회사입니다.

    영국 - 본사

    • 사무실 303B, 182-184 하이 스트리트 노스 E6 2JA
      영국 런던

    폴란드 - 현지 기술 허브

    • 파브리츠나 오피스 파크, 알레야
      포코주 18, 31-564 크라쿠프
    • 뇌 대사관, 콘스트럭터스카
      11, 02-673 바르샤바, 폴란드

      The Codest

    • 홈
    • 회사 소개
    • 서비스
    • Case Studies
    • 방법 알아보기
    • 채용 정보
    • 사전

      서비스

    • IT 자문
    • 소프트웨어 개발
    • 백엔드 개발
    • 프론트엔드 개발
    • Staff Augmentation
    • 백엔드 개발자
    • 클라우드 엔지니어
    • 데이터 엔지니어
    • 기타
    • QA 엔지니어

      리소스

    • 외부 소프트웨어 개발 파트너와의 협력에 대한 사실과 오해
    • 미국에서 유럽으로: 미국 스타트업이 유럽으로 이전을 결정하는 이유
    • 테크 오프쇼어 개발 허브 비교: 테크 오프쇼어 유럽(폴란드), 아세안(필리핀), 유라시아(터키)
    • CTO와 CIO의 주요 과제는 무엇인가요?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • 웹사이트 이용 약관

    저작권 © 2025 by The Codest. 모든 권리 보유.

    ko_KRKorean
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek ko_KRKorean