개발자 | Brad Spengler (Spender) |
---|---|
저장소 | |
운영 체제 | 리눅스 |
플랫폼 | 리눅스 커널 |
종류 | 보안 |
라이선스 | GPL v2[1] |
웹사이트 | grsecurity |
grsecurity는보안 강화를 강조한리눅스 커널패치들의 집합이다.[2] 이것은 일반적으로웹 서버나 사용자들에게 셸 접근을 제공하는 시스템 같이 신뢰되지 않은 위치에서 원격 접속을 받는 컴퓨터 시스템들에서 사용된다.
grsecurity 번들 중에서 주요한 요소는PaX이다. 무엇보다도 데이터 메모리, 스택을 실행 불가능하게 또는 쓰기 불가능하게 표시하는 패치를 한다. 목적은버퍼 오버플로 같은 많은 보안 취약점들을 예방하는데 도움을 주는, 메모리의 겹쳐쓰기 방지이다. PaX는 또한 쉽게 예측 가능한 메모리 주소에 의존한 공격들의 가능성을 감소시키기 위해 중요한 메모리 주소를 난수화하는 주소 공간 배치 난수화 (ASLR)를 제공한다. PaX는 grsecurity 개발자들에 의해 개발되지 않았다. 이것은 젠투 리눅스 등의 리눅스 배포판들에서 사용 가능하다.[3]
grsecurity의 또 다른 주목할만한 요소로역할 기반 접근 제어 (RBAC) 시스템의 완전한 제공이 있다. RBAC는 사용자들과 프로세스들이 정확히 동작하고 그 이상의 일을 하지 않게 하기 위한 절대 최소 권한을 갖는 완전한 최소 권한 시스템을 만들기 위한 목적을 위해, 일반적으로유닉스접근 제어 목록에 의해 제공되는 것보다 낮은시스템에 대한 접근을 제한하기 위해 고안되었다. 만약 시스템이 감염되면 이 방식은 공격자의 시스템에 대한 정보 획득과 파괴에 대한 능력을 대폭 감소시킬 수 있다. 각 역할은 할 수 있는 것과 없는 것에 대한 각 제한들을 가지며 이러한 역할과 제한들은 필요한 경우 수정될 수 있는접근 정책을 형성한다.
RBAC 기능들 목록:
grsecurity는 여러 취약점들과권한 확대 공격들을 예방하기 위해 다양한 방식으로 chroot를 제한한다. 다음은 추가적인 검사이다:
kill
,ptrace
(architecture-independent),capget
,setpgid
,getpgid
그리고getsid
금지fcntl
에 의한 시그널 보내기 금지pivot_root
금지fchdir
금지chdir("/")
(f)chmod +s
금지mknod
금지sysctl
쓰기 금지grsecurity는 또한 리눅스 커널에 대한 강화된감사를 제공한다. 무엇보다도 사용자, 장치들의마운팅/언마운팅, 시스템 시간과 데이터에 대한 변화, 그리고 chdir
로깅이라는 특정한 그룹을 감사하기 위한 방식으로 설정될 수 있다. 다른 감사 타입들 중 몇몇은 거부된 자원 시도, 실패한 fork
시도와 IPC 생성, 삭제 그리고 exec
로깅을 관리자가 인자들과 함께 기록할 수 있게 한다.
신뢰된 경로 실행은 사용자가root 사용자에 의해 소유되지 않은 바이너리를 실행하는 것을 예방하는데 사용되는 선택적인 기능이다. 이것은 사용자들로부터 자신의 악의적인 바이너리를 실행하는 것으로부터 그리고 실수로 악의적인 사용자에 의해 수정된 시스템 바이너리를 실행하는 것으로부터 방어한다.
grsecurity는 또한 chroot "jails"의 작동을 강화한다. chroot jail은 특정한 프로세스를 시스템의 나머지로부터 고립시키는데 사용될 수 있어서 서비스가 감염되었을 때 피해를 최소화시킬 수 있다. grsecurity가 방어하려고 하는 chroot jail의 탈출에 관한 여러 방식들이 존재한다.
또한 보안을 강화시키고 root 사용자에 대한 dmesg
와 netstat
명령어를 제한하는 것 같이 사용자가 시스템에 관한 불필요한 정보를 얻는 것을 막는 기능들도 존재한다.[4]
다음은 추가적인 기능들과 보안 개선 사항들이다: