[HTTPS 복호편] Splunk Stream을 사용하여 http 통신의 Wire Data를 시각화

3440 단어 Splunk아파치

전치



Splunk Stream을 사용하여 https 통신의 Wire Data를 시각화 다음에, 이번에는 https 통신을 서버의 비밀열쇠를 이용해 복호하고 싶습니다.

포인트


  • Splunk Stream을 사용하여 SSL 복호화가 성공적으로 완료되면 다음 stream:http 데이터처럼 보입니다.



  • 절차



    참고원 공식 정보는 이것뿐! Use SSL keys for decryption
  • 우선, 공개 서버의 비밀열쇠(privatekey)를 수중에 준비합니다.
  • 공개 서버의 개인 키를 Splunk 서버의 모든 폴더에 업로드합니다.

  • 개인 키를 Splunk Stream App에 로드하여 고유 키 DB를 만듭니다.
  • Splunk Stream 소개 기사 에서는 Splunk 서버(Deployment Server 겸용)를 사용하고 있기 때문에, 키 DB의 작성은 Splunk 서버에서 실시합니다.
  • $SPLUNK_HOME/etc/apps/Splunk_TA_stream/linux_x86_64/bin 부하로 이동
  • 예: cd /opt/splunk/etc/deployment-apps/Splunk_TA_stream/linux_x86_64/bin

  • ./streamfwd --addsslkey <key_name> <pem_file> <password> 명령 실행
  • *key_name은 선택 사항입니다. pem_file은 공개 서버의 개인 키입니다. password는 암호가 없으면 없이 좋다.
  • 예: ./streamfwd --addsslkey serverA_key private.key

  • 성공하면 다음 메시지가 표시됨
  • 예: key 'serverA_key' added to /opt/splunk/etc/deployment-apps/Splunk_TA_stream/local/keystore.db


  • ~deployment-apps/Splunk_TA_stream을 Deployment Server를 통해 웹 서버에 다시 배포합니다.
    - # /opt/splunk/bin/splunk reload deploy-server

  • SSL 복호화 테스트 확인

  • Qualys의 SSL Server Test 을 이용하면 다음과 같은 데이터가 도착하고 복호화되어 있음을 알 수 있다.


  • 학습과 과제점


  • Splunk Stream App이 해독을 지원하는 키 교환 형식(kx)이 RSA만인 점.
  • 이번 가장 고생한 것은, Web 서버측의 ssl.conf의 SSLCipherSuite를 변경해, 가능한 한 RSA 베이스의 열쇠 교환을 사용하고 있는 SSLCipherSuite를 협상원의 클라이언트에 이용시키기 위한 Web 서버측의 설정 확인에 시간을 사용했습니다.
  • OS와 브라우저의 조합에 따라서는, RSA 베이스의 열쇠 교환을 이용해 주지 않기 때문에, 그 경우, Stream에서는 복호할 수 없는 제한이 있는 것을 알았습니다.
  • Splunk internal 로그를 보면 "cipher suite가 해독할 수 없는 형식입니다"라는 메시지가 나옵니다.
  • 이상의 것으로부터, Web 서버측에서 서포트하고 있는 Cipher Suite가 광범위(Diffie-Hellman등도 대응)의 경우, 모든 HTTPS 통신을 Splunk Stream으로 복호하는 것은 현실적으로는 할 수 없는 것도 알았습니다.
  • 웹 리퀘스트 중, 몇할인가는 복호할 수 없는 것도 있는 것을 이해한 다음에 SSL 복호 기능과는 따를 필요가 있을 것 같습니다.


  • 기타 참고 기사



  • 이해하고 싶은 SSL / TLS에서도 더 이해하면 재미있었습니다.
  • 좋은 기사입니다. cipher suite를 이해할 수 있습니다.

  • 좋은 웹페이지 즐겨찾기