2P by GN⁺ | ★ favorite | 댓글 1개
  • 한 대학의 신입 데이터베이스 프로그래머가 캠퍼스 네트워크 프린터 표시 문구를 바꿔 유료 출력 정책처럼 보이게 만든 만우절 사건임
  • 장난은 HP 9000 K250 서버의 프린터 스풀 접근 권한과 LaserJet의 READY 메시지 변경 기능을 이용해 각 프린터에 INSERT 5 CENTS를 표시하는 방식이었음
  • 프린터는 계속 정상 출력됐고 실제 변화는 표시 패널 문구뿐이었지만, 캠퍼스 전체 관리 메일링 리스트에 보낸 정책 안내 메일 때문에 일부 직원이 행정부에 직접 문의하며 일이 커짐
  • 오전 8시 30분쯤 본부 사무실이 혼란스러워졌고, HR 책임자는 CFO 출근 전 정정 메일을 요구했으며 첫 정정문은 실제 페이지당 과금 논의와 충돌해 다시 고쳐야 했음
  • 사건은 다음 인사 평가의 poor judgment 한 줄로 마무리됐고, 캠퍼스에서는 이전 장난보다 기술적으로 더 뛰어난 전설적 장난으로 기억됨

대학 전산실과 CARS 환경

  • 첫 직장은 대학의 데이터베이스 프로그래머였고, 학부 전공은 컴퓨터와 관련이 없었지만 BSD/386과 SunOS 실무 지식, 전임자의 추천으로 채용됨
  • 근무 대상 시스템은 Hewlett-Packard의 대형 PA-RISC 서버인 HP 9000 K250였음
    • 서버실은 사무실 아래층에 있었고, 카드키 잠금장치와 halon 소화 시스템을 갖춘 온프레미스 환경이었음
    • K250은 이전에 쓰던 Encore 계열 미니컴퓨터를 대체했으며, 같은 서버실에는 AIX RS/6000, T1 회선, 터미널 서버, Cabletron 라우터, 통신 장비도 있었음
  • K250은 학생 정보 시스템 CARS를 실행했음
    • CARS는 나중에 Jenzabar로 이름이 바뀐 시스템임
    • 당시 운영체제와 데이터베이스는 각각 HP/UX 10.20과 Informix였음
    • CARS 코드는 Informix 테이블, 화면, 저장 프로시저, 자체 텍스트 UI 라이브러리, Perform 화면, SQL, C-shell 스크립트, C, ESQL/C로 구성됐음
    • 변경 관리는 RCS와 큰 Makefile로 이뤄짐
  • 업무 범위는 자원 관리, 재무, 출석 추적 같은 관리 부문 코드 작성과 유지보수였고, 이후 CARS의 새 웹 모듈에서 Perl 기반 맞춤 애플리케이션도 만들었음

장난의 기술적 아이디어

  • CARS는 캠퍼스의 대부분 프린터를 관리했으며, 일부 RS/6000 직결 프린터만 예외였음
  • 캠퍼스 행정 프린터 대부분은 JetDirect 네트워크 카드를 단 HP LaserJet 4 계열이었음
  • LaserJet의 VFD 패널에 표시되는 READY 메시지는 변경 가능했음
    • 처음에는 상사가 출력할 때 프린터가 인사말을 표시하게 하는 정도로 사용함
    • 이후 K250의 프린터 스풀 접근 권한과 스풀 디렉터리 이름이 호스트명과 같다는 점을 이용하면 캠퍼스의 모든 네트워크 LaserJet 위치를 알 수 있다는 사실을 장난에 활용함
  • 만우절 계획은 매우 이른 시간에 출근해 모든 스풀 항목을 순회하며 각 프린터 표시 메시지를 INSERT 5 CENTS로 바꾸는 것이었음
    • 모든 네트워크 LaserJet이 출력 전에 5센트 동전을 요구하는 것처럼 보이게 만드는 효과였음
    • 실제 프린터 상태는 여전히 준비 상태였고, 출력 작업을 보내면 정상적으로 출력됨

실행 스크립트와 안내 메일

  • 실제 스크립트는 /opt/carsi/spool 디렉터리의 모든 항목을 순회하면서 PJL 명령을 포트 9100으로 보내는 단순한 C-shell 스크립트였음
#!/bin/csh -f

cd /opt/carsi/spool
foreach i (*)
        echo '^[%-12345X@PJL RDYMSG DISPLAY="INSERT 5 CENTS"' | netto $i 9100
end
  • ^[는 ASCII 27 ESCape 문자였고, netto는 netcat이 널리 쓰이기 전 직접 작성한 netcat 비슷한 스크립트였음
  • 장난의 효과를 키우기 위해 캠퍼스 전체 행정 메일링 리스트에 프린터 정책 변경 안내 메일을 보냄
    • 서비스 비용 증가 때문에 캠퍼스 프린터를 페이지당 과금 방식으로 재프로그래밍한다는 내용이었음
    • 대부분 프린터가 페이지당 5센트 예치금을 요구하며, 계정 결제나 기술자가 설치할 동전 수납 장치를 통해 지불할 수 있다고 적음
    • 계정이 없는 사무실의 프린터는 출력할 페이지마다 5센트를 넣으라고 자동 요청할 것이라고 안내함
    • 프린터 계정은 CARS에서 관리되며 Helpdesk에 전화하지 말고 자신에게 문의하라고 적었음
  • 원래 계획은 하루가 끝날 때 모든 프린터 표시를 다시 READY로 되돌리고 조용히 넘어가는 것이었음

예상보다 커진 소동

  • 메일 발송 뒤 몇몇 불안한 전화를 받았고, 상대가 장난임을 알게 되면 크게 웃었으며 해당 프린터는 수동으로 되돌림
  • 글쓴이를 알고 장난을 좋아하는 사람들은 날짜를 보고 긍정적인 답장을 보냄
    • 그날 늦게 한 사람은 레이저 프린터로 출력한 종이에 5센트 동전을 붙여 캠퍼스 내부 우편으로 보냈음
  • 문제는 그를 모르는 사람들이 전화하지 않고 대학 행정부에 직접 연락하면서 시작됨
  • 오전 8시 30분쯤 본부 사무실은 혼란스러워졌고, 이 상황은 그를 아는 HR 책임자에게 전달됨
    • HR 책임자는 CFO가 출근하기 전에 정정 메일을 보내지 않으면 큰일 날 것이라고 말함
    • 첫 정정문에는 캠퍼스 행정부가 페이지당 요금을 고려하지 않는다고 썼지만, 실제로는 그런 논의가 있었음
    • 그래서 첫 정정문을 다시 정정하고, 그 사실에 주의를 끌지 않는 새 정정문을 보내야 했음
  • 프린터 표시를 원래대로 되돌리는 스크립트도 예정보다 일찍 실행했고, 소동은 정오쯤 가라앉음
  • 사무실 사람들은 이를 매우 재미있어했고, 공식적으로는 못마땅해한 상사도 어느 정도는 재미있어했음

상사의 휴가와 사후 처리

  • 사건 당시 IT 디렉터, 즉 상사의 상사는 휴가 중이었음
  • 글쓴이는 그 다음 주말과 주 초 일부를 스키 여행으로 보내는 전술적 실수를 했고, 디렉터는 그가 없는 동안 분노한 이메일들을 확인하게 됨
    • 사무실 동료는 디렉터가 눈이 휘둥그레져 들어와 “그가 대체 뭘 한 거냐”고 물었다고 기억함
  • 복귀 후 사무실 분위기는 매우 차가웠음
    • 장난을 재미있어했던 부디렉터는 일을 막지 못했다는 이유로 곤란해짐
    • 그는 애초에 일을 벌였다는 이유로 큰 곤란을 겪음
  • 그는 사과했고, 상당히 오랫동안 이례적으로 모범 직원처럼 행동함
  • 시간이 지나 사건은 공식적으로 종결됐지만, 다음 성과 평가에는 poor judgment가 남음
  • 캠퍼스에서는 이 장난이 이전의 “입구 경비원이 인당 소액 입장료를 받는다”는 장난보다 기술적으로 더 완성도 높았다고 평가됐고, 여러 해가 지나도 전설적인 장난으로 회자됨

댓글과 토론

Hacker News 의견들
  • 고등학교 때 NetWare 3.12 환경이었고 Guest 계정이 아주 제한된 권한으로 열려 있었는데, 이상하게도 Guest가 NET SEND를 쓸 수 있었음
    전 학군이 인터넷을 T1 회선 하나로 공유하던 시절이라 이메일에는 충분했지만 웹이 뜨고 mp3를 받기 시작하자 병목이 심해졌음
    어느 날 정전성 전원 문제 때 ADMIN이 “서버실이 UPS 전원으로 동작 중이니 저장하고 로그아웃하라”는 메시지를 전체에 보냈고, 몇 주 뒤 한 학생이 Guest로 로그인해 NET SEND ALL "SERVER ROOM POWER FAILURE - 11 MIN OF BATTERY REMAIN - SAVE FILES AND LOG OFF"를 보내자 1분 만에 모두 로그아웃해서 T1 회선을 독차지할 수 있었음
    8분쯤 필요한 파일을 받은 뒤 “전원 복구” 메시지를 보냈고, 나중에 또 반복해도 통했음
    아무도 메시지가 Guest에서 온 걸 못 봤고, 결국 학군 관리자가 서버실 전원이 불안정한 줄 알고 전기 업체까지 부름
    누군가 지적한 뒤에는 “정말 영리하지만 이제 그만하라”는 정도로 끝났고, 다음 날 Guest 권한이 훨씬 줄어듦

    • NetWare에서 그 기능은 SEND였고 NET SEND는 Microsoft 네트워킹 쪽이었던 걸로 기억함
      고등학교 NetWare 네트워크를 쓰고 남용하던 입장에서, SEND 프로그램을 역어셈블해 보니 메시지에 들어가는 사용자 이름이 인증되지 않았음
      IPX인지 NETX인지의 소프트웨어 인터럽트가 문자열만 받았고, SEND 실행 파일이 거기에 사용자 이름을 포맷해 넣는 구조였음
      그래서 인터럽트를 직접 호출하는 자체 SEND 프로그램을 만들면 "ADMIN" 같은 임의 사용자 이름으로 아주 쉽게 위조 메시지를 보낼 수 있었음
      물론 이건 우리 학교에서 어떤 네트워크 장난이 있었거나 없었다는 자백으로 해석하면 안 됨
    • 형이 컴퓨터실에서 작업하던 중 다른 학생들이 대학 컴퓨터로 보면 안 될 걸 보고 시끄럽게 굴자, 학과장에게 보고하라는 메시지를 보냈다고 함
      그 학생들은 바로 사라졌고 형은 조용히 작업할 수 있었음
      아마 Windows XP의 Net Send였던 것 같음
    • 고등학생 때 Windows의 net send 명령을 발견했고, 주로 농담 메시지를 주고받는 데 썼음
      한 학생이 와일드카드로 전체에 단순히 "Hi"를 보내 봤는데, 여러 학교를 포함한 전 학군에 퍼졌음
      처음엔 누가 보냈는지 몰랐지만, 관리자/교사가 원격으로 화면을 비우거나 잠글 수 있는 소프트웨어가 설치돼 있었고, 그 학생 화면을 원격으로 비운 뒤 본인이 항의하자 범인인 걸 알게 됨
      큰 처벌은 없었지만 모두에게 net send를 알려준 게 아직도 좀 미안함
    • 고등학교 때 친구가 Windows XP에서 임의의 네트워크 드라이브를 데스크톱에 매핑해 접근할 수 있다는 걸 알아냈고, 전 학군 사용자명이 {성}{이름 첫 글자} 형식이라 누구의 “홈 폴더”든 읽고 쓸 수 있었음
      친구는 교사 폴더에서 시험 답안을 얻었고, 나는 빈 폴더 이름을 porn, porn 2 같은 식으로 만들었음
      친구가 같은 반 학생에게 고자질당해 잡히자 10일 정학을 받았고, 부교장은 경찰을 부르겠다고 했지만 어떤 범죄인지도 애매했음
      계정에 실제로 네트워크 드라이브 매핑 권한이 있었는데 이게 정말 무단 접근인지, 물론 학교는 “해킹”이라고 불렀음
      이후 학생 계정의 네트워크 드라이브 매핑 권한은 제거됐지만 학군 IT 담당자는 해고되지 않았고, 데스크톱에서 우클릭하면 매핑할 수 있다는 건 다들 아는 일이라 이해가 안 됨
    • 비슷한 일이 있었음
      고등학교 도서관이 Windows 환경이었고 우연히 NET SEND 비슷한 걸 발견해 친구들 컴퓨터 이름을 알아낸 뒤 메시지를 보내기 시작함
      엄격한 사서가 있어도 그 방식으로 대화했고, 결국 전체를 괴롭히려고 컴퓨터 이름을 순회하며 대량 전송하는 허접한 배치 파일을 만들었는데 반복자를 잘못 짜서 무한히 돌아감
      아마 모든 컴퓨터를 재시작해야 했지만, 친구들 말고는 내가 한 줄 아무도 몰랐음
      그 시절과 그 형편없는 PC에서 Soldat 하던 때가 그립다
  • 이 영리한 작은 장난 글의 진짜 가치는 장난꾼이 사회적 반응의 흐름을 지도처럼 보여준 데 있음
    누가 누구를 아는지, 어떤 인상이 굳기 전에 물리적으로 현장에 있었는지 같은 작은 단서에 따라 장난이 조직 전체에서 어떻게 받아들여지는지가 달라짐
    같은 일을 두고 어떤 사람은 배꼽 잡고 웃고, 어떤 사람은 선을 넘었다고 느끼며, 각자 자기 반응이 너무나 당연하다고 여김
    장난을 친 입장에 있어야 그 반응들의 우연성과 비합리성이 실시간으로 보임
    예전에 철학이 그리스에서 생겨난 이유가 도시국가 간 무역을 하던 상인들이 “상식”처럼 여겨지던 것이 사실은 지역과 문화에 따른 관습임을 봤기 때문이라는 추측을 들은 적이 있음
    장난꾼도 각자가 그 일을 어떻게 경험했는지에 따라 반응이 갈리는 걸 보며 그런 우연성을 목격하게 됨

    • 실제로 인쇄 요금제 도입을 검토 중이었고, 그게 그들이 원하던 공지 방식이 아니었던 게 문제의 일부였던 것 같음
    • 이 해석은 좀 과장된 것 같기도 함
      영리한 작은 장난과 새 인쇄 정책을 알리는 건조한 전체 이메일 사이의 차이가 얼마나 큰지 의문임
      일부가 “배꼽 잡고 웃었다”는 반응과 다른 일부의 짜증 사이의 기울기에 많은 게 걸려 있는데, 자가 보고라 믿기 어렵고 어떤 맥락에서 이게 그렇게까지 웃긴지 잘 모르겠음
      공감에 대한 단순한 우화로는 가치가 있고, 사후가 아니라 사전에 공감해야 한다는 점도 맞음
      여러 번 읽어도 농담이라는 신호나 추가 유머 층이 있는 이메일처럼 보이지 않고, 그냥 청소부가 앞으로 화장실에 열쇠가 필요하다고 캠퍼스 전체에 메일 보내는 것과 비슷해 보임
      다만 IT 직원이 인쇄 요금 부과를 알리는 것보다는 화장실 열쇠 쪽이 훨씬 덜 그럴듯하긴 함
    • 트릭스터 원형은 지혜와 혼돈을 동시에 가져오는 오래된 원형임
      다만 역사적으로는 Plato 이전까지 철학을 포함한 거의 모든 지식이 신적 근원에서 받은 것으로 이해됐던 걸로 앎
      인간 이성을 통해 지식을 얻는다는 생각은 Socrates식 대화를 통해 자리 잡았음
      그렇다면 Plato도 본질적으로 장난꾼이었고, 우리가 아는 서구 문명은 그의 속임수의 결과라고도 말할 수 있음
    • 이런 장난을 치는 사람들은 자신이 받은 긍정적 반응을 크게 과대평가하는 것 같음
      글에서는 불안해 전화한 몇 명이 상황을 깨닫고 크게 웃었고, 자신을 장난꾸러기로 아는 사람들은 날짜를 보고 칭찬 답장을 보냈다고 하지만, 실제로 크게 웃은 사람은 거의 없었을 듯함
      대개는 눈을 굴리며 예의상 웃었을 가능성이 크고, 그가 “실용 장난꾼”이라는 자아에 얼마나 매달려 있는지 아는 사람들은 대화를 빨리 끝내려고 맞춰 웃었을 것 같음
  • 1997~98년 첫 직장에서 보험회사 기술 지원을 했고, 이메일은 Lotus Notes를 썼음
    Notes는 이메일뿐 아니라 양식, 프로그래밍 언어, 워크플로까지 있던 시스템이라 사용자 요청 양식을 만들면서 프로그래머 권한을 갖고 있었음
    당시 한 달에 한 번쯤 금요일에 청바지를 입을 수 있는 캐주얼 복장 날이 있었고, 부서 관리자가 IT/엔지니어링 전체에 안내 메일을 보냈음
    어느 날 그 메일을 복사해 “바지 없는 금요일”을 공지하는 장난 메일로 바꿨고, 속옷은 입어야 한다고 명시했음
    Notes 권한 덕분에 보낸 사람을 부서 관리자처럼 위조할 수 있었는데, 원래는 기술 지원팀 15명 정도에게만 보내려다 실수인지 우연인지 IT/엔지니어링 전체 200~300명에게 보내 버림
    곧 상사 전화가 불이 났고, 바로 가서 내가 한 일이라고 말했음
    해고되진 않았지만 사과 메일을 써야 했고, 나중에 많은 사람이 부서에서 본 일 중 제일 웃겼다고 말해줌
    얼마 뒤 더 도전적인 프로그래밍 일로 옮겼고, 심심해서 이런 바보 같은 장난을 칠 시간이 없어졌다는 점에서도 좋은 변화였음

    • 여기서 가장 관련 있는 건 일이 충분히 어렵지 않았다는 점인 것 같음
      지루한 사람은 멍청한 장난을 치고, 도전 부족은 지루함으로 이어짐
  • 가장 웃겼던 부분은 철회 메일도 잘못됐다는 대목이었음
    철회문에 “캠퍼스 행정이 장당 요금 부과를 검토하지 않는다”고 썼는데 실제로는 검토 중이어서, 그 사실에 주목하지 않는 새 철회문을 다시 보내야 했다는 점이 압권임

    • 아마 실제로는 장당 더 높은 요금을 생각하고 있었고 5센트는 너무 낮았을지도 모름
    • 그래서 오히려 더 그럴듯해졌음
  • 고등학교 때 모든 프린터의 준비 메시지를 Insert Coin 으로 바꿨음
    스크립트 매개변수를 제대로 확인하지 않았고, 네트워크 구성 때문에 전 학군에 배포돼 버림
    놀랍게도 이게 네트워크 사용 금지의 이유는 아니었음

    • 그럼 이유가 뭐였음?
  • 이메일 없이 프린터 메시지만 바꿨다면 농담이 더 웃겼을 것 같음
    다만 사람들이 실제로 프린터에 동전을 쑤셔 넣을까 봐 걱정됐을 듯함

    • 이야기 내내 그런 일이 벌어질 줄 알았음
      사람들이 프린터에 동전을 넣으려다 고장 내서 수리비가 많이 나오고, 그 때문에 행정이 화내는 전개를 예상했음
  • 장난을 정말 많이 쳤고, 꼭 4월 1일까지 기다리지도 않았음
    첫 번째는 고등학교 때 Apple II+용 가짜 DOS를 만든 것임
    명령을 받고 실행하지만 가끔 비꼬는 메시지를 반환했고, 선생님은 즐거워하지 않았음
    두 번째는 레이저 프린터가 수천 달러 하던 1970년대 말~1980년대 초에 컴퓨터 잡지의 CGI 이미지를 찾아 도트매트릭스용 연속 용지에 Xerox로 복사한 뒤 친구들에게 내가 레이저 프린터를 갖고 있다고 믿게 한 일임
    실제 레이저 프린터가 어떻게 동작하는지 아무도 몰라서 양쪽 구멍이 오히려 진짜 같아 보였음
    세 번째는 부모님이 당좌 계좌를 바꾸며 남은 수표책이 있었고, 아버지에게 장난을 치고 싶다고 하자 600달러 수표를 써주신 일임
    아침에 반 친구에게 방과 후 컴퓨터를 사러 간다고 보여준 뒤, 학교가 끝나 친구가 찾아오자 갑자기 컴퓨터가 필요 없어졌다고 말하며 눈앞에서 찢어 버렸고 친구는 얼어붙었음
    네 번째는 동네 도서관에 15분에 25센트인 동전식 TV 화면이 달린 Atari 400이 있었는데, 화면 없이 간단한 BASIC 프로그램을 짜서 몇 분마다 무작위로 삑 소리를 내게 하고 실행한 뒤 나와 버린 일임

    • 15년쯤 전 ThinkGeek가 이걸 Annoy-a-Tron이라는 제품으로 만들었음
      동전 전지로 몇 주 동안 동작하는 작은 자석식 회로기판이라 잘 숨겨 두면 근처에서 오래 지내는 사람의 정신을 해체할 수 있었음
      지금은 여러 업체에서 더 정교한 버전도 나오지만 링크는 걸지 않겠음
    • 1980년대 말 대기업에 취직한 뒤에도 회사 장난을 더 쳤음
      DOS 시절 표준 사무용 컴퓨터가 작은 내장 스피커를 프로그래밍해 삑 소리를 낼 수 있는 IBM AT였을 때, 여러 워크스테이션의 autoexec.bat에 영화 Brazil 멜로디 첫 여덟 음을 빠르고 낮은 볼륨으로 재생하게 넣었음
      영화가 막 나온 때였고, 회사 생활과의 유사성을 풍자하는 데 어울리는 곡이라고 생각했음
      또 매년쯤 구내식당이 파란 카드지 설문지를 테이블마다 올려두면, 친구와 같은 색 카드지를 구해 “계산원들의 온도는 어땠나요?”, “음식은 친절했나요?”처럼 질문을 살짝 바꾼 복제품을 만들어 전 테이블에 배포했음
      무슨 일이 있었는지는 모르지만 관리진이 기뻐하진 않았을 것임
      다른 날에는 친구 B가 출구 직전 계산대 앞 비상문을 찾아 돈을 내지 않고 엘리베이터로 빠져나갔고, 나와 C는 회사 전 책상에 배포되는 종이 보안 공지 양식을 흉내 내 B의 경찰 몽타주풍 스케치를 넣어 “무표시 문으로 식당을 빠져나간 위험한 용의자를 주의하라”는 전사 공지를 만들어 모든 책상에 올려뒀음
  • 상부가 실제 유료 인쇄 시스템 도입을 준비 중인 때와 겹치지 않았다면 장난이 더 잘 받아들여졌을지도 궁금함
    이미 계획하던 인기 없는 변화에 관심이 쏠리는 걸 그들이 달가워했을 리 없음

  • 내가 들은 최고의 장난은 친구 Bill March에게 있었던 일임
    회사에 비교적 새로 들어간 상태였고, 4월 1일이 월급날이었는데 사무실에 오자 Bill April 앞으로 된 수표를 받았음
    웃긴 점은 그게 사실 만우절 장난이 아니었다는 것임