■ 기준 : 상위 디렉터리에 이동제한을 설정한 경우
             WEB/WAS 결과보고서에서 해당 항목 진단
■ 현황 : 상위 디렉터리에 이동제한 설정 미흡
             해당 설정을 이용하여 중요 파일 및 데이터
              접근은 허가된 사용자만 가능하도록 제한
</Directory>
<Directory /home/chbank>
    AllowOverride AuthConfig
</Directory>
<Directory /home/ksaqua>
    AllowOverride AuthConfig

이하생략

사용자 인증을 하기 위해 각 디렉터리별로 httpd.conf 파일내 AllowOverride 지시자의 옵션 설정을 변경
AllowOverride None-->All로 변경

 

ALL변경이라는 것은 None만 빼고 어떠한 설정도 된다는 소리

 

※ 이미 U-10에서 불필요한 계정 제거에서 계정파악이 끝난 상태임 때문에,

    U-12 계정이 존재하지 않는 GID 금지의 경우 U-10에서 파악한 계정을 바탕

    으로 U-10에 계정이 존재하지 않으나 GID에 계정이 존재하는 경우 취약으로

    판단하면 됨

 

■ 2.9 SUID, SGID, Sticky bit 설정 및 권한 설정

 

프로세스 번호

 

-UNIX 시스템에서는 프로세스에 다섯 가지 번호 부여

 

1. 프로세스에 부여되는 번호들

1) 프로세스 식별자(PID), 실제 사용자 ID(RUID), 유효 사용자(EUID), 실제 사용자 그룹(RGID), 유효 사용자 그룹 ID(EGID)

 

2. 사용 용도

계정관리에 사용: RUID, RGID

접근 권한 결정에 사용: EUID, EGID(보안에 주의)

일반적으로 실제 번호와 유효 번호는 동일함

 

 

접근권한

권한 관리 변경 chmod, umask, 소유주 변경명령  chown, cggrp

접근 권한은 8진수 또는 r(읽기권한,4 ), w(쓰기권한, 2), x(실행권한,1) 문자로 표현 가능

8진수로 표현할 때는 권한의 합으로 표시함(예- 읽기+쓰기권한 6, 읽기+실행 권한 5 등)

8진수 3자리(ebit)로 소유자, 그룹 소유자, 기타 사용자를 위한 파일 모드를 설정

 

■ 접근 권한 설정 예제

접근권한을 755로 표현하는 것과 0755로 표현하는 것은 동일한 표현, 네 자리가 되지 않는 표현은 앞에 0이 생랴됨

 

■ 특수권한

UNIX 시스템은 파일에 대한 접근 권한 및 파일 종류를 나타내기 위해 16bit를 사용함

각 3bit씩 총 9bit는 소유자 접근권한(user), 그룹 소유자 접근권한(group), 기타 사용자 접근권한(other)의 권한을

기술하는데 사용

4bit는 파일의 종류 표현에 사용

3bit는 특수권한에 사용

 

 

 

setuid 비트 8진수 4000

-setuid 비트를 실행 파일에 적용하면 실 사용자(프로그램을 실제 실행 중인 사용자)에서 프로그램 소유자의 ID로(EUID)가 변경됨

 

1. setuid  비트를 설정하여 사용하는 경우

슈퍼유저 root만 접근할 수 있는 파일이나 명령에 대해, 일반 사용자로 접근하는 것이 기능상 필요한 경우

(setuid 비트가 설정된 파일은 실행순간만 그 파일의 소유자 권한으로 실행)

실행 순간만 권한을 빌려온다고 이해하면 쉬움

-매번 슈퍼유저 root가 어떤 행위를 해주지 않아도 되고, 일반 사용자에게 root권한을 주지 않아도 되기 때문에, setuid 비트를 적용하는 것이 시스템 운영면에서 효율적

 

-대부분 슈포유저가 소유한 소수 프로그램들에만 주어짐, 일반 사용자가 그 프로그램을 실행하면 setuid root가 되고,

슈퍼유저의 유효한 특권들을 가지고 실행되기 때문에 일반 사용자의 접근이 금지된 파일과 디렉토리들에 접근 가능하게 끔

 

2. setuid 비트 설정 시 보안 취약점

root 권한이 필요없는 프로그램에 소유주가 root로 되어 있고, setuid가 설정된 경우는 보안상 매우 취약

일반 사용자로 접근하는 경우도 setuid 설정으로 실행가능해지기 때문이다.

권한 상승 우려때문에 setuid 프로그램의 수는 반드시 최소화해야 함

 

3. setuid 비트 설정 방법

8진수(4000)나 기호(U+S)를 이용하여 setuid 비트를 설정할수 있음(setuid 비트설정 제거U-S)

권한 변경을 위해 chmod 명령어를 이용함

setuid 비트가 설정되어 있으면, 사용자 접근권한의 실행 권한 자리에 실행 권한이 있으면 소문자 S로 실행권한이 없으면 대문자S로 표시됨

 

4. setuid 비트 설정의 활용

1) 패스워드 설정, 변경시 사용

-패스워드 지정, 변경에 사용하는 /usr/bin/passwd 명령의 경우, setuid 비트가 설정 되어 있음(접근권한:4755)

-passwd 명령어(파일)로 패스워드 지정, 변경 시 /etc/passwd, /etc/shadow파일이 변경됨

-/etc/passwd의 접근권한: 0644(소유자 읽고 쓰기 가능, 그룹 읽기만 가능, 기타사용자 읽기만 가능)

-/etc/shadow의 접근권한: 0640(소유자 읽고 쓰기 가능, 그룹 읽기만 가능, 기타사용자 없음)

일반 사용자 계정에서 passwd 명령어 실행 시에 소유자 root권한으로 실행되기 때문에 슈퍼유저 root만 수정 가능한

/etc/passwd, /etc/shadow파일의 수정이 가능해짐

 

★ 사용자 접근처리


애플리케이션의 다양한 사용자 범주


익명의 사용자, 인가된 사용자, 관리적 사용자


① 인증 ② 세션관리 ③ 접근제어


공격자 핸들링


애플리케이션을 설계


에러 핸들링, 감사 로그 관리, 관리자에게 경고, 공격에의 반응


★ 중요한 이벤트는 모두 기록 되어야 함


로그인성공, 로그인 실패, 비밀번호 변경과 같은 인증 기능과 관련된 모든 이벤트


신용카드 결제와 자금 이동 같은 주요 거래


접근 제어 메커니즘에 의해 막혀진 접근 시도


잘 알려진 공격 문자열을 포함하고 있는 악의적인 의도를 명확하게 표시하는 요청



■ 대상: 리눅스

■ 취약점 개요

Cron 시스템은 Cron.allow 파일과 Cron.deny 파일을 통하여 명령어 사용자를 제한할 수 있으며 보안상 해당 파일에 대한 접근제한이 필요함

 

만약 Cron 접근제한 파일의 권한이 잘못되어 있을 경우 권한을 획득한 사용자가 악의적인 목적으로 임의의 계정을 등록하여 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있음

 

■ 보안대책

양호: cron 접근제어 파일 소유자가 root이고, 권한이 640이하인 경우

취약: cron 접근제어 파일 소유자가 root가 아니거나, 권한이 640이하가 아닌 경우

 

■ 조치방법

cron.allow, cron.deny 파일 소유자 및 권한 변경(소유자 root

 

 

 

+ Recent posts