제퍼넷 로고

JavaScript 개발자는 공급망 "수업"에서 자신의 프로젝트를 파괴합니다.

시간

무슨 일이 일어났는지 확실하지 않더라도 뉴스를 본 적이 있을 것입니다.

당신이 자바스크립트 프로그래머가 아니고 faker.jscolors.js.

귀하가 해당 프로젝트 중 하나의 사용자이고 어떤 종류의 코드 검토 또는 테스트 없이 소스 코드에 대한 모든 업데이트를 자동으로 수락하려는(또는 수락할 의향이 있다면!)…

… 당신은 아마도 무슨 일이 일어났는지, 그리고 그것이 당신에게 어떤 영향을 미쳤는지 잘 알고 있을 것입니다.

공급망 공격

Naked Security의 장기 독자는 소위 말하는 문제에 익숙할 것입니다. 공급망 공격 오픈 소스 소프트웨어 라이브러리에서, 우리는 이전에 프로그래밍 생태계에서 이러한 종류의 문제에 대해 썼기 때문입니다.

우리는 다음을 포함한 수많은 코딩 커뮤니티에서 갑자기 나타나는 보안 허점에 대해 썼습니다. PHP 프로그래머, 비단뱀, 루비 사용자 및 NPM 팬.

작년에는 도덕을 논하다 의도적으로 Linux 커널 소스 코드 저장소를 자신들이 부끄럽지 않게 언급한 것에 대한 테스트 장소로 사용한 자칭 학술 연구원의 위선자.

소프트웨어 공급망 공격에는 일반적으로 공격자가 네트워크에 침입하여 정면 공격을 가하는 직접적인 해킹과 달리 네트워크 또는 개발 팀을 간접적으로 감염시키는 유독하거나 위험하거나 의도적으로 수정된 콘텐츠가 포함됩니다.

공급망 공격은 종종 귀하의 제품 및 서비스 공급업체, 누가 자신의 업스트림에 있는 누군가로부터 무단 수정을 수집했을 수 있습니다.

공급망 공격에 대해 자세히 알아보기

아래의 음파를 클릭하고 드래그하여 팟 캐스트의 특정 지점으로 건너 뜁니다.
당신은 또한 수 직접 들어 사운드클라우드에서 또는 완전한 대본을 읽다.


비윤리적이지만 때로는 범죄적이지 않음

그러나 위에서 언급했듯이 이러한 종류의 공급망 문제는 궁극적으로 비윤리적(또는 유치하거나 잘못 생각한 것, 또는 이들의 조합)으로 판단될 수 있지만 항상 범죄 의도에서 발생하는 것은 아닙니다.

우리는 이미 언급했습니다 위선자, 자체적으로는 보안 허점을 유발하지 않지만 결합될 때 취약점을 생성하는 둘 이상의 변경 사항을 숨기고 악성 백도어 코드를 삽입할 수 있음을 우리 모두에게 상기시키기 위한 것입니다.

그리고 우리는 의도적으로 업로드한 위험한 소프트웨어 패키지를 만드는 것이 얼마나 쉬운지 상기시켜 주고 싶어 했던 "연구원"의 이야기를 연결했습니다. 4000개 가까이 "도움"의 지속적인 폭발.

당시 우리가 제안한 바와 같이 위선자와 과중한 사람이라는 두 "전문가"는 할 가치가 있는 일이 가치가 있다는 이기적인 좌우명을 채택한 것 같습니다. 과용...

...따라서 각각 Linux 및 Python 커뮤니티의 다른 무고한 자원 봉사자를 위해 엄청난 양의 불필요한 작업을 생성합니다.

Colors와 Faker는 도적질

이번에는 두 개의 인기 있는 JavaScript 코딩 모듈의 창시자가 colors.jsfaker.js 작업에 약간 다른 두 개의 스패너를 던졌습니다.

색상 는 정보를 더 흥미롭게 보고 읽기 쉽게 만들기 위해 콘솔 출력에 컬러 텍스트를 추가하는 데 도움이 되는 작고 간단한 툴킷입니다.

예를 들어, Log4Shell – 영화 최근 비디오에서 우리는 들어오는 요청을 더 쉽게 추적할 수 있도록 모형 LDAP 서버의 출력에 색상 대시를 추가했습니다. 터미널 출력에서 ​​ANSI 제어 시퀀스를 사용하여 성공과 실패를 나타내는 녹색 및 빨간색 표시를 추가합니다.

시각적 매력과 명확성을 위해 녹색 및 빨간색 터미널 마커를 아껴 사용합니다.

불행히도 colors.js 프로젝트 설립자인 사용자는 2019년 이후 업데이트를 게시하지 않은 후 갑자기 릴리스 번호를 가져오는 새 코드를 추가했습니다. 1.4.0 다소 특이한 버전 식별자 1.4.4-liberty-2.

분명히 그는 자신의 작업을 사용하는 많은 사람들로부터 자신이 받을 자격이 있다고 생각하는 재정적 인정을 받지 못한 데 지쳐서 다음과 같은 무한 루프를 추가하여 자신의 코드를 폐기했습니다.

