2015년 12월 29일 화요일

정보보호산업법 시행을 지켜보면서

지난 23일, 보안 서비스에 대한 적정 대가, 정보보호 현황 공시(공시하면 ISMS 수수료 깍아준다고) 등의 내용이 포함된 '정보보호산업의 진흥에 관한 법률'이 시행됐다.

아마 많은 분들이 궁금해할, 그동안 서비스 만두 취급 받던 고객 기술지원에 대한 대가 산정 기준도 마련된 듯하다. 세부 항목은 아래와 같은데 KISA에서 표준계약서도 배포한다고. 적정 금액 기준까지 제시해주는지는 모르겠다.

보안성 지속 서비스 항목 및 내용(자료:KISA)

2015년 12월 23일 수요일

보안 제품의 한계

보안 분야 취업을 준비중이라는 학생분이 이런 질문을 보내왔다.


아마 5월 경에 올렸던 '제 값 못받는 보안관제'란 글을 보고 최신 기술로 다 해결 가능하다는 업체들이 많은데 보안관제는 왜 엄살인가? 라는 의문을 가지게 된 듯하다. 보안 업계를 바라보는 일반 대중의 시각을 잘 보여주는 질문인 듯. 

질문에 언급된 보안 서비스를 찾아봤다.



2015년 12월 12일 토요일

해킹 없는 2015년

2014년 12월 31일이었다. 지인이랑 술 한 잔 하다가 새 해를 맞은 후 집에 와보니 새벽 두 시쯤. 겨우 씻고 침대에 누웠는데 전화벨이 울렸다. 관제센터에서 걸려온 전화. 5초 쯤 망설이다 전화를 받았더니 아니나 다를까 DDoS 공격이 들어오고 있다고.

이렇게 답할 뻔

2015년 11월 30일 월요일

Snort 분석(WEB-MISC Checkpoint Firewall-1 HTTP parsing format string vulnerability attempt - 3rd)

지난 글에 이어서 룰 개선을 시도해보자.

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS 
(msg:"WEB-MISC Checkpoint Firewall-1 HTTP parsing format string vulnerability attempt"; 
flow:to_server,established; 
content:"|3A|/"; offset:11; http_uri; 
pcre:"/^[^\x3a\x3f]{11,}(?<!resource|http|https)\x3a\x2f/Usmi";
  • 부정형 후방탐색을 이용해서 'resource, http, https'로 시작하지 않는 '3A2F' 패턴만 탐지
  • 부정형 전/후방탐색을 혼용해서 'resource'로 시작하지 않고, '2F(/)'로 끝나지 않는 '3A2F' 패턴만 탐지하는 '(?<!resource)\x3a\x2f(?!\x2f)' 표현식도 가능
metadata:service http; reference:bugtraq,9581; reference:cve,2004-0039; reference:nessus,12084; classtype:attempted-admin; sid:2381; rev:14;)

2015년 11월 27일 금요일

Snort 분석(WEB-MISC Checkpoint Firewall-1 HTTP parsing format string vulnerability attempt - 2nd)

지난 글에 이어서 이제 본격적으로 탐지로그의 정오탐 여부를 확인해보자. 해당 탐지로그의 URL 영역만을 추출한 후, 정규표현식 '^[^:?]\{-11,}:\/'로 검색을 해봤다. 어라? 탐지패턴이 없는 로그가 있다. 그런데 가만 보니 아예 없는 건 아니고, URL 인코딩된 '%3A(:)' 패턴 때문에 검색식과 일치하지 않을 뿐이다.


2015년 11월 24일 화요일

Snort 분석(WEB-MISC Checkpoint Firewall-1 HTTP parsing format string vulnerability attempt)

오늘 살펴볼 Snort 룰은 다음과 같다.

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS 
(msg:"WEB-MISC Checkpoint Firewall-1 HTTP parsing format string vulnerability attempt"; 
flow:to_server,established; 
content:"|3A|/"; offset:11; http_uri; 
  • URI 영역의 시작점부터 11byte 이후, '3A(:)' 패턴이 존재하는 패킷 중
pcre:"/^[^\x3a\x3f]{11,}\x3a\x2f/Usmi"; 
  • URI 영역의 시작점에서 '3A(:)' 또는 '3F(?)'를 제외한 패턴이 11개 이상 나열된 이후, '3A2F(:/)' 패턴이 존재하면 탐지 
  • content 옵션으로 한 번 걸렀으며, 왼쪽에서 오른쪽을 검사를 시도하다 일치하는 패턴이 나타나면 중지하는 패턴매칭 원리에 의해 수정자 'U(URI)'는 없어도 무방
  • 메타문자 '.'을 사용하지 않았는데 수정자 's'를 왜 사용하는지 모르겠음
  • 수정자 'm'은 앵커문자 '^(첫 번째 줄 검사)'나 '$(마지막 줄 검사)'의 줄 구분 해제 
metadata:service http; reference:bugtraq,9581; reference:cve,2004-0039; reference:nessus,12084; classtype:attempted-admin; sid:2381; rev:14;)

2015년 11월 18일 수요일

강의를 반기는 이유

책을 쓰고 나서 가끔 강의 요청을 받는다. 처음엔 좀 무서웠다. 원래 내향적인 편이기도 하고, 학교 다닐 때 발표같은 것도 싫어했다. 말이 많은 편도, 잘 하는 편도 아니어서 사람들 앞에서 뭔가를 떠들어야 되는 상황이 낯설었다. 그런데 점점 그런 상황을 반기고 있는 나를 보게 된다.

일단 책을 쓴 이유는 말을 하고 싶어서였다. 현업에서 잘 들어주지 않는 말, 하기 힘든 말, 할 기회가 없었던 말을 하고 싶었다. 말주변은 없고, 말은 하고 싶고, 그래서 책을 썼나 보다.

