불량 개발자가 수백만 개의 소프트웨어를 망친 방법(이번 주말에 발생)
4509 단어 programmingdevopsnpmsecurity
TLDR: 자주 사용되는 일부 오픈 소스 소프트웨어를 만든 소프트웨어 개발자는 악의적으로 자신의 소프트웨어에 버그를 주입하여 사용 가능하게 만들기로 결정했습니다. 이것은 그의 소프트웨어를 사용하는 다른 모든 종속성(및 개발자)에 영향을 미쳤습니다.
버그로 인해 내 소프트웨어 배포가 중단됨
주말 동안 저는 CI/CD 파이프라인을 사용하여 일부 소프트웨어를 (Firebase에) 배포했습니다. 그러나 어떤 이유로 파이프라인이 실패했습니다. 내 GitHub Actions 워크플로의 이 단계에서 실패가 발생했습니다.
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_ANTHONYDELLAVECCHIA }}'
channelId: live
projectId: anthonydellavecchia
entryPoint: "./anthonyjdella"
실패한 파이프라인을 시각적으로 표현한 것입니다.
그런 다음 Firebase ExtendedGithub repo로 이동하여 비슷한 문제가 있는 사람이 있는지 확인했습니다. 그리고 네, 다른 많은 사람들이 같은 문제를 겪고 있었습니다.
(link)
Rogue 개발자, Marak
알고 보니
Action-hosting-deploy
는 Marak(불량 개발자)가 생성한 colors
라는 종속성을 사용하고 있었습니다. 이는 node.js 콘솔의 색상과 스타일을 지정하는 도구입니다. 이 npm 패키지는 매주 2,000만 회 이상 다운로드되므로 매우 인기가 있습니다! 이 GitHub 작업의 종속성 트리는 다음과 같습니다.그래서 뭐? 음,
Marak
, colors
(위에서 언급)의 작성자는 일부 코드를 프로젝트에 추가하여 의도적으로 중단했습니다. 그는 의도적으로 코드를 깨기 위해 무한 루프를 추가했습니다!(link to Marak's evil commit)
이것은 우발적인 버그가 아니라 의도적인 버그입니다. 악의적이었습니다.
자신의 소프트웨어를 깨는 것이 왜 나쁜가요?
자신의 소프트웨어를 깨는 것이 왜 나쁜지 궁금하실 수 있습니다. 음, Marak은 자신의 소프트웨어가 다른 소프트웨어에서 사용되고 있다는 것을 알고 있습니다. 그래서 그가 깨지면 그들의 것도 깨질 것입니다. 연쇄 반응이라고 생각하세요. 그가 고장나면 그것을 사용하는 다른 소프트웨어도 고장날 것입니다. "dependency hell" 때문에 수백만 명의 개발자에게 영향을 미칩니다.
마라크는 왜 그랬을까?
Marak은 기업이 자신의 오픈 소스 소프트웨어를 사용하고 비용을 지불하지 않는 것에 화가 났습니다. 기본적으로 그렇게 간단합니다. 그는 article on his blog .
어떻게 고칠 수 있습니까?
소프트웨어가
colors
를 사용하고 있었다면 이전(손상되지 않은) 버전으로 되돌려야 합니다. 그러나이 개발자의 열악한 작업으로 인해 다른 패키지를 대신 사용해야 합니다. Chalk은 권장되는 또 다른 대안입니다.프로젝트를 위한 종속성 관리 시스템을 갖추는 것이 정말 중요합니다. Snyk 또는 SonarQube과 같은 도구를 사용하면 종속성 문제를 감지하여 신속하게 해결할 수 있습니다.
자세한 내용은:
읽어 주셔서 감사합니다! 🙌
내 기사를 더 보려면 (anthonydellavecchia.com)[ https://anthonydellavecchia.com ]을 확인하세요!
Reference
이 문제에 관하여(불량 개발자가 수백만 개의 소프트웨어를 망친 방법(이번 주말에 발생)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anthonyjdella/how-a-rogue-developer-ruined-millions-of-software-happened-this-weekend-4bp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)