사이드바 영역으로 건너뛰기

게시물에서 찾기네트는 정말 광대해~

트위터 맞팔 논쟁

 오늘 내 트위터 타임라인의 핫이슈는 김주하 씨의 맞팔 논쟁이다.

맞팔이란, 맞follow - 즉 follow한 상대를 같이 follow하는 행위...라고 하겠는데, 트위터의 정식 용어라기 보다 한국 특유의 트위터 문화인 듯 하다.
 
사실 새로운 커뮤니케이션 수단이 나올 때마다 이런 류의 논쟁은 불거지기 마련이다. 블로그던 페이스북이던 트위터던 간에, 기존에 정의되지 않은 것에 대해 유저들이 나름대로 정의를 내리려 하고, 의견이 다른 유저들끼리의 논쟁이 벌어지게 되며, 이는 새로운 커뮤니케이션 수단에 대한 합의가 도출되는 과정이라는 의미에서 특별히 문제될 것이 없다고 생각한다.
 
그런데 재미있는 것은 이 과정에서 한국의 온라인 문화에 기인한 공통적인 주제가 빈번하게 등장한다는 것인데, 바로 그 커뮤니케이션 수단을 개인 미디어로 보느냐 커뮤니티로 보느냐의 차이이다. 물론 어떤 커뮤니케이션 수단이라도 대부분 개인 미디어의 성격과 커뮤니티의 성격을 동시에 지니고 있지만, 어떤 성격에 더 중점을 두느냐에 따라 의견이 갈릴 수가 있다.
 
예를 들면, 블로그 초기에는 손님의 댓글에 주인장이 댓글을 달아 댓글에 대한 반응을 보여주는 것이 예의인가 아닌가에 대해 논쟁이 있었는데, 현재 많은 국산 블로그 서비스들이 아예 댓글에 댓글을 달 수 있는 기능을 지원하는 것으로 봐서 댓글에는 댓글을 달아주는 문화가 일반화된 것으로 보인다. (물론 그렇다고 그것이 예의라는 말은 아니다)
 
맞팔도 이와 비슷한 관점에서 볼 수 있을 듯 한데, 트위터의 follow는 유저 대(對) 유저의 관계이기 때문에, 블로그의 맞댓글(?)보다 더욱 끈끈한 관계맺기 방식으로 보여진다. 마이크로 블로그라 불리기도 하는 트위터를 블로그와 유사한 개인 미디어로 보는 사람의 입장에서는 RSS를 구독하는 것처럼 관심있는 사람의 트위터만 골라 follow하는 것이 당연하게 느껴질 것이고, topic이나 follow로 연결되는 트위터 유저들 사이의 관계를 더 중요하게 생각하는 사람의 입장에서는 follow를 해 주면 상대방 역시 follow해 주는 것을 당연하게 느낄런지 모른다. 이는 트위터를 어떤 수단으로 보느냐에 따라 관점의 차이가 있을 수 있으며, 어떤 것이 옳다/그르다고 단정짓기엔 아직 트위터라는 매체의 문화가 "만들어지는 과정"에 있기에 무리라는 생각이다.
 
다만 한 가지 분명히 문제가 되는 점은, 자신이 옳다고 생각하는 커뮤니케이션 방식을 다른 유저에게 강요하는 태도라고 생각한다. 맞팔을 "예의"라고 규정하는 순간, 맞팔을 하지 않으면 단지 트위터에 대한 생각이 다를 뿐인데 무례한-즉 "잘못된" 생각을 가진 사람이 되어버리는 것이 우려스럽다.
 
트위터는 분명 자신이 알고 있는 정보를 비롯하여 의견 및 생각을 빠르게 전달할 수 있는 훌륭한 커뮤니케이션 수단이지만, 동시에 여러 유저들이 관계 맺고 살아가는 온라인 커뮤니티이도 하다. 그리고 트위터리안들이 살아가는 이 세계에서 가장 무례한 행위는 무엇보다 타인의 생각과 의견을 존중하지 않고 자신의 의견만을 강요하는 행동이 아닐까나.

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

21세기판 골드러시 - 데이터 마이닝과 클러스터링

사례 1. YouTube 등에서 동영상을 다 보고 나면 해당 동영상의 주제와 유사한 다른 동영상들이 추천됩니다. 페이지 한 구석에는 어김없이 그보다 더 많은 동영상들이 추천되고 있습니다.
사례 2. 온라인 뉴스를 다 읽고 나면 관련 뉴스들이 아래에 나옵니다. 역시 페이지 한 구석에는 어떤 방식으로든 나와 연관된 뉴스들이 분류되어 있습니다.
사례 3. 온라인 쇼핑몰에서 물건을 구입하고 나면 결제를 마치기 전에 다른 상품들을 추천하는 코너가 있습니다. 내가 구매하기로 한 상품과 관련이 있거나, 내가 속한 연령대가 많이 구입하는 물건 같은 것들이죠.

