중학생에게 전화가 왔습니다. 처음 듣는 목소리였습니다. 전화를 해서는 다짜고짜 하는 말이 XSS Attack에 대해서 묻는 것이었습니다. -_-;


'아, 또 예전 만들어 놓은 XSS 동영상 질문이구나...'


xss.gif  


해킹/보안을 접하면서 평소 공부해 놓은 것들이나 가끔씩 필이 받는 경우에 플밍으로 조금씩 테스트내 놓고 관련 동영상을 공개를 하고는 했는데 아마 그런 동영상중의 하나를 봤던 모양입니다. 그 친구는 나에게 XSS에 대한 구체적인 구현 방법과 Attacker의 입장에서 Cookie를 어떻게 탈취할 수 있느냐(웹서버를 어떻게 만드느냐)에 대한 답변을 듣고 싶어 했습니다.


전화를 하는 도중에 제가 받은 느낌은 해킹을 알고 싶어 하는 열의가 상당했다라는 겁니다(보안 방면에 있는 사람에게는 완전 초보적인 지식이지만 ^^). 구현 방식을 대충 설명만 해 줘도, 대번에 컴파일러를 설치해서 관련 코드까지 달달 외울 기세더라구요.


어린 사람에게 그런 전화를 받으니 재미있기도 했고, 조금 의아하기도 했습니다. 하지만, 어른으로서 중학생에게 답변해 줄 수 있는 얘기는 별반 없었습니다. 공부 열심히 하라구요. 해킹/보안 공부는 나중에 가서도 해도 늦지 않다, 중학생이면 학교 수업을 열심히 해야 한다, 뭐 이런...


문득 제가 어렸을 때가 생각났었습니다. ZANAC이라는 게임을 하면서 어떻게 저렇게 빠른 스크롤을 할 수 있을까가  정말로 궁금했었죠. 8Bit 시절 Basic 언어으로는 도저히 구현할 수 없는 속도였거든요. 결국 어셈블리라는 것이 있다는 단서만을 가지고, 안동 촌동네 온갖 서점을 다 뒤져서 부모님 졸라서 거금 6,000원을 가지고 MSX Assembly라는 책을 샀었습니다.


zanac-cover.jpg


2진수 / 8진수 / 16진수 달달 외우고, Z80 Register 달달 외우고, ... 인터넷이 없던 시절 중학생이 Assembly에 대해 이해할 수 있는 것은 아무것도 없었습니다. "LD reg, 0" 보다 "XOR reg, reg" 가 빠르다고는 하는 것을 중학생 입장에서 이해할 수는 없었습니다. 무조건 외웠습니다. 무엇때문에? 목적은 단 하나였습니다. "8Bit 환경의 게임에서 화면 스크롤을 빨리 하는 거 구현해 보기". Assembler가 없었기 때문에 mnemonic code를 2 pass assembling을 공책에 적어 가며 손으로 직접 할 수 밖에 없었고, 지금 생각하면 참 무모했었죠. 나중에 대학와서 체계적으로 배울 수 있는 것인데 말이죠. 정말 쓸데 없는 짓인데, 그 당시에는 왜 그리 목숨 걸었는지...


그 중학생과 전화를 마치고 나서 오래전 저의 모습이 생각났었지만, 결국은 기성 세대의 입장에서 학교 공부를 열심히 해야 한다고 얘기할 수 밖에 없는 현실이 조금은 안타깝더라구요. 그런 어린 친구들로 하여금 가끔씩은 무모한 도전를 해 보도록 하는 것조차 현실에서는 왜 허용이 되지 않는 것인지...