Project

[QRCode] QRCode와 모바일 웹

0

     국민은행 연아와 승기의 스마일

 

          신세계 백화점 스타일 위클리

 

          루이비통 재팬

 

컨텐츠 관리 시스템(CMS) 소개

0

 

블로깅 툴을 얘기하다 보면 심심찮게 등장하는 CMS(Content Management Systme)란 용어는 무엇을 의미할까요?


일단 사전적인 의미로는 컨텐츠를 관리하는 시스템을 말합니다. 그런데 의미가 너무 포괄적이지요. 사실 CMS에 대한 정의는 명확하지가 않습니다. 특정한 규격이 정해져 있는 개념도 아니고요. 처음부터 CMS라는 정의하에 만들어진 것이 아니라 컨텐츠를 효율적으로 관리하기 위한 여러가지 방법들이 개발되면서 포괄적으로 CMS란 용어가 정립된 것이기 때문입니다.


그러므로 CMS의 의미를 알기 위해서는 컨텐츠란 무엇이고, 왜 컨텐츠를 관리할 필요가 생겨났는지, 그리고 어떤 방법들이 도입되었는지 알아야 합니다. CMS에 대한 설명을 담고 있는 위키피디아 문서CMS 솔루션 개발 업체인 콘텐츠와이즈에서 제공하는 PDF 문서를 참고로 해서 정리해봤습니다.


컨텐츠(Content)란?


‘컨텐츠’‘내용물’이라는 뜻으로 상당히 포괄적인 용어입니다. 하지만 일반적으로 컴퓨터나 인터넷 분야에서는 ‘컴퓨터 파일’, ‘이미지나 오디오 등의 멀티미디어 파일’, ‘전자 문서’, ‘웹 컨텐츠’ 등을 말합니다. 현재는 웹(World Wide Web)의 성장과 더불어서 ‘웹 컨텐츠’가 다양한 멀티미디어 파일과 전자 문서를 포괄하는 개념으로 확대되었지요. 넓은 의미의 ‘웹 컨텐츠”HTML를 이용하는 모든 문서와 서비스(블로그, 게시판, 검색 엔진 등), 그리고 그 안에 포함된 모든 파일과 데이타를 뜻합니다.


컨텐츠 관리의 시작


초기의 CMS는 기업에서 서로 다른 부서간에(inter-office) 네트웍(또는 웹)을 통해서 컨텐츠를 공동으로 이용할 목적으로 시작되었습니다. 많은 기업들이 공통 양식(non-proprietary form)으로 만들어진 문서들의 저장소(archival)로 CMS를 활용했는데 서버 기반의 소프트웨어로 운영되었기 때문에 이런 문서들을 쉽게 공유할 수 있기 때문이었지요.


웹의 중요성이 커지고 웹 컨텐츠나 웹 사이트 관리의 비중이 높아지면서 ‘웹 컨텐츠 관리 시스템(Web Content Management System)’이 도입되었는데 WCMS에는 웹 관련 작업의 효율성을 높여주는 다양한 기능들이 추가되었습니다. 엄밀하게 말해서 CMS는 WCMS를 포함하는 상위 개념이지만 최근에는 WCMS의 대체 용어로 많이 사용됩니다.


† 앞으로의 글은 WCMS에 초점을 맞추고 있습니다. 따라서 CMS란 용어는 WCMS를 의미합니다.


컨텐츠 관리가 필요한 이유


초기의 웹 문서와 웹 사이트는 HTML 마크업을 문서 편집기(text editor)로 입력해서 만들어졌습니다. 따라서 관련 기술에 대한 전문적인 지식 없이는 웹 컨텐츠를 만들기가 어려웠지요. 예를 들어서 기업에서 판매하는 제품의 사용자 매뉴얼을 웹에 게시하려면 먼저 실무자가 매뉴얼을 일반 문서 형식으로 만들고 상급자나 경영진의 승인을 받은 다음 웹 사이트를 관리하는 담당자에게 전달하면 웹 관리자는 이 문서를 HTML 형식으로 바꾸고 FTP 등을 이용해서 올리는(upload) 과정을 거쳐야만 했습니다.


전체적인 효율을 높이려면 누구나 쉽게 문서를 만들거나 수정하고 게시할 수 있어야 하는데 바로 이것이 CMS의 핵심 기능입니다. 많은 블로깅 툴이 CMS 툴(소프트웨어)로도 분류되는 것은 바로 이런 핵심 기능을 지원하기 때문인데 예를 들어서 태터툴즈워드프레스는 직접 HTML 마크업을 입력할 필요 없이 브라우저 내에서 이지윅(WYSIWYG (What You See Is What You Get)) 편집기로 쉽게 문서를 작성할 수 있도록 해줍니다. 완성된 문서는 버튼 하나만 클릭하면 FTP 프로그램 없이도 웹에 올릴 수 있지요.


CMS가 지원하는 기능


CMS는 일반적으로 새로운 소식을 알리는 글이나 관리자 매뉴얼, 기술 문서, 판매 지침, 상품 소개 페이지와 같은 컨텐츠의 보관과 버전 관리, 배포에 주로 사용되며, 효율성 향상을 위해 다음과 같은 기능들을 지원합니다.



  • 각종 문서와 멀티미디어 자료(이미지, 오디오 비디오 등)를 작성하거나 외부에서 불러올(import) 수 있음.
  • 컨텐츠 관리에 참여하는 사용자들의 역할(role)과 권한 차이를 인식할 수 있음.
  • 컨텐츠의 형태나 분류에 따라서 사용자들의 역할과 책임을 부여할 수 있음.
  • 컨텐츠에 대한 작업 흐름(workflow)을 설정하고 필요에 따라서 컨텐츠 내용 변경시 관리자에게 알려줄 수 있음.
  • 하나의 컨텐츠에 대한 다양한 버전의 관리와 추적(tracking) 가능.
  • 컨텐츠를 쉽게 수정, 관리할 수 있도록 검색 기능이 통합된 문서 저장소에 보관하도록 함.
  • 일부 CMS는 디자인적인 요소를 제외한 텍스트 컨텐츠만을 받아들인 다음 기본 글꼴이나 색상, 레이아웃 등을 통합적으로 설정할 수 있도록 해줌.

열거한 기능 중에서 중요한 기능에 대한 보충 설명을 해봤습니다.


컨텐츠 제작

HTML을 사용하지 않고도 컨텐츠를 만드는 것은 CMS의 기본 기능입니다. 따라서 대부분의 CMS 툴이 이지윅 에디터나 Textile이나 Markdown, BBCode 등의 가벼운 마크업 언어(lightweight markup language)를 이용한 문서 작성을 지원합니다.


역할 관리

역할(role) 관리는 CMS의 핵심 기능 중 하나입니다. 아래 설명할 작업 흐름 관리와 함께 사용되며 초안(draft) 작성 권한만을 갖는 실무자가 문서를 작성하면 발행 권한이 있는 상위 관리자가 문서에 대한 수정을 요청하거나 최종 배포를 결정하는 방식이지요. 간단한 역할 관리의 예는 이전에 포스팅한 Textpattern 사용자 타입이라는 글에서 볼 수 있습니다.


작업 흐름 관리

작업 흐름(workflow) 관리 역시 CMS의 핵심 기능으로 기업 내에서 이루어지는 오프라인 결제 시스템을 떠올리면 이해하기가 쉽습니다. 즉, 컨텐츠가 한 번의 작업으로 완성되고 게시되는 것이 아니라 여러 과정을 거치며 수정과 검토, 승인이 이루어진 다음 최종 완성본이 배포되는 것을 의미하지요. 많은 CMS 툴은 작업 흐름 관리를 위해 진행 과정을 이메일로 알려주거나, 다음 과정으로 자동 전달해주는 기능을 지원하고 있습니다.


CMS가 적용되는 곳


기본적으로 CMS는 개인 사용자를 위해 만들어지지 않았습니다. 처음부터 기업 환경의 효율성 재고를 위해 도입된 것이니까요. 또한 수시로 바뀌는 게시판 같은 커뮤니케이션 용로도로 적합하지 않습니다. CMS의 효능이 최대한 발휘되는 곳은 기업의 제품 소개나 안내 페이지 같은 정적인 정보성 페이지입니다.


CMS로서의 텍스트패턴


제가 사용중인 텍스트패턴은 공식적으로 CMS 툴임을 표방하고 있습니다. 비록 전문적인 CMS 툴로 보기에는 기능상의 한계가 있지만 기본적인 기능들은 갖추어져 있다고 생각합니다. 하나씩 열거해보지요.



  • 쉬운 문서 작성: 거의 모든 HTML 태그를 대체할 수 있는 Textile은 텍스트패턴의 큰 장점입니다. Textile에 관한 자세한 설명은 Textile 시작하기를 참고하세요.
  • 역할 관리: 앞서 설명한 기능입니다. 사용자들이 각각 권한이 다른 여섯 부류로 나누어지며 각각의 권한을 원하는대로 수정할 수도 있습니다.
  • 작업 흐름 관리: 문서를 ‘초안(draft)’, ‘숨김(hidden)’, ‘미결(pending)’, ‘발행(live)’, ‘고정(sticky)’ 상태로 저장할 수 있습니다. 또한 upm_pending_notify 플러그인을 이용하면 상태가 바뀔 때 자동으로 작성자나 승인자에게 이메일로 통보합니다.
  • 버전 관리: 자체적으로 지원하지 않지만 md_versions 플러그인을 사용하면 하나의 글을 여러 버전으로 관리할 수 있습니다.
  • 각종 파일 관리: 텍스트패턴은 글이나 댓글처럼 이미지와 파일, 링크 목록을 독립적으로 관리합니다. 관리자 페이지에서 각각의 목록을 볼 수 있으며 다양한 조건으로 검색할 수도 있습니다.

마치며


전문적인 CMS의 기능은 위에서 소개했던 것보다 훨씬 다양하고 강력하지만 이 글의 목적이 CMS를 소개하는데 있는 만큼 기본적인 기능만을 다루었습니다. CMS를 도입해서 얻을 수 있는 실질적인 이익이나 도입 전에 확인해야 할 사항은 앞서 소개한 ‘콘텐츠와이즈’ 사이트의 PDF 문서를 참고하시기 바랍니다.

20대의 백수에게

0

황신혜 밴드의 리더인 김형태란 인간이 있지요. 나름대로 전방위 이종예술가를 자처하며 이리저리 활발한 활동을 보이고 있는데, 이 사람의 홈피가 상당히 독특합니다. 거기에 카운셀링 코너가 있는데, 거기 올라온 질문과 김형태가 쓴 답변 중에 재미있는게 있어 퍼올려 봅니다.



=========================================================




BOARD

Re: 김형태님께 카운셀링 의뢰합니다

안녕하십니까.
입춘이 지났건만 아직도 키보드를 치고 있는 제 손꾸락은 차갑기만 합니다.
김형태님께서는 몸건강하시겠지요.

