
코더들이 보안을 정복하다: Share & Learn 시리즈 - 세션 관리 약점
웹 사이트로 이동하여 로그인합니다.평소처럼 구매하려는 제품으로 장바구니를 채웁니다.그러면 으악 - 손이 미끄러져 브라우저 탭이 닫힙니다.잠시 당황한 후 사이트의 URL을 브라우저에 다시 입력하고 “Enter” 키를 누릅니다.사이트로 돌아와 로그인해도 모든 품목이 카트에 그대로 있습니다.휴.
재인증을 하지 않고도 사이트에서 사용자의 신원을 어떻게 알 수 있었나요?세션을 사용하고 있었기 때문에 사용자를 식별했습니다.세션은 웹을 사용할 때 좋은 사용자 경험을 위한 핵심입니다.하지만 세션을 잘못 관리하면 공격자가 악용할 수 있는 보안 허점이 생길 수 있습니다.
이제 세션 관리가 무엇을 의미하는지, 세션 관리가 취약하면 어떤 문제가 발생할 수 있는지, 세션을 제대로 관리하기 위해 무엇을 할 수 있는지 살펴보겠습니다.
세션 관리 약점에 대한 이해
세션이란 서버에 저장된 값을 말하며 응용 프로그램의 단일 사용자에게만 해당됩니다.이는 두 가지 이유로 필요합니다. 첫째, HTTP가 상태 비저장 프로토콜이라는 것입니다.각 요청은 별개이며 요청 이전 또는 이후에 들어온 요청을 알 수 없습니다.서버는 세션을 통해 요청을 보낸 사람을 추적할 수 있습니다.그렇지 않으면 버튼이나 링크를 클릭할 때마다 로그인해야 합니다.
세션의 두 번째 이유는 사용자 권한 부여입니다.세션 식별자는 시스템 내에서 특정 권한을 가진 특정 사용자를 식별하는 데 사용할 수 있습니다.애플리케이션은 사용자가 누구이며 무엇을 할 수 있는지 알 수 있습니다.
세션에는 두 가지 구성 요소가 있습니다.서버측 데이터 저장소는 세션 식별자를 저장하고 이를 사용자 ID 또는 카트 정보와 같은 사용자 정보에 매핑합니다.동일한 세션 식별자가 쿠키로 브라우저에 전송됩니다.쿠키는 브라우저에 의해 사용자 시스템에 저장됩니다.클라이언트는 각 요청과 함께 쿠키를 전달하여 이 요청이 동일한 사용자로부터 온 것임을 서버에 알립니다.대부분의 애플리케이션은 세션을 사용하여 사전 인증 및 사후 인증 모두에서 사용자를 추적합니다.
적절한 세션 관리는 애플리케이션 보안에 필수적입니다.유효한 세션 ID는 사용자 이름/암호 또는 2차 인증 토큰과 동일한 신뢰 수준을 갖습니다.
잘못된 세션 관리가 위험한 이유
세션 관리가 제대로 이루어지지 않으면 계정 탈취가 완료될 수 있습니다.즉, 고객 데이터가 도난당하거나 제품을 사기로 구매할 수 있습니다.공격자가 유효한 세션 ID를 얻을 수 있는 방법은 여러 가지가 있습니다.
A 세션 고정 공격 사용자가 시스템에 로그인하거나 URL을 사용하여 세션 식별자를 설정할 수 있는 경우와 같이 중요한 시간에 세션이 변경되지 않는 경우에 발생합니다.이러한 방식으로 세션 식별자를 설정하면 동일한 인증 소스를 사용하는 여러 애플리케이션에서 사용자가 계속 로그인할 수 있도록 할 수 있습니다.이 경우 공격자는 웹 사이트를 탐색하여 세션 ID를 얻을 수 있습니다.그런 다음 공격자는 URL에 세션 ID가 포함된 URL을 이메일을 통해 의심하지 않는 피해자에게 보냅니다.피해자는 이메일에 있는 URL을 클릭하고 웹 사이트에 로그인합니다.로그인 시 세션 ID가 교체되지 않는 경우 공격자는 이제 유효하고 인증된 세션 ID를 갖게 됩니다.이를 통해 완전한 계정 탈취가 가능합니다.
부실한 세션 관리에 대한 또 다른 공격은 무차별 추측 공격입니다.개발자가 자체 세션 관리 시스템을 만들려고 할 때 추측하기 쉬운 세션 ID를 사용하는 경우가 많습니다.이러한 패턴은 시퀀스 (1, 2, 3) 일 수도 있고 예측 가능한 패턴일 수도 있습니다.공격자는 유효한 세션 ID가 발견될 때까지 계속해서 세션 ID를 추측할 뿐입니다.이로 인해 계정 탈취가 발생할 수도 있습니다.
일정 시간이 지나도 자동으로 무효화되지 않는 세션은 사용자를 공격하는 데 악용될 수 있습니다.성공 사이트 간 요청 위조 공격은 사용자가 사이트를 떠난 후에도 여전히 유효한 세션에 따라 달라집니다.공격자가 사용자가 방문한 사이트에 iframe 또는 이미지를 배치한다고 가정해 보겠습니다.“src” (source) 속성은 취약한 사이트의 URL로 설정되고 사용자를 대신하여 작업을 수행합니다.예를 들어 취약한 은행 애플리케이션이 사용자의 허가 없이 공격자의 계좌로 돈을 이체하도록 만들 수 있습니다.
세션 관리는 까다로울 수 있고 약점은 치명적일 수 있습니다.하지만 이는 잘 알려진 문제이므로 해결할 수 있습니다.
안전하지 않은 세션 관리 극복
세션 관리는 모든 웹 애플리케이션의 핵심 요소입니다.따라서 많은 웹 개발 프레임워크에는 세션 관리 기능이 내장되어 있습니다.전문가들이 이러한 시스템을 면밀히 검토하여 문제를 찾아내고 해결했습니다.사용하세요.
몇 가지 일반적인 특성 훌륭한 세션 관리 다음을 포함하세요:
공격자가 추측할 수 없는 무작위 세션 ID 생성
사용자가 로그아웃하면 세션이 무효화됩니다.
일정 시간이 경과하면 세션이 자동으로 무효화됩니다.
세션 ID는 사용자가 로그인한 후 변경됩니다.
무차별 대입 공격을 방지하기 위한 최소 128비트 길이의 세션 ID
Spring과 같은 웹 프레임워크, ASP.NET 코어, 레일, 및 장고 이러한 속성이 있으므로 이 경우 더 높은 보안 표준에 사용해야 합니다.
요점: 세션 관리 시스템을 처음부터 새로 만들지 마십시오.
세션 ID가 생성되면 보호해야 합니다.다음을 설정합니다. 보안 및 HTTP 전용 플래그 세션 쿠키를 'true'로 설정합니다.이렇게 하면 JavaScript로 해당 값을 검색할 수 없으며 브라우저가 HTTPS를 통해서만 쿠키를 전송하므로 공격자가 전송 중인 다른 사람의 세션을 훔치는 것을 방지할 수 있습니다.
세션 보안
무료 학습 리소스를 확인해 보세요 보안 세션 관리에 대해 자세히 알아보십시오.세션을 보호하는 방법을 배우면 보안 침해로 인한 사용자 계정 도용, 평판 손상 및 수익 손실을 방지하는 데 도움이 됩니다.세션을 보호하고 사용자를 안전하게 보호하세요.
Jaap Karan Singh is a Secure Coding Evangelist, Chief Singh and co-founder of Secure Code Warrior.

Secure Code Warrior는 전체 소프트웨어 개발 라이프사이클에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 조직을 위해 여기 있습니다.AppSec 관리자, 개발자, CISO 또는 보안 관련 누구든 관계없이 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.
데모 예약Jaap Karan Singh is a Secure Coding Evangelist, Chief Singh and co-founder of Secure Code Warrior.


웹 사이트로 이동하여 로그인합니다.평소처럼 구매하려는 제품으로 장바구니를 채웁니다.그러면 으악 - 손이 미끄러져 브라우저 탭이 닫힙니다.잠시 당황한 후 사이트의 URL을 브라우저에 다시 입력하고 “Enter” 키를 누릅니다.사이트로 돌아와 로그인해도 모든 품목이 카트에 그대로 있습니다.휴.
재인증을 하지 않고도 사이트에서 사용자의 신원을 어떻게 알 수 있었나요?세션을 사용하고 있었기 때문에 사용자를 식별했습니다.세션은 웹을 사용할 때 좋은 사용자 경험을 위한 핵심입니다.하지만 세션을 잘못 관리하면 공격자가 악용할 수 있는 보안 허점이 생길 수 있습니다.
이제 세션 관리가 무엇을 의미하는지, 세션 관리가 취약하면 어떤 문제가 발생할 수 있는지, 세션을 제대로 관리하기 위해 무엇을 할 수 있는지 살펴보겠습니다.
세션 관리 약점에 대한 이해
세션이란 서버에 저장된 값을 말하며 응용 프로그램의 단일 사용자에게만 해당됩니다.이는 두 가지 이유로 필요합니다. 첫째, HTTP가 상태 비저장 프로토콜이라는 것입니다.각 요청은 별개이며 요청 이전 또는 이후에 들어온 요청을 알 수 없습니다.서버는 세션을 통해 요청을 보낸 사람을 추적할 수 있습니다.그렇지 않으면 버튼이나 링크를 클릭할 때마다 로그인해야 합니다.
세션의 두 번째 이유는 사용자 권한 부여입니다.세션 식별자는 시스템 내에서 특정 권한을 가진 특정 사용자를 식별하는 데 사용할 수 있습니다.애플리케이션은 사용자가 누구이며 무엇을 할 수 있는지 알 수 있습니다.
세션에는 두 가지 구성 요소가 있습니다.서버측 데이터 저장소는 세션 식별자를 저장하고 이를 사용자 ID 또는 카트 정보와 같은 사용자 정보에 매핑합니다.동일한 세션 식별자가 쿠키로 브라우저에 전송됩니다.쿠키는 브라우저에 의해 사용자 시스템에 저장됩니다.클라이언트는 각 요청과 함께 쿠키를 전달하여 이 요청이 동일한 사용자로부터 온 것임을 서버에 알립니다.대부분의 애플리케이션은 세션을 사용하여 사전 인증 및 사후 인증 모두에서 사용자를 추적합니다.
적절한 세션 관리는 애플리케이션 보안에 필수적입니다.유효한 세션 ID는 사용자 이름/암호 또는 2차 인증 토큰과 동일한 신뢰 수준을 갖습니다.
잘못된 세션 관리가 위험한 이유
세션 관리가 제대로 이루어지지 않으면 계정 탈취가 완료될 수 있습니다.즉, 고객 데이터가 도난당하거나 제품을 사기로 구매할 수 있습니다.공격자가 유효한 세션 ID를 얻을 수 있는 방법은 여러 가지가 있습니다.
A 세션 고정 공격 사용자가 시스템에 로그인하거나 URL을 사용하여 세션 식별자를 설정할 수 있는 경우와 같이 중요한 시간에 세션이 변경되지 않는 경우에 발생합니다.이러한 방식으로 세션 식별자를 설정하면 동일한 인증 소스를 사용하는 여러 애플리케이션에서 사용자가 계속 로그인할 수 있도록 할 수 있습니다.이 경우 공격자는 웹 사이트를 탐색하여 세션 ID를 얻을 수 있습니다.그런 다음 공격자는 URL에 세션 ID가 포함된 URL을 이메일을 통해 의심하지 않는 피해자에게 보냅니다.피해자는 이메일에 있는 URL을 클릭하고 웹 사이트에 로그인합니다.로그인 시 세션 ID가 교체되지 않는 경우 공격자는 이제 유효하고 인증된 세션 ID를 갖게 됩니다.이를 통해 완전한 계정 탈취가 가능합니다.
부실한 세션 관리에 대한 또 다른 공격은 무차별 추측 공격입니다.개발자가 자체 세션 관리 시스템을 만들려고 할 때 추측하기 쉬운 세션 ID를 사용하는 경우가 많습니다.이러한 패턴은 시퀀스 (1, 2, 3) 일 수도 있고 예측 가능한 패턴일 수도 있습니다.공격자는 유효한 세션 ID가 발견될 때까지 계속해서 세션 ID를 추측할 뿐입니다.이로 인해 계정 탈취가 발생할 수도 있습니다.
일정 시간이 지나도 자동으로 무효화되지 않는 세션은 사용자를 공격하는 데 악용될 수 있습니다.성공 사이트 간 요청 위조 공격은 사용자가 사이트를 떠난 후에도 여전히 유효한 세션에 따라 달라집니다.공격자가 사용자가 방문한 사이트에 iframe 또는 이미지를 배치한다고 가정해 보겠습니다.“src” (source) 속성은 취약한 사이트의 URL로 설정되고 사용자를 대신하여 작업을 수행합니다.예를 들어 취약한 은행 애플리케이션이 사용자의 허가 없이 공격자의 계좌로 돈을 이체하도록 만들 수 있습니다.
세션 관리는 까다로울 수 있고 약점은 치명적일 수 있습니다.하지만 이는 잘 알려진 문제이므로 해결할 수 있습니다.
안전하지 않은 세션 관리 극복
세션 관리는 모든 웹 애플리케이션의 핵심 요소입니다.따라서 많은 웹 개발 프레임워크에는 세션 관리 기능이 내장되어 있습니다.전문가들이 이러한 시스템을 면밀히 검토하여 문제를 찾아내고 해결했습니다.사용하세요.
몇 가지 일반적인 특성 훌륭한 세션 관리 다음을 포함하세요:
공격자가 추측할 수 없는 무작위 세션 ID 생성
사용자가 로그아웃하면 세션이 무효화됩니다.
일정 시간이 경과하면 세션이 자동으로 무효화됩니다.
세션 ID는 사용자가 로그인한 후 변경됩니다.
무차별 대입 공격을 방지하기 위한 최소 128비트 길이의 세션 ID
Spring과 같은 웹 프레임워크, ASP.NET 코어, 레일, 및 장고 이러한 속성이 있으므로 이 경우 더 높은 보안 표준에 사용해야 합니다.
요점: 세션 관리 시스템을 처음부터 새로 만들지 마십시오.
세션 ID가 생성되면 보호해야 합니다.다음을 설정합니다. 보안 및 HTTP 전용 플래그 세션 쿠키를 'true'로 설정합니다.이렇게 하면 JavaScript로 해당 값을 검색할 수 없으며 브라우저가 HTTPS를 통해서만 쿠키를 전송하므로 공격자가 전송 중인 다른 사람의 세션을 훔치는 것을 방지할 수 있습니다.
세션 보안
무료 학습 리소스를 확인해 보세요 보안 세션 관리에 대해 자세히 알아보십시오.세션을 보호하는 방법을 배우면 보안 침해로 인한 사용자 계정 도용, 평판 손상 및 수익 손실을 방지하는 데 도움이 됩니다.세션을 보호하고 사용자를 안전하게 보호하세요.

웹 사이트로 이동하여 로그인합니다.평소처럼 구매하려는 제품으로 장바구니를 채웁니다.그러면 으악 - 손이 미끄러져 브라우저 탭이 닫힙니다.잠시 당황한 후 사이트의 URL을 브라우저에 다시 입력하고 “Enter” 키를 누릅니다.사이트로 돌아와 로그인해도 모든 품목이 카트에 그대로 있습니다.휴.
재인증을 하지 않고도 사이트에서 사용자의 신원을 어떻게 알 수 있었나요?세션을 사용하고 있었기 때문에 사용자를 식별했습니다.세션은 웹을 사용할 때 좋은 사용자 경험을 위한 핵심입니다.하지만 세션을 잘못 관리하면 공격자가 악용할 수 있는 보안 허점이 생길 수 있습니다.
이제 세션 관리가 무엇을 의미하는지, 세션 관리가 취약하면 어떤 문제가 발생할 수 있는지, 세션을 제대로 관리하기 위해 무엇을 할 수 있는지 살펴보겠습니다.
세션 관리 약점에 대한 이해
세션이란 서버에 저장된 값을 말하며 응용 프로그램의 단일 사용자에게만 해당됩니다.이는 두 가지 이유로 필요합니다. 첫째, HTTP가 상태 비저장 프로토콜이라는 것입니다.각 요청은 별개이며 요청 이전 또는 이후에 들어온 요청을 알 수 없습니다.서버는 세션을 통해 요청을 보낸 사람을 추적할 수 있습니다.그렇지 않으면 버튼이나 링크를 클릭할 때마다 로그인해야 합니다.
세션의 두 번째 이유는 사용자 권한 부여입니다.세션 식별자는 시스템 내에서 특정 권한을 가진 특정 사용자를 식별하는 데 사용할 수 있습니다.애플리케이션은 사용자가 누구이며 무엇을 할 수 있는지 알 수 있습니다.
세션에는 두 가지 구성 요소가 있습니다.서버측 데이터 저장소는 세션 식별자를 저장하고 이를 사용자 ID 또는 카트 정보와 같은 사용자 정보에 매핑합니다.동일한 세션 식별자가 쿠키로 브라우저에 전송됩니다.쿠키는 브라우저에 의해 사용자 시스템에 저장됩니다.클라이언트는 각 요청과 함께 쿠키를 전달하여 이 요청이 동일한 사용자로부터 온 것임을 서버에 알립니다.대부분의 애플리케이션은 세션을 사용하여 사전 인증 및 사후 인증 모두에서 사용자를 추적합니다.
적절한 세션 관리는 애플리케이션 보안에 필수적입니다.유효한 세션 ID는 사용자 이름/암호 또는 2차 인증 토큰과 동일한 신뢰 수준을 갖습니다.
잘못된 세션 관리가 위험한 이유
세션 관리가 제대로 이루어지지 않으면 계정 탈취가 완료될 수 있습니다.즉, 고객 데이터가 도난당하거나 제품을 사기로 구매할 수 있습니다.공격자가 유효한 세션 ID를 얻을 수 있는 방법은 여러 가지가 있습니다.
A 세션 고정 공격 사용자가 시스템에 로그인하거나 URL을 사용하여 세션 식별자를 설정할 수 있는 경우와 같이 중요한 시간에 세션이 변경되지 않는 경우에 발생합니다.이러한 방식으로 세션 식별자를 설정하면 동일한 인증 소스를 사용하는 여러 애플리케이션에서 사용자가 계속 로그인할 수 있도록 할 수 있습니다.이 경우 공격자는 웹 사이트를 탐색하여 세션 ID를 얻을 수 있습니다.그런 다음 공격자는 URL에 세션 ID가 포함된 URL을 이메일을 통해 의심하지 않는 피해자에게 보냅니다.피해자는 이메일에 있는 URL을 클릭하고 웹 사이트에 로그인합니다.로그인 시 세션 ID가 교체되지 않는 경우 공격자는 이제 유효하고 인증된 세션 ID를 갖게 됩니다.이를 통해 완전한 계정 탈취가 가능합니다.
부실한 세션 관리에 대한 또 다른 공격은 무차별 추측 공격입니다.개발자가 자체 세션 관리 시스템을 만들려고 할 때 추측하기 쉬운 세션 ID를 사용하는 경우가 많습니다.이러한 패턴은 시퀀스 (1, 2, 3) 일 수도 있고 예측 가능한 패턴일 수도 있습니다.공격자는 유효한 세션 ID가 발견될 때까지 계속해서 세션 ID를 추측할 뿐입니다.이로 인해 계정 탈취가 발생할 수도 있습니다.
일정 시간이 지나도 자동으로 무효화되지 않는 세션은 사용자를 공격하는 데 악용될 수 있습니다.성공 사이트 간 요청 위조 공격은 사용자가 사이트를 떠난 후에도 여전히 유효한 세션에 따라 달라집니다.공격자가 사용자가 방문한 사이트에 iframe 또는 이미지를 배치한다고 가정해 보겠습니다.“src” (source) 속성은 취약한 사이트의 URL로 설정되고 사용자를 대신하여 작업을 수행합니다.예를 들어 취약한 은행 애플리케이션이 사용자의 허가 없이 공격자의 계좌로 돈을 이체하도록 만들 수 있습니다.
세션 관리는 까다로울 수 있고 약점은 치명적일 수 있습니다.하지만 이는 잘 알려진 문제이므로 해결할 수 있습니다.
안전하지 않은 세션 관리 극복
세션 관리는 모든 웹 애플리케이션의 핵심 요소입니다.따라서 많은 웹 개발 프레임워크에는 세션 관리 기능이 내장되어 있습니다.전문가들이 이러한 시스템을 면밀히 검토하여 문제를 찾아내고 해결했습니다.사용하세요.
몇 가지 일반적인 특성 훌륭한 세션 관리 다음을 포함하세요:
공격자가 추측할 수 없는 무작위 세션 ID 생성
사용자가 로그아웃하면 세션이 무효화됩니다.
일정 시간이 경과하면 세션이 자동으로 무효화됩니다.
세션 ID는 사용자가 로그인한 후 변경됩니다.
무차별 대입 공격을 방지하기 위한 최소 128비트 길이의 세션 ID
Spring과 같은 웹 프레임워크, ASP.NET 코어, 레일, 및 장고 이러한 속성이 있으므로 이 경우 더 높은 보안 표준에 사용해야 합니다.
요점: 세션 관리 시스템을 처음부터 새로 만들지 마십시오.
세션 ID가 생성되면 보호해야 합니다.다음을 설정합니다. 보안 및 HTTP 전용 플래그 세션 쿠키를 'true'로 설정합니다.이렇게 하면 JavaScript로 해당 값을 검색할 수 없으며 브라우저가 HTTPS를 통해서만 쿠키를 전송하므로 공격자가 전송 중인 다른 사람의 세션을 훔치는 것을 방지할 수 있습니다.
세션 보안
무료 학습 리소스를 확인해 보세요 보안 세션 관리에 대해 자세히 알아보십시오.세션을 보호하는 방법을 배우면 보안 침해로 인한 사용자 계정 도용, 평판 손상 및 수익 손실을 방지하는 데 도움이 됩니다.세션을 보호하고 사용자를 안전하게 보호하세요.

아래 링크를 클릭하고 이 리소스의 PDF를 다운로드하십시오.
Secure Code Warrior는 전체 소프트웨어 개발 라이프사이클에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 조직을 위해 여기 있습니다.AppSec 관리자, 개발자, CISO 또는 보안 관련 누구든 관계없이 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.
보고서 보기데모 예약Jaap Karan Singh is a Secure Coding Evangelist, Chief Singh and co-founder of Secure Code Warrior.
웹 사이트로 이동하여 로그인합니다.평소처럼 구매하려는 제품으로 장바구니를 채웁니다.그러면 으악 - 손이 미끄러져 브라우저 탭이 닫힙니다.잠시 당황한 후 사이트의 URL을 브라우저에 다시 입력하고 “Enter” 키를 누릅니다.사이트로 돌아와 로그인해도 모든 품목이 카트에 그대로 있습니다.휴.
재인증을 하지 않고도 사이트에서 사용자의 신원을 어떻게 알 수 있었나요?세션을 사용하고 있었기 때문에 사용자를 식별했습니다.세션은 웹을 사용할 때 좋은 사용자 경험을 위한 핵심입니다.하지만 세션을 잘못 관리하면 공격자가 악용할 수 있는 보안 허점이 생길 수 있습니다.
이제 세션 관리가 무엇을 의미하는지, 세션 관리가 취약하면 어떤 문제가 발생할 수 있는지, 세션을 제대로 관리하기 위해 무엇을 할 수 있는지 살펴보겠습니다.
세션 관리 약점에 대한 이해
세션이란 서버에 저장된 값을 말하며 응용 프로그램의 단일 사용자에게만 해당됩니다.이는 두 가지 이유로 필요합니다. 첫째, HTTP가 상태 비저장 프로토콜이라는 것입니다.각 요청은 별개이며 요청 이전 또는 이후에 들어온 요청을 알 수 없습니다.서버는 세션을 통해 요청을 보낸 사람을 추적할 수 있습니다.그렇지 않으면 버튼이나 링크를 클릭할 때마다 로그인해야 합니다.
세션의 두 번째 이유는 사용자 권한 부여입니다.세션 식별자는 시스템 내에서 특정 권한을 가진 특정 사용자를 식별하는 데 사용할 수 있습니다.애플리케이션은 사용자가 누구이며 무엇을 할 수 있는지 알 수 있습니다.
세션에는 두 가지 구성 요소가 있습니다.서버측 데이터 저장소는 세션 식별자를 저장하고 이를 사용자 ID 또는 카트 정보와 같은 사용자 정보에 매핑합니다.동일한 세션 식별자가 쿠키로 브라우저에 전송됩니다.쿠키는 브라우저에 의해 사용자 시스템에 저장됩니다.클라이언트는 각 요청과 함께 쿠키를 전달하여 이 요청이 동일한 사용자로부터 온 것임을 서버에 알립니다.대부분의 애플리케이션은 세션을 사용하여 사전 인증 및 사후 인증 모두에서 사용자를 추적합니다.
적절한 세션 관리는 애플리케이션 보안에 필수적입니다.유효한 세션 ID는 사용자 이름/암호 또는 2차 인증 토큰과 동일한 신뢰 수준을 갖습니다.
잘못된 세션 관리가 위험한 이유
세션 관리가 제대로 이루어지지 않으면 계정 탈취가 완료될 수 있습니다.즉, 고객 데이터가 도난당하거나 제품을 사기로 구매할 수 있습니다.공격자가 유효한 세션 ID를 얻을 수 있는 방법은 여러 가지가 있습니다.
A 세션 고정 공격 사용자가 시스템에 로그인하거나 URL을 사용하여 세션 식별자를 설정할 수 있는 경우와 같이 중요한 시간에 세션이 변경되지 않는 경우에 발생합니다.이러한 방식으로 세션 식별자를 설정하면 동일한 인증 소스를 사용하는 여러 애플리케이션에서 사용자가 계속 로그인할 수 있도록 할 수 있습니다.이 경우 공격자는 웹 사이트를 탐색하여 세션 ID를 얻을 수 있습니다.그런 다음 공격자는 URL에 세션 ID가 포함된 URL을 이메일을 통해 의심하지 않는 피해자에게 보냅니다.피해자는 이메일에 있는 URL을 클릭하고 웹 사이트에 로그인합니다.로그인 시 세션 ID가 교체되지 않는 경우 공격자는 이제 유효하고 인증된 세션 ID를 갖게 됩니다.이를 통해 완전한 계정 탈취가 가능합니다.
부실한 세션 관리에 대한 또 다른 공격은 무차별 추측 공격입니다.개발자가 자체 세션 관리 시스템을 만들려고 할 때 추측하기 쉬운 세션 ID를 사용하는 경우가 많습니다.이러한 패턴은 시퀀스 (1, 2, 3) 일 수도 있고 예측 가능한 패턴일 수도 있습니다.공격자는 유효한 세션 ID가 발견될 때까지 계속해서 세션 ID를 추측할 뿐입니다.이로 인해 계정 탈취가 발생할 수도 있습니다.
일정 시간이 지나도 자동으로 무효화되지 않는 세션은 사용자를 공격하는 데 악용될 수 있습니다.성공 사이트 간 요청 위조 공격은 사용자가 사이트를 떠난 후에도 여전히 유효한 세션에 따라 달라집니다.공격자가 사용자가 방문한 사이트에 iframe 또는 이미지를 배치한다고 가정해 보겠습니다.“src” (source) 속성은 취약한 사이트의 URL로 설정되고 사용자를 대신하여 작업을 수행합니다.예를 들어 취약한 은행 애플리케이션이 사용자의 허가 없이 공격자의 계좌로 돈을 이체하도록 만들 수 있습니다.
세션 관리는 까다로울 수 있고 약점은 치명적일 수 있습니다.하지만 이는 잘 알려진 문제이므로 해결할 수 있습니다.
안전하지 않은 세션 관리 극복
세션 관리는 모든 웹 애플리케이션의 핵심 요소입니다.따라서 많은 웹 개발 프레임워크에는 세션 관리 기능이 내장되어 있습니다.전문가들이 이러한 시스템을 면밀히 검토하여 문제를 찾아내고 해결했습니다.사용하세요.
몇 가지 일반적인 특성 훌륭한 세션 관리 다음을 포함하세요:
공격자가 추측할 수 없는 무작위 세션 ID 생성
사용자가 로그아웃하면 세션이 무효화됩니다.
일정 시간이 경과하면 세션이 자동으로 무효화됩니다.
세션 ID는 사용자가 로그인한 후 변경됩니다.
무차별 대입 공격을 방지하기 위한 최소 128비트 길이의 세션 ID
Spring과 같은 웹 프레임워크, ASP.NET 코어, 레일, 및 장고 이러한 속성이 있으므로 이 경우 더 높은 보안 표준에 사용해야 합니다.
요점: 세션 관리 시스템을 처음부터 새로 만들지 마십시오.
세션 ID가 생성되면 보호해야 합니다.다음을 설정합니다. 보안 및 HTTP 전용 플래그 세션 쿠키를 'true'로 설정합니다.이렇게 하면 JavaScript로 해당 값을 검색할 수 없으며 브라우저가 HTTPS를 통해서만 쿠키를 전송하므로 공격자가 전송 중인 다른 사람의 세션을 훔치는 것을 방지할 수 있습니다.
세션 보안
무료 학습 리소스를 확인해 보세요 보안 세션 관리에 대해 자세히 알아보십시오.세션을 보호하는 방법을 배우면 보안 침해로 인한 사용자 계정 도용, 평판 손상 및 수익 손실을 방지하는 데 도움이 됩니다.세션을 보호하고 사용자를 안전하게 보호하세요.
목차
Jaap Karan Singh is a Secure Coding Evangelist, Chief Singh and co-founder of Secure Code Warrior.

Secure Code Warrior는 전체 소프트웨어 개발 라이프사이클에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 조직을 위해 여기 있습니다.AppSec 관리자, 개발자, CISO 또는 보안 관련 누구든 관계없이 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.
데모 예약다운로드시작하는 데 도움이 되는 리소스
Threat Modeling with AI: Turning Every Developer into a Threat Modeler
Walk away better equipped to help developers combine threat modeling ideas and techniques with the AI tools they're already using to strengthen security, improve collaboration, and build more resilient software from the start.




%20(1).avif)
.avif)
