설치된 소프트웨어를 감사하는 명령

설치된 소프트웨어를 감사하는 명령

여기 질문과 비슷합니다.https://serverfault.com/questions/387111/inventory-or-audit-installed-linux-software, 설치된 소프트웨어를 감사하기 위해 다양한 Linux/Unix 배포판에서 실행해야 하는 명령에 대한 아이디어를 얻고 싶습니다. 최소한 다음 사용 사례를 다루어야 합니다.

  1. 패키지에서 설치된 소프트웨어
  2. 소스에서 설치된 소프트웨어
  3. 알 수 없거나 예상치 못한 위치에 설치된 소프트웨어

또한 CentOS/RedHat, SuSE 및 Macintosh 운영 체제에서 실행되어야 합니다. 소프트웨어 설치와 관련하여 제가 고려한 몇 가지 아이디어는 다음과 같습니다. 그러나 그것이 얼마나 실용적인지는 잘 모르겠습니다.

  • 실행 중인 프로세스 나열 및 출력에서 ​​추론
  • 수신 대기 또는 열린 포트를 나열하고 출력에서 ​​추론
  • 다양한 CLI 명령을 실행하고 출력을 이해해 보세요.
  • 기본 패키지 관리자에서 덤프를 수행하거나 설치된 패키지를 나열합니다.
  • find 명령을 실행하여 특정 파일이나 파일 이름을 찾습니다. 일부 소프트웨어가 존재한다고 가정하는 구성 파일도 찾을 수 있습니다.

최종 목표는 작동하는 명령을 갖고 결과 출력을 파일에 저장하는 것입니다. 나는 감사, 기록 보관 및 특별히 발표된 취약점에 취약한 호스트를 결정하기 위해 로컬로 또는 SSH를 통해 다양한 시스템에서 실행하는 데 이를 사용할 것입니다.

답변1

CentOS/RedHat과 SuSE에는 한 가지 공통점이 있습니다. 둘 다 패키지 형식으로 RPM을 사용한다는 것입니다. 따라서 해야 할 한 가지는 rpm -Va결과를 기준으로 저장하고 나중에 비교하는 것입니다(원치 않는 변경 사항이 있는지 확인하려는 경우).

이는 모든 rpm의 모든 파일을 검사하므로 파일 집약적입니다.

설치된 항목만 나열하십시오. rpm -qahr-resources 소프트웨어 설치 트리에서 해당 snmp-bulkwalk를 사용하거나 수행하십시오(Mac에서 snmp가 활성화된 경우 Mac에서도 작동해야 함).

또 다른 아이디어는 HIDS(호스트 기반 침입 감지 시스템)를 사용하는 것입니다. 예를 들어 aide,...famsamhain

실행 중인 프로세스의 경우 출력이 netstat -tulnp흥미롭습니다. 어떤 프로세스 연관을 해결할 수 있습니다.

수동으로 설치한 부분("소스에서")은 다루기가 어렵습니다. IMHO, 가장 좋은 접근 방식은 그러한 것을 (적어도 생산에서는) 금지하는 정책을 갖는 것입니다. 또는 이러한 프로그램을 인벤토리 데이터베이스에 수동으로 등록해야 합니다.

관련 정보