위와 같은 사례들은 인터넷을 사용하다보면 빈번히 만나게 되는 상황입니다. 물론 이런저런 추천들에 크게 영향을 받지 않아서 그런 시스템이 존재하는지조차 모르고 지나가는 사람이 있는가 하면, 저같이 때때로 낚여서 원래 하고자 했던 일을 잊고 새로운 링크를 파고 들어가 헤매는 경우도 있겠지요. 이러한 추천 시스템은 명목상 "사용자 편의 증대"라는 타이틀을 내걸고 있겠지만, 어쨌든 진짜 의도는 우리 사이트에서 좀 더 놀다 가세요~라던지, 우리 물건 좀 더 구매하고 가세요~라던지 하는 것이겠지만요.

사실 온-오프를 막론하고 추천 시스템의 역사는 꽤 오래되어서, 옷가게에서 정장 한 벌 맞추면 반드시 스카프나 넥타이 추천이 따라붙고, 음식점에서 파스타 하나 주문하면 와인 추천이 따라붙는 것이 오히려 상식이라 하겠습니다. 이렇게 사람에 의해 행해지는 추천은 상대방를 대하면서 직접 파악하게 되는 직관력에 따라 이루어지기 때문에-물론 그 사람의 센스에 의해 차이가 있긴 하겠지만-꽤 정확한 추천이 가능하게 됩니다. 또한 실시간으로 커뮤니케이션함으로써 피드백을 바로 접수 하여 추천의 방향을 수정할 수도 있으니, 상당히 유리한 조건 하에서 추천이 가능하다고 할 수 있겠군요.

하지만 위의 사례에서 말하는 추천은 일일히 사람이 입력할 수 없기 때문에, 미리 조건을 정해놓고 특정 조건에 따라 자동 반응하게 된 추천 알고리즘을 사용할 수밖에 없습니다. (YouTube 동영상이 한두건도 아닌데, 모든 동영상 말미에 일일히 사람이 추천 동영상을 집어넣을수야 없지 않겠습니까...) 이런 추천 알고리즘은 인터넷 초기부터 끊임없이 연구되어온 주제이고, 최근엔 클러스터링 기술의 발전으로 인해 보다 정교한 추천이 가능해지고 있는 상황입니다.

추천을 하기 위해 가장 먼저 필요한 것은 데이터들 사이에 비슷한 구석이 조금이라도 있어야 하기 때문에 이들을 묶는 일이 되겠습니다. 이렇게 비슷한 데이터들을 한 데 묶는 기술을 클러스터링Clustering이라고 부릅니다. 물론 일반적으로 IT 기술 중 클러스터링이라고 하면 여러 서버들을 묶어 하나의 서버처럼 사용하는 기술-구글의 방대한 웹페이지 검색을 가능하게 하는 기술-을 말합니다만, 여기서 말하는 데이터 클러스터링은 데이터 마이닝Data Mining의 한 부분으로서 데이터를 분석하여 분류하는 기술을 의미합니다.

클러스터링 알고리즘은 어떤 데이터를 분석하느냐에 따라 사용되는 종류도 다양하고 현재도 많은 연구가 이루어지고 있는 분야입니다. 그럼에도 모든 클러스터링 알고리즘은 데이터에서 어떠한 패턴을 찾고, 비슷한 패턴을 보이는 데이터들을 묶는데 관심이 있습니다. 예를 들면, S회사에서 사원들의 11월 출근시간 기록을 분석해 보았더니 지각 회수가 많은 사원들은 자가용 통근자가 대부분이었다...는 결과를 얻을 수 있겠습니다. 이는 지각 회수의 패턴을 구하고 출근 방법을 다른 변수로 대입시켜 얻은 결과라고 할 수 있겠습니다. 이 결과로부터 S회사 주변 도로가 정체가 심하다, 주차장이 좁아 주차시간이 많이 걸린다...등의 추가적인 결과를 도출할 수도 있겠죠. 여기서 중요한 것은 어떤 변수를 대입해야 하는가...입니다. 아까의 지각 회수 데이터에 연령별 비교나 직급별 비교 등을 해 봐야 별 의미 없을 수도 있습니다. 아무리 데이터를 효과적으로 분류하고 정리한다 하더라도 분석자의 직관력이 형편없으면 그리 쓸모있는 결과를 내기 어렵다는 것입니다.

그래서 어떻게 보면 데이터 마이닝은 금맥을 찾아 광산을 파 들어가던 골드러시와 유사한 점이 많습니다. 오죽하면 이름 자체가 마이닝, 즉 채굴이겠습니까. 웹을 사용하는 사람들과 시간이 늘어나면 늘어날수록 쌓이는 데이터는 많아지고 있지만, 첩첩히 쌓인 데이터의 산에서 유의미한 정보를 얻어내고자 하는 것이 바로 데이터 마이닝이라 할 수 있겠죠. 바꿔 말하면, 우리가 인터넷에서 하는 행동 하나하나가 분석 대상이 될 수도 있다는 것입니다. 물론 마이닝의 세계에선 여러 개인들이 유사한 행동을 보이는 것이 중요하므로 한 개인의 행동은 크게 의미가 없으며, 아마 대부분의 정보들이 유의미성을 찾지 못해 버려지기 일쑤겠지만요. 정말이지, 이쯤되면 21세기판 골드러시라고 해도 과언이 아니지 않겠습니까.
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

이런 스팸메일

출근해서 메일함을 열어봤더니 이런 이메일이 도착했다.


내용은 다음과 같다.

Your internet access is going to get suspended

 

The Internet Service Provider Consorcium was made to protect the rights of software authors, artists.

We conduct regular wiretapping on our networks, to monitor criminal acts.

 

We are aware of your illegal activities on the internet wich were originating from

 

You can check the report of your activities in the past 6 month that we have attached. We strongly advise you to stop your activities regarding the illegal downloading of copyrighted material of your internet access will be suspended.

 

Sincerely
ICS Monitoring Team

요약하면, "우린 ISP(인터넷서비스공급자-KT, SK브로드밴드 같은 녀석들이죠) 컨소시움인데, 니가 불법다운로드 받은 사실을 통보받았고, 그런 불법행위를 중단하기를 요청한다. 너의 6개월간의 인터넷 활동 보고서를 첨부했다." 정도 되겠다.

당연한 얘기지만, ISP는 인터넷 활동을 모니터링할 근거도 없으며 친절하게도 이런 이메일 따윈 보내지 않는다. 결정적으로 내 이메일 주소를 이 친구들이 알 수도 없거니와 알아서도 안되는 일이다. 적당히 겁을 주고 호기심을 자극해서 첨부파일을 열어보게 하는 것이 이 메일이 목적이 아닌가 한다...

여튼 이런 메일은 바로 휴지통으로 Go~

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

구글의 새 브라우저, 크롬 (Chrome)

전에 어디선가 쓴 것 같은데, 구글의 진정한 목적은 세계 정복-_-이다.
구글의 세계 정복 프로젝트의 일환으로 개발한 브라우저의 베타 버전이 오픈되었다.


크롬의 첫 인상은 일단 깔끔하고 가볍다는 것이다.
솔직히 IE나 파이어폭스가 많은 기능을 제공해 주고 있긴 하지만,
평소 그 기능들을 다 사용하는 것도 아니기 때문에 거추장스러울 때가 많다.
하지만 크롬은 무겁지만 다양한 기능을 제공하는 것보다

꼭 필요한 기능만을 제공하는 편을 선택한 듯 하다.
크롬의 가벼움은 환경설정 메뉴만 봐도 알 수 있다.


탭이 기본 6개 이상인 다른 브라우저에 비해 썰렁할 정도로 단순하다.
이것은 다양한 설정과 기능을 원하는 사용자들의 불만을 살 지도 모르겠지만,
가볍고 빠른 브라우저를 선호하는 사람들에게 있어선 더 편리하게 다가올 수 있을 것이다.

크롬은 여타 브라우저와 사용성에 있어서 몇 가지 차별된 지점이 있다.
크롬은 브라우저 세계의 대세인 탭브라우징을 지원하고 있는데, 그 방식이 좀 다르다.


위에서 보다시피, 주소창 하나를 여러 탭이 공유하는 것이 아니라, 탭마다 다른 주소창을 지닌다.
이것은 탭이 마치 하나의 윈도처럼 독립성을 가지는 것으로 해석되는데,
크롬에서 여러 탭을 띄웠을 때 실행되는 프로세스를 보면 이 사실이 잘 드러난다.


이것은 하나의 크롬 창에 여러 탭을 띄웠을 때의 모습이다.
크롬에선 하나의 탭이 곧 하나의 프로세스를 의미하며,
이 말은 곧 하나의 탭이 돌다가 죽어도 다른 탭에는 영향을 주지 않는다는 말과 같다.
기존엔 잘못 실행된 하나의 탭 때문에 창 자체를 닫아야 했지만, 크롬에서는 그런 사태를 막을 수 있다.


크롬에서 새 탭을 띄우면 기본으로 위와 같은 화면이 나온다.
일종의 방문 히스토리인데, 방문했던 사이트의 스크린샷을 떠 놨다가 다시 방문하기 쉽도록 표시해 준다.
북마크 역시 같이 보여줌으로서 자주 방문하는 사이트를 마우스 클릭 한 번으로 쉽게 갈 수 있도록 해 준다.

그 외에도 주소창에서 도메인만 짙은 글씨로 표시한다던지,

파일을 다운로드할 경우 별도의 창이 아니라 브라우저 아래에 탭처럼 표시한다던지 하는
소소하지만 보다 편리하게 사용할 수 있도록 신경쓴 흔적들이 보인다.

하지만, 크롬이 가장 맘에 드는 점은 매우 빠른 자바스크립트 엔진을 가지고 있다는 점이다.
물론 파이어폭스도 매우 훌륭한 자바스크립트 엔진을 가지고 있지만,
크롬의 엔진은 그에 못지않게 빠른 것 같고 더 나은 부분도 있다는 생각이 든다.
(자바스크립트 loop 테스트를 통해 크롬의 빠른 자바스크립트 엔진을 테스트할 수 있다.

IE는...안습이다.)

