일부 개발자는 오픈 소스 소프트웨어를 더럽히고 있습니다.

gettyimages-1159346361-악성-코드-해골-crossbones.jpg

게티 이미지

오픈 소스의 가장 놀라운 점 중 하나는 훌륭한 소프트웨어를 생산한다는 점입니다. 너무 많은 개발자들이 다른 사람들의 도움으로 훌륭한 프로그램을 만들기 위해 자존심을 제쳐두고 있습니다. 그러나 이제 소수의 프로그래머가 많은 사람의 이익보다 자신의 관심사를 앞세우고 있으며 잠재적으로 모든 사람을 위한 오픈 소스 소프트웨어를 망치고 있습니다.

예를 들어 JavaScript의 패키지 관리자 관리자인 RIAEvangelist, Brandon Nozaki Miller, Peacenotwar라는 오픈 코드 npm 소스 코드 패키지를 작성 및 게시했습니다.. 거의 작동하지 않았지만 데스크탑에 평화를 위한 메시지를 인쇄했습니다. 지금까지는 무해합니다. 

그런 다음 Miller는 사용자의 컴퓨터에 러시아 또는 벨로루시 IP 주소가 있는 경우 사용자의 파일 시스템을 덮어쓰도록 패키지에 악성 코드를 삽입했습니다. 그런 다음 그는 그것을 그의 인기있는 종속성으로 추가했습니다. 노드-ipc 프로그램과 즉각적인 혼란! 수많은 서버와 PC가 최신 코드로 업데이트되면서 다운되고 시스템의 드라이브가 지워졌습니다. 

밀러의 변호"이것은 모두 공개되고 문서화되고 라이선스가 부여된 오픈 소스입니다.,”는 지지 않는다. 

리란 탈, 스 니크 문제를 폭로한 연구원은 “일부 사람들에게는 고의적이고 위험한 행위가 정당한 항의 행위로 인식되더라도, 그것이 관리자의 미래 평판에 어떻게 반영됩니까? 개발자 커뮤니티의 지분? 이 유지 관리자가 자신이 참여하는 프로젝트에 대해 그러한 또는 훨씬 더 공격적인 행동에 대한 후속 조치를 취하지 않도록 다시 신뢰할 수 있습니까?” 

Miller는 무작위 크랭크가 아닙니다. 그는 node-ipc와 같은 좋은 코드를 많이 만들었습니다. 노드 HTTP 서버. 그러나 그의 코드가 악성이 아니라고 믿을 수 있습니까? 그는 그것을 "맬웨어가 아니라 [그러나] 완전히 문서화된 항의웨어," 다른 사람들은 맹렬히 동의하지 않습니다. 

한 GitHub 프로그래머는 다음과 같이 썼습니다. 공급망 공격을 위한 수단으로서의 무료 및 오픈 소스 소프트웨어 (이것이 완전히) 그리고 단순히 회사 내에서 무료 및 오픈 소스 소프트웨어(모두 무료 및 오픈 소스 소프트웨어)를 금지하기 시작합니다.” 

nm17 핸들을 가진 또 다른 GitHub 개발자는 다음과 같이 썼습니다. 오픈 소스의 신뢰 요인, 개발자의 선의에 기반을 두었던 , 이제 실질적으로 사라졌고, 이제 점점 더 많은 사람들이 언젠가는 인터넷의 임의의 개발자가 '라고 생각하는 모든 것을 수행/말하기 위해 라이브러리/응용 프로그램이 악용될 수 있음을 깨닫고 있습니다 그들이 하는 것이 옳은 일이었습니다.'”

둘 다 유효한 점을 만듭니다. 소스코드 작성자의 정치적 입장에 동의하지 않고는 소스코드를 사용할 수 없는데 어떻게 자신있게 사용할 수 있습니까? 

Miller의 심장은 올바른 위치에 있을 수 있습니다. Slava Ukraini! — 하지만 오픈 소스 소프트웨어가 악의적인 페이로드에 감염되는 것이 러시아의 우크라이나 침공을 보호하는 올바른 방법입니까? 아니, 그렇지 않다. 

