msgbartop
If it ain’t broke, fix it anyway
msgbarbottom

27 Nov 05 소니의 루트킷

아마도 우리나라는 영향권 밖이라서 별로 관심이 없겠지만, 소니의 루트킷 사건의 여파가 외국에선 걷잡을 수 없이 커지고 있다.  루트킷(root kit)이란 OS에 설치되어 root 권한을 갖고 자신의 존재까지 감춰버리는 악성코드를 말하는데, 소니가 자사의 음악 CD에 불법 복제를 막기위한 루트킷을 심어두었던 것이다.  사용자에게 명확히 드러나지 않는 형태의 루트킷을 사용자 PC에 설치하는 것만으로도 합법적이라곤 하지만 그건 DMCA와 같은 무리한 법률을 만드는 사람들 관점에서나 그렇고 사용자 입장에선 무척 기분 나쁜 일인데, 이번 소니의 루트킷은 파일 이름에 $SYS$ 라는 문자열이 들어가는 모든 파일을 숨겨버림으로써 다른 악성코드에게까지 새로운 보안 결함을 제공하는 셈이 되어, 이에 따르는 잠재적 피해를 보상받기 위한 소송도 잇따르고 있다고 한다. 소니로서는 물론 이 루트킷이 포함된 모든 CD에 대한 환불과 교환을 실시하고 있지만, 소니의 피해는 리콜과 소송 뿐만 아니라 기업 이미지 측면에서도 막대할 것으로 생각된다.

그런데 이번 사태로 말미암아 피해를 보는 것은 일부 사용자와 소니 뿐만이 아니다.  이미 토론 사이트에는 “더 이상 정품 CD는 위험해서 못사겠다.  이제 P2P 사이트에서 안전한 MP3 파일만 다운로드받아 듣겠다”는 의견이 올라올 정도인데 단순한 농담이라거나 돈 안내기 위한 구실이라고 하기엔, 기술적으로 100% 옳은 얘기라서 뭐라 반론을 펴기가 어렵다.  결국 음악업계 전체가 피해를 보게된 이번 일을 계기로 컨텐트 권리자들도 자신들의 권리를 보호하기 위해 자신들의 고객을 적으로 만드는 극단적인 방법을 사용하지 말고 좀 더 창의적이고 적극적인 대안을 내놓았으면 한다.

한편 이번 소니 CD에 포함된 루트킷은 소니에서 직접 제작한 것은 아니고 영국의 한 소프트웨어 회사에서 만든 것으로 알려졌는데, 물론 그 소프트웨어의 기술적 특징과 잠재적 위험성을 자세히 알았더라면 소니의 경영진이 이를 자사 CD에 그대로 탑재하진 않았을 것이다.  하지만 숫자만 알고 자기네 상품을 제대로 이해하려하지 않는 다른 많은 경영진과 마찬가지로 소니의 경영진도 그냥 “불법 복제를 막는 효과가 좋고”, “자체 개발비보다 비용이 적게 든다”는 것만으로 채택을 결정했을 것이고, 이에 대한 댓가를 톡톡히 치르게 되었는데 앞으로 경영자들이 기업 윤리와 자사 제품의 내용에 대해 좀 더 관심을 갖게 되는 계기가 되길 기대한다.

21 Nov 05 구글 == Skynet?

운송용 컨테이너에다 수천대의 서버를 비밀리에 패킹해넣고, 그동안 헐값에 조용히 사모은 백본망에다 컨테이너를 연결하여 사실상 하룻밤새에 인터넷을 장악한다?  사실일지는 두고봐야 하겠지만, 구글이라면 충분히 할법한, 구글만이 할 수 있는 시나리오가 아닐 수 없다.  사실 비디오 서비스이건 온라인 오피스이건 이런 인프라를 갖추지 않으면 문제가 많을 것이고 위의 글에서 얘기한 방법이 가장 경제적으로 구글의 사업을 강화할 수 있는 방법이기도 하다.  이제야 구글을 어설프게 흉내내기 시작한 MS가 과연 성공적으로 대항할 수 있을까?  다들 Web 2.0이니 Software as a Service니 말들은 많았지만세계적 규모로 스케일러블한 서비스를 경쟁력있게 제공하는데 있어 구글을 당해낼 회사가 없을 것 같다.