크롬의 성능 테스트를 위해 DIV 10000개를 생성하고 HTML에 렌더링하는

간단한 스크립트를 짜서 돌려봤다.

(Internet Explorer 7)

 

(Firefox 3)

 

(Chrome)

 

크롬이 압도적인 성능을 보여주며, 심지어는 파이어폭스보다 나은 성능이 나온다.

IE는 물론 안습이다.
하지만 DIV에 border와 margin을 주고 루프를 돌려보면 약간 다른 결과가 나온다.

(Internet Explorer 7)


(Firefox 3)


(Chrome)


크롬은 아까와 같은 성능을 보여주지 못하며 파이어폭스보다 느린 결과를 나타낸다.
이것은 아마 HTML 렌더링 엔진이 파이어폭스가 더 우수하기 때문에 그렇지 않나 싶다.
그럼에도 IE에 비해 크롬은 좋은 성능을 보여주고 있다.

개인적으로 크롬의 등장으로 인해 가장 긴장해야 할 브라우저는 IE보단 파이어폭스와 사파리라고 생각한다.
어짜피 IE는 한국에서 강력하게 힘을 발휘하는 Active-X 같은 비표준 기능을 단독으로 지원하기 때문에,
오히려 표준을 준수하고 강력한 사용성을 지닌 파이어폭스와 사파리가 타격을 받을 것 같다.
물론 크롬은 아직 베타일 뿐이고 어떻게 될 것이라고 속단하는 것은 이르지만.

 

또한 아마도 구글은 모바일 브라우저를 염두에 두고 크롬을 만든 것 같단 느낌이다.

가볍고 빠르고 심플하지만 안되는 거 없는 브라우저라는 점에서

크롬은 안드로이드 플랫폼에 탑재될 브라우저로 꽤 경쟁력이 있을 것 같다.
그럼 오페라도 긴장해야 되겠군 흠흠.

이 브라우저가 앞으로 어떻게 진화할지는 모르겠지만,
앞으로 브라우저 시장은 예전의 넷스케이프 시대와 같이 한 차례 치열한 경쟁이 예고되는 듯 하다.
그 때를 대비하여 관심 있으신 분들은 한 번 다운받아 사용해 보는 것이 어떨까나~

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

시작프로그램과 그 친구들

...이란 글을 웹진에 써 놨습니다.

...

...

그래요, 4개째입니다!

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

공유의 미덕 - 공유기

...라는 글을 액트온에 써 놨습니다...

이런 식으로 얼렁뚱땅 3개째네-_-

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

여론 조작에 대한 사소한 오해 - 멀티서버 카운터

...라는 글을 액트온에 써 놨습니다-_-
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

나는 네가 어디에서 왔는지 알고 있다 - 리퍼러(Referer)

블로그 같은 1인 미디어를 갖고 계신 분들은 자신의 블로그에 들어갔을 때 어디를 제일 먼저 볼까요? 물론 사람마다 다르겠지만, 저 같은 경우 새로 쓴 포스트에 달린 댓글을 먼저 살펴봅니다. 그 다음에는 방명록에 새 글이 올라왔나 살펴보구요. 그런 다음 확인하는 것이 "접속 통계"입니다.

대부분의 1인 미디어 서비스들은 사용자의 페이지에 접속 통계를 제공합니다. 얼마나 많은 사람들이 자신의 페이지를 찾았는지, 그 사람들은 어떤 경로를 통해 내 페이지에 들어오게 되었는지 등의 정보를 요약해서 보여주는 것이 접속 통계 서비스입니다. 제 블로그는 하루에 100명도 채 안되는 방문자가 오고 있으며, 대부분 구글, 네이버, 다음 등의 검색 엔진을 통해 찾아오고 있다는 사실을 알 수 있는 것도 접속 통계 서비스 덕분이죠.

그럼 접속 통계는 어떤 데이터를 근거로 산출되는 것일까요? 이 중 일일 접속자 수 같은 통계는 구하기 쉽습니다. 가장 단순하게 생각하면 사용자가 페이지에 접속하는 순간 로그를 남기고 나중에 그 로그의 개수를 합치면 접속자 수가 나오게 되지요. 물론 블로그 주인이 접속했을 때에는 통계를 잡지 않는다던지, UV(Unique Visitor, 순방문자)를 측정한다던지 하는 것은 좀 더 고려해 봐야 할 문제이긴 하지만, 기본적으로 접속자 수 자체를 구하는 것은 특별한 정보가 없어도 접속하는 순간의 기록만 있으면 계산 가능합니다.

문제는 방문 경로를 구하는 것입니다. 블로그 사이트에서는 어떻게 방문자가 바로 이전에 어떤 사이트에 있었는지를 알 수 있을까요? 바로 리퍼러referer라는 정보가 있기 때문입니다. 방문자가 A 사이트에서 링크를 클릭하여 B 사이트로 이동하는 경우, 웹브라우저는 B 사이트에 페이지에 대한 요청을 보내면서 HTTP 헤더에 A사이트의 URL을 같이 실어 보냅니다. 이 URL을 리퍼러라고 부르며, 특정 사이트에서 사용자의 접속 경로를 추적하기 위해 심는 악성 코드 등과는 다른, HTTP 규약에 따른 정보입니다. B 사이트는 페이지 요청을 받음과 동시에 방문자가 있었던 이전 사이트를 좋건 싫건 자연스럽게 알 수밖에 없는데, 이 리퍼러 정보를 버리지 않고 적극적으로 활용하는 예가 바로 접속 통계 서비스라고 할 수 있겠습니다.

그럼 방문자는 방문하는 사이트마다 이전의 방문지를 남기게 되는 것일까요? 정확히 말하면 방문한 모든 사이트에 리퍼러가 남지는 않습니다. 리퍼러가 전송되기 위해서는 몇 가지 조건이 충족되어야 하는데, 이 중 가장 기본적인 조건은 링크를 클릭해서 이동한 경우에만 리퍼러가 남는다는 것입니다. 즉, 브라우저의 주소창에 직접 URL을 치고 들어간 사이트에는 이전에 특정 사이트에서 넘어갔다고 하더라도 리퍼러가 남지 않습니다. 같은 이유로 북마크(책갈피)를 클릭하고 들어간 사이트나 브라우저의 뒤로 가기 버튼이나 앞으로 가기 버튼을 누르고 이동한 경우에도 리퍼러가 제대로 남지를 않죠. 접속 통계에 리퍼러를 알 수 없다는 통계가 잡히는 경우가 많은데, 바로 리퍼러가 남지 않는 경우가 많기 때문입니다.

리퍼러가 남는 조건은 브라우저마다 차이를 보이기도 합니다. 예를 들면, 특정 버튼이나 링크를 클릭해서 팝업 창을 띄우는 경우, 인터넷 익스플로러 6의 경우 리퍼러가 남지 않는 반면 파이어폭스는 리퍼러를 남겨줍니다. 이는 리퍼러 정보를 서버에 보낼지 말지는 요청을 보내는 브라우저의 몫이기 때문에, 브라우저마다 경우에 따라 리퍼러를 넘기는 방식의 차이를 보이는 것이죠.

리퍼러를 사용하는 또 다른 예는 어뷰징abusing 체크 로직입니다. 어떤 게시판에 글을 쓰는 경우를 생각해 봅시다. 게시판에 글을 남기기 위해서 일단 편집기에 글을 쓴 다음, 이 글을 요청 파라미터에 넣어 서버에 저장하는 URL로 보내게 됩니다. 그런데 만약 글을 최종적으로 저장하는 URL을 어떤 방법으로 알게 되면, 편집기에 글을 쓰지 않고도 요청 파라미터에만 글 내용을 넣은 다음 그 URL로 요청을 보낼 수도 있습니다. 이 방법을 사용하면 편집기에서 글을 작성하는 과정 없이 단시간 내에 많은 양의 글을 쓸 수가 있습니다. 게시판이나 댓글 도배가 이런 방식으로 많이 이뤄지는데, 이는 시스템을 악용하는 행위라 하여 어뷰징이라 합니다. 이런 경우 이전 페이지가 편집기의 URL인 경우에만 글을 저장하도록 체크하는 로적을 넣는다면, 글을 저장하는 URL로 바로 요청을 보내는 경우를 차단할 수 있습니다. 이를 리퍼러 체크라고 하는데, 가장 기초적인 어뷰징 방지법으로 많이 사용되고 있죠.

리퍼러는 사용자에게 도움이 되는 정보로 집계될 수도 있고, 어뷰징을 방지함으로써 시스템의 안정성을 향상시키는 데 사용되기도 합니다. 하지만 이를 악용하는 사례도 많이 볼 수 있는데요, 대표적인 것이 리퍼러 스팸입니다. 블로거들이 자신의 블로그를 찾아온 경로에 관심이 많단 사실을 알게된 스패머들은 블로그를 방문하면서 홍보할 사이트를 리퍼러로 남겨 놓습니다. 블로거는 호기심에 그 사이트에 들어가 보면 스패머들은 소기의 목적을 달성하게 되는 셈이죠. 나날이 진보하는 스팸 방식을 보면, 참 광고쟁이들의 상상력은 정말 끝이 없는 것 같단 생각이 드네요~
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

Trust No One : 인터넷 보안 프로그램

아시는 분은 아시겠지만, 11월에 결혼을 하게 되었습니다. 아무래도 큰 이벤트인만큼 돈 드는 일이 많이 생기는데,  그 중 비중이 큰 신혼여행을 조금이라도 싸게 갔다 오려고 여행사를 통하지 않고 직접 알아보는 중입니다. 그 때문에 요즘 해외 사이트에서 결제할 일이 많이 생겼는데요, 외국의 사이트에서는 일단 파폭에서 결제가 된다는 점이 너무나 편리한 것이었습니다. 하지만 국내 사이트에서 결제하는데 필요한 겹겹히 쌓인 방어막이 없으니 살짝 불안해 지는 것도 사실이더군요.

국내 사이트에서 금융 거래를 하기 위해서는 갖춰야 할 것이 많습니다. 일단 보안 프로그램들을 깔고 실행을 시켜야만 금융 거래가 가능하도록 되어 있는 것이 대부분이죠. 이 보안 프로그램들이라는 것은 거의 (전에 네트워커에서 설명드린 바 있는) ActiveX로 만들어져 있습니다. 윈도우 플랫폼과 IE에서만 동작이 보장되는 ActiveX를 깔아야만 다음 단계를 진행시킬 수가 있기에, 비(非)윈도우 OS나 비IE 브라우저 사용자들은 온라인으로 결제나 인터넷 뱅킹을 하기가 쉽지 않은 환경이지요. (물론 IE탭이나 플러그인 설정을 통해 파폭에서 인터넷 뱅킹을 할 수 있는 방법은 소개된 바가 있습니다만, 비윈도우 플랫폼에선 여전히 ActiveX의 한계를 넘기가 힘듭니다)

그럼 인터넷 뱅킹 등 금융 거래를 하기 위해 필요한 보안 프로그램들은 어떤 일을 하고 있을까요? 저의 주거래은행인 H모 은행의 인터넷 뱅킹 사이트에 한 번 접근해 보겠습니다. 인터넷 뱅킹 페이지로 들어가면 암호화 모듈을 확인한다는 메시지와 함께 현재 필요한 ActiveX가 설치되어 있는지 확인하는 창이 나옵니다. ActiveX가 설치되어 있지 않은 사용자는 이 페이지에서 보안 프로그램 설치를 마치도록 되어 있습니다. 보안 프로그램을 설치하거나 이미 깔려 있는 사용자는 인터넷 뱅킹 로그인 페이지로 이동합니다. 로그인 페이지로 이동했다면 이 시점에선 이미 보안 프로그램이 작동하는 중일 것입니다.


현재 페이지에서 사용하는 ActiveX 컨트롤의 목록을 보면, 꽤 많은 ActiveX가 브라우저에서 실행되고 있음을 알 수 있습니다. 여기서 보안과 연관된 컨트롤은 크게 세 종류로서 각각 I***사와 A***사, S***사에서 제공하는 것입니다. 이들은 서로 다른 영역을 분담하여 담당하고 있습니다. 하나는 HTTP 통신과 인증서 통신 등의 암호화를 담당하고 있으며, 다른 하나는 개인 방화벽을 지원하고 있고, 또 하나는 키보드 해킹을 방지하는 역할을 하고 있죠. 대부분의 보안 솔루션들은 이렇게 각자의 전문화된 영역을 가지고 있기 때문에, 은행 등의 사이트는 필요하다 싶은 보안 솔루션 여러 개를 조합해서 사용하고 있습니다. 덕분에 깔아야 할 프로그램의 수가 많을 수밖에 없는 것이죠.

일단 이 프로그램들은 나름 존재의 이유를 갖추고 있습니다. 데이터 통신을 암호화하는 프로그램은 패킷을 중간에서 가로채는 패킷 스나이핑Packet Sniffing에 대비한 프로그램입니다. 패킷 스나이핑이란 네트워크로 보내고 받는 데이터를 중간에서 가로채는 해킹 방법으로, 네트워크로 나가는 중요한 개인 정보 등이 이를 통해 노출될 수 있습니다. 이 데이터를 암호화하여 누군가 가로채더라도 쉽게 내용을 알아볼 수 없도록 하는 것이 데이터 통신 암호화 프로그램이죠.

키보드 보안 프로그램은 키로거Key Logger를 막기 위한 프로그램입니다. 키로거란 키보드로 입력한 내용을 다른 어딘가에 저장하거나 전송하여 다른 사람이 볼 수 있도록 하는 일종의 해킹툴입니다. 키보드로 입력하는 아이디, 비밀번호 등의 개인정보를 보호한다는 측면에서 이 프로그램은 꽤 중요한 역할을 담당하지만, 키로거같은 백도어Backdoor가 깔린 상황이라면 이미 그 컴퓨터는 심각하게 크랙되어 있는 상황이기에, 어떻게 보면 키보드 보안 프로그램 하나만으론 역부족인 단계가 아닐까...라는 생각이 듭니다.

각 보안 프로그램의 유용성은 분명 인정할 만한 부분이 있습니다. 하지만 이런 식으로 여러 프로그램이 복잡하게 얽혀 보안 체계를 구축하는 체계는 여러 문제점을 야기합니다. 일단 모든 보안 프로그램을 깔지 않으면 금융 거래를 할 수 없기 때문에 사용자의 선택의 여지를 제한하고 있습니다. 예를 들면 키보드 보안 프로그램은 사용자가 정상적으로 사용하는 다른 프로그램들의 키입력과 충돌하여 여러가지 귀찮은 문제를 야기하는 경우가 많습니다. 키를 눌렀는데 입력이 안된다던지 한 번 누른 키가 여러 번 입력 된다던지 하는 문제는 비교적 빈번하게 발생하는 부작용이죠. 하지만 인터넷 뱅킹 등을 하려면 선택의 여지가 없기 때문에 불편함을 감수하고서라도 반드시 이 프로그램을 깔아야만 합니다.