다름이 아니오라 요즘 사회적 이슈인 ‘이태백’ 의 일원인 본인의 넋두리를 들어주십사, 더불어 형태님의 생각을 들어보고 싶어 이렇게 얼어붙은 손꾸락을 움직이고 있습니다.
저는 지방대 디자인학과 졸업예정이고 다른 이태백 일원들과 마찬가지로 여러군데 이력서를 넣고 있는 와중입니다. 연락오는 곳은 별로 없고 무언가 불안하면서도 편안한(?) 생활이 이어지고 있습니다.
이곳저곳 이력서를 넣고 있지만 솔직히 제가 무엇을 하고픈지 알수가 없습니다. 원래의 전공인 제품디자인을 하고 싶다가도 디스플레이를 하고 싶기도 하고 영화공부를 하고 싶기도 합니다. 제품디자인을 하자 라고 하면 평생 영화공부는 커녕 영화찍는 것도 구경하지 못할 듯하고 영화공부를 하자고 하면 학교다닐때 했던 과제들의 즐거움이 떠오릅니다. 일단은 먹고 살아야하니 직장을 다녀야 할듯해서 계속 이력서는 넣고 있지만 만약 회사에 다닌다면 영화공부는 할 수 없을 것 같습니다. 완전히 영화에 미쳤다든가 비범하다든가 하는 인간극장에 나올법한 사람과는 거리가 멀기 때문에 회사에 다니면서 다른 것을 병행하기란 힘이 들 것 같습니다.

아 정말 모르겠습니다. 올해 후반에 있을 영화교육기관(?) 시험을 보고싶은데 모르겠습니다. 그때까지 매달려야할까 아니면 직장을 다니면서 틈틈히 해야할까. 그렇다고 영화라는 것이 내 평생 직업으로서 가치가 있는 것일까. 힘들고 배고픈 그 직업에 대해 환상을 가지고 있는 것은 아닐까나. 또한 4년동안 했던 디자인은. 대체.

기대를 걸고 있는 부모님의 얼굴이 떠오릅니다. 부모님께서는 당연히 제가 하고 싶은 것을 하도록 놔두시겠지만 그래도 안정된 직장생활을 하면서 부모님께 조금이라도 호강을 시켜드리고 싶습니다. 하지마는 그 ‘안정된’직장생활의 끝에는 나의 꿈이 있을 것 같진 않습니다.

백수가 되어 이것저것 가릴때는 아니지만 신중하고 싶습니다. 섣불리 조금 앞만 바라보고 결정했다가는 나중에 후회 할 일들이 이만저만이 아닐것 같습니다.
사실 이 글을 쓰면서 생각하기를 일단은 취직을 하고 회사에 다니면서 영어공부를 하고, 영화쪽이나 디자인 쪽으로 유학을 가리라는 생각을 했습니다. but 회사를 몇년 다니면 유학을 갈 수 있을까, 아니면 그 영화교육기관에는 들어갈수 있을까. 라는 생각이 부메랑처럼 또 따라옵니다.

횡설수설 앞뒤 안맞는 소릴 해댔습니다.
하고 싶은 일이 많다는 것이 행복한 고민일까요. 어쩌면 진짜 하고 싶은 것이 없어서 하는 소릴지도 모르겠습니다.

조금 더 많이 사신 형태님께서는 지금 제가 어떤 선택을 해야 형태님의 나이가 되어서는 그때 나 정말 잘했어 라는 말을 할 수 있을까요. 조언 부탁드립니다.
읽어주셔서 감사합니다.(앗 이것은 자기소개서 끝에 오는 말;)


===============================================================

답변


당신은, 요즘 20대 청년실업자의 전형입니다.
20대가 왜 그렇게 취직하기가 어려운 줄 아십니까?
사람들은 불경기라서 그렇다고 말하지만, 사실은 그 반대입니다.
20대들이 정확히 하고 싶은 일이 없고, 확실하게 할 줄 아는 것이 없고,
겁은 많아서 실패는 무진장 두려워 하고, 무엇이든 보상이 확실하게 보장되지 않으면 절대 시작도 하지 않으며
눈은 높아서 자기가 하는 일도, 주변의 현실들도 모두 못마땅하고, 시시껄렁하고,
옛날 사람들처럼 고생고생하면서 자수성가하는 것은 할 자신도 없고 하고 싶지도 않고,
어떡하면 편하고 안정된 직장을 얻어 돈을 벌수 있을까만 궁리합니다.
20대가 그런 식이니까 사회가 무기력해지고 경제가 침체되어 불경기가 오는 것이죠.