20 Nov 05 새 PC를 구입하다.

한동안 노트북과 Mac Mini만 쓰다보니 아무래도 빠른 시스템이 그리워져서 꽤 좋은 스펙으로 데스크탑 PC를 한대 구입했다. 주요 스펙은 Athlon X2 3800, 1GB RAM, SATA 250G HDD, G-Force 6600 256MB.  게임은 안하지만 그래픽 카드는 내년 말 Vista를 염두에 둔 것.

아직 세팅이 다 끝나진 않았지만, 역시 듀얼 코어라서 비디오 인코딩을 백그라운드로 돌려놓고 쾌적하게 다른 일을 할 수 있었다.  AutoGK로  Battlestar Galactica Season 1A2 최적 포맷으로 인코딩했다. 가로 400 픽셀, XviD 1 pass 90% quality, MP3 128K VBR에 자막 포함해서 인코딩하는데 소요되는 시간은 에피소드당 약 30분.  XviD encoder가 멀티쓰레드가 아닌 것으로 알고 있으나 그래도 두 코어를 그런대로 활용하는 듯 했다.  한가지 문제는 파워서플라이가 너무 소음이 크다는 점.  판매처의 제품 설명만 보고 구입했는데, 뒤늦게 사용자 리뷰 등을 읽어보니 다들 소음이 큰 문제를 지적하고 있다.  역시 좀 더 마우스품을 팔고 구입했어야 했는데… 유통사와 판매처에 대책을 문의해놓았다.

이 정도 시스템이면 Eclipse를 vi처럼 쓸 수 있기를 바랬지만 뜨는 시간은 그래도 꽤 걸린다 (처음 띄울 때 12초, 죽이고 바로 다시 띄우면 7초 정도).  그래도 일단 뜨고 나면 나머지 동작은 전혀 버벅임이 없으니 예전 시스템과 확실한 차이는 난다.  Mac Mini도 RAM이 1G라서 그런대로 쓸만 했지만, 미니의 비디오가 느려서인지, OS X의 Quartz 때문인지 아니면 SWT의 OS X 포팅 때문인지는 몰라도 GUI의 응답속도는 좀 답답했었다.

프로그래밍을 8 bit CPU에서부터 시작했고 임베디드 시스템 개발도 꽤 했었기 때문에 한동안은 한 바이트, 한 사이클이라도 줄이는 것이 습관이 되어 요즘의 bloatware를 참을 수 없었지만, 보다 큰 관점에서 보면 결국 경제 논리에 따라 compromize할 수 밖에 없는 것.  점점 복잡해져가는 요구사항을 만족하기 위해선 효율이 좀 떨어지더라도 더 추상화된 레벨로 개발할 수 밖에 없고 사용자들도 가끔씩은 최신 사양의 하드웨어로 쫓아갈 수 밖에 없을 것 같다.

05 Nov 05 힘들었던 한 주…

이번 주에 일어난 일들…

- 월요일: 이가 좀 시려 치과에 갔다가 사랑니 뽑고 또 다른 이도 치료. 의사가 “입안이 금괘네요.”라고 했다.
- 화요일: 지갑을 집에 두고 출근… 이런 실수는 몇 년에 한번도 잘 안하는데
- 수요일: 감기 몸살이 왔다. 덕분에 얼마 전 시작한 골프 레슨을 못갔다.
- 목요일: 저녁 때 차 문을 닫다가 새끼 손가락을 심하게 찧었다. 손톱이 빠질 것 같기도 하고…
- 금요일: 다친 손가락 때문에 출근길에 병원에 가려 하니 또 지갑을 두고 온 것을 발견. 결국 동료에게 돈 빌려서 가긴 했지만. 손가락 때문에 골프 레슨 또 빼먹고.
- 토요일: 이번 주는 아무래도 안풀리니 집에서 푹 쉬기나 해야겠다고 생각했다가 이마트에 들러 스타워즈 에피소드 3 DVD를 샀는데… 집에 와서 보니 봉투에 없다. 이마트로 전화해봐도 오리무중…

액땜한 것이라고 생각하곤 있지만 이번 주로 끝나려나?

