20161103

시스템 보안 개론
Rootkit and Kernel Integrity Protection.
* 커널의 두 가지 핵심 역할은 program을 제어하는 것, 그리고 자원을 할당하는 것.
* 어떤 명령어들은 커널 모드에서만 실행 가능하다.
* mode bit은 누가 바꾸나? trap이 발생하면 커널이 mode bit을 바꿔주고, 시스템 콜의 시작 주소로 뛰도록 해 줌. 이같은 방식으로 모드에 따른 메모리 접근 권한 제어를 구현할 수도 있다. 모드 사이의 전환은 trap을 사용하면 됨.
* page table을 바꿀 수 있다면 보안 위협이 됨.
* rootkit은 운영체제의 권한을 갖는 악성 코드이다.
* 커널 모듈을 삽입하려면 리눅스 커널 버전과 같아야 한다.
* rootkit의 대표적인 유형은 두 가지가 있다. 커널 정적 데이터 변조 또는 동적 데이터 변조. 정적 데이터 변조는 system call table, IDT, .text.
* LKM hiding은 rootkit을 설치하는 기법 중 하나이다. LKM은 부팅 이후에 로딩 가능한 커널 모듈인데, 실제로는 로딩되어 있는데 로딩되어 있지 않은 것처럼 숨기는 것이 LKM hiding이다. 숨겨진 다음에는 찾아내기가 어렵다. 링크에서 빠져있기 때문에 찾아낼 수가 없다. LKM이 올라올 때마다 그 주소를 기억해두면 찾아낼 수도 있다. 공격받은 이후에 해당 주소를 지속적으로 검사해보고, unlink되어 있으면 invalidate시키면 됨.
* netfilter는 패킷이 들어올 때 callback해주는 것. 악성 코드가 이를 사용하면 들어오고 나가는 패킷을 모두 읽어볼 수 있음.
* 시스템 콜 테이블을 변조하여 unlink를 후킹하면 임의의 파일을 삭제하지 못하도록 할 수 있다.

Advertisements
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 98,685 hits
%d bloggers like this: