[주요기반] (리눅스) U-15 Session Timeout 설정

[가이드]

계정이 접속된 상태로 방치될 경우 권한이 없는 사용자에게 중요 시스템이 노출되어 악의적인 목적으로 사용될 수 있으므로 일정 시간 이후 어떠한 이벤트가 발생하지 않으면 연결을 종료하는 Session Timeout 설정이 필요함.

양호: Session Timeout이 600초(10분) 이하로 설정되어 있는 경우

취약: Session Timeout이 600초(10분) 이하로 설정되지 않은 경우

조치방법:

600초(10분)동안 입력이 없을 경우 접속된 Session을 끊도록 설정.

찾아볼 수 있는 곳:

/etc/profile

/.profile

/etc/default/login

ex) [*] [/etc/profile] contents check

TIMEOUT=600

export TMOUT


'export' 가 뭐야?

export는 쉘 스크립트에서 사용되는 명령어로, 환경 변수를 다른 하위 프로세스에게 전달하도록 설정하는 역할을 합니다. 환경 변수는 시스템이나 프로세스 동작에 영향을 주는 변수를 말합니다.

주어진 코드에서 export TMOUTTMOUT 환경 변수를 현재 쉘의 환경에서 하위 프로세스로 전달하도록 설정하는 것을 의미합니다. TIMEOUT=600export TMOUT 두 줄 모두 TMOUT 환경 변수를 정의하고 다른 하위 프로세스에서 사용 가능하게 만듭니다.

TMOUT 환경 변수는 특정 시간(초) 동안 사용자의 입력이 없으면 로그아웃을 수행하도록 하는 기능을 구현할 때 사용됩니다. TMOUT 변수에 설정한 값에 따라 시스템이 자동으로 로그아웃하는 시간이 결정됩니다.

예를 들어, TIMEOUT=600으로 설정한 경우, 사용자가 10분 동안 입력을 하지 않으면(즉, 대기 시간이 10분이 되면) 현재 세션이 로그아웃될 수 있습니다. 이러한 기능은 보안 측면에서 유용하며, 일정 시간 동안 비활성화된 상태에서 사용자가 그대로 둔 상태를 방지하기 위해 사용됩니다.


 일반적으로 사용자가 웹사이트 기타 등등으로부터 필요한 정보를 얻고 싶을 때 통신에 성공하면, Session 이라는 녀석이 사용자와 정보제공매체 사이에 생성되게 된다.


이게 일정 시간이 지나도 끊어지지 않고 계속 유지가 되는 경우,

뭐.... 내가 더이상 필요하지 않을 때 수동으로 끊으면 나는 편할 수 있겠지만,

사람은 망각의 동물이기 때문에 가끔 정말 민감한 자료나 중요한 거(대표적인게 뭐... 주식, 은행계좌 관련된 사이트거나, 기업에 민감한 정보를 관리하는 사람이 DB같은 데 접속한 상태 등등)

에 접속을 해놓고, 세션을 제대로 끊어놓지 않고 칠렐레팔렐레 놔둘 경우가 생길 수 있다.

그때를 해커들은 당연히 노릴테고,

해커들은 딱히 노력을 들이지 않고도 그냥 연결되어있는데 손만 대면 끝인거다.


(알껍데기 시절 필기)

금융사이트 세션이 끊어져야 하는 이유. -> 금융 웹 사용 중 시간이 한번씩 초기화가 됨.

10분으로 되어있고 어떤 행동을 하면 초기화가 된다. 세션 시간이 초기화.


웹과 운영체제는 다르다.

웹은 서버가 있기 때문에 연결할 수 있는 세션 수가 정해져 있다. <- 접속자가 너무 많으면 세션이 하나 끊어질 때까지 기다려야 된다. (서버는 100명까지만 허용. 100명이 넘으면? 기다려야 한다.)


공격자 -> 세션 연결 -> 연결을 강제로 끊는다.  서버가 허용하는 session 값을 다 먹어버릴 때까지 반복한다.  <- 이런 의도적인 세션 이용 공격을 방지하기 위함도 있다.

Comments