네트워크 스트림 패턴매칭 이야기

네트워크 보안 장비를 우회할 때 쓸 수 있는 가장 쉽고 잘 통하는 방법은 암호화나 인코딩, 터널링으로 숨기는 것일테고, 간단히 데이터를 아주 잘게 쪼개서 보내는 방법(fragroute 참조)도 있다. 어쨌거나 암호화 해서 보내는 경우에는 중간에서 강제로 개입하지 않는 이상 (사용자나 응용 프로그램이 유효하지 않은 인증서를 보게 됨) 볼 수도 없고, 인코딩만 해도 시그니처는 우회할 수 있고, 이상한 패킷에 숨겨 터널링하면 사람 눈으로 일일이 뒤지고 다니지 않는 한 찾기도 힘들다.

데이터 쪼개서 우회하는 방법은 옛날이나 잘 먹혔던 방법일텐데 L4 헤더 수준까지 쪼개서 보내면 ACL 우회할 수 있는 경우도 예전에는 있었다고 한다. 이런 경우를 방지하려면 DPI(Deep Packet Inspection)를 수행하는 센서는 IP 재조립이나 TCP 재조립 열심히 잘 해줘야 하고, 여기까지는 대부분 잘 알고 있는 내용이다.

여기서 TCP 세그먼트 경계에서 끊어지지 않는 패턴 매칭을 하려면 세션 데이터를 통으로 들고 있어야 된다고 생각하는게 아마 일반적일 것이다. 스노트는 소스 제대로 안 뜯어봐서 모르겠지만 룰 자체가 content 매칭하고 pcre 스캔 다시 할 수 있게 되어 있으니 아마 일정 분량은 세션 데이터를 들고 있을거라고 생각하고, 와처 같은 경우에도 기껏 제로카피해서 들고 온 패킷을 L7 디코딩하면서 열심히 다시 메모리 복사질을 하고 있었다. 다른 센서들은 어떨지 모르겠으나 하여간 이런 경우에 무한정 세션 데이터를 들고 있을 수는 없고 어느 순간에는 플러시를 해야 되는데 그러면 완벽하게 경계 영역을 무시한 패턴 매칭이 된다고 보기 어렵다. 게다가 메모리도 많이 소모하고 복사로 인한 부하도 만만치 않을 것이다. UDP 트래픽 따위는 wire speed로 처리하다가도 http 부하가 심하게 들어갔다 하면 쓰루풋이 뚝뚝 떨어진다.

무식하게 비교하는게 아닌 이상 AC든 PCRE든 FSM을 만들어서 돌리고 있을테고, 그렇다고 한다면 굳이 세션 데이터를 누적해서 들고 있지 않고 마지막 상태만 기억하고 있어도 끊김없이 패턴 매칭을 이어나가는게 가능하다. 이런 방식을 지원하려면 섬세하게 상태를 관리하도록 구현된 L7 디코더가 필요하다. 말린 센서는 상대적으로 메모리를 훨씬 덜 쓰고도 같은 일을 할 수 있을 것이다.. 다른 아이디어들은 실제 적용이 된다면 언젠가.. DFA 최적화라든가 룰 다시 쓰기라든가..

이외에도 말린 센서는 바이너리 수준으로 PCAP 호환되어 전용 드라이버를 쓰거나 안 쓰거나 동일한 인터페이스를 가져가고 PCAP 파일에서 읽을 수도 있고 테스트 하기 쉽게 구현됐다. 한 줄 요약은 홈형이 짱이라는 것이다.. ㅋ
by xeraph | 2010/02/07 02:54 | 학술 | 트랙백 | 덧글(2)

북경의 밤


일년 만에 다시 북경에 왔다.
올림픽 관련 시설들은 다 철거되고 원래 모습으로 돌아간 듯..

예전엔 오자마자 도시 전체에서 매캐한 냄새를 느꼈는데..
이전보다 하늘이 더 뿌옇게 보이는데도 도무지 감각이 없다.
너무 일만 해서 후각이 마비됐나 -_-;;

다음에 올 때는 꼭 기초 회화라도 배워서 와야지
이건 뭐 어디 다닐 때마다 알아듣는 말이 없으니 시 to the 망..

