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