지난 3월22일 오후 5시 30분경(미국 동부시각),
Node.js 기술 기반으로 인터넷에서 돌아가는 수천개의 프로그램들이 한순간 먹통이 되었다.
영향을 받은 프로그램 가운데는 페이스북, 넷플릭스, 야후, 페이팔 등 유수 기업들이 사용하는 프로그램도 섞여 있었다.
혼란에 빠진 개발자들은 이 막대한 피해의 진앙지를 찾아 인터넷을 뒤졌다.
원인은 곧 드러났다. 캘리포니아의 한 개발자가 삭제한 11줄의 코드 때문이었다.
문재의 코드는 NPM에 공개된 프로젝트끼리는 레고 블록을 쌓아 올리는 것처럼 ‘의존성(dependency)’이라는 관계로 엮여 있다는 것이다.
코출루가 NPM에서 삭제한 273개의 프로젝트 중에는 ‘left-pad’라는 11줄짜리 코드가 있었다.
이 코드는 다른 개발자가 제작한 ‘line-numbers’라는 프로젝트를 만드는 블록으로 쓰이고 있었고, 다시 이 ‘line-numbers’는 ‘바벨’(babel)이라는 대형 프로젝트에 사용되고 있었다.
이 바벨 프로젝트는 페이스북, 링크드인, 스포티파이 등 대형 기업들은 물론 수많은 개발자들에 의해 폭넓게 사용되고 있었는데, 가장 기초가 되는 블록인 ‘left-pad’가 삭제되자 더 이상 설치가 불가능해진 것이다.
결국 사태는 도미노처럼 번졌고, 보다 못한 NPM 운영진이 프로젝트를 강제로 복구시키는 유례 없는 일까지 일어났다.
아래 링크들은 상기 상황에 대한 상세한 자료니 참고하면 좋을것 같습니다.
https://github.com/left-pad/left-pad/issues/4
https://www.sciencealert.com/how-a-programmer-almost-broke-the-internet-by-deleting-11-lines-of-code
'Security > [Programming]' 카테고리의 다른 글
Kali Linux 2020.3 Release (0) | 2020.09.03 |
---|
WRITTEN BY
- J cert
Freedom of Liberty and the establishment of a law to establish the law of cyberspace will defend freedom and try to build a just society.