하고 싶은 말을 다 하고 나면, 책을 쓰고 나면 속이 좀 후련해지지 않을까? 그런데 책을 쓰고 나서 말을 하고 싶다는 욕망이 오히려 더 커져버렸음을 느낀다. 책을 통한 간접적인 소통보다 직접 만나 눈을 마주치면서 내 생각을 얘기하고 상대방의 생각도 들어보고 싶어진 것.

그래서 강의 요청을 받을 때가 가장 기쁘다. 피드백을 받을 수 있기 때문. 그리고 그 피드백을 통해 나의 부족한 부분을 찾게 되고, 내가 생각했던 문제가 나만의 문제인지 공통의 문제인지에 대해 다시 한 번 생각해볼 수 있는 기회를 갖게 된다. 물론 돈도 벌고^^;

2015년 11월 8일 일요일

인튜이션

대니얼 카너먼의 '생각에 관한 생각'이 직관의 과신으로 인한 지나친 낙관주의를 경계했다면, 게리 클라인의 '인튜이션'은 경험에 기반한 직관의 힘을 옹호한다. (전문지식도 강조하는데 경험이 반복되면 전문지식 아닌가?)

두 책이 때로는 상대방을 부정하고 때로는 인정하면서 서로의 의견을 피력해나가는 부분이 꽤 재미짐.

클라인은 '긴급한 상황에서 사람은 어떻게 의사결정을 하는가' 라는 정부 과제를 수행하는 과정에서 소방관, 간호사, 군인 등 여러 직군의 다양한 긴급상황 대처 사례를 수집하고 분석했다고 한다.

그리고 그 연구 결과 직관의 비법은 충분한 경험이며, 직관을 배제한 체 합리적 분석에만 의존하는 의사결정은 합리적∙논리적 근거를 찾아 헤매다 결국 이러지도 저러지도 못하는 상황에 처하게 될 수 있다고 경고한다.

2015년 11월 1일 일요일

어떻게 책을 쓸 수 있었을까?

책을 쓰기 전에 궁금한 게 하나 있었다. 왜 비슷한 주제의 책이 없을까? 왜 나와 비슷하게 일하는 사람을 볼 수가 없을까? 왜 데이터베이스에 고스란히 쌓여있는 로그를 외면한 채, 힘들게 하나씩 클릭해서 보고 있을까?

물론 내가 모든 보안관제 현장을 다 둘러본 적이 없으니 장담할 수는 없는 노릇이다. 하지만 최소한 내가 보고 경험한 바로는 그랬다. 나는 뭐가 달랐을까? 좀 재수없지만(..) 내가 생각한 이유들을 정리해봤다.

1. 웹과 데이터베이스를 연동해본 경험 덕에, HTML과 ASP 코딩 정도를 해본 덕에 웹과 데이터베이스의 동작 구조에 대한 이해가 있었으며, 덕분에 웹을 향한 또는 웹을 통한 공격을 이해하기 쉬웠다.

2. 리눅스와 VIM을 써본 덕에 로그 가공 및 분석에 나름 익숙했고, 데이터베이스를 이용한 데이터 조회 및 통계 분석 경험을 가지고 있었다.
  • 덕분에 보안장비의 불편한 로그 분석 기능에 짜증(?)을 낼 수 있었고, 보안장비 로그를 저장하는 데이터베이스만 있으면 얼마든지 로그를 꺼내서 마음대로 지지고 볶을 수 있었다.

2015년 10월 23일 금요일

Snort 분석(DNS excessive outbound NXDOMAIN replies - 2nd)

지난 글에서 DNS Cache Poisoning 또는 DNS 증폭 DDoS 공격의 가능성을 알려주는 룰에 대해서 살펴봤는데, 탐지로그 대부분이 IP의 도메인 질의(PTR 레코드 질의)에 대한 NXDOMAIN 응답이었다. 도메인의 IP 질의(A 레코드 질의)에 대한 응답은 몇 개나 될까? 확인해보니 하나밖에 없다.


2015년 10월 16일 금요일

내가 뭘 할 수 있을까?

오랫만에 옛 동료들을 만나 술 한 잔 했다. 술잔이 몇 차례 돌다 보니 자연스레 화제는 공장(?) 얘기로 쏠렸고, 누가 떠났느니, 제품에 무슨 변화가 생겼느니, 보직을 옮겼는데 이제 이런 걸 해보고 싶다느니 하는, 뭐 그런 얘기들을 나눴다. 그 와중에 다시 같이 일 해볼 생각 없냐는 얘기도 나왔다.

글쎄 내가 가면 뭘 할 수 있을까? 주식 담보대출 받았다가 혼줄이 났던 2008년이 떠오른다. (두고 보자 서브프라임, 삼성중공업, 그리고 ㅋㄴㄱㄹㄹ -_-)

1년 여 고객사 상주 끝에 회사 복귀하면서 이제 바리바리 싼 경험 보따리 풀어댈 생각에, 설치, 장애처리만 하는 게 아니라 분석까지 하는 엔지니어팀 만들 생각에 가슴 두근거렸던 기억. 누구도 생각 못하던 업무 프로세스, 어느 업체도 해결 못하던 문제, 한 방에 해결하고 짱 먹어주마. 자신감 만땅이던 시절(..)

다 덤벼

2015년 10월 13일 화요일

Snort 분석(DNS excessive outbound NXDOMAIN replies)

오늘 살펴볼 Snort 룰은 다음과 같다.

alert udp $HOME_NET 53 -> $EXTERNAL_NET any 
(msg:"DNS excessive outbound NXDOMAIN replies - possible spoof of domain run by local DNS servers"; 
byte_test:1,&,2,3; 
  • 네번째 byte(byte offset 3)를 2와 AND 비트 연산
byte_test:1,&,1,3; 
  • 네번째 byte(byte offset 3)를 1과 AND 비트 연산
byte_test:1,&,128,2; 
  • 세번째 byte(byte offset 2)를 128과 AND 비트 연산
detection_filter:track by_dst, count 200, seconds 30; 
  • 30초간 200개의 패킷이 동일 목적지로 들어오면 탐지
metadata:policy security-ips drop, service dns; 
reference:cve,2008-1447; reference:cve,2009-0233; 
reference:url,www.kb.cert.org/vuls/id/800113;
reference:url,www.microsoft.com/technet/security/bulletin/MS09-008.mspx; 
classtype:misc-attack; sid:13949; rev:5;)

