214. 중요 정보 접근 — 애플리케이션 비밀(secret) 접근 탐지

changseop lee·4일 전

시스템 보안 · 취약점

목록 보기
214/450

시스템 보안 · 취약점 › E. 중요 정보 접근 로그 분석 · 14/50편 (전체 214/450)
학습 단계: 중요 파일 접근 이상
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

현대 애플리케이션은 외부 서비스 연동을 위해 API 키·토큰·시크릿을 사용합니다. 이들이 탈취되면 외부 서비스(클라우드·결제·메일) 접근 권한, 세션 위조, 데이터 복호화에 악용됩니다.

애플리케이션 비밀 유형과 위험
 API 키(AWS·GCP·결제)   → 클라우드 자원·과금·데이터 접근
 OAuth 토큰·세션 시크릿  → 세션 위조·계정 탈취
 암호화 키(app secret)   → 저장 데이터 복호화
 webhook 시크릿          → 위조 요청

저장 위치: 설정 파일, 코드, 환경변수(E15), 시크릿 매니저

시크릿은 앱이 읽는 것이 정상입니다. 쉘 명령·grep 패턴 검색을 통한 수집은 탈취 시도입니다.

2. 왜 중요한가

  • API 키 탈취는 클라우드 자원 장악·과금 폭탄·클라우드 데이터 유출로 이어집니다.
  • 세션 시크릿 탈취는 세션 위조(다른 사용자 가장)를 가능하게 합니다.
  • 공격자는 grep으로 시크릿 패턴을 광범위 검색(수집)하므로 이 패턴도 탐지합니다.

3. 핵심 명령어 / 설정

시크릿 유형악용위험
클라우드 API 키자원·데이터 장악매우 높음
OAuth/세션 토큰세션 위조높음
app secret(암호화)데이터 복호화높음
webhook 시크릿요청 위조중간
grep 패턴 검색시크릿 수집높음

4. 실습 (실습 예시)

# 애플리케이션 비밀 접근 탐지 (분석 방법)
# 시크릿 패턴 광범위 검색(수집 행위)
sudo ausearch -k cred_access -i --start recent 2>/dev/null | grep -E 'comm="(grep|rg|ag|find)"' | tail

# 시크릿 파일 직접 접근
sudo ausearch -k cred_access -i --start recent 2>/dev/null | grep -E 'secret|api[_-]?key|token|credentials' | grep -vE 'comm="(node|python|ruby|java|php-fpm)"'

5. 정상 상태

$ (시크릿 접근) (없음 또는 앱 프로세스 로드만)

시크릿 접근이 앱 프로세스의 정상 로드에 그치고, grep 패턴 검색·쉘 읽기가 없는 상태가 정상입니다.

6. 이상 상태

$ (시크릿 접근)
04:00 comm="grep" auid=www-data proctitle="grep -rn api_key /var/www"
04:01 comm="cat" auid=www-data /var/www/app/config/secrets.yml
  • grep -rn api_key로 웹루트 전체 시크릿 검색 → 광범위 수집
  • secrets.yml 직접 읽기 → API 키·토큰 탈취
  • 시크릿 패턴 검색·수집 → 외부 서비스 장악 전조 → 정탐

7. 로그 분석 (분석 방법)

애플리케이션 비밀 탈취 흐름입니다(가상의 예시 로그).

type=SYSCALL comm="grep" auid=www-data key="cred_access"
type=PROCTITLE proctitle=grep -rn "api_key\|secret\|token" /var/www
 → 웹루트 전체 시크릿 패턴 광범위 검색(수집)
[이후] 발견한 AWS 키로 클라우드 접근(별도 탐지)
관찰해석
grep -rn api_key시크릿 광범위 검색
/var/www 전체수집 범위
cat secrets.yml직접 탈취
이후 클라우드외부 장악

시크릿 패턴 검색(수집) → 외부 서비스 접근으로 이어지므로 아웃바운드와 연계합니다.

8. SOC 관제 포인트

  • 애플리케이션 비밀(API 키·토큰·시크릿) 접근은 외부 서비스 장악·세션 위조·복호화로 이어집니다.
  • 정상은 앱 로드 — grep 패턴 검색(광범위 수집)·쉘 읽기는 탈취 신호입니다.
  • 시크릿 탈취 후 외부(클라우드·API) 접근 연계가 핵심 탐지 포인트입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_e,sensitive_access,">
  <rule id="104130" level="11">
    <if_sid>104000</if_sid>
    <field name="audit.proctitle" type="pcre2">(grep|rg|ag|find).*(api[_-]?key|secret|token|password|aws_|credential)</field>
    <description>시크릿 패턴 광범위 검색(애플리케이션 비밀 수집)</description>
    <mitre><id>T1552.001</id></mitre>
  </rule>
</group>

정상 앱 프로세스는 제외합니다. 시크릿 수집 후 외부 접근(클라우드 API)을 네트워크 로그와 상관합니다.

10. 대응 방법

  1. 초기 확인 — 접근·검색된 시크릿 유형·범위·주체·방법을 확인합니다.
  2. 범위 확인 — grep 패턴 검색(수집)·직접 읽기·이후 외부 접근을 확인합니다.
  3. 증거 확보 — 시크릿 접근 이벤트와 연계(외부 접근) 로그를 보존합니다.
  4. 차단/조치 — 탈취 정탐이면 세션 종료·시크릿 전면 교체(rotate)·외부 영향 조사를 진행합니다.
  5. 재발 방지 — 애플리케이션 비밀 접근·수집 탐지를 운영합니다.

11. 핵심 정리

시크릿 유형악용
클라우드 API 키자원·데이터 장악
OAuth/세션 토큰세션 위조
app secret데이터 복호화
grep 패턴 검색광범위 수집
면접 포인트"시크릿 탈취는 외부 서비스 장악 — grep 패턴 검색(수집)도 핵심 탐지 대상"

12. 다음 편 예고

다음 편 215. 중요 정보 접근 — 환경변수·.env 파일 접근 탐지 에서는 환경변수·.env 파일 접근을 다루는 환경변수·.env 파일 접근 탐지를 다룹니다.


이전 편: 213. 중요 정보 접근 — DB 설정·자격증명 파일 접근 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글