2015년 12월 29일 화요일

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

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

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

보안성 지속 서비스 항목 및 내용

2015년 12월 23일 수요일

보안 제품의 한계

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


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

2015년 12월 12일 토요일

해킹 없는 2015년

작년 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'은 앵커문자 '^(첫 번째 줄 검사)'나 '$(마지막 줄 검사)'의 줄 구분 해제 

2015년 11월 18일 수요일

강의를 반기는 이유

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

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

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

2015년 11월 8일 일요일

인튜이션

대니얼 카너먼의 '생각에 관한 생각'이 직관의 과신을 경계했다면, 게리 클라인의 '인튜이션'은 경험에 기반한 직관의 힘을 옹호한다.

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

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

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

2015년 11월 1일 일요일

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

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

물론 내가 모든 보안관제 현장을 다 둘러본 적이 없으니 장담할 수는 없는 노릇이다. 하지만 최소한 내가 경험한 현장들은 그랬다.

나는 뭐가 달랐을까?

좀 재수없지만 내가 생각한 이유들을 정리해봤다.

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

2015년 10월 23일 금요일

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

지난 글에서 DNS Cache Poisoning 또는 DNS 증폭 DDoS 공격의 가능성을 알려주는 룰에 대해서 살펴봤는데, 탐지로그 대부분이 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일 수요일

추석이 지나고 드는 생각들

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

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

먹고 살아보겠다고 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개.

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' 란 파일이 있다. 오래된 취약점 등 위험이 없다고 판단되어 비활성화된 룰.


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페이지)

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

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

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은 텍스트 편집기라는 태생적 특성상 텍스트가 우선하기 때문. 문제는 항상 그렇지는 않다는 점. 그래서 더 헷갈림(..)

2015년 5월 24일 일요일

Snort 룰을 관리해보자

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

이력 관리

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

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년을 내다보는 정책도 필요하지 않은가?

2015년 3월 30일 월요일

착각하는 CEO

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

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

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

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

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

2015년 3월 4일 수요일

제목에 대한 변명

책을 출간한지 거의 2년 만에(-_-) 출판사로부터 2쇄 인쇄 준비를 해달라는 연락을 받았다. 연락을 받고나서 처음 든 생각은 드디어 '제목에 대한 변명(?)을 할 수 있겠구나' 였다.

책 제목이 무려 '빅데이터 분석으로 살펴본 IDS와 보안관제의 완성'이어서였을까? 하둡에 대한 언급이 없다는 이유로 어느 독자로부터 비난을 받은 적이 있다. (‘빅데이터=하둡’인지는 둘째치고) 굳이 변명을 하자면 이렇다.

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

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

2015년 2월 24일 화요일

신호와 소음

빅데이터 업계에서 유명한 송길영 다음소프트 부사장의 추천사가 이 책을 잘 요약하고 있다.

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

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

베이지안 확률은 영국의 '토마스 베이즈'가 개념을 제시하고, 프랑스의 '피에르 시몽 라플라스'가 완성한 '조건부 확률 이론'이라고.

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

2015년 2월 16일 월요일

Snort Install Guide

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

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

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

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

2015년 2월 15일 일요일

CxO가 읽어야할 정보보안

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

좀 살펴보자면,

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

→ 일하는 환경은 관심 없는 상사가 있다. 타 부서에 지시할 권한이 없는데 자꾸 지시하라고 시킨다. (본인은 절대 나서지 않는다)

→ 현실적인 한계를 건의해도 '적극적, 능동적' 자세나 정신력을 강조하며 막연하게 뭔가 더 열심히 할 것을 지시한다.

2015년 2월 2일 월요일

강의 동영상



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

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