[악성코드 탐지규칙의 변형패턴 분석]
네트워크 침입탐지 프로그램 중에서도 Snort에 대해 연구하여 논문을 제출했습니다. 논문의 목표는 Snort 의 rule에 대해 분석하여 새로운 rule을 생성할 수 있도록 도와주는 것이었습니다.
Snort는 크게 Sniffer, Pre-processor, Detection Engine, Logger으로 네 부분으로 나눌 수 있습니다. 여기서 제가 집중한 부분은 Detection Engine입니다. Detection Engine은 Sniffer가 받아온 모든 패킷을 자신이 미리 가지고 있던 rule과 비교합니다. rule은 사전 정의 패턴 정도로 말씀드릴 수 있겠습니다.
탐지엔진이 패킷을 받아들여 공격인지 정상패킷인지 판단하는 방법은, 기존의 rule과 대조하여 rule과 패턴이 일치한다면 공격으로 인식하는 것입니다. 저는 rule의 패턴을 분석하여 빈도수가 높은 변형 패턴들을 생성했습니다. 이는 기존 rule에 적용하여 새로운 rule을 생성하는 패러다임을 만들어낼 것입니다. 결과적으로 Snort의 능력을 더욱 강력하게 만들 수 있습니다.
[Hadoop을 이용한 Mapreduce경험]
분산컴퓨팅 수업 시간에 과제로 하둡과 메이븐을 이용하여 희소행렬 곱의 결과를 도출해내는 과제를 받았습니다. 더하여 AWS를 이용하여 가상머신 위가 아닌 aws의 환경에서 수행했습니다.
Mapreduce라는 것이 결국 mapper에서 입력 값을 하나씩 적절히 처리해주고 reducer에서 같은 키 값에 대해 계산을 해주는 것이 정형화되어있는 방법입니다. 따라서 행렬의 곱을 계산해내야 한다면 reducer에서 키, 값 쌍으로 어떤 값을 받아야 결과를 잘 낼 수 있을지 고려해야 했습니다.
제가 적용한 키, 값 쌍은 아래와 같습니다. 키는 결과 행렬의 각 좌표를 의미하게 했습니다. 값은 각 키에 필요할 수 있는 값을 입력했습니다. 예를 들면 행렬 A와 행렬 B의 곱으로 행렬 C가 도출된다고 하면, A의 (0,3)의 원소는 C의 (0,x)원소 값 도출에 모두 필요합니다. B의 (2,4)는 C의 (x,4)에 모두 필요합니다.
이렇게 C행렬의 각 원소를 도출하기에 필요한 모든 값을 mapper에서 뿌려주고 reducer에서는 각 값을 계산하여 결과를 출력하게 되었습니다.
글자수 1,143자1,775Byte