본문 바로가기
공부/리눅스

2-1. 리눅스 취약점 조치(파일 및 디렉토리 관리) - root 홈, 패스 디렉터리 권한 및 패스 설정

by SLkittys 2024. 1. 29.
728x90

* 해당 실습에서 사용한 버전은 Rocky 8 임.

1. 계정관리

   1 - 1. Root 계정 원격접속 제한  * KISA 다운로드 링크 포함

   1 - 2. PW 설정

   1 - 3. 계정 잠금 임계값 설정

   1 - 4. PW 파일 보호

2. 파일 및 디렉토리 관리

   2 - 1. root 홈, 패스 디렉터리 권한 및 패스 설정(현재글)

 

  가. 환경변수 확인

필자의 경우 위에서 확인된 것처럼 VMware에 아무것도 설정하지 않은 순정 상태이기 때문에,

따로 설정해 줄 수 있는 것이 없다.

 

하지만 이러한 환경변수는 유저별로 설정을 해줘야한다.

$ cd /home            - 해당 위치에서는 유저들 목록을 확인할 수 있다.

필자의 경우에는 user 계정만 존재한다.

user 계정의 환경변수를 확인해보겠다.


위와 같은 취약점을 발견했다.
환경 변수내에 '::'(빈 값할당), 이나 '.'(현재위치를 의미)과 같은 내용은 보안에 취약한데,

환경 변수내에 빈 값을 할당하게 되면 해커에 의한 환경 변수 덮어쓰기 공격 등에 취약해지며
(누구나 예상할 수 있는 값이 되버린다.)

'.'의 경우 아래에서 추가로 설명하겠다.

 

환경변수 파일은 OS마다 다르나, 실습은 Rocky 8.9버전에서 진행하였다.

우선 현재 계정의 환경변수 설정을 위해 .bash_profile로 접근하겠다.
그러나 기본적으로 숨김 파일이기 때문에 일반적으로는 볼 수 없어 ls -al을 사용하여 확인해야한다.




.bash_profile을 vi 편집기로 열어보자.

아니.. 이런.. 여기에서는 PATH값이 정의되지 않는듯 하다.

정답은 .bashrc 였다.
이처럼 절때라는건 없으니 다음과 같이 SHELL에 따라 참조되는 환경 설정파일들을 확인해보자.
  - /bin/sh : /etc/profile, $HOME/.profile
  - /bin/csh : $HOME/.cshrc, $HOME/.login, /etc/.login
  - /bin/ksh : /etc/profile, $HOME/.profile, $HOME/kshrc



PATH에 '.', '::'이 보인다면 모두 제거해준후 저장하여 제대로 수정되었는지 확인해보자.
재부팅을 해야 적용된다.

 

자 그러면 이제 환경변수 내에 '.' 과 같이 현재 위치를 참조하게 될 경우의 가정을 하나 들어보자.

 

위의 경로가

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 인데

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:./root/bin 다음과 같이 환경변수가 수정되었다고 하겠다.

 

해커가 본래 정상적으로 위치해야할 루트에 위치한 /bin외에

다른 곳에 /bin 폴더를 생성하여 그곳에 ls라는 악성파일을 숨겨두었다면

 

본래 사용하던 파일 목록을 조회하는 ls 대신 해커가 만들어둔 악성파일 ls로

대체되어 실행될것이다.

 

즉 평소에 관심을 가지고 점검하는 것이 좋겠다.

자세한 조치방법은 KISA 가이드에 나와있기때문에 생략하겠다.

728x90