TLS 인증서 투명성 로그 분석은(는) 무엇을 하나요?
사용 시기
- TLS 인증서 투명성 로그를 분석해야 하는 보안 사고를 조사할 때
- 이 도메인에 대한 탐지 규칙이나 위협 헌팅 쿼리를 구축할 때
- SOC 분석가에게 이 분석 유형에 대한 체계적인 절차가 필요할 때
- 관련 공격 기법에 대한 보안 모니터링 범위를 검증할 때
전제 조건
- 보안 운영 개념 및 도구에 대한 이해
- 안전한 실행을 위한 테스트 또는 실습 환경 접근 권한
- 필요한 종속성이 설치된 Python 3.8+
- 모든 테스트 활동에 대한 적절한 승인
지침
조직 브랜드와 유사한 도메인에 대해 발급된 인증서를 찾기 위해 crt.sh 인증서 투명성 데이터베이스를 쿼리하여 피싱 인프라를 탐지합니다.
from pycrtsh import Crtsh
c = Crtsh()
# 도메인과 일치하는 인증서 검색
certs = c.search("example.com")
for cert in certs:
print(cert["id"], cert["name_value"])
# 전체 인증서 세부 정보 가져오기
details = c.get(certs[0]["id"], type="id")
주요 분석 단계:
- 도메인 패턴과 일치하는 모든 인증서를 crt.sh에 쿼리합니다.
- 타이포스쿼팅 변형(레벤슈타인 거리)이 있는 인증서를 식별합니다.
- 예상치 못한 CA에서 발급된 인증서에 플래그를 지정합니다.
- 의심스러운 하위 도메인의 와일드카드 인증서를 모니터링합니다.
- 알려진 피싱 인프라와 상호 참조합니다.
예제
from pycrtsh import Crtsh
c = Crtsh()
certs = c.search("%.example.com")
for cert in certs:
print(f"발급자: {cert.get('issuer_name')}, 도메인: {cert.get('name_value')}")