2015년 10월 9일 금요일

해커가 되고 싶나요?

올해 방영된 'CSI : Cyber'보다 무려 3년이나 앞서 국내 제작된 본격 사이버수사 드라마(라고 쓰고 보안인력 양성 드라마라고 읽는) '유령'.

나도 사이버경찰 하고 싶다^^;

2015년 9월 30일 수요일

추석이 지나고 드는 생각들

시간 참 빠르다. 작년 추석이 엊그제 같은데. 대충 생각해보니 2000년, 직장 생활을 시작하면서부터 시간이 참 빠르다는 생각을 하게 된 듯 하다. 어디서 들었는데 나이 먹어가면서 쳇바퀴 돌 듯 반복되는 일상의 패턴에 익숙해지면, 새로운 경험보다 익숙한 경험이 반복되면 시간이 빨리 가는 것처럼 느끼게 된다고. 

나이 먹을수록 명절에 대한 감회도 달라지는 것 같다. 어렸을 땐 두둑해질(?) 주머니 생각에 마냥 좋기만 하던 명절이 이젠 그닥이다. 부모님은 며칠 전부터 언제 내려오냐, 집에 와서 푹 쉬었다 가라는 말씀을 번갈아가며 하시지만, 사실 이제 부모님 집에 가면 별로 편하게 쉰다는 생각이 안 든다. 

먹고 살아보겠다고 10여 년 이상 타지생활을 하면서, 이제 부모님 집엔 내 방 없어진지도 꽤 됐고 (집수리 하면서 거실과 합쳐버림ㅡㅡ) 보던 책이며 쓰던 물건들 옮긴지도 옛날이여서 30여 년을 살았던 집인데도 뭔가 어색하다. 전이나 부치는 것 말고는 별로 할 일도 없다.

2015년 9월 17일 목요일

Snort 분석(DELETED WEB-IIS header field buffer overflow attempt - 5th)

이전 글에서 전후방탐색 기능과 수량자의 검사 범위를 제한할 때와 안할 때의 차이에 대한 설명이 좀 부실한 듯 해서 따로 정리하고자 한다. 왠지 너무 우려먹는 사골 느낌^^;

  • 후방탐색을 사용하지 않은 정규표현식 'referer:\s\S\+'의 검색 결과

2015년 9월 15일 화요일

Snort 분석(DELETED WEB-IIS header field buffer overflow attempt - 4th)

소시적 50만 원도 넘는 주차위반 과태료를 내본 적은 있지만 비교적 착하게 살고 있다고 자부하는 나를 Snort는 왜 웹서버 공격자로 판단했을까?

그때 생각하니까 또 빡치네

내가 인터넷으로 뭘 했길래? 트래픽의 성격을 파악해보자. 어디에서(Referer), 어디로(Host), 어떤 도구(User-Agent)를 이용해서, 어떤 정보(URI)를 전송했는지 알 수 있는 로그는 웹 요청 형식을 갖춘, 즉 '485454502f312e' 패턴을 포함하고 있는 387개다. 해당 로그에서 URI, Referer, Host, User-Agent 정보를 순서대로 추출해보자. 순서대로 VI에서 '검색 > 치환 > 복사'를 반복하면 된다.

2015년 9월 14일 월요일

Snort 분석(DELETED WEB-IIS header field buffer overflow attempt - 3rd)

2회에 걸쳐 'DELETED WEB-IIS header field buffer overflow attempt' 룰에 대해 분석을 해봤다. 그런데 샘플만 분석을 했기 때문에 과연 그 결과가 전체 발생 로그와 일치하는지에 대해 (나처럼) 궁금한 사람이 있을 것 같다. 전체 로그를 분석해보자.


2015년 9월 10일 목요일

회사를 좀 먹는 사내 정치

1998년에 제작된 '라이언 일병 구하기'는 한 명의 공수부대원을 구하기 위해 여섯 명의 육군 특공대가 죽어야 하는 이야기를 그린 영화이다. 그리고 2001년에 그 '라이언 일병'이 속했던 공수부대의 활약상을 그린 '밴드 오브 브라더스'가 제작됐다. (라이언 일병은 안 나옴)

끈끈한 전우애와 실감나는 전투신도 인상 깊었지만 무엇보다 중대장 윈터스 대위의 탁월한 통솔력에 감탄하면서 봤던 기억이 난다. (저 때 저 곳에 없었다는 사실에 안도하면서 보기도)

가운데 인물이 믿음직한 윈터스 대위

2015년 9월 6일 일요일

생각에 관한 생각

2011년 심리학자 대니엘 카너먼이 인간이 생각하는 방식에 대한 자신의 연구를 집대성한 책.

행동경제학의 시조로도 불리는 그는 2002년 심리학자로는 최초로 노벨 경제학상을 수상했으며, 수상 소감은 이랬다고 한다.

"고정관념에 기초한 인간의 두루뭉실한 사고와 편향성에 대해 연구했습니다. 인간이 모두 비합리적이라고 말하는 것은 아닙니다만, '합리성'이라는 개념은 매우 비현실적입니다. 저는 '합리성'이란 개념 자체를 부정하고 싶을 뿐입니다"

심리학자가 뜬금없이 왠 경제학상인가 했는데, (애덤 스미스의 '보이지 않는 손'을 들먹이며) '시장에 맡겨두면 알아서 잘 해결된다'는 자유시장 경제학의 대전제, '시장 참여자는 합리적'이란 가설을 깨는, 인간은 의외로 '비합리적'이라는 사실을 검증해냈기 때문이라고.

(사실 이미 100여 년 전에 비쌀수록 열광하는 인간의 '비합리성'을 밝혀낸 '소스타인 베블런'이란 경제학자도 있었는데)

2015년 9월 3일 목요일

Snort 분석(DELETED WEB-IIS header field buffer overflow attempt - 2nd)

지난 글에 이어서 이제 본격적으로 분석을 해보자. 해당 룰은 헤더 필드의 구분자 조작 여부를 탐지하는 게 목적이다. 분석의 편의를 위해서는 헤더 영역만 추출할 필요가 있다. 어떻게?

웹 요청 트래픽은 'Request-Line(URI) + Header + Body' 구조로 이루어져 있으며, 그 중 Header 영역은 '\r\n(Carriage Return과 Line Feed, 0D0A)'으로 각 필드를 구분하는 여러 지시자(Directive)들로 구성되어 있다.


2015년 8월 26일 수요일

Snort 분석(DELETED WEB-IIS header field buffer overflow attempt)

지난 글에서 Snort가 버린 룰들을 재활용하는 과정을 소개했었는데, 특정 로그가 얼씨구나 발생하기 시작했다. 해당 로그를 발생시킨 룰의 상세 내역은 다음과 같다.

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS 
(msg:"DELETED WEB-IIS header field buffer overflow attempt"; 
flow:to_server,established; 
content:"|3A|"; 
content:"|0A|"; 
content:"|00|"; 
reference:bugtraq,4476; reference:cve,2002-0150; classtype:web-application-attack; sid:1768; rev:8;)

관련 취약점 정보들이 있지만 공격의 특징을 알기에는 좀 부실한 듯 하다. 예전엔 snort.org에서 룰 추가 정보를 검색할 수 있었는데, cisco 인수 이후로 mysql 직접 연동도 안되고 이래저래 불편하다.

2015년 8월 24일 월요일

엘리트 정보보안

추억 돋는 람보 형님
어렸을 때 람보를 보고 그런 상상을 했었다. 전 국민이 람보라면 단숨에 북한 때려부수고 독도를 자꾸 자기네 땅이라고 우기는 일본도 혼구멍을 내줄텐데(..)

과연? 전 국민이 람보가 될 수 있는지는 둘째치고, 과연 그랬다면 우리의 소원인 통일이 진작에 이뤄졌을까?

람보는 그린베레라는 미군 특수부대원이었다. 특수부대는 전쟁 초기 적진에 잠입하여 주요 시설물을 파괴하거나 요충지 점거 등을 통해 전쟁을 유리한 방향으로 이끄는, 말 그대로 '특수'한 임무를 수행하기 위한 부대이다.

그러나 '특수부대 사전 침투 > 대규모 공습 > 지상군 투입' 순으로 이루어진 이라크 전에서 알 수 있듯이 특수부대만으로는 전쟁을 수행할 수 없으며, 특수부대와 일반부대의 균형잡힌 운영이 현대전의 필수 요소라고 할 수 있다.

2015년 8월 20일 목요일

정보보호 패배주의?

구조적인 문제를 안고 있지 않은 조직이나 사회는 없으며, 상충하는 이해관계와 위계로 인해 그 해결은 지독히 어려울 수 밖에 없다.

결국 많은 조직들이, 그리고 사회는 어렵고 언제 끝날지 알 수 없는 구조 개혁을 시도하는 것 보다는, 간편하다는 이유만으로 자연스러운 불평등을 조장하고, 구조 문제를 개인의 문제로 희석하면서 희망고문과 함께 더 많은 희생과 노력을 개인에게 주문하는 선택을 하게 된다.

사상 최악이라는 청년 실업난 속에서 외국어 잘 하고, 컴퓨터 잘 다루고, 전공 실력 출중한, 기업에 '한 몸' 바치려는, 이른바 건국 이래 최고의 스펙을 가졌다는 젊은이들에게 '나약함'을 지적하는 현 세태는 그런 간편한 선택의 결과다.

2015년 8월 16일 일요일

Snort 분석(deleted.rules)

Snort 룰 경로(C:\Snort\rules)를 보면 'deleted.rules' 란 파일이 있다. 오래된 취약점 등 위험이 없다고 판단되어 비활성화된 룰인데 자그마치 6,900개나 된다.


2015년 8월 9일 일요일

좋아하는 일을 한다는 것



'지식소매상'을 자처하는 유시민씨가 대학생들에게 전하는 말. 사실 많은 (성공했다는) 사람들이 비슷한 얘기, 좋아하는 일을 하라고 얘기한다. 왜 그럴까? 개인적으로 인생을 다시 한 번 살아도 똑같은 성공을 자신하기 어렵기 때문이 아닐까 한다.

2015년 7월 31일 금요일

Snort 분석(packet 발생량 기반 탐지 - 2nd)

Snort 발생량 기반 탐지 룰은 IP 발생 구조(상용 보안장비는 포트 발생 구조까지 검사하는 경우도 있음)와 패킷 발생량을 기준으로 트래픽을 검사하며, 임계시간과 임계치만 일치하면 공격으로 탐지한다. 그런데 뭔가 좀 찜찜하다.

모든 트래픽은 반드시 IP 구조를 포함하며 패킷이 발생한다. 이 얘기는 발생량 기반 탐지 룰은 기본적으로 모든 트래픽을 공격으로 탐지할 수 있으며 귀에 걸면 귀걸이, 코에 걸면 코걸이 되기 십상이라는 뜻이다.

3.. 3번?

2015년 7월 22일 수요일

Snort 분석(packet 발생량 기반 탐지)

문자열 패턴만 분석하니 지겨운 듯 해서 다른 걸 좀 해볼까 한다. Snort 룰은 크게 문자열 패턴 검사와 패킷 발생량 검사, 두가지로 나눌 수 있는데, 일반적으로 패턴 검사는 (아무나 읽지 못하게 하는) 기밀성과 (아무나 쓰지 못하게 하는) 무결성 침해 행위를, 발생량 검사는 (자원의 정상적 사용 가능 정도인) 가용성 침해 행위를 탐지하고자 한다.

