실행된 모든 파일과 커널이 읽은 모든 파일의 목록을 얻기 위해 Ubuntu 서버를 감사하고 싶습니다.

실행된 모든 파일과 커널이 읽은 모든 파일의 목록을 얻기 위해 Ubuntu 서버를 감사하고 싶습니다.

사전 구축된 서버에서 계측 및 분석하고 읽은 모든 파일 목록을 얻을 수 있기를 원합니다.

또한 프로그램을 실행하거나, 라이브러리를 로드하거나, 응용 프로그램에서 읽기 위해 커널이 어떤 파일을 읽는지 확인하고 싶습니다.

나는 그것이 간단할 것이라고 생각했다. SELinux는 기본적으로 거부하고 허용 모드에서는 모든 것을 기록합니다. 따라서 규칙 없이 설치하고 허용 모드에서 실행하면 모든 것이 기록됩니다.

이 질문은 다음과 관련이 있습니다.Security SE에 관한 것입니다.왜냐면 나도 그 포스터와 비슷한 일을 겪고 있으니까. SELinux나 다른 감사 패키지에서 실행하면 많은 로드가 발생하고 관찰 중인 시스템의 동작이 변경될 수 있다는 문제도 있습니다.

답변1

특정 조사를 통해 파일을 읽은 이유, 실행 파일로 읽든 구성 파일로 읽든 상관이 없다는 사실을 깨달았습니다. 이 시점에서는 중요하지 않습니다. 그래서 다시 찾아보니 printf %T@가 생성 시간을 인쇄하고 %A@가 액세스 시간을 인쇄하므로 이 시간이 거의 같다면 설치 이후 파일이 수정되지 않은 것입니다. 아직 결과를 처리하는 중이지만 가능성이 있어 보입니다. 저는 오픈 소스 코드의 라이선스를 얻기 위해 팀과 협력하고 있지만 솔직히 코드는 매우 간단합니다. 설치를 권장합니다자유 시간최상의 결과를 얻으려면

find_args=(-xdev -type f -printf "%p|%T@|%A@\\n")
find / $find_args > logfile.psv

##path|creation_time|access_time을 포함하는 PSV 파일(파이프 분리 값 파일)을 생성합니다.

내가 원하는 것을 상당히 안정적으로 수행합니다. 직접 CSV를 사용해 보았지만 일부 우분투 펌웨어 모듈의 이름에는 ","가 포함되어 있지만 "|"가 포함된 Linux 파일을 게시할 만큼 용감한 사람은 없을 것 같습니다. 이름만큼은 고민 끝에 하기로 결정했어요.

내 애플리케이션의 요구 사항 중 하나는 종속성이 0이므로 Python 기반 또는 Perl 기반 솔루션은 작동하지 않습니다.

간단한 "와 결합가방 폭발기"최근에 사용되지 않은 파일을 찾으면 해당 파일이 제공된 설치 패키지를 상호 참조할 수 있습니다.

관련 정보