본문 바로가기
OS

[TIL 48] 인증정보 관련 탐지

by 진득한진드기 2025. 2. 6.

인증 정보 탐지 로직에 관해

최근 새로 진행하는 프로젝트에서 인증 정보 관련되서 어떻게 잡아 낼 건지를 계속 찾아보고 고민도 많이 했는데

 

대체적으로 기본적으로 나와있는 CVE들은 머리에 그림이라도 그려지는데 인증 정보 관련되서 검사하는 로직은 많은 경우의 수가 있으므로 내가 스스로 생각해서 구현하기에는 무리가 있다고 본다....

 

명시적으로 서비스 내로 들어오는 파일을 일일히 어떻게 확인 할 것인지 부터 구분하는 것과 해당 파일들 관련해서 어떻게 정리해서 보여줄 것인지 등등 생각하면 정말 많은 상황들이 있는 것 같다.

 

이런 당장 보여주는 상황 말고도 뒤에서 어떻게 해당 파일이 인증 관련 데이터인지 아닌지 파악하는 것도 처음 받았을 때는 난감한 문제가 아닐 수 없다.

 

이를 일일히 탐지하는 것이 굉장히 번거로운데 이를 편하게 해주는 것이 yara 이다.

 

Yara란 ?

 

YARA란 악성코드, 멀웨어 및 특정 패턴을 가진 파일을 탐지하고 분석하는 데 사용되는 오픈 소스 도구이다. 보안관련 분야에서 주로 사용하며, 특정 문자열, 정규 표현식, 바이너리 패턴 등을 기반으로 탐지 규칙을 정의할 수 있다.

 

Yara 특징

yara는 아래와 같은 특징이 있다.

 

패턴 기반탐지

  • YARA는 정적 분석(Static Analysis) 방식으로, 파일 또는 메모리에서 특정 패턴을 검색하여 악성 코드를 탐지한다.
  • 규칙을 작성하여 문자열, 정규식, 바이너리 패턴 등을 기반으로 검색이 가능하다.

사용자 정의 규칙(Custom Rules)

  • 사용자가 직접 탐지할 패턴을 정의하는 Yara 규칙(Rules)을 작성할 수 있다.
  • 탐지할 문자열, 파일 크기, 특정 비트 패턴 등을 포함할 수 있다.

멀티 플랫폼 지원

  • Windows, Linux, macOS에서 사용 가능하며, CLI(Command Line Interface) 및 Python 라이브러리(PyYARA)로도 활용할 수 있습니다.

파일, 메모리, 프로세스 검사

  • 단순히 파일을 검사하는 것뿐만 아니라 메모리 내 실행 중인 프로세스도 분석할 수 있다.

 

이를 이용해 보통 파일 탐지 관련 오픈소스들도 yara를 많이 사용하는 것 을 볼 수 있다.

 

yara를 이용해서 cert.pem 과같은 인증서나 인증 관련된 정보가 들어가 있는 파일 들을 탐지하려면 yara rules를 잘 작성하면 좋은데

 

이 구간이 나한텐 난관이었다.....

 

아무거나 검사하면 된다고 이런 저런 rules를 가져올 수 도 없는 노릇이니..... 

 

간단하게 예시를 봐보자.

 

rule AES_Constants {
    meta:
        description = "AES cipher lookup tables"
    strings:
        $enc_st = { 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 }
        $dec_st = { 52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb 7c e3 39 82 9b 2f ff 87 34 8e 43 44 c4 de e9 cb }
        $enc_lt = { c6 63 63 a5 f8 7c 7c 84 ee 77 77 99 f6 7b 7b 8d ff f2 f2 0d d6 6b 6b bd de 6f 6f b1 91 c5 c5 54 }
        $dec_lt = { 51 f4 a7 50 7e 41 65 53 1a 17 a4 c3 3a 27 5e 96 3b ab 6b cb 1f 9d 45 f1 ac fa 58 ab 4b e3 03 93 }
    condition:
        any of them
}

 

위는 AES 관련 함수가 들어간 파일을 확인할 때 사용하는 yara rules인데 

 

만약 파일을 읽다가 다음과 같은 암호화 상수나 암호화 테이블이나 복호화 테이블이 들어있으면 그대로 탐지 된다.

 

그러면 해당 파일은 AES 암호화가 들어간 파일이라는 것이다.

 

점진적으로 생각하게 되면 이를 잘 이용하면 어떤 키 인지 알아내는 방법을 또 사용할 수 있고, 그를 이용해서 그 키는 어떠한 암호화 알고리즘을 사용했는지 알 수 있다. 

 

매우 유용한 도구라고 생각이 든다. ㅋㅎㅋ

 

처음에는 일일히 필터링 해야되나 싶어서 따로 구현할 생각에 말도 안된다고 생각했는데 역시 yara 같은 편리한 툴들이 계속 찾다보면 나오는 것 같다.

 

요즘은 코드로써 없는게 없는 세상이니 서치하는 능력을 기르는것도 하나의 소양일 듯 하다.