프로세스 회계 기능은 어디에서 데이터를 가져오나요?

프로세스 회계 기능은 어디에서 데이터를 가져오나요?

나는 최근에 발견했다Unix 시스템의 프로세스 계산 기능. 기본적으로 이는 결코 제거되지 않은 레거시 리소스 사용량 기록 시스템인 것으로 보입니다.

아주 먼 옛날부터(실제로 사람들이 사용한 컴퓨터 주기에 따라 실제로 돈을 지불해야 했던 때부터 거슬러 올라갑니다) Unix와 그 복제품에는 프로세스 회계(acct)라는 시스템이 내장되어 있었습니다. 이를 통해 시스템 관리자는 이를 알 수 있었습니다. 사용자가 무엇을 하고 있는지 정확하게 파악하고 이에 따라 비용을 청구할 수 있습니다. acct 기능은 오늘날까지도 대부분의 Unix 및 Linux 시스템에 여전히 존재합니다.- @마젠코

사이버 보안 관점에서 이것은 사용자가 bash 기록을 삭제할 수 있고 (이 외에도) 기본적으로 borne 쉘 명령에 대한 기록이 없기 때문에 매우 흥미롭습니다.

다음을 수행하여:

sudo apt-get install acct
sudo /etc/init.d/acct start
sudo lastcomm

...그리고 다음과 같은 기록을 얻을 수 있는 다른 많은 관련 명령 및 옵션도 있습니다.

mandb             F    man      pts/4      0.00 secs Mon Dec  6 13:33
mandb             F    man      pts/4      0.00 secs Mon Dec  6 13:33
acct.postinst          root     pts/4      0.00 secs Mon Dec  6 13:33
systemctl              root     pts/4      0.00 secs Mon Dec  6 13:33
systemd-tty-ask  S     root     pts/4      0.00 secs Mon Dec  6 13:33
accton           S     root     __         0.00 secs Mon Dec  6 13:33

이는 기본적으로 모든 유형의 쉘을 포함하는 강력하고 광범위한 쉘 기록입니다. 그러나 이것이 어떻게 작동하는지 더 많이 배우는 데 어려움을 겪고 있습니다. 이 명령이 가져오는 데이터는 어디에 있습니까? 저는 공격자가 이 데이터에 얼마나 쉽게 액세스하고 삭제할 수 있는지, 또는 우리가 데이터를 백업하기 위해 액세스할 수 있는 위치에 대해 자세히 알아보려고 합니다.

답변1

계정(5), 또는 acct - 프로세스 회계 파일은 다음과 같이 말합니다.

프로세스 계정 옵션(CONFIG_BSD_PROCESS_ACCT)이 활성화된 상태로 커널이 빌드된 경우 다음을 호출합니다. 계정(2)프로세스 회계를 시작합니다. 예를 들면 다음과 같습니다.

acct("/var/log/pacct");

프로세스 계정이 활성화되면 커널은 시스템의 각 프로세스가 종료될 때 계정 파일에 레코드를 씁니다. 이 레코드에는 종료된 프로세스에 대한 정보가 포함되어 있으며 에 정의되어 있습니다 <sys/acct.h>.

파일의 일반적인 기본 위치는 /var/log/account/pacct데이터가 저장되는 위치입니다.

more불행하게도 이 파일은 일반 텍스트 파일이 아니므로 또는 명령을 사용하여 보지 마십시오 tail. 대신 덤프 계정 보려면 명령을 내리세요.

답변2

그것을 발견.

/var/log/account/pacct

관련 정보