오픈 소스 방식은 서로를 신뢰하기 때문에 작동합니다. 그 신뢰가 깨지면 이유가 무엇이든 오픈 소스의 기본 틀이 깨집니다. 안정 브랜치의 리눅스 커널 관리자인 그레그 크로하트만(Greg Kroah-Hartman)은 미네소타 대학의 학생들이 2021년 실험을 위해 의도적으로 리눅스 커널에 악성 코드를 삽입하려 했을 때 “그들이 하는 것은 의도적인 악의적인 행동이며, 용납할 수 없으며 완전히 비윤리적입니다.”

사람들은 오픈 소스에 윤리적 조항도 포함되어야 한다고 오랫동안 주장해 왔습니다. 예를 들어 2009년 예외 일반 공중 라이선스 (eGPL), 개정판 GPLv2, 군인 및 공급자와 같은 "예외"가 코드를 사용하는 것을 금지하려고 했습니다. 실패했습니다. 다음과 같은 기타 라이선스 JSON 라이선스 달콤하고 순진한 "소프트웨어는 악이 아닌 선을 위해 사용되어야 합니다"라는 조항이 여전히 존재하지만 아무도 이를 시행하지 않습니다.  

보다 최근에 활동가이자 소프트웨어 개발자인 Coraline Ada Ehmke는 사용자가 도덕적으로 행동해야 하는 오픈 소스 라이선스를 도입했습니다. 구체적으로 그녀의 히포크라테스 라이센스 에 추가됨. MIT 오픈 소스 라이센스 다음을 명시하는 조항: 

"소프트웨어는 개인, 기업, 정부 또는 기타 그룹이 적극적이고 고의로 혜택을 받지 못하는 개인 또는 그룹의 신체적, 정신적, 경제적 또는 일반적인 웰빙을 적극적으로 고의로 위험에 빠뜨리거나 위협하는 시스템 또는 활동을 위해 사용할 수 없습니다. 유엔 세계인권선언 위반”

좋은 것 같지만 오픈 소스가 아닙니다. 보시다시피, 오픈 소스는 그 자체로 윤리적인 위치입니다. 그 윤리는 자유 소프트웨어 재단(FSF)'에스 네 가지 필수 자유. 이것은 모든 오픈 소스 라이선스와 핵심 철학의 기초입니다. 오픈 소스 법률 전문가이자 콜롬비아 법학 교수인 Eben Moglen은 당시 윤리적 라이선스가 자유 소프트웨어나 오픈 소스 라이선스가 될 수 없다고 말했습니다. 

"자유 제로, 어떤 목적으로든 프로그램을 실행할 수 있는 권리는 사용자가 실행하는 컴퓨터 프로그램과 관련하여 해당 권한이 없으면 궁극적으로 해당 프로그램에 대한 권한이 전혀 없기 때문에 XNUMX가지 자유 중 첫 번째입니다. 좋은 사용에 대해서만 허가를 주거나 라이센서의 관점에서 나쁜 사용을 금지하려는 노력은 자유를 보호하라는 요구 사항을 위반하는 것입니다.” 

즉, 어떤 이유로든 코드를 공유할 수 없다면 코드는 진정한 오픈 소스가 아닙니다. 

한 그룹이 오픈 소스 소프트웨어를 사용하는 것을 금지하는 것에 대한 또 다른 실용적인 주장은 IP 주소와 같은 것을 차단하는 것은 매우 광범위한 브러시라는 것입니다. 보안 회사 Florian Roth로서 넥스트론시스템즈'라고 생각한 연구 책임자시스템에서 내 무료 도구 비활성화 특정 언어와 시간대 설정으로”라고 최종적으로 결정했다. 왜요? 왜냐하면 그렇게 함으로써 "우리는 또한 비평가와 자유 사상가의 시스템에서 도구를 비활성화할 것입니다. 정부의 행동을 비난하는 것”이라고 말했다. 