큰 회사는 이번 주말부터, 늦어도 다음 주말부터 2월 말까지는 설 연휴라 한다.
폭죽 터지는 구경 많이 할 수도 있겠다.. 지금도 간간이 터지는 소리가 들림..
여기서 연변까지 기차 타고 가면 23시간이라더라.. 대륙 스케일의 압박..
by xeraph | 2010/02/07 00:05 | 잡담 | 트랙백 | 덧글(2)

잉여

은행 구조조정이 강력하게 이루어져야 하는 이유

ㅈ도 모르면서 감히 은행 구조조정이 필요하니 어쩌니 저쩌니 온라인에서 떠드는 저런 잉여들은 좀 굶겨야 되지 않나 싶다.

우리나라 은행들 아직도 관치 금융을 못 벗어나고 있다. 하다못해 자기 돈으로 장비 사서 전산실에 넣으려고 해도 감독원 승인을 받아야 되는 판이고, 어디 워크아웃이라도 들어갈라치면 당장 정치인이나 공무원 로비 통해서 윗선으로 압력 행사를 하질 않나.. 재정 부실해서 절대로 대출 못 해줄 기업이라도 대출 해줄 수 밖에 없게 만들고 그 위험이나 부실은 은행이 떠맡게 시키고.. MB 한 마디에 임직원 임금 일괄적으로 1년이나 까내리고 그 돈으로 별 쓸모도 없는 한시적 인턴 따위나 굴리게 하질 않나.. 진짜 자기가 당해봐야 억울한걸 알지.. 저런 입진보 잉여들이 나중엔 신문에서 귀족 노조라고 쓴다고 방방 뜨더라.. 이랬다가 저랬다가 왔다갔다..

정부만 해도 이 정도인데 대기업이나 언론 파워까지 껴들면 별 힘도 없는 은행원들 머리 다 빠지는건 시간 문제.. 그리고 세상에 만만하고 쉬운 일이 어딨나.. 무명씨 말마따나 오후에 문 닫고 바로 퇴근하는 줄 아나벼..
by xeraph | 2010/02/06 01:59 | 잡담 | 트랙백 | 덧글(2)

센스

흔하고 뻔한 얘기이겠지만, 그냥 대충 가이드만 해줘도 알아서 착착 하면서 잘 클 수 있는 사람이 있고 그게 안 되는 사람이 있다. 음.. 센스가 있다고 해서 개발을 정석적으로 잘 한다고 보장할 수는 없지만 적어도 별 생각없이 놔둬도 대체로 알아서(?) 일이 진행되는 것을 볼 수 있다. 반대로 학부에서 4년을 전공하고도 이런 센스가 없어서 뭔가 진전을 보려면 한 세월 기다려야 되는 경우도 많은데, 참 안타깝기도 하면서 어째서 이 정도 차이가 나는지 가끔 이해가 안 될 때도 있다. 

경험적으로는 정말 좋아서 하지 않는 이상 그런 센스가 갖춰지기 어려운 것 같은데, 그게 개별로 따지면 전혀 별 것 아닌 것 같으면서도 오랜 시간 동안 자기 혼자 이래저래 삽질해보면서 기본적인 개념들이 하나씩 구축되는게 아닌가 싶다. 당장 커다란 개발 경험이나 단단한 이론적인 지식은 모자라서 할 수 있는게 없을 것 같아 보여도 처음에는 전혀 기대하지 않았던(?) 고렙처럼 의외로 금방 자기 영역을 구축하게 되기도 하고, 아마 현수도 비슷한 유형이 될 거라고 생각하고 있다. 물론 주변의 적절한 가이드, 개발 경험과 피드백이 없으면 그런 빠른 성장은 기대하기 어렵다.

근데 페리는 그렇게 오래 안 했는데도 되는거 보면 그냥 원래 똑똑한데다 최근 몇 년 노력 많이 해서 되는 것 같음... -_-;

요새 센스 있는 사람 찾아보기 어려워서 넋두리 한 번 해봤다. 낙관적으로 봐도 20명에 1명 수준인 듯..
by xeraph | 2010/02/06 01:03 | 잡담 | 트랙백 | 덧글(9)
<< 이전 페이지 다음 페이지 >>