또한 모든 보안 프로그램이 다양한 플랫폼을 지원하지 못하기 때문에, 사용자의 시스템 환경을 모든 보안 프로그램이 지원하는 플랫폼의 최소공배수로 맞춰야 하는 문제도 있습니다. 어떤 똑똑한 보안 프로그램이 맥과 리눅스를 지원한다고 하더라도 다른 보안 프로그램들이 맞춰주지 못한다면, 인터넷 뱅킹 사이트에 접근하려면 어쩔 수 없이 윈도우 플랫폼에서 사용할 수 밖에 없는 것이죠.

그리고 보안 프로그램을 사용한다는 것은 본래의 목적인 인터넷 통신 이외의 부가적인 작업을 한다는 의미입니다. 이 작업이 결코 만만한 것이 아닐 뿐더러 시스템 리소스도 꽤 많이 사용하기 때문에 결과적으로 시스템 성능을 저하시키는 경우가 종종 있습니다. 인터넷 뱅킹을 하다 보면 컴퓨터가 느려진다는 느낌을 받는 경우가 많을텐데요, 물론 사이트 자체가 플래시 덩어리라서 느린 것도 있겠지만, 보안 프로그램도 여기에 한 몫 한다는 점을 부인할 수 없겠습니다.

물론 인터넷 금융 거래에서 보안은 이런 프로그램들만으로 이루어지지는 않으며, 오히려 이런 프로그램은 보안카드, 공인인증서 등의 온/오프라인의 보안 시스템을 보완해 주는 역할과 함께 사용자에게 "당신은 보호받고 있습니다"라는 심리적인 안정감을 주는 역할을 한다고 보입니다. 이런 2중 3중의 자물쇠를 채운다 하더라도 스스로가 개인 정보 보호와 보안에 소홀히 하거나 이를 관리하는 주체가 허술하게 한다면 언제든지 파고들 여지가 생기기 마련입니다. 기업이나 공공기관에서 빈번하게 발생하는 개인 정보 누출 사고를 보면, 결국 개인 정보는 스스로 지켜야 하고 가장 좋은 것은 최소한의 개인 정보만을 제공하는 것이 아닐까...하는 생각입니다.

왠지 엑스파일에 나오는 "Trust No One"이라는 말이 생각나는군요. :)
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

Attack of the Clones : 악성코드의 세계

며칠 전 사무실에서 작은 소동이 벌어졌습니다. 컴퓨터를 부팅하고 조금 있다 보니 직원 중 한 분이 저에게 메신저로 파일을 전송하려 한다는 창이 뜨는 것이었습니다. 그 분과 제가 같이 작업하고 있는 것이 있어서 업무상 필요한 것이겠구나 싶어 파일을 다운로드 했는데, 다운받고 나서 대화창을 보니 대화명이 "바이러스 걸린 듯. 파일받지 마세요"인 것이 아니겠어요? 다행스럽게도 회사에선 매킨토시를 쓰고 있기 때문에 제 컴퓨터에서는 다운받은 웜이 별다른 영향을 주진 않았지만, 그 분과 메신저로 연결된 많은 사람들의 피해가 속출하는 사태가 발생하곤 했습니다. 이 웜은 신형인지 백신에서도 잡히지 않아서 아마 아직도 골머리를 썩히고 계신 분들이 있을 줄로 압니다.

위의 예에서 보면 전파자가 되신 분과 제가 쓰는 용어가 서로 다릅니다. 전파자님은 "바이러스"라고 했으며 저는 "웜"이라고 했습니다. 사실 실생활에선 그다지 구분되지 않고 사용되는 말이긴 하지만, 이 둘은 각각 다른 특징을 지니고 있습니다.

바이러스든 웜이든 그 목적은 동일합니다. 감염된 사용자의 컴퓨터에 사용자가 의도하지 않은 동작을 수행하는 것이죠. 또한 이들은 네트워크나 저장 매체를 통해 전파될 수 있다는 특징을 지닙니다. 이런 프로그램을 총칭하여 악성코드라고 부릅니다. 그러나 바이러스는 감염된 시스템을 망가뜨리고 감염된 사용자의 행동에 의해 전파되는 반면, 웜은 시스템에는 영향을 주지 않지만 스스로 네트워크를 통해 복제되고 전파된다는 점에서 그 차이를 보입니다.