출퇴근 시간의 도로에서 가용성 침해 사례를 쉽게 경험할 수 있다. 제아무리 넓은 도로도 이용 차량이 늘어나면 교통체증에 시달리기 마련인데, 바로 가용성에 침해를 받는 경우. 그렇기 때문에 차량 이용량은 교통체증의 경중, 즉 도로 가용성의 수준을 파악할 수 있는 중요한 척도가 된다.


2015년 7월 14일 화요일

공포와 통제

요즘 개콘을 끊고(?) '김제동의 톡투유'를 보고 있다. 다들 비슷한 걱정하면서 살아가는구나 하는 공감을 주는 (딱히 해결책은 없는) 프로그램인데 지난 주 방송분이 좀 흥미로웠다. 

무슨 일이 발생할지 알 수 없는, 불확실한 위험 앞에서 (암흑을 무서워한 덕분에 살아남은 원시 인류의 후손인) 사람들은 공포를 가진다고 한다. 특히 위험이 예상되는 사건에 제대로 대처하지 못할 것 같다고 '인식하는 것' 자체가 두려움을 유발한다고.

즉, 공포는 '위험한 사건이 가져오는 실제 결과'가 아니라 '자신이 통제할 수 없다는, 자신이 무력하다는 생각' 자체라는 것. 

2015년 7월 2일 목요일

싸우는 심리학

대통령 심리 분석으로 화제가 된 바 있는 심리학자 김태형 씨의 심리학같지 않은 심리학 책.

"고대 노예제 시대에 태어난 사람은 대부분 노예로 살아가고, 중세 봉건제 시대에 태어난 사람은 농노로, 현대 자본주의 시대에 태어난 사람은 노동자로 살아간다" (34페이지)

맞는 말이다. 자유의지로 살아가는 것 같지만 결국 사람들은 철저하게 짜여진 사회제도나 구조에 얽매여서만 살아갈 수 있다.

학교에서 가르쳐주지 않는, 알아봐야 머리만 아픈 그런 내용. 설령 금수저가 아니라 다이아수저를 물고 태어났다 해도, 사회나 사회 관계로부터 영원히 고립될 수 있는 공포를 극복하기 전에는 그런 제도나 구조를 거부하지 못하니까.

저자는 1900년대 심리학자 에리히 프롬을 빌어 인간 본성을 거스르는 자본주의때문에 현대 사회와 인간은 병들었다고 단호히 얘기한다. (먹고 살기 바빠 깊이 생각할 겨를이 없을 뿐, 이미 많은 이들이 그러리라 짐작하고 있지 않을까?)

2015년 6월 24일 수요일

Snort 분석(WEB-MISC weblogic/tomcat .jsp view source attempt - 3rd)

지난 글에서 기존 룰의 문제점을 찾고, URL 인코딩된 패턴만을 검사할 수 있도록 다음과 같은 룰 수정을 시도했었다.

(수정 전)
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS 
(msg:"WEB-MISC weblogic/tomcat .jsp view source attempt"; 
flow:to_server,established; 
content:".jsp"; nocase; http_uri; 
pcre:!"/^\w+\s+[^\n\s\?]*\.jsp/smi"; 
metadata:service http; reference:bugtraq,2527; classtype:web-application-attack; sid:1054; rev:10;)

2015년 6월 14일 일요일

Snort 분석(WEB-MISC weblogic/tomcat .jsp view source attempt - 2nd)

지난 글에서 'WEB-MISC weblogic/tomcat .jsp view source attempt' 룰에 의해 발생한 로그의 오탐 근거를 찾고, 룰 개선을 시도했었다. 하지만 데이터베이스 저장 오류(2개의 패킷이 하나로 저장?)로 인해 로그 분석이 여의치 않았었다. 상용 보안장비에서는 경험하기 힘든 오류라 당황스럽긴 하지만 그렇다고 분석을 안할 수는 없는 노릇. 방법을 찾아야 한다.

다행히 Snort는 로그를 발생시킨 원인 패킷을 같이 저장해주기 때문에 Wireshark를 이용해서 해당 패킷을 분석할 수 있었지만, 아무래도 로그 분석은 결국 텍스트 분석이다 보니 특정 패턴이 포함된 패킷을 알려줄 뿐, 해당 패턴의 위치를 표시해주지 못하는 Wireshark로는 정확한 분석이 힘들 수 밖에 없다. 가장 좋은 방법은 패킷에서 텍스트를 추출하는 것.

2015년 6월 9일 화요일

Snort 분석(WEB-MISC weblogic/tomcat .jsp view source attempt)

두번째 분석 사례는 모 쇼핑몰 사이트 접속 과정에서 'WEB-MISC weblogic/tomcat .jsp view source attempt'라는 룰에 의해 발생한 탐지로그이다.


2015년 5월 31일 일요일

싸가지 없는 진보

초간단 정의하면 바뀌는 게 이익일 때 진보, 유지하는 게 이익일 때 보수일 것이다. 인간은 누구나 이익을 얻기보다 손해를 입지 않기 위해 더 열심히 싸운다. 처음부터 없었으면 모를까, 있다가 없으면 허전하니까.

그래서 바꾸려는 자와 지켜려는 자의 싸움은 지켜려는 자에게 더 치열할 수 밖에 없다. 기득권을 포기하기란 참 쉽지 않다.

그렇다고 입장 바꿔보니 이해가 간다면서 내 이익 추구를 포기할 수도 없으니 진보와 보수와 싸움은 영원할 듯.

주먹다짐으로 끝나는 당사자들만의 싸움이면 간단할텐데, 구경꾼의 마음을 얻어야 하는 싸움이라 더 어려운 것 같다. 그런데 강준만 교수는 진보가 그동안 당사자들끼리의 싸움을 해왔다고 생각하는 듯하다.

