XSS공격이란? + 세션 하이재킹

2024. 10. 16. 22:08TIL

 

XSS(Cross-Site Scripting) 공격이란?

 

 

XSS공격은 웹 애플리케이션의 취약점을 이용해 악성 스크립트를 사용자 브라우저에서 실행시키는 공격입니다. 공격자는 주로 사용자 입력을 통해 악성 코드를 삽입하고 이를 통해 세션 하이재킹, 사용자 데이터 탈취, 웹사이트 변조 등의 피해를 일으킬 수 있습니다.

 

공격 방식

 

🔥 방지 방법


- 입력 검증 : 사용자 입력을 철저히 검증하여 예상치 못한 형식의 입력을 차단합니다.
-  출력 인코딩 : 사용자의 입력을 HTML, JavaScript 등으로 출력할 때 적절히 인코딩하여 스크립트가 실행되지 않도록 합니다.
-  CSP(Content Security Policy) : CSP 설정을 통해 실행할 수 있는 스크립트를 제한합니다.

-  쿠키 HTTP Only& Secure 설정 :쿠키에 HTTPOnly플래그를 설정하여 JavaScript에서 접근할 수 없게 하고 Secure 플래그 설정으로 HTTPS에서만 전송되도록 합니다.

 

 

 

🔎 세션 하이재킹은 무엇인가?

 

위에서 xss 공격으로 세션 하이재킹의 피해를 입을 수 있다고 하였는데 그렇다면 세션 하이재킹은 무엇인가 하는 의문을 품게 된다.


세션 하이재킹(Session Hijacking)은 공격자가 사용자의 세션을 가로채어 해당 사용자의 권한으로 웹 애플리케이션에 접근하는 공격 방식입니다. 일반적으로 사용자가 로그인한 후, 서버는 세션 ID를 생성하여 클라이언트에 전달합니다. 공격자는 이 세션 ID를 탈취하여 사용자의 세션을 impersonate(가장)할 수 있습니다.

🎯세션 하이재킹 방법
1. 네트워크 스니핑: 비암호화된 네트워크에서 데이터 패킷을 가로채어 세션 ID를 획득합니다.
2. 크로스사이트 스크립팅(XSS): 웹 애플리케이션의 취약점을 이용해 악성 스크립트를 삽입하고, 이를 통해 세션 ID를 탈취합니다.
3. 피싱: 사용자를 속여 로그인 정보를 입력하게 하여 세션 ID를 획득합니다.

📌방지 방법
1. HTTPS 사용: 모든 데이터 전송을 암호화하여 네트워크 스니핑을 방지합니다.
2. 세션 ID 보호: 세션 ID에 대한 HTTPOnly 및 Secure 플래그를 설정하여 JavaScript 접근을 차단하고, HTTPS에서만 전송되도록 합니다.
3. 세션 타임아웃: 일정 시간 동안 활동이 없으면 세션을 자동으로 종료하여 위험을 줄입니다.
4. 정기적인 세션 ID 갱신: 사용자가 로그인할 때마다 세션 ID를 변경하여 탈취된 세션 ID의 유효성을 낮춥니다.

'TIL' 카테고리의 다른 글

TIL(크롤링)  (0) 2024.08.23
TIL( 아틀러리 테스트 )  (0) 2024.08.21
TIL(AWS Lambda)  (0) 2024.08.19
TIL ( 면접카타 jwt )  (0) 2024.08.16
TIL( SQL 기본문법 )  (0) 2024.08.14