물론 이번 주에 나쁜 일이 일어난 것과 다음 주에 나쁜 일이 또 일어나는 것은 확률적으로 독립적이긴 하지만… 다음 주에 회사에서 중요한 일들이 많은데 이번 주 액땜한 덕분에 다음 주는 잘 풀리지 않을까 은근히 기대해본다.

05 Nov 05 웹이 다른 식으로 만들어졌다면?

만약 웹이 15년전 Tim Berners-Lee에 의해 만들어지지 않고 세계지적재산권기구(WIPO)나 디즈니에 의해 만들어졌다면 지금의 웹과 어떻게 달랐을까?

모르긴해도 지금의 웹만틈 성공적이지도, 그 구조가 간단하지도, 정보가 풍부하지도 않았을 것이다. 아마 예전의 PC 통신이나 지금의 무선 인터넷을 좀 더 닮지 않았을까? 구글도, Wikipedia도, 블로그도 없었을 것이다.

학교와 정부출연연구소에 오래 있다가 회사로 옮기면서 물론 여러가지가 달라질 것이라고 생각하고 있었지만, 가장 중요한 차이는 우리회사에 투자한 외국의 한 venture capitalist로 부터 들은, 기술이 상업적으로 성공하기 위한 다음의 세가지 조건으로 요약된다:

1. 기술이 구현 가능할 것
2. 그 기술을 원하는 사용자가 있을 것
3. BM(Business Model)이 있을 것

1, 2번에 대해서는 누구나 당연하다고 생각하겠지만 (학교나 연구소에선 1번만으로도 어떤 기술을 개발해보는 경우도 있지만) 3번 조건은 회사에서 사업계획에 직접 관여해보지 않은 엔지니어라면 “그거야 뭐 대충 어떻게 되겠지”하는 영역에 속한다. 하지만 많은 기술이 commodity화되고 경제의 세계화가 진행되면서 실질적으론 3번이 가장 충족시키기 어려운 경우가 많은 것 같다. 한 프로젝트의 프로그래머의 수가 많을 수록 인당 생산성이 떨어진다는 것은 잘 알려진 얘기지만 회사이건 정부이건 단체이건 여러 주체가 관여하는 모든 일 – 하나의 프로젝트이건 연동 규격이나 기술 표준이건 간에 – 은 서로 입장이 다른 주체의 수에 따라 기하 급수적으로 결과물이 복잡해지고, 진행 속도가 더뎌지고 항상 그렇지는 않지만 품질 또한 떨어지는 경우가 많은 것 같다.

만약 웹이 비상업적인 연구소에서 발명되고 비상업적으로 먼저 퍼져나가지 않았다면 필연적으로 여러 회사와 정부기관 등이 그 표준화에 관여하게 되었을 것이고 아마도 DRM과 저작권, 소액 결제, 프라이버시, 성인 컨텐트에 대한 규제와 같은 많은 이슈 뿐만 아니라 각 OS 업체, 셋탑 박스나 이동통신 업계에서도 자신의 이해관계에 따라 요구사항을 반영하려 하면서 시간이 걸리는 동안 웬만한 대학 관련 학과의 연구실마다 HTTP보다 훨씬 더 정교하고 효율적인 하지만 더 복잡한 여러 프로토콜과 ActiveX, Java Applet, AJAX나 XAML 못지 않은 executable content에 대한 제안이 계속 나와서 아마 아직도 세계적인 통일안에 합의하지 못하고 있지 않았을까? 현재의 무선 인터넷이나 홈 오토메이션과 같은 분야를 보면 너무 일찍부터 상업성, 특히 서로 다른 주체간의 BM 문제가 걸림돌이 되어 더 큰 파이가 형성되는 것이 저해되고 있는 것을 볼 수 있다. 대기업 중심의 경제 성장이 정부에 더 익숙하고 예측 가능하기에 이러한 분야의 정부 정책도 대기업 위주로 이루어지는 것을 볼 수 있지만 진정으로 웹과 같이 disruptive한 기술이 나오는 것을 보려면 인터넷과 웹이 그랬듯이 비상업적인 개인이나 아주 작은 회사들이 대기업이나 기득권을 가진 주체와의 길고 긴 협상 없이 아이디어와 기술만으로 새로운 것을 내놓을 수 있는 환경이 조성되어야 할 것이다.