
IDA Pro용 HashDB API 해시 조회 플러그인
IDA Pro용 멀웨어 문자열 해시 조회 플러그인입니다. 이 플러그인은 OALABS HashDB 조회 서비스에 연결됩니다.
해시 알고리즘 데이터베이스는 오픈 소스이며 GitHub에서 새로운 알고리즘을 추가할 수 있습니다. 풀 리퀘스트는 대부분 자동화되어 있으며, 자동화된 테스트를 통과하기만 하면 몇 분 내에 새로운 알고리즘을 HashDB에서 사용할 수 있습니다.
HashDB는 IDA 디스어셈블리 뷰에서 해시 상수를 마우스 오른쪽 버튼으로 클릭하고 HashDB Lookup 클라이언트를 실행하여 멀웨어에서 해시된 문자열을 조회하는 데 사용할 수 있습니다.
플러그인을 사용하여 해시를 조회하기 전에 HashDB 설정을 구성해야 합니다. 설정 창은 플러그인 메뉴 Edit->Plugins->HashDB에서 실행할 수 있습니다.
Refresh Algorithms를 클릭하여 HashDB API에서 지원되는 해시 알고리즘 목록을 가져온 다음 분석 중인 멀웨어에 사용된 알고리즘을 선택합니다.
각 해시 값에 XOR을 활성화하는 옵션도 있습니다. 이는 멀웨어 작성자가 해시를 추가로 난독화하는 데 사용하는 일반적인 기술입니다.
HashDB 조회 서비스의 기본 API URL은 https://hashdb.openanalysis.net/입니다. 자체 내부 서버를 사용하는 경우 이 URL을 변경하여 서버를 가리킬 수 있습니다.
HashDB가 새로운 해시를 식별하면 해시와 관련 문자열이 IDA의 열거형에 추가됩니다. 그러면 이 열거형을 사용하여 IDA의 해시 상수를 해당 열거형 이름으로 변환할 수 있습니다. 열거형 이름은 기존 열거형과 충돌이 있을 경우 설정에서 구성할 수 있습니다.
플러그인 설정이 구성되면 IDA 디스어셈블리 또는 유사 코드(Hex-Rays) 창에서 상수를 마우스 오른쪽 버튼으로 클릭하고 해당 상수를 해시로 조회할 수 있습니다. 마우스 오른쪽 버튼 클릭은 필요한 경우 XOR 값을 빠르게 설정하는 방법도 제공합니다.
해시가 모듈의 일부인 경우 해당 모듈의 모든 해시를 가져올지 묻는 프롬프트가 표시됩니다. 이는 해시를 대량으로 가져오는 빠른 방법입니다. 예를 들어, 식별된 해시 중 하나가 kernel32 모듈의 Sleep인 경우 HashDB는 kernel32의 모든 해시된 내보내기를 가져올 수 있습니다.
해시가 확인되거나(또는 모듈이 대량 가져오기된 후) HashDB는 현재 함수를 스캔하고 일치하는 모든 상수를 열거형 이름으로 변환합니다(피연산자 0-2에 대해, 부호 확장 값에 대한 32비트 마스크 폴백 적용). 디스어셈블리 및 Hex-Rays 뷰는 자동으로 새로 고쳐집니다. 이미 가져온 모듈은 세션 동안 캐시되므로 새 해시마다 kernel32 등을 다시 가져오라는 메시지가 표시되지 않습니다.
HashDB에는 해시 값을 기반으로 해시 알고리즘을 식별하려고 시도하는 기본 알고리즘 검색도 포함되어 있습니다. 검색 결과는 해시 값을 포함하는 모든 알고리즘을 반환하며, 분석가가 어떤 알고리즘이 올바른지(해당하는 경우) 결정해야 합니다. 이 기능을 사용하려면 해시 상수를 마우스 오른쪽 버튼으로 클릭하고 HashDB Hunt Algorithm을 선택하세요.
이 해시를 포함하는 모든 알고리즘이 선택 상자에 표시됩니다. 선택 상자를 사용하여 HashDB가 사용할 알고리즘을 직접 선택할 수 있습니다. 취소를 선택하면 알고리즘이 선택되지 않습니다.
일부 멀웨어 개발자는 API 해시를 개별적으로(코드 내 인라인) 확인하는 대신 메모리에 가져오기 해시 블록을 생성합니다. 그런 다음 이러한 해시는 모두 단일 함수 내에서 확인되어 동적 가져오기 주소 테이블을 생성하며, 나중에 코드에서 참조됩니다. 이 시나리오에서는 HashDB Scan IAT 기능을 사용할 수 있습니다.
가져오기 해시 블록을 선택하고 마우스 오른쪽 버튼을 클릭한 다음 HashDB Scan IAT를 선택하기만 하면 됩니다. HashDB는 선택한 범위의 각 개별 정수 유형(DWORD/QWORD)을 확인하려고 시도합니다.
HashDB는 파이썬 requests 모듈이 필요합니다. IDA 외부의 셸에서 pip install requests로 설치하세요.
그런 다음 다음 두 가지 방법 중 하나로 플러그인을 설치할 수 있습니다.
hashdb.py를 IDA plugins 디렉터리에 복사합니다.HashDB 플러그인은 __Python 3__를 사용하는 IDA 7.5+ (IDA 9.0 포함)를 대상으로 하며 이전 버전과 호환되지 않습니다.