당사자들끼리의 싸움에서 이겨도 구경꾼의 마음을 얻지 못한다면 결국 진 싸움이라는 것이다. 그리고 구경꾼의 마음을 얻기 위해서는 싸가지있게 싸우라는 것.

2015년 5월 26일 화요일

VIM 정규표현식과 PCRE

이전 글에서 정규표현식을 이용하여 텍스트 데이터로 이루어진 Snort 룰 구조를 분석 후 필요한 영역만을 분리해낼 수 있었다. 그런데 이 정규표현식이란 게 애플리케이션마다 다르게 구현되어 있어서 (사소한) 애로사항이  발생할  때가  많다.

VIM과 PCRE는 어떻게 다를까? 일단 VIM은 자체 정규표현식 엔진을, Snort는 PCRE(Perl Compatible Regular Expressions)를 사용하는데, 이런 차이가 동작 원리의 차이로 이어지지는 않는다.

다만 몇몇 메타문자의 표현 방식에서 매우 사소한, 하지만 (특히 괄호 및 OR 연산자를 표현할  때 '\'를 이용한 예외 처리가 필요하다는) 매우 귀찮은 차이로 이어진다.

이런  차이가  발생하는 이유는 한마디로 PCRE는 정규표현식 자체이기 때문에 정규표현식이 우선하지만, VIM은 텍스트 편집기라는 태생적 특성상 텍스트가 우선하기 때문이다. 문제는 항상 그렇지는 않다는 점. 그래서 더 헷갈림(..)

PCRE는 캡처그룹으로 사용되는 '()'나 수량자 '+', '?' 등 다양한 순수 문자를 (물론 메타문자 기능을 가지고 있을 때만) 메타 문자로 우선 인식하지만, VIM 은 메타 문자 기능을 가지고 있더라도 순수 문자로 우선 인식하는 것이다.

2015년 5월 24일 일요일

Snort 룰을 관리해보자

IDS 등 보안장비를 운영하다 보면 룰(Rule) 관리 자체가 골치덩이가 되는 경우가 종종 있다. 특히 운영 초기부터 누가, 언제, 왜 만들었는지에 대한 이력 관리와, 룰 간 유사성이나 중복 여부 관리, 룰이 목적에 맞게 운영되고 있는지에 대한 사후 관리를 시작하지 않으면 나중에는 쉽게 손을 댈 수 없는 지경에 이르게 된다.

이력 관리

결국 룰 운영을 통해 보안장비 운영이 이루어지기 때문에 룰 이력 관리는 매우 중요하다. 어떤 필요에 의해 생성, 수정, 삭제가 이루어지고 있는지에 대한 현황이 관리되지 않으면, 조직이나 네트워크의 목적 및 특성과 맞지 않는 룰이 운영될 가능성이 높아지며, 이로 인해 룰 관리가 점점 더 복잡해질 가능성 역시 높아진다.

2015년 5월 13일 수요일

다문화 정책과 국회의원 이자스민

요즘 이자스민 의원 관련 기사가 자주 눈에 띈다. 대부분은 '강자와 약자' 구도에서 핍박받는 약자 이자스민 의원을 옹호하는 기사들이다. 이자스민 의원이 생산한 여러 논란거리의 사실 여부를 떠나 '출신'을 비하하는 인신공격성 비판이 많은 게 사실이다. (덕분에 정당한 근거를 가진 비판까지 몰지각한 인종차별과 함께 도매금으로 매도 당하면서, 언론의 '강자와 약자' 구도는 설득력을 얻고 있다.)

상대방의 주장이 아닌, 상대방을 공격해봐야 돌아오는 건 드러난 내 인격과 내면일 뿐이다. 근거를 갖춘 '사실'만을 주장하는 논쟁이 이루어지길 바란다. 일단 대한민국 국회의원이 언제부터 사회적 약자였는지는 둘째치고, 언론의 '강자와 약자' 구도는 논쟁의 본질을 흐리고 있다.

2015년 5월 7일 목요일

제 값 못받는 보안관제


지난 4월 어느 기사 제목. 제대로 된 대가산정 기준이 없어 정당한 대가를 받지 못하고 있으며, 보안관제 서비스 대가 기준을 '머릿 수'가 아닌 기능·서비스별 산정방식으로 전환해야 한다는 것이 업계의 의견이라고 한다.

이리저리 에두르는 매우 조심스러운 표현이다. 왜 이렇게 조심스러울까? 표면적으로는 좁은 시장, 치열한 경쟁 등의 이유가 있겠지만 실질적인 이유는 고객에게 서비스 제공 전후 차이를 명확하게 (수치로) 제시하지 못해서라고 생각한다. 보안관제 효과를 제대로 보여주지 못한다는 이야기.

그렇다면 사이버위협이 얼마나 발생했는지, 그 중 얼마나 막았는지를 정확하게 보여줄 수 있다면 당당하게 대가를 요구할 수 있지 않을까?

2015년 5월 4일 월요일

꼬리가 몸통을 흔들다

"반 아이들에게 나눠주라고 한 선생님의 예상 문제지를 반장이 독점하고 하루에 한 문제씩 알려주고 있었다. 그런데 부반장이 그 문제지를 훔쳐서 반 아이들에게 나눠줘 버렸다."


2015년 4월 29일 수요일

Snort 분석(WEB-CLIENT Malformed PNG detected sRGB overflow attempt - 2nd)

지난 글에서 'WEB-CLIENT Malformed PNG detected sRGB overflow attempt' 룰에 의해 발생한 로그의 오탐 근거를 찾아냈었지만, 룰 개선으로 이어지지는 못했다. 룰을 개선해서 오탐을 줄이는 방법을 찾아보도록 하자. 일단 관련 로그의 발생 현황을 확인한 결과는 다음과 같다.


2015년 4월 16일 목요일

숨을 오래 참는다는 것

허리가 아파서 수영을 시작한지 벌써 3년째가 되어 간다. 독학으로 배운 수영이라 폼이고 뭐고 엉망이지만 이제 물이 무섭지는 않다. 작년부터는 잠영을 시작했다. 왠지 필요할 것 같아서.. 이제 25미터 정도는 수월하게 간다.

요령은 물 속을 겁내지 않는 것이다. 물을 겁내는 것과 물 속을 겁내는 것은 약간 얘기가 다르다. 수영을 할 수 있다는 것은 물과 공기의 경계에서 필요할 때 숨 쉴 수 있는 요령을 익혔다는 얘기인데, 물 속에서 숨 쉬는 요령따위는 없기 때문이다.

물 속에서는 숨을 참는 수 밖에 없다. 그런데 이게 당연히 어렵다. 특히 물 밖에서 30초 정도 참는 건 그렇게 어렵지 않은데, 물 속에 들어가면 이상하게 잘 되지 않는다. 아마도 살고 싶다는 본능, 잘못하면 영영 물 밖으로 나가지 못할 수도 있다는 공포 때문일 것이다.

2015년 4월 12일 일요일

보안관제와 빅데이터의 접목

"Concert Forecast 2015 강연 요청을 받고 오랫동안 일해 온 보안관제란 분야와 식을줄 모르는 인기를 자랑하는 빅데이터에 대한 그동안의 생각들을 정리한 글입니다."

보안관제의 문제점

1980년대 이후 컴퓨터 보안사고가 증가하면서 로그 분석의 필요성이 증가하기 시작했다. 그런데 로그가 너무 많더라는 문제 발생.

그래서 사람들은 사전에 정의해놓은, 공격으로 알려진 패턴을 이용해서 일반로그를 필터링하기 시작했다. 패턴 필터링, 분석의 범위를 좁혀주는 패턴매칭은 이렇게 시작됐다. 그런데 이 패턴매칭은 아주 커다란 문제점을 가지고 있었다.

다음은 표절시비 때문에 법정 소송까지 같던, 서로 다른 노래의 악보. 자세히 보면 마지막 네번째 마디만 다르다는 사실을 알 수가 있다. 일단 표절을 안했다고 가정해 보자. (실제 표절이 아니라는 판결이 났다고) 왜 이런 상황이 발생했을까?


2015년 4월 9일 목요일

Snort 분석(WEB-CLIENT Malformed PNG detected sRGB overflow attempt)

Snort 설치 가이드에 이어서 탐지로그 분석 사례를 소개할까 한다. 참고로 최대한 다양한 유형의 탐지로그를 경험하기 위해서는 Snort.org에서 다운로드 받은 룰 전부 활성화, 즉 주석(#)을 제거한 후 Snort를 운영하는 것이 좋다.

첫번째 분석 사례는 모 인터넷 서점 사이트에 접속하는 과정에서 (심호흡 한 번 하고) 'WEB-CLIENT Malformed PNG detected sRGB overflow attempt'라는 룰에 의해 발생한 탐지로그이다.


2015년 4월 4일 토요일

성공불융자금

이명박 정권 당시 몇십 조의 국가 예산이 자원외교라는 이름으로 석유, 가스, 광물자원공사와 다수의 민간기업에 투자되었다고 한다.

비도덕, 부도덕의 결과이긴 한데, 사태의 심각성을 떠나서 '성공불융자금'이란 단어에 눈길이 갔다. 1984년에 도입된, 민간 기업이 해외 자원개발 등 고위험, 고수익 사업에 뛰어들 수 있도록 정부가 기업에 자금을 빌려주되 실패하면 융자금을 감면해주고 성공하면 원리금에 부담금을 얹어 반환하도록 한 제도라고 한다.

한 번의 실패도 용납이 어려운 한국 사회에서 이미 30여 년 전부터 실패하면 갚지 않아도 되는 융자 제도가 있어왔다는 게 참 신기하다. 장기적인 국익을 위해 필요한 제도임이 분명하다. 뚝딱뚝딱 5년안에 승부를 보려고만 할 게 아니라 국익에 도움이 될 가능성이 높다면 100년을 내다보는 정책도 필요하지 않은가?

물론 국민의 세금을 날리는 실패의 책임을 덜어준 만큼 신중해야 하는 것이 너무나 당연하다. 가능성을 따지고 또 따진 후, 100년 팔 각오로 가장 가능성이 높은 우물을 선택해야 하는 것이다. 그런데 이명박 정권 때 추진한 해외자원 개발사업이 69개라고 한다.

2015년 3월 30일 월요일

착각하는 CEO

'지금은 이 옷이 몸에 안맞지만 언제고 살을 빼면 잘 어울릴거야. 오늘은 실패했지만 내일은 성공할 거야.'

인간은 착각하는 동물이다. 착각이라도 하지 않으면 낭패, 실망, 두려움을 극복하기 어렵기 때문. 결국 정신건강에, 생존에 유리하기 때문에 인간은 착각을 한다.

이 책은 인간이 자신있어 하는 많은 관념들이 사실은 착각임을 밝히고, 조직 경영의 새로운 방향을 제시한다.

'윤리를 강요하지 말고, 윤리적으로 행동할 수 있는 환경을 만들어라.' (성과를 강요하지 말고, 성과를 낼 수 있는 환경을 만들어라)

'누워있는 신성한 암소를 쫓아내라' (혼자서 하지마라)

'일사불란한 조직은 다른 측면에서 반론을 용납하지 않는 조직이다.'

2015년 3월 4일 수요일

제목에 대한 변명

책을 출간한지 거의 2년여 만에(ㅡㅡ) 출판사로부터 2쇄 인쇄 준비를 해달라는 연락을 받았다. 연락을 받고나서 처음 든 생각은 드디어 '제목에 대한 변명(?)을 할 수 있겠구나' 였다. 책 제목이 무려 '빅데이터 분석으로 살펴본 IDS와 보안관제의 완성'이다보니, 하둡 등의 기술 언급이 없다는 사실을 발견한 몇몇 독자분들로부터 비난을 받기도 했었다. 변명을 하자면 이렇다.

초고가 완성된 시점이 2012년 7월경이었는데, 그 때는 '빅데이터'란 키워드가 미디어를 점령하다시피 한 시기였다. 초고가 나오면서 살짝 한가해진 나는 빅데이터가 뭔가 싶어서 알아보기 시작했다.

시작은 구글이었다. 엄청난 양의 데이처를 처리해야했던 구글이 대용량 데이터를 저장하기 위한 분산 파일시스템 GFS(Google File System)를 개발했고, 2003년 논문으로 자랑질을 했는데 야후의 더그 커팅(Doug Cutting)이 그 논문을 보고 2006년에 GFS를 모방한 HDFS(Hadoop File system), 즉 하둡을 개발한 것이다.

2015년 2월 24일 화요일

신호와 소음

빅데이터 업계의 스타, 송길영 다음소프트 부사장의 추천사가 이 책을 잘 요약하고 있다.

'예측이 실패하는 이유는 데이터의 부족이 아니며, 정보가 늘어나면 당연히 소음도 늘어난다. 예측의 성패는 소음의 효과적인 제거에 있다.'

저자는 '베이지안 확률'을 통해 효과적(?)으로 소음을 제거하는 방법을 소개하고 있다.

참고로 베이지안 확률은 영국 목사 출신 '토마스 베이즈(Thomas Bayes)'가 개념을 제시하고, 프랑스의 수학자 '피에르 시몽 라플라스(Pierre Simon Laplace)'가 완성한 '조건부 확률 이론'이라고.

개인적으로 꽤 익숙한 용어인데, 정보보안 또는 정보기술 분야에 종사하는 입장에서, 초창기부터 스팸메일 필터링 알고리즘의 하나로 사용되어온 '베이지안 확률'이 낯선 용어일 수가 없다.

2015년 2월 16일 월요일

Snort Install Guide

책을 내면서 실습 가이드를 제공하지 않아 독자분들께 죄송했는데, 이제나마 Snort를 쉽게 테스트할 수 있는 가이드를 제공하고자 한다.

사실 인터넷에 널린 게 설치 가이드라 집필 당시엔 이게 필요할까 싶었는데, 의외로 책 출간 후 가장 많이 받았던 문의가 'Snort 설치'였고, 그 다음으로 많았던 게 공격 로그를 보고 싶다, 또는 만들고 싶다거나 책에 소개된 공격 로그를 얻을 수 있느냐는 문의였다.

문의를 주신 많은 분들이 보안장비를 이용해서 공격 탐지 및 분석 경험을 쌓고 싶어 한다. ‘보안’하면 해커가 먼저 떠오르는 상황에서 공격을, 공격 방법을 더 궁금해하는 마음은 충분히 이해가 간다.

분명 책에 소개한 몇가지 공격 로그를 직접 분석해보는 건 도움이 될 것이다. 하지만 그것에만 그친다면 얻는 것은 많지 않다. 제일 좋은 건 Snort를 직접 운영하면서 발생한 로그를 책에 소개한 방식을 응용해서 분석해보는 것.

정보보안의 최전방인 보안관제 분야의 발전이 더딘 이유는 오탐을 제대로 처리하지 못하기 때문이며, 그렇기 때문에 우리는 많은 오탐을 분석해 볼 필요가 있다.

2015년 2월 15일 일요일

CxO가 읽어야할 정보보안

뻔한(?) 책이 아닐까 했는데 저자가 현장을 상당히 많이 경험해 본 분이라는 생각이 들었다. 몇몇 구절때문에 이런 상사밑에서 일하면 일할 맛이 좀 나지 않을까 싶다.

좀 살펴보자면,

(43페이지) 정보보호 조직장의 직급과 직책을 전사적으로 힘을 발휘할 수 있는 수준으로 만들어야 한다. 일할 수 있는 환경을 만들어 주고 일을 시켜야 일이 제대로 돌아간다.

-> 많은 현장의 상사들은 일하는 환경 자체에 관심이 없다. IT 부서에 지시할 권한이 없는데 자꾸 지시하라고 시킨다.

-> 현실적인 한계를 얘기해도 '적극적, 능동적' 자세나 정신력을 강조하며 막연하게 뭔가 더 열심히 할 것을 지시한다. 부하직원 닥달이 심할수록 총대를 메주는 일은 없다. 반면 임원, 사장 보고에는 목숨을 건다. (충성스러운 비효율일까? 인생의 지혜일까?)

2015년 2월 8일 일요일

외국어 중요하지. 근데 그 얘기가 아니잖아?

'한국 기업들이 채용 직책에 정말 필요한 자격요건이 무엇인지 파악하지 못하고 있다.'는 취지의 기사를 보게 되었다. 기업들이 업무상 필요 유무와 관계없이 무조건적으로 '외국어' 스펙을 원하는 경향이 있다고.

정말일까? 네버. 한국 기업이 직원 채용 시 '별로 쓰이지도 않을 스펙'을 요구하는 이유는, 채용 직책에 정말 필요한 자격요건이 무엇인지부터 몰라서가 아니라(정말 모른다면 빨리 망해야지), 경제 규모가 커지지 않는 저성장 시대임에도 인력풀만은 넘치기 때문이다. 

토익 900점 자격자 한 명이 필요한데 같은 자격요건을 갖춘 지원자가 백 명이다. 어쩔텐가? 99명을 떨어트릴 핑계가 나올 때까지 학점, 자격증, 어학연수, 공모전 등의 스펙 필터링을 하게 되지 않을까?

2015년 2월 2일 월요일

IDS와 보안관제, 그리고 빅데이터



운좋게 독자분들과 제 책에 대해 이야기할 수 있는 기회를 갖게 되었습니다. 부족하다고 느꼈던 집필 배경이나 목적에 대해 이야기하는 시간을 가졌구요.

크리에이티브 커먼즈 라이선스