
ThePhish: 자동화된 피싱 이메일 분석 도구
ThePhish는 TheHive, Cortex 및 MISP를 기반으로 한 자동화된 피싱 이메일 분석 도구입니다. Python 3으로 작성되고 Flask 기반의 웹 애플리케이션으로, 이메일 헤더와 본문에서 관측 가능 항목(observable)을 추출하는 것부터 대부분의 경우 최종 판정(verdict)을 산출하기까지 전체 분석 과정을 자동화합니다. 또한, 필요에 따라 분석가가 분석 과정에 개입하여 분석 중인 이메일에 대한 추가 정보를 얻을 수 있도록 합니다. TheHive 및 Cortex와 상호작용하기 위해 각각 TheHive와 Cortex에서 제공하는 REST API를 사용할 수 있는 Python API 클라이언트인 TheHive4py와 Cortex4py를 사용합니다.
다음 다이어그램은 ThePhish가 높은 수준에서 어떻게 작동하는지 보여줍니다:
이 예시는 사용자가 분석을 위해 이메일을 ThePhish에 보내는 방법과 분석가가 ThePhish를 사용하여 해당 이메일을 실제로 분석하는 방법을 보여주기 위한 것입니다.
사용자는 ThePhish가 분석할 이메일을 가져오기 위해 사용하는 이메일 주소로 이메일을 보낼 수 있습니다. 이메일 헤더의 오염을 방지하기 위해 이메일을 EML 형식의 첨부 파일로 전달(forward)해야 합니다. 이 경우 사용된 메일 클라이언트는 Mozilla Thunderbird이며, 사용된 이메일 주소는 Gmail 주소입니다.
분석가는 ThePhish의 웹 페이지로 이동하여 "List emails" 버튼을 클릭하여 분석할 이메일 목록을 얻습니다.
분석가가 선택한 이메일에 대한 "Analyze" 버튼을 클릭하면 분석이 시작되고 진행 상황이 웹 인터페이스에 표시됩니다.
그 동안 ThePhish는 이메일에서 관측 가능 항목(URL, 도메인, IP 주소, 이메일 주소, 첨부 파일 및 해당 첨부 파일의 해시)을 추출한 다음 TheHive와 상호작용하여 사례를 생성합니다.
사례 내에 세 개의 작업(task)이 생성됩니다.
그런 다음 ThePhish는 추출된 관측 가능 항목을 사례에 추가하기 시작합니다.
이 시점에서 Mailer 응답기(responder) 덕분에 분석이 시작되었음을 사용자에게 이메일로 알립니다.
첫 번째 작업의 설명을 통해 Mailer 응답기가 이메일 알림을 보낼 수 있습니다.
첫 번째 작업이 종료된 후 두 번째 작업이 시작되고 관측 가능 항목에 대한 분석기가 실행됩니다. 분석기가 실행되는 동안 분석 진행 상황이 웹 인터페이스에 표시됩니다.
TheHive의 라이브 스트림 기능을 통해 분석 진행 상황을 볼 수도 있습니다.
모든 분석기 실행이 종료되면 두 번째 작업이 종료되고 세 번째 작업이 시작된 후 ThePhish가 판정을 계산합니다. 판정이 "악성(malicious)"이므로 악성으로 확인된 모든 관측 가능 항목이 IoC로 표시됩니다. 이 경우 하나의 관측 가능 항목만 IoC로 표시됩니다.
그런 다음 사례가 MISP로 이벤트(event)로 내보내지며, 위에서 언급한 관측 가능 항목이 단일 속성(attribute)으로 포함됩니다.
그런 다음 ThePhish는 Mailer 응답기를 통해 사용자에게 이메일로 판정을 보냅니다.
마지막으로 작업과 사례 모두 종료됩니다. 세 번째 작업의 설명을 통해 Mailer 응답기가 이메일로 판정을 보낼 수 있습니다. 또한 사례는 5분 후에 종료되었으며 "True Positive" 및 "No Impact"로 해결되었습니다. 이는 공격이 피해를 입히기 전에 탐지되었음을 의미합니다.
사례가 종료되면 판정이 분석 진행 상황의 전체 로그와 함께 웹 인터페이스에서 분석가에게 제공됩니다.
이 시점에서 분석가는 돌아가서 다른 이메일을 분석할 수 있습니다. 위에 설명된 사례는 피싱 이메일에 관한 것이지만, 분석된 이메일이 "안전(safe)"으로 분류될 때도 유사한 워크플로우가 관찰됩니다. 실제로 사례가 종료되고 판정이 사용자에게 이메일로 전송됩니다.
그런 다음 판정이 웹 인터페이스에서 분석가에게도 표시됩니다.
반면, 이메일이 "의심스러움(suspicious)"으로 분류되면 판정이 웹 인터페이스에서 분석가에게만 표시됩니다.