바이러스는 컴퓨터의 역사만큼이나 오랜 역사를 지니고 있습니다. 최초의 컴퓨터 바이러스는 브레인Brain 바이러스로 알려져 있습니다. 파키스탄의 알비 형제가 자신들이 만든 소프트웨어가 불법복제되어 마구 뿌려지는 것에 분개하여 1986년에 제작했다고 합니다. 당시에는 플로피 디스크로 대부분의 프로그램들이 배포되었기 때문에 바이러스를 설치 디스크에 심어놓기만 하면 되었죠. 그 이후 많은 컴퓨터 바이러스들이 출현했고 기존 바이러스의 변종도 나타나기 시작했습니다. 하지만 이 당시에는 컴퓨터끼리 네트워크로 연결되어 있는 경우가 드물었고, 바이러스를 물리적으로 사람이 실어 날아줘야 다른 컴퓨터로 전파되었기 때문에 바이러스에 의한 피해 규모는 그리 크지 않았습니다. 또한 예전의 바이러스는 약간 순진한(?) 면이 있어서, 예루살렘 바이러스(일명 "13일의 금요일" 바이러스)는 이름 그대로 13일의 금요일에만 실행시킨 파일을 삭제하는 바이러스였고, 미켈란젤로 바이러스도 3월 6일에만 디스크에 있는 파일을 삭제하는 바이러스였기 때문에, 이런 특정한 날짜만 조심하면 피해갈 수 있었죠.

이에 비해 웜은 인터넷의 발전과 함께 두각을 나타내기 시작했습니다. 그것도 그럴 것이, 웜은 보다 빠른 시간 동안 널리 복제되어 번지는 것이 존재의 목적이므로 인터넷은 웜이 전파되기 아주 좋은 환경인 셈이죠. 초기의 웜은 이메일의 첨부 파일 형태로 전파되었습니다. 아웃룩 등 메일 클라이언트의 주소를 읽어들여 등록된 다른 메일 주소로 스스로 메일을 전송하면서 퍼져나갔죠. 이후 웜의 활동 영역도 넓어져서 메신저, 핸드폰, 블루투스 등 다양한 플랫폼에서 동작하는 웜도 등장하기 시작했습니다.

전 세계의 컴퓨터가 네트워크로 묶이면서 바이러스나 웜 등의 악성코드로 인한 피해는 점점 커져 갔습니다. 대표적인 예가 CIH 바이러스(일명 체르노빌 바이러스)인데, 이 바이러스는 컴퓨터의 바이오스(BIOS)를 손상시키고 파일을 삭제하는 악성 바이러스로서 통신망을 타고 광범위하게 번져나가 많은 피해를 줬습니다. 또한 2003년 1.25 인터넷 대란이라 불렸던 국내의 인터넷 망이 다운되는 사태도 SQL_Overflow 웜(일명 슬래머 웜)에 의해 촉발된 것이었으니, 주변 몇 명의 사용자를 곤란하게 만들던 악성 코드가 이젠 한 국가의 네트워크망을 다운시키는 지경까지 오게 된 것입니다.

이외에도 정상적인 프로그램인 척 위장하고 있지만 사실은 사용자의 의도에 맞지 않는 작업을 수행하는 트로이목마, 위장된 광고 프로그램인 스파이웨어, 웜의 일종인 악성 IRC 봇 등 악성코드의 종류는 매우 많습니다. 이 중 악성 IRC 봇은 매우 재미있는 특성을 지니고 있습니다. IRC 봇이란 원래 IRC라는 채팅 프로토콜에서 사용하는 가상 사용자입니다. IRC 봇은 채팅에 참여하는 사용자처럼 보이면서 다양한 일을 자동적으로 수행할 수 있습니다. 악성 IRC 봇은 웜의 일종이므로 다른 사용자의 컴퓨터로 자동 복제되어 전송됩니다. 일단 복제된 악성 IRC 봇들은 감염된 컴퓨터에 숨어 있으면서 IRC에 접속해 있다가, 어느 순간 호스트(웜을 퍼뜨린 장본인이겠죠)의 명령을 받아 동시에 같은 일을 수행합니다. 예를 들어 호스트가 특정 사이트를 공격하라는 명령을 내리면 악성 IRC 봇에 감염된 컴퓨터들은 마치 좀비처럼 그 컴퓨터의 주인도 알지 못하는 사이에 사이트 공격에 참여하게 되는 것이죠.

요즘의 악성코드는 웜이면서 바이러스의 특성을 지니거나 트로이목마인데 웜처럼 자동 복제 전송되는 등 그 경계가 모호해 지고 있습니다. 스파이웨어처럼 이게 악성코드냐 아니냐를 따지기 애매한 경우도 발생하구요. 결국 악성코드의 피해를 최소화하기 위해선 백신을 항상 최신 버전으로 유지하고 주기적으로 검사해 주고 수상해 보이는 사이트나 파일에는 접근하지 않는 것이 최선입니다. 윈도 사용자는 M$가 권장하는대로 수시로 업데이트를 해 주는 것이 필요하겠구요. 물론 바이러스가 거의 없다시피한 비윈도 플랫폼(리눅스, 맥OS 등)을 사용하면 이런 걱정을 근본적으로 덜게 되겠지만요. :)
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크