의심스러운 DNS 쿼리 탐지

WiresharkBeginner
지금 연습하기

소개

이번 챌린지에서 여러분은 DNS 쿼리를 통한 잠재적인 데이터 유출 시도를 조사하는 사이버 보안 분석가의 역할을 맡게 됩니다. 여러분의 임무는 pcapng 파일에 캡처된 네트워크 트래픽을 분석하여, 명령 제어 (C&C) 서버와의 통신을 암시할 수 있는 모든 질의된 도메인 이름을 식별하는 것입니다.

커맨드 라인 기반의 네트워크 프로토콜 분석 도구인 tshark 를 사용하여 캡처 파일에서 DNS 쿼리 이름을 추출하게 됩니다. 이 과정에서 DNS 트래픽을 필터링하고, 쿼리 이름을 추출한 뒤, 알파벳 순으로 정렬하고 중복을 제거하여 분석용 파일로 저장해야 합니다. 이 실습을 통해 네트워크 트래픽 분석 역량을 강화하고, 악성 행위의 징후일 수 있는 의심스러운 DNS 활동을 탐지하는 방법을 익힐 수 있습니다.

이 콘텐츠는 챌린지 과제입니다. 정해진 단계를 따라가는 가이드 실습과 달리, 스스로의 힘으로 과제를 해결해야 합니다. 챌린지는 다소 난이도가 있을 수 있습니다. 해결이 어렵다면 Labby 와 상담하거나 솔루션을 확인해 보세요. 통계에 따르면 이 과제는 초급 수준이며, 통과율은 100%, 학습자들로부터 93%의 긍정적인 평가를 받았습니다.

의심스러운 DNS 쿼리 탐지

보안 분석가로서 여러분은 DNS 쿼리를 이용한 데이터 유출 가능성을 조사하라는 지시를 받았습니다. 네트워크 트래픽을 분석하여 질의된 모든 도메인 이름을 파악하고, 이를 통해 명령 제어 서버와의 통신 여부를 확인해야 합니다.

과제

  • 제공된 캡처 파일에서 모든 DNS 쿼리 이름을 추출하고, 알파벳 순으로 정렬한 뒤 중복을 제거하여 분석 결과 파일로 저장하세요.

요구 사항

  • /home/labex/project/capture.pcapng 경로에 있는 네트워크 트래픽 캡처 파일을 분석하기 위해 tshark 명령어를 사용하세요.
  • 캡처 파일에서 DNS 트래픽만 표시되도록 필터링하세요.
  • tshark 의 필드 추출 기능을 사용하여 DNS 쿼리 이름만 추출하세요.
  • 결과물을 알파벳 순으로 정렬하세요.
  • 중복된 항목을 제거하세요.
  • 최종 목록을 /home/labex/project/domains.txt 파일에 저장하세요.
  • 모든 작업은 단일 명령 파이프라인을 사용하여 수행해야 합니다.

예시

DNS 쿼리 이름을 올바르게 추출했다면, /home/labex/project/domains.txt 파일에는 다음과 같은 형식의 항목들이 포함될 것입니다.

amazon.com
example.com
google.com
...

참고: 파일에 저장되는 실제 도메인은 제공된 캡처 파일에 포함된 특정 DNS 쿼리에 따라 달라질 수 있습니다.

힌트

  • DNS 프로토콜 패킷에만 집중하려면 -Y "dns" 필터 옵션을 사용하세요.
  • DNS 쿼리 이름 필드는 -T fields -e dns.qry.name을 사용하여 추출할 수 있습니다.
  • 리눅스 명령어는 파이프 (|) 를 사용하여 서로 연결할 수 있음을 기억하세요.
  • 출력 내용을 정리할 때는 sortuniq 명령어가 유용합니다.
✨ 솔루션 확인 및 연습

요약

이번 챌린지에서는 Wireshark 의 커맨드 라인 버전인 tshark 를 사용하여 DNS 쿼리를 통한 잠재적인 데이터 유출 시도를 분석했습니다. 캡처 파일에서 DNS 쿼리 이름을 추출하고, 알파벳 순으로 정렬하며, 중복을 제거하여 파일로 저장하는 과정을 통해 네트워크 트래픽 분석 및 커맨드 라인 필터링에 대한 실무 기술을 습득했습니다.

이 챌린지는 의심스러운 도메인 쿼리를 식별하는 것이 명령 제어 서버 통신이나 데이터 유출 시도를 탐지하는 데 얼마나 중요한지 보여주는 실제 보안 시나리오를 시뮬레이션했습니다. 특히 DNS 트래픽에 특화된 tshark 의 필드 추출 기능을 익힘으로써, 향후 악성 네트워크 활동을 탐지하는 보안 모니터링 및 네트워크 포렌식 분야에 적용할 수 있는 소중한 경험을 쌓았습니다.