/* remove this line after testing */
let am = require('../lib/custom/american');
am();
for (let i = 666; i < Infinity; i++) { if (i % 333) { // console.log('testing'.zalgo.rainbow) } console.log('testing testing testing testing testing testing testing'.zalgo)
}

이 코드 끝에 있는 루프는 텍스트를 인쇄합니다. testing testing ... testing 라는 함수를 적용한 후 계속해서 zalgo 그것.

잘고화

잘고화, 들어 본 적이 없다면 액센트, 세딜라, 움라우트 및 기타 소위 말하는 일반 로마 문자를 흩뜨려 일반 로마 문자를 이상하고 의미 없게 만드는 방법입니다. 발음 구별 부호 – 밴드 이름을 짓는 것과 비슷합니다. 모터 헤드 대신 모터 헤드, 그러나 하나의 추가 기호를 추가하는 제한 없이.

Zalgoed 텍스트는 의미가 없을 뿐만 아니라 종종 이를 구성하고 표시하기 위해 배치하려는 기본 텍스트 렌더링 소프트웨어에 큰 부하를 줍니다.

인간 서예가는 단어의 모든 글자에 가능한 모든 악센트를 추가하라는 요청을 받으면 전혀 말이 안 된다는 것을 알면서도 어리둥절할 것입니다.

그러나 전산화된 작곡가는 귀하가 요청한 모든 표시를 결합하여 귀하의 밴드에 잘고메탈 다음과 같은 양식화된 이름:

텍스트 전체에 무작위로 무의미하게 추가된 발음 구별 기호

아론 슈워츠 기념비

위조자 사용자는 프로젝트가 본질적으로 지워지고 대체되는 다른 종류의 업데이트를 경험했습니다. README 파일 요청 "정말 무슨 일이 아론 스와 츠? "

Schwartz는 학술 논문에 대한 무단 액세스와 관련된 연방 범죄로 기소된 "핵티비스트"입니다. 페이월 뒤에 보관되지 않음, 재판을 기다리다 스트레스를 받으며 슬프게도 스스로 목숨을 끊었다.

페이커 프로젝트가 막을 내립니다. 소스 코드 파일이 없는 "endgame" 주석에 유의하십시오.
그리고 Aaron Schwartz를 기억하는 README.

Faker는 개발 중에 사용자 데이터베이스에 추가할 수 있는 100,000개의 이름과 주소를 생성하는 것과 같이 품질 보증을 위해 많은 양의 현실적이지만 구성된 데이터를 쉽게 생성할 수 있게 해주는 개발자를 위한 편리한 툴킷이었습니다.

가짜 데이터는 아직 테스트되지 않은 불완전한 코드로 작업하는 동안 개인 정보 재해를 피하는 데 중요한 측면입니다. 왜냐하면 이는 생각 없는(그리고 불법일 수 있는) 방식으로 민감한 진짜 데이터를 노출하지 않는다는 것을 의미하기 때문입니다.

Faker의 작가는 분명히 프로젝트를 상업화하다 2021년 동안이지만 성공하지 못했기 때문에 그는 이제 코드를 받은 것처럼 보입니다. 쿠데타 은혜.

이 계획은 기업 사용자로부터 거의 자금을 받지 못한 채 아무 성과도 거두지 못한 것 같습니다.

코드가 MIT 라이선스에 따라 수년 동안 릴리스되었다는 점을 감안할 때, 기본적으로 이는 자체적으로 생성했다고 주장하지 않는 한 누구나 무료로 사용할 수 있으며 상업적인 폐쇄 소스 제품에서도 사용할 수 있음을 의미합니다. 기존 사용자가 이전 버전이나 그 이전 버전을 계속 사용하는 것을 막는 것은 없습니다.

원하는 대로 수정 및 개선할 수도 있습니다.

...그래서 이미 다운로드하여 배포한 사용자의 라이선스를 소급해서 다시 작성할 수 없다는 점을 감안할 때 작성자가 프로젝트를 그렇게 훌륭하게 폐기한 궁극적인 결과가 무엇인지는 분명하지 않습니다.

누군가가 이기나요, 아니면 우리 모두가 지는가요?

하나로서 불쾌한 댓글 작성자 (아마도 변경 사항을 검토하지 않고 업데이트를 프로덕션으로 가져간 사람과 결과적으로 일시적인 중단을 겪은 사람), 누구에게도 좋게 끝나지 않았습니다.

평판이 무가치하다고 생각하는 무명인들의 모습이 흥미롭지 않나요?? 여기 있는 모든 사람들에게 "우리는 자유 소프트웨어를 신뢰하는 것에 대한 귀중한 교훈을 배웠습니다"라고 말합니다. 이것을 이해하다…

나에게 15분간의 슬픔을 안겨주기 위해 Marak은 자신의 평판을 돌이킬 수 없을 정도로 파괴해야 했습니다.

이런 경우에 당신은 누구의 편입니까? 아래 의견에 알려주십시오…


출처: https://nakedsecurity.sophos.com/2022/01/11/javascript-developer-destroys-own-projects-in-supply-chain-lesson/

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?