불행히도 오픈 소스 소프트웨어에 문제를 일으키는 것은 더 높은 윤리적 목적으로 오픈 소스를 사용하려는 사람들만이 아닙니다. 

올해 초 JavaScript 개발자 Marak Squires는 자신의 모호하지만 매우 중요한 오픈 소스 Javascript 라이브러리 'colors.js' 및 'faker.js'를 의도적으로 방해했습니다.” 결과? 수만 개의 JavaScript 프로그램이 폭발했습니다.

왜요? 아직 완전히 명확하지 않지만 이후에 삭제된 GitHub 게시물에서 Squires는 다음과 같이 썼습니다. 나는 더 이상 Fortune 500대 기업을 지지하지 않을 것입니다 (및 기타 소규모 회사) 내 무료 작업. 더 이상 할 말이 없습니다. 이것을 나에게 XNUMX자리 연간 계약을 보내거나 프로젝트를 분기하고 다른 사람이 작업하도록 할 수 있는 기회로 삼으십시오.” 당신이 상상할 수 있듯이, 월급을 받기 위해 그의 길을 협박하려는 이 시도는 그에게 그다지 효과가 없었습니다. 

그리고 재미와 이익을 위해 의도적으로 악성 코드를 오픈 소스 코드에 삽입하는 사람들이 있습니다. 예를 들어 DevOps 보안 회사는 제이프로그 NPM 저장소에서 의도적으로 사용자의 Discord 토큰을 공격하고 훔치는 17개의 새로운 JavaScript 악성 패키지를 발견했습니다. 그런 다음 다음에서 사용할 수 있습니다. Discord 커뮤니케이션 및 디지털 유통 플랫폼.

순진하고 도움이 되는 새로운 악성 오픈 소스 프로그램을 만드는 것 외에도 다른 공격자들은 오래되고 버려진 소프트웨어를 다시 작성하여 크립토 코인 훔치기 백도어를 포함합니다. 그러한 프로그램 중 하나는 이벤트 스트림이었습니다. 비트코인 지갑을 훔치고 그 잔액을 쿠알라룸푸르 서버로 전송하기 위해 악성 코드가 삽입되었습니다. 몇 년 동안 비슷한 에피소드가 여러 번 있었습니다.

이러한 움직임이 있을 때마다 오픈 소스 소프트웨어에 대한 믿음이 무너지고 있습니다. 오픈 소스는 현대 사회에서 절대적으로 중요하기 때문에 이것은 형편없는 추세입니다. 

우리는 그것에 대해 무엇을 할 수 있습니까? 글쎄요, 한 가지는 우리가 오픈 소스 코드의 사용을 차단해야 할 때를 매우 신중하게 고려해야 합니다. 

보다 실질적으로, 우리는 다음의 사용을 채택하기 시작해야 합니다. 리눅스 재단의 SPDX (소프트웨어 패키지 데이터 교환)소프트웨어 재료 명세서 (SBOM). 이것들은 함께 우리가 프로그램에서 사용하고 있는 코드와 출처를 정확히 알려줄 것입니다. 그러면 정보에 입각한 결정을 훨씬 더 많이 내릴 수 있습니다.

오늘날 대부분의 사람들은 자신이 실행하는 것이 무엇인지 정확히 알지 못하거나 문제가 있는지 확인하지 않고 오픈 소스 코드를 사용합니다. 그들은 모든 것이 잘 될 것이라고 가정합니다. 그것은 결코 현명한 가정이 아닙니다. 오늘은 완전히 어리석은 일입니다. 

이러한 모든 최근의 변화에도 불구하고 오픈 소스는 블랙박스 독점 소프트웨어 대안보다 여전히 우수하고 안전합니다. 하지만 맹목적으로 신뢰하기 보다는 코드를 확인하고 검증해야 합니다. 앞으로 할 수 있는 유일한 현명한 일입니다.

관련 기사 :



출처