그럼 세상은 어떤지 이야기 해드리죠.
취업문이 좁다고들 난리지만, 사실 모든 회사에서는 새로운 인재가 없어서 난리입니다. 세상은 자꾸 변해가고 경제구조도 바뀌어가니까 새로운 젊은 인재들이 회사에 들어와서 젊은 피를 수혈해줘야 하는데 이력서를 디미는 젊은이들은 하나같이 개성도 없고 창의력도 없고 일에 대한 열정도 없이 그저 돈만 바라보고 온 사람들입니다. 회사입장에서 볼 때 그런 사람들은 조금만 더 나은 봉급을 주는 직장이 나타나면 미련없이 회사를 그만둘 사람들로 보이고, 또 그들이 기대하는 젊은 혈기와 창의력도 없이 누구나 학원 좀 다니면 딸 수 있는 뻔한 자격증만 잔뜩 가지고 오죠.
그래서 요즘 회사들은 신입사원 최우선 기준이 ‘충성도’랍니다. 이말인즉슨, 너희는 그냥 시키는 일이나 로보트처럼 한다면 일자릴 주겠다.는 뜻이죠. 개성과 창의력은 포기하고 잡부나 시키겠다는 것입니다. 지금 20대들은 자신들이 신세대이고 새로운 감각을 가지고 있다고 믿겠지만, 사실, 회사나 산업현장에서 당장 필요한 능력은 그런 겉멋이나 추상적인 감각이 아닙니다. 그리고 직장은 돈을 벌자고 다니는 것이 당연하겠지만, 당신처럼 하고싶은 일은 따로 있으면서 단지 돈만 바라보고 원하지도 않는 직장에 입사원서를 내는 것을 회사중역들은 모두 알고 있습니다.
그러니 500명 1000명이 와도 뽑을 사람이 없는 것이죠. 이를테면 사랑하는 사람이 따로있는 사람과 결혼을 하겠습니까? 그런 사람은 세상 어디에서도 원하지 않습니다.
20대가 취직을 못하는 이유는, 바로, 특별히 할줄 아는 일도, 특별히 하고 싶은 일도 없기 때문입니다.
모든 어른들은 그 사실을 면접때 눈빛만 봐도 다 알아봅니다.

그리고, 나약한 의지박약에 굴리는 잔대가리가 문제입니다.
당신이 쓴 글을 보십시오. 이것도 하고 싶고 저것도 하고 싶은데, 저걸 하면 배고플 거 같고, 이걸하면 잘 된다는 보장은 없고 돈도 벌고싶으니 취직도 하고싶은데 직장은 재미없을 것 같고…. 그 와중에 대학원엘 갈까 유학을 갈까… 편안한 학생신분만 연장하려고 하고, 대체 뭘 하고싶다는 것입니까.
당신의 진로문제를 짧게 정리해보면, ‘하고싶은 건 많지만 고생해가면서 까지 꼭 해야할 건 아니고, 그냥 먹고살게 안정된 직장에 들어가면 좋겠는데 그게 쉽지도 않거니와 또 시시할 거 같아요’ 입니다.
그런 사람을 받아주는 회사는 세상에 하나도 없습니다.
그리고 그런 사람이 만든 영화가 감동스러울 수 없고, 그런 사람이 기획한 디자인이 아름다울 리 없습니다.
그래서, 오늘날의 20대들이 그렇게 많은 자격증과 명문대 졸업장과 수백장의 입사원서를 들고 뛰어 다녀도 취직이 안되는 이유이고, 나라의 심장부가 그 모양이니 이 나라의 경제가 침체되고, 장기 불황이 시작되는 이유인 것입니다.

이렇게 이야기하면, 당신들은 잘못된 교육탓으로 돌립니다. 물론 맞는 이야기입니다. 동정표 한장!
하지만, 교육이 엉망이었던 것은 예나 지금이나 마찬가지였습니다. 그래도 당신들의 부모나 선배들은 더 발전적인 삶을 살았다는 것을 보고 배워야합니다. 훨씬 열악한 환경 안에서 훨씬 일찍 철이 들고, 나라를 발전 시켰으며 그 와중에 나름대로의 문화생활도 영위했습니다. 남탓, 시대탓, 환경 탓하는 것만큼 구제불능의 바보는 없습니다.
참고로, 아시아 모든 국가 중에서 우리나라가 청소년의 어른에 대한 공경심 조사에서 꼴찌를 차지했다는 사실을 기억하십시오. 어른을, 선배를, 과거를 존경하지 않는 젊은이는 원대한 꿈을 가질 수 없습니다.
꿈과 희망이란, “나도 저 누군가처럼 될테다.” 하는 동경에서 시작되는 것이거든요.
당신들의 큰 바위 얼굴은 누구입니까? 그런 게 있습니까? 오직, 자기자신과 돈에 대한 동경만 있지않은가요?

섣불리 결정했다가 나중에 후회할까 두렵다고요?
왜 해보지도 않은 일을 후회할 걱정부터 합니까? 보지도 않은 영화를 재미없을까봐 포기하고,
가보지도 않은 여행지에 볼 게 없을까봐 안 가기로 하고, 저 요리가 맛이 없을까봐 안 먹고… 사는 건 대체 뭘까요?
당신이 어떤 인간인지 당신은 알고 있습니까?
정말 영화를 얼마나 좋아하는지, 얼마나 잘 만들 수 있는지, 디자인은 또 얼마나 훌륭하게 할 지,
회사를 다니면 얼마나 뛰어난 업무능력이 발휘될 지, 당신이 어떻게 해보지도 않고 침대위에서 그 짧은 인생경험으로 알 수 있겠습니까.
양다리에 삼발이에 문어발로 온갖 일에 맘을 다 걸쳐놓고 실제로 하는 일은, 해본 일은 하나도 없으니 불안할 수 밖에요.
‘하고싶은 일이 많다는 행복한 고민’이요? 웃기는 자위입니다.
‘내가 뭘 할줄 알고 뭘 하면 행복해 하는 인간인지 이 나이 먹도록 하나도 모르겠어요.’로 들리는 헛똑똑이의 넋두리로밖에 안들립니다.

좀더 신랄하게 당신의 심리를 파헤쳐보자면,
영화를 하고 싶다는 것은 현실도피성 희망입니다. 솔직히 디자인도 최고로 잘할 자신이 없는것이죠.
자신의 전공쪽으로도 별로 희망이 보이지 않으니까,
‘사실 나는 디자인보다 영화에 관심이 훨씬 많다. 그래서 늦게라도 영화공부를 다시 한다.’ 라는 상황에 대한 알리바이를 미리 준비해두려는 것이죠.
취직이 계속 안되는 상황에도 대비하고 있습니다. 여기저기 입사원서 던지다가 어디 좋은데 운 좋게 취직되면, 당신은 이러겠죠.
“먹고 살아야하고, 부모님께도 효도하려고 내가 진짜 좋아하는 디자인과 영화를 포기했어.” 그냥 나약한 생활인일 뿐인데 어느새 순교자로 승화되는거죠.
그 좋은 머리를 그런 자기합리화에 쓰기에 바쁘니 뭘 하나 똑부러지게 실천하겠습니까.

