커널을 패치하지 않고 Linux 커널용 신호 로거를 찾고 있습니다.
팅커링에 관한 기사를 많이 찾았지만 관심이 없습니다.
기본 Ubuntu 13.04를 실행하고 있습니다.
# uname -a
Linux bt 3.8.0-26-lowlatency #18-Ubuntu SMP PREEMPT Tue Jun 25 22:36:04 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
필요한 것: pid, comm(발신자) -> 신호(번호 0-31) -> pid, comm(포수)
또한 좋을 것입니다:
pidtree of sender ----- - - - - - receiver(cmd) ---- child1 of receiver, etc
/ \----child2---child1 of child2(cmd)
ppid(+cmd) ----child3(+cmd)
/ \__child4(+cmd)
ppid of ppid(cmd)
....
/
init
포수 역시 마찬가지다. + 타임스탬프.
내가 발견한 것:
grsecurity 패치도 비슷한 구현을 가지고 있습니다.
우분투에서 이를 달성하려면 쉽고 간단한 방법이 필요합니다.
답변1
부분적인 해결책을 드릴 수 있습니다.
사용심사Linux 커널의 하위 시스템. 감사 하위 시스템은 코어 덤프 신호를 기록합니다. 코어 덤프 신호는 다음과 같습니다.
- ABRT
- FPE
- 아픈
- 사직하다
- SEGV
- 덫
- 체계
- 최초 반응자
- 버스
- XCPU
- 신퓨즈
감사 로그는 /var/log/audit.log에서 찾을 수 있습니다. 코어 덤프 신호에 대한 감사 로그는 다음과 같습니다.
type=ANOM_ABEND msg=audit(1386433952.455:141): auid=1000 uid=1000 gid=1000 ses=2 pid=6664 comm="bash" reason="memory violation" sig=24
위는 사용자 UID 1000의 6664를 처리하기 위해 SIGXCPU 신호를 로깅하는 예입니다. 이 로그에서 "catcher"의 comm 및 pid 세부 정보를 확인할 수 있습니다. 로그의 이유 필드가 손상되었습니다. 이 로그를 가지고도 우리는 여전히 발신자에 대해 아무것도 모릅니다.
구성 세부정보를 확인할 수 있습니다.여기