오픈 소스 트립와이어

**오픈 소스 트립와이어**(Open Source Tripwire)는 다양한 시스템에서 특정 파일 변경을 모니터링하고 경고하는 자유 소프트웨어 보안 및 데이터 무결성 도구이다. 원래 유진 H. 스패포드와 진 김이 개발했다. 이 프로젝트는 2000년 트립와이어(Tripwire, Inc.)가 기여한 코드를 기반으로 한다. GNU 일반 공중 사용 허가서 조건에 따라 출시되었지만 더 이상 유지 관리되지 않는다. 마지막 업데이트는 2018년에 있었다.

이것은 기준 데이터베이스를 생성한 다음, 파일 파일 시스템의 상태를 데이터베이스와 정기적으로 비교하여 작동한다. 변경 사항(예: 일부 파일의 추가 또는 수정)을 감지하면 이러한 변경 사항을 보고서에 포함하여 보안 관리자가 이러한 변경 사항을 확인할 수 있도록 한다.

## 역사
트립와이어는 1991년 초에 발생한 일련의 은밀한 침입에 대응하여 1992년 유진 스패포드 박사와 진 김이 만들었다. 이러한 공격은 바이러스가 공유 라이브러리를 감염시켜 CRC 체크섬이 변경되지 않도록 하여 기존 보안 시스템을 우회했다. 트립와이어는 하나의 해싱 알고리즘이 손상된 후에도 신뢰성을 유지하기 위해 다른 해시 계열(예: MD5 및 Snefru)의 메시지 다이제스트 함수를 사용하도록 설계되었다.

"트립와이어"라는 이름은 침입자가 접근했을 때 관리자에게 경고하는 트랩 또는 트립와이어 파일에서 유래한다. 스패포드는 다음과 같이 회상한다.

트립와이어는 C로 작성되었으며, 그 설계는 프로그램과 데이터베이스의 소프트웨어 이식성에 중점을 두었다. 1992년 11월 2일, 베타 테스트를 위해 출시되었다. 1993년 12월, 여러 버그를 식별하고 수정한 후 공식 출시가 이루어졌다. 초기 버전은 클린룸 스타일로 개발되었는데, 진 김이 개발을 담당하고 유진 스패포드가 인수 검사를 실행했다.

트립와이어는 처음에는 무료 오픈 소스였지만 1997년에 상용화되었다. 오픈 소스 트립와이어는 2000년 10월 GNU 일반 공중 사용 허가서에 따라 출시되었다.

2015년 5월 4일, 소스 코드가 소스포지에서 깃허브로 옮겨졌다.

## 개요
320px|섬네일|트립와이어의 상위 수준 운영 모델 다이어그램
설치 과정에서 오픈 소스 트립와이어는 사용자에게 사이트 키와 로컬 키 비밀구절을 설정하도록 요청한다. 사이트 키 비밀구절은 여러 시스템에서 공유되는 정책 및 구성 파일을 암호화한다. 로컬 비밀구절은 특정 시스템의 파일을 보호하는 데 사용된다. 정책 파일에는 스캔할 파일 및 디렉터리 목록과 규칙(예: 디렉터리 구조의 어떤 속성을 확인할지)이 포함된다.

오픈 소스 트립와이어는 나중에 파일 서명으로 초기 데이터베이스를 생성할 때 로컬 비밀구절을 요청한다. 시스템의 첫 번째 스캔을 실행하고 결과를 데이터베이스에 저장한다. 그 후 무결성 검사를 실행하고 결과를 데이터베이스와 비교한다. 예를 들어 새 파일이 생성되면 후속 무결성 검사 보고서에 나열된다. 오픈 소스 트립와이어는 정기적으로 무결성 검사를 실행하고 시스템 관리자에게 보고 이메일을 보내도록 구성할 수 있다. 시스템이 손상될 위험에 처하기 전에 데이터베이스를 초기화해야 한다.

사용자는 중요한 정보가 있는 것처럼 보이는 트립와이어 파일(예: `master-password.txt`라는 파일)을 만들고 오픈 소스 트립와이어를 구성하여 이러한 파일을 추적하여 엿보는 침입자를 잡을 수 있다. 침입자가 이 파일을 읽으면 접근 타임스탬프가 업데이트되고 보안 관리자에게 이 사건이 통보된다.

트립와이어 엔터프라이즈와 달리 오픈 소스 트립와이어는 윈도우에서는 사용할 수 없으며 기본적인 정책만 제공한다. 윈도우 사용자는 시그윈을 사용하여 오픈 소스 트립와이어를 실행할 수 있지만, 윈도우 레지스트리와 같은 윈도우 특정 속성은 스캔하지 않는다.

## 세부 사항
### 정책 파일
정책 파일은 `twpol.txt`(이전 버전에서는 `tw.config`)라고 불리며, 어떤 파일과 디렉토리를 모니터링해야 하는지 알려준다. 이는 전처리기를 지원하여 관리자가 여러 다른 시스템에 대해 단 하나의 정책 파일만 작성할 수 있도록 한다. 정책 파일에는 각 파일 또는 디렉토리와 함께 어떤 속성을 무시하고 어떤 속성을 보고할지 알려주는 선택 마스크가 있다. 예를 들어, 선택 마스크는 수정 타임스탬프, 링크 수, 파일 크기, 권한 및 모드의 변경 사항을 보고하도록 작성할 수 있지만, 접근 타임스탬프의 변경은 무시한다. 또한 트립와이어가 디렉토리로 재귀해야 하는지, 즉 하위 디렉토리, 그 하위 디렉토리의 하위 디렉토리 등을 확인해야 하는지 여부를 지정하는 옵션도 있다.

정책 파일의 예시:

```makefile
# system binaries
SYSBIN =  +pngu+sm;

/usr/local/bin/pwgen  -> $(SYSBIN);
/usr/bin -> $(SYSBIN);
/usr/sbin -> $(SYSBIN);

/etc/security   -> +pug  (recurse=-1);

# ignore last log
!/etc/security/lastlog;

# logs
SYSLOGS = +p-lum;

/var/adm/messages -> $(SYSLOGS);
/opt -> $(SYSBIN);
# ignore these do not scan
!/opt/dump;
!/opt/freeware;
```


스패포드와 김의 "트립와이어 설계 및 구현: 파일 시스템 무결성 검사기"에 있는 정책 파일의 다음 예시는 전처리 언어를 사용한다. 여기서는 특정 호스트의 프린터 로그가 있는 디렉토리를 무시하는 데 사용되며, 이 디렉토리는 다른 모든 호스트에서 스캔된다. 따라서 전처리를 통해 이 특정 호스트와 다른 호스트에서 동일한 정책 파일을 사용할 수 있으며, 그렇지 않으면 사용자는 별도의 정책 파일을 작성해야 한다.

```makefile
# file/dir selection-mask
/etc R # all files under /etc
@@ifhost solaria.cs.purdue.edu
!/etc/lp # except for SVR4 printer logs
@@endif
/etc/passwd R+12 # you can't be too careful
/etc/mtab L # dynamic files
/etc/motd L
/etc/utmp L
=/var/tmp R # only the directory, not its contents
```


### 구성 파일

구성 파일은 `twcfg.txt`라고 불리며, 정책 파일, 데이터베이스 파일, 보고서 파일 등의 경로에 대한 정보를 포함한다. 또한 메일 설정(예: 보고서가 포함된 이메일을 보내는 데 사용할 프로그램)에 대한 항목도 있다. 구성 파일의 예시:

```makefile
ROOT                   =/opt/freeware/sbin
POLFILE                =/etc/tripwire/tw.pol
DBFILE                 =/var/lib/tripwire/$(HOSTNAME).twd
REPORTFILE             =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
SITEKEYFILE            =/etc/tripwire/site.key
LOCALKEYFILE           =/etc/tripwire/$(HOSTNAME)-local.key
EDITOR                 =/usr/bin/vi
LATEPROMPTING          =false
LOOSEDIRECTORYCHECKING =false
MAILNOVIOLATIONS       =true
EMAILREPORTLEVEL       =3
REPORTLEVEL            =3
MAILMETHOD             =SENDMAIL
SYSLOGREPORTING        =false
MAILPROGRAM            =/usr/sbin/sendmail -oi -t
```


### 데이터베이스 파일
데이터베이스 파일은 여러 시스템에서 공유될 수 있는 정책 및 구성 파일과 달리 각 시스템에 고유하다. 파일 권한, 수정 날짜 및 파일 서명을 저장한다. 각 파일에 대해 데이터베이스는 최대 10개의 서명을 저장할 수 있다. 데이터베이스는 파일의 내용을 저장하지 않는다. 왜냐하면 파일의 내용을 저장하면 너무 많은 디스크 공간을 사용하기 때문이다. 데이터베이스 파일은 인간이 읽을 수 있는 형태로, 사용자는 개별 파일의 속성을 확인하고 데이터베이스의 잠재적 변조를 확인할 수 있다.

무결성 검사에서 새 파일이 감지되었지만 해당 경로가 정책 파일에 항목이 없는 경우, 트립와이어는 가장 가까운 상위 항목을 선택하고 해당 선택 마스크를 복사하거나, 항목을 전혀 찾을 수 없는 경우 기본 선택 마스크를 사용한다. 트립와이어에는 업데이트된 모든 파일을 검토하는 과정을 간소화하는 대화형 업데이트 모드가 있다. 생성, 삭제 또는 수정된 각 파일에 대해 해당 데이터베이스 항목을 변경해야 하는지 여부를 묻는다.

### 서명
해시 충돌의 영향(즉, 파일이 변경되어도 서명이 변경되지 않는 것)을 최소화하기 위해 트립와이어는 여러 다른 해싱 알고리즘을 사용하여 각 파일에 대한 여러 서명을 계산한다. 다른 해싱 알고리즘은 성능이 다르므로 트립와이어는 어떤 서명을 사용할지, 얼마나 자주 사용할지 구성할 수 있도록 한다. 예를 들어, 시스템을 CRC32 서명을 매시간 비교하고 MD5 서명을 매일 비교하도록 구성할 수 있다. 이렇게 하면 시간별 무결성 검사가 더 빠르게 실행되고, CRC32 체크섬을 변경하지 않고 파일이 수정되더라도 일일 무결성 검사 중에 보고된다. 트립와이어는 서명 루틴에 대한 일반 인터페이스를 제공하므로 사용자가 자신만의 체크섬 방법을 포함할 수 있다.

## 같이 보기

* AIDE
* 호스트 기반 침입 탐지 시스템 비교
* OSSEC
* 삼하인

## 각주

## 외부 링크
* Tripwire, Inc.
* 

분류:리눅스 보안 소프트웨어
분류:자유 보안 소프트웨어
분류:C++로 작성된 자유 소프트웨어
분류:GPL 라이선스 소프트웨어