[가이드]
계정이 접속된 상태로 방치될 경우 권한이 없는 사용자에게 중요 시스템이 노출되어 악의적인 목적으로 사용될 수 있으므로 일정 시간 이후 어떠한 이벤트가 발생하지 않으면 연결을 종료하는 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 TMOUT
은 TMOUT
환경 변수를 현재 쉘의 환경에서 하위 프로세스로 전달하도록 설정하는 것을 의미합니다. TIMEOUT=600
과 export TMOUT
두 줄 모두 TMOUT
환경 변수를 정의하고 다른 하위 프로세스에서 사용 가능하게 만듭니다.
TMOUT
환경 변수는 특정 시간(초) 동안 사용자의 입력이 없으면 로그아웃을 수행하도록 하는 기능을 구현할 때 사용됩니다. TMOUT
변수에 설정한 값에 따라 시스템이 자동으로 로그아웃하는 시간이 결정됩니다.
예를 들어, TIMEOUT=600
으로 설정한 경우, 사용자가 10분 동안 입력을 하지 않으면(즉, 대기 시간이 10분이 되면) 현재 세션이 로그아웃될 수 있습니다. 이러한 기능은 보안 측면에서 유용하며, 일정 시간 동안 비활성화된 상태에서 사용자가 그대로 둔 상태를 방지하기 위해 사용됩니다.
일반적으로 사용자가 웹사이트 기타 등등으로부터 필요한 정보를 얻고 싶을 때 통신에 성공하면, Session 이라는 녀석이 사용자와 정보제공매체 사이에 생성되게 된다.
이게 일정 시간이 지나도 끊어지지 않고 계속 유지가 되는 경우,
뭐.... 내가 더이상 필요하지 않을 때 수동으로 끊으면 나는 편할 수 있겠지만,
사람은 망각의 동물이기 때문에 가끔 정말 민감한 자료나 중요한 거(대표적인게 뭐... 주식, 은행계좌 관련된 사이트거나, 기업에 민감한 정보를 관리하는 사람이 DB같은 데 접속한 상태 등등)
에 접속을 해놓고, 세션을 제대로 끊어놓지 않고 칠렐레팔렐레 놔둘 경우가 생길 수 있다.
그때를 해커들은 당연히 노릴테고,
해커들은 딱히 노력을 들이지 않고도 그냥 연결되어있는데 손만 대면 끝인거다.
(알껍데기 시절 필기)
금융사이트 세션이 끊어져야 하는 이유. -> 금융 웹 사용 중 시간이 한번씩 초기화가 됨.
10분으로 되어있고 어떤 행동을 하면 초기화가 된다. 세션 시간이 초기화.
웹과 운영체제는 다르다.
웹은 서버가 있기 때문에 연결할 수 있는 세션 수가 정해져 있다. <- 접속자가 너무 많으면 세션이 하나 끊어질 때까지 기다려야 된다. (서버는 100명까지만 허용. 100명이 넘으면? 기다려야 한다.)
공격자 -> 세션 연결 -> 연결을 강제로 끊는다. 서버가 허용하는 session 값을 다 먹어버릴 때까지 반복한다. <- 이런 의도적인 세션 이용 공격을 방지하기 위함도 있다.
Comments
Post a Comment