내 말이, 억울합니까?
그럼 실천해 보십시오.
우선, 근무조건이 좀 열악한 직장을 선택해서 취직을 하세요. 그럼 금방 취직됩니다. 봉급도 좀 만족스럽지 못하겠지만, 자기 한입 먹고 살만큼은 줄 겁니다. 그리고 20년 계획으로 영화에 대한 공부를 시작하세요. 용돈을 쪼개서 모으고 모아서 캠코더를 사고… 컴퓨터를 사서 편집장비를 마련하고 (왠만한 PC로 다 가능합니다) 책을 사서 읽고, 주말에 영화 관련 포럼에 찾아 다니고, 틈틈히 시나리오를 쓰고, 휴가때는 비디오 영화를 만들어 보고, 이 모든 것은 직장 다니면서 할 수 있습니다. 게다가 20년 계획으로 꾸준히 하면, 습작이 꽤 될거고, 시나리오도 몇편 나올 겁니다. 디자인 공부한 건 영화에 고스란히 활용될 거니까 아깝다고 생각하지 말고요, 그렇게 해서 40대가 되면, 당신은 어느새 다니던 직장에서 직위도 올라가있어서 월급도 꽤 되고 어느새 안정된 직장이 되어있으며, 영화 감독으로 데뷔하기에 경쟁자가 없으리 만큼 탄탄한 준비를 가진 40대 신예 영화감독이 되어있을 것입니다.
그럼 바로 성공이냐? 아니죠. 입봉하고 나서 한 10년 현장에서 시행착오도 겪고, 기대도 받았다가 실패도 했다가 오르락내리락하면서 진정한 실력을 쌓습니다. 앗 어느새 50대가 되었네요. 여러분들은 이정도되면 인생 쫑났다고 생각할 겁니다. 그러나 나이먹고 알고보면, 세상은 어른들의 세계입니다. 그렇게 30년 줄기차게 정진해서 60가까이에 걸작을 하나 남길 수 있다면, 당신은 최고로 멋진 인생을 산 것입니다. 인생은 결과보다 과정에 더 많은 가치가 있으며, 결과까지도 좋다면 더 바랄 나위가 없는 것이거든요. ‘인생은 60부터’ 란 말에는 삶의 커다란 진실이 있습니다.


그러나, 당신은 그렇게 하지 않을 것입니다. 내 말을 못 믿어서가 아니라,
후줄근한 직장에 다니면서 20~30년이나 투자할 만큼 영화를 그 정도로 갈구한 것도 아니거든요.
이 글을 읽는 동안에도, 저렇게 할 수 없는 피치못할 적당한 구실을 찾느라 머리를 쓸 뿐이죠.
벌써 몇가지 변명을 만들어 냈을지도 모르죠.

결국 자기 인생에 변명을 만드느라 젊은 날을 허비하고 있다면 참 암울할 뿐입니다.

당신들, 정말, 왜들, 그렇게도, 경험으로 진리를 찾기를 두려워한답니까?



* 한 개인의 카운셀링에 대해 어느새 ‘당신들’이라는 복수형이 되고, 이렇게 정성들여 장황하게 답변을 올린 것은, 정말이지, 청년실업의 주인공들인 20대들 모두에게 전하는 메시지인 까닭입니다.

===============================================================

DB injection script 스크립트 공격 복구 및 보안

1

DB injection 공격?
구글에서 <script src= 0.js 라고 검색하면 놀랄 정도로 많은 사이트들이 DB 공격을 받았음을 확인 하실 수 있을겁니다.
제가 관리하는 사이트 또한 위와같은 스크립트 삽입되어 수많은 사이트를 찾아 다니며 복구하고 나름대로 보안하는 방법을 접하게 된 것을 올려 봅니다.

1. 공격 유형 :
SQL injection 홈페이지 상의 DB사용하는 페이지를 공격 즉, 웹소스 취약한 곳을 통해 DB를 공격.
특수 코드 삽입해서 DB에 스크립트를 삽입하여 접속하는 사용자에게 악성코드를 설치하는 유형.

2. 조치 시 주의 사항
참조 : http://swbae.egloos.com/1747128
1) 홈페이지 변조를 통해 악성코드 링크를 삽입한게 아니라, SQL injection 기법을 이용해 DB 컨텐츠에 삽입한 것입니다.
2) 조치 시 DBA 의 도움을 받는게 좋습니다.
3) 공격 때문에 기존의 데이터가 일부 덧씌워져 변경되었을 수 있습니다. 이럴 땐 백업의 도움을 받아야 겠지만, 일부 데이터의 유실은 어쩔 수 없을 듯…
4) 근본 원인은 사이트가 SQL injection 공격에 취약하게 개발되어 있어서 그렇습니다. 공격 포인트를 파악해서 외주개발 업체, 혹은 내부개발팀을 통해 소스를 수정하세요.
5) 소스를 수정할 수 없는 경우 웹 방화벽이 도움이 될 수도 있습니다. 그러나, 제품 도입시 면밀히 검토하실 필요가 있습니다.
단순 패턴 매칭 형태를 사용해서, 보유패턴과 1byte 만 틀려도 탐지 못하는 제품이 몇 개 있더군요.

3. 공격으로 생긴 DB table 삭제
comd_list 테이블 삭제
ahcmd 테이블 삭제
foofoofoo 테이블 삭제
Reg_Arrt 테이블 삭제
comd_list 테이블 삭제
D99_CMD 테이블 삭제
D99_TMP 테이블 삭제
Kill_kk 테이블 삭제
jiaozhu 테이블 삭제

4. 삽입 스크립트 제거 복구
DECLARE @T varchar(255), @C varchar(255);
DECLARE Table_Cursor CURSOR FOR
SELECT a.name, b.name
FROM sysobjects a, syscolumns b
WHERE a.id = b.id AND a.xtype = ‘u’ AND
(b.xtype = 99 OR
b.xtype = 35 OR
b.xtype = 231 OR
b.xtype = 167);
OPEN Table_Cursor;
FETCH NEXT FROM Table_Cursor INTO @T, @C;
WHILE (@@FETCH_STATUS = 0) BEGIN
  EXEC(
    ‘update ['+@T+'] set ['+@C+'] = left(
            convert(varchar(8000), ['+@C+']),
            len(convert(varchar(8000), ['+@C+'])) – 6 -
            patindex(”%tpircs<%”,
                      reverse(convert(varchar(8000), ['+@C+'])))
            )
      where ['+@C+'] like ”%<script src=http://s.ardoshanghai.com/s.js></script>”’
      );
  FETCH NEXT FROM Table_Cursor INTO @T, @C;
END;
CLOSE Table_Cursor;
DEALLOCATE Table_Cursor;

‘스크립트 부분은 삽입된 스크립트를 입력

5. 보안 적용 1 – MSSQL 메모리에서 위험한 sp들을 내린다.
보안상 위협이 될 수 있는 개체들에 대하여 일반 사용자 그룹의 사용권한을 제한한다.
참조: http://blahblah.springnote.com/pages/351077
SP 등록해제는 위험을 감안해야 하므로 메모리에서만 내린다. 단점, 재부팅되거나 DB 재시작시 다시 아래 쿼리 실행 할것!

dbcc xp_cmdshell(free)
dbcc xp_dirtree(free)
dbcc xp_regdeletekey(free)
dbcc xp_regenumvalues(free)
dbcc xp_regread(free)
dbcc xp_regwrite(free)
dbcc sp_makewebtask(free)

6. 보안 적용 2
무엇보다 DB 인젝션이 발생한 원인인 로그인, 회원가입, 게시판 등 사용자가 DB를 접하게 되는 소스 개발시 특수 문자 보안 적용 안된 경우가 가장 유력하다.
로그인, 회원가입, 아이디 비번찾기, 게시판 등이 개발자가 개발하면서 DB를 공격할만한 특수 문자에 대한 차단 기능을 적용하지 않은 문제로 판단됨. 소스를 모두 개선 해야함.
보안참조 : http://magic.littleworld.net/ai/kmod.asp?no=327&amp;isn=&amp;mymsg

위 글은 세이박스에서 작성한 글입니다.
출처를 적어 주시고 많은 국내 사이트들이 공격을 받고 있으니 도움이 되기 위해 많이 많이 올려주세요! ^^
출처 : 세이박스  http://saybox.tistory.com/453

Go to Top