OS X Auditor

OS X Auditor는 무료 Mac OS X 컴퓨터 포렌식 도구입니다.
OS X Auditor는 실행 중인 시스템 또는 분석하려는 시스템의 사본에서 다음 아티팩트를 파싱하고 해싱합니다:
- 커널 확장
- 시스템 에이전트 및 데몬
- 타사 에이전트 및 데몬
- 오래되고 더 이상 사용되지 않는 시스템 및 타사 시작 항목
- 사용자 에이전트
- 사용자의 다운로드된 파일
- 설치된 애플리케이션
다음을 추출합니다:
- 사용자의 격리된 파일
- 사용자의 Safari 기록, 다운로드, 상위 사이트, LastSession, HTML5 데이터베이스 및 로컬 저장소
- 사용자의 Firefox 쿠키, 다운로드, 양식 기록, 권한, 방문 기록 및 로그인 정보
- 사용자의 Chrome 기록 및 보관된 기록, 쿠키, 로그인 데이터, 상위 사이트, 웹 데이터, HTML5 데이터베이스 및 로컬 저장소
- 사용자의 소셜 및 이메일 계정
- 감사 대상 시스템이 연결된 WiFi 액세스 포인트 (및 위치 추정 시도)
또한 .plist 자체에서 의심스러운 키워드를 검색합니다.
다음에서 각 파일의 평판을 확인할 수 있습니다:
- Team Cymru의 MHR
- VirusTotal
- 자체 로컬 데이터베이스
다음 디렉토리의 모든 로그를 zip 파일로 집계할 수 있습니다:
- /var/log (-> /private/var/log)
- /Library/logs
- 사용자의 ~/Library/logs
마지막으로 결과는 다음과 같을 수 있습니다:
- 간단한 txt 로그 파일로 렌더링 (cat-pipe-grep 할 수 있음… 또는 그냥 grep)
- HTML 로그 파일로 렌더링
- Syslog 서버로 전송
저자
Jean-Philippe Teissier - @Jipe_ 외
개발 상태
OS X Auditor는 더 이상 유지 관리되지 않습니다 - 사용하지 마십시오
지원
OS X Auditor는 주말 프로젝트로 시작되었으며 더 이상 유지 관리되지 않습니다. Yelp의 훌륭한 사람들이 osxcollector를 만들어 포크했습니다.
osxcollector (https://github.com/Yelp/osxcollector) 사용을 권장합니다.
설치 방법
GitHub에서 모든 파일을 복사하기만 하면 됩니다.
종속성
Mac에서 OS X Auditor를 실행하려면 pyobjc를 통해 OS X Foundation에서 완전한 plist 파싱 지원을 받을 수 있습니다:
pyobjc를 설치할 수 없거나 Mac OS X 이외의 OS에서 OS X Auditor를 실행하려는 경우 plist 파싱에 문제가 발생할 수 있습니다:
pip install biplist
pip install plist
Python에서 작동하는 기본 plist 모듈을 사용할 수 있게 되면 이러한 종속성은 제거됩니다.
실행 방법
- OS X Auditor는 python >= 2.7.2 (2.7.9는 괜찮음)에서 잘 실행됩니다. 아직 다른 버전의 python에서는 실행되지 않습니다 (plist 악몽 때문).
- OS X Auditor는 최신 OS X 버전에서 작동하도록 유지 관리됩니다. 이전 OS X 버전에서는 최선을 다할 것입니다.
- 실행 중인 시스템에서 사용하려면 root (또는 sudo를 통해)로 실행해야 합니다. 그렇지 않으면 일부 시스템 및 다른 사용자의 파일에 액세스할 수 없습니다.
- 환경 변수에서 API 키를 사용하는 경우 (아래 참조) 사용자 환경 변수를 사용하려면
sudo -E를 사용해야 합니다.
osxauditor.py -h를 입력하여 사용 가능한 모든 옵션을 확인한 다음 선택한 옵션으로 실행하십시오.
예: [sudo -E] python osxauditor.py -a -m -l localhashes.db -H log.html
환경 변수 설정
VirusTotal API:
export VT_API_KEY=aaaabbbbccccddddeeee
변경 로그
0.4.3
0.4.2
- 변경: API 키를 코드에서 환경 변수로 이동
0.4.1
- 변경: LaunchAgentPlist에서 일반적인 백도어 검색
0.4
- 새 기능: 시스템 로그에서 이벤트 (부팅/종료, 최대 절전 모드 진입/종료, sudo 명령, USB 장치, tty 열림/닫힘)를 추출하고 (아직 읽을 수 없는) 타임라인 생성 (-e/eventlogs)
- 새 기능: 사용자의 LoginItems 추출
- 새 기능: 사용자의 RecentItems 추출
- 새 기능: Safari 아티팩트에서 LastSession 추출
- 새 기능: 시스템 그룹 및 사용자 세부 정보 추출
- 수정: 잘못된 os.path.join() 호출
- 수정: 재귀적 ParsePackagesDir()의 버그
0.3.1
- 새 기능: 감사 대상 시스템의 시스템 이름, 버전 및 빌드 정보 제공
- 새 기능: 설치된 애플리케이션 분석 기능 (-i/--installedapps)
- 새 기능: Google Chrome 아티팩트에서 보관된 기록 추출
- 새 기능: 사람이 읽을 수 있는 HTML 로그 보고서 :)
- 수정: HTMLLog() 및 SYSLOGLog()가 이제 예외 처리
- 수정: ParsePackagesDir()이 이제 재귀적이며 앱이나 커널 확장만 파싱하려고 시도합니다. 일부 DEBUG 출력도 추가됨
- 수정: 대규모 UTF-8/UNICODE 개선
- 수정: ParsePackagesDir()에서 .DS_Store 및 .localized 파일 무시
0.3
- 새 기능: -b/--browsers 옵션으로 Google Chrome 아티팩트 (기록 및 보관된 기록, 쿠키, 로그인 데이터, 상위 사이트, 웹 데이터, HTML5 데이터베이스 및 로컬 저장소) 파싱 기능
- 새 기능: Airport 환경 설정에서 감사 대상 시스템이 연결된 Wi-Fi AP를 추출하고 Geomena를 사용하여 위치 추정 시도 (-A/--airportprefs). 위치 추정을 활성화하려면 -g/--wifiapgeolocate를 사용해야 합니다 (또는 코드에서 GEOLOCATE_WIFI_AP를 True로 설정).
- 새 기능: 사용자의 소셜 및 이메일 계정 추출 기능 (-U/--usersaccounts)
- 수정: 특히 라이브 시스템을 감사할 때 잠긴 sqlite 데이터베이스 처리 기능
- 수정: 중복 해시 제거
- 수정: HTML 출력에서 md5 더 잘 식별
- 변경: 출력을 명확히 하기 위해 섹션 (시작 항목, 패키지 디렉토리, DB 테이블 등)이 비어 있는지 표시
- 변경: 다운로드 아티팩트 (-d/--downloads)에 이전 및 새 Mail.app 기본 다운로드 디렉토리 포함
0.2.1
- 변경/수정: 매우 큰 파일을 해싱하고 MemoryError 예외를 방지하며 메모리 사용량을 줄이기 위해 BigFileMd5() 함수 구현
- 수정: ParseQuarantines()에서 LSQuarantineEvent의 UTF-8 항목 처리
0.2
- 새 기능: 결과를 원격 syslogd 서버로 전송 기능 (-S)
- 새 기능: 감사 대상 시스템에서 발견된 모든 로그 파일의 zip 파일 생성 기능 (-z)
- 변경: 시작 아티팩트 분석에 오래되고 더 이상 사용되지 않는 StartupItems 포함
- 변경: 시작 아티팩트 분석에 ScriptingAdditions 포함
- 변경: 격리된 아티팩트 분석에 Mac OS X 10.6 이하 시스템을 위한 이전 QuarantineEvents 포함
- 변경: Python ⟷ Objective-C 브리지 (PyObjC) 및 OS X Foundation을 사용한 plist 처리 대폭 개선
- 변경: 옵션 매개변수 일부 변경 (-t, -l)
- 변경: 라이선스가 CC에서 GPL로 변경됨
- 변경: 디버그 수준이 출력 로그에서 더 일관되게 됨
- 변경: Bootstrap CSS의 작은 변경
- 변경: VirusTotal 조회가 이제 일괄 모드로 수행됨
- 수정: Program 및 ProgramArguments 키를 모두 포함하는 plist 파일에서 ParseLaunchAgents()의 버그
0.1
디자인 및 기능

아티팩트
사용자
-
Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
-
Library/Preferences/com.apple.LaunchServices.QuarantineEvents
-
Library/Preferences/com.apple.loginitems.plist
-
Library/Mail Downloads/
-
Library/Containers/com.apple.mail/Data/Library/Mail Downloads
-
Library/Accounts/Accounts3.sqlite
-
Library/Containers/com.apple.mail/Data/Library/Mail/V2/MailData/Accounts.plist
-
Library/Preferences/com.apple.recentitems.plist
-
Firefox
- Library/Application Support/Firefox/Profiles/
- cookies.sqlite
- downloads.sqlite
- formhistory.sqlite
- places.sqlite
- signons.sqlite
- permissions.sqlite
- addons.sqlite
- extensions.sqlite
- content-prefs.sqlite
- healthreport.sqlite
- webappsstore.sqlite
- Library/Safari/
- Downloads.plist
- History.plist
- TopSites.plist
- LastSession.plist
- Databases
- LocalStorage
- Library/Application Support/Google/Chrome/Default/
- History
- Archived History
- Cookies
- Login Data
- Top Sites
- Web Data
- databases
- Local Storage
시스템
- /System/Library/LaunchAgents/
- /System/Library/LaunchDaemons/
- /System/Library/ScriptingAdditions/
- /System/Library/StartupItems/Library/ScriptingAdditions/
- /System/Library/Extensions/
- /System/Library/CoreServices/SystemVersion.plist
- /Library/LaunchAgents/
- /Library/LaunchDaemons/
- /Library/StartupItems/
- /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
- /Library/logs
- /var/log
- /etc/localtime
- StartupParameters.plist
- /private/var/db/dslocal/nodes/Default/groups/admin.plist
- /private/var/db/dslocal/nodes/Default/users
할 일
- /private/var/db/dslocal/nodes/Default/users에서 사용자 정보 추출
관련 작업
Disk Arbitrator
Disk Arbitrator는 디스크 장치 이미징 중 올바른 포렌식 절차가 따르도록 사용자를 돕기 위해 설계된 Mac OS X 포렌식 유틸리티입니다. Disk Arbitrator는 기본적으로 Disk Arbitration 프레임워크의 사용자 인터페이스로, 프로그램이 파일 시스템의 자동 마운트를 포함한 블록 스토리지 장치 관리에 참여할 수 있게 합니다. 활성화되면 Disk Arbitrator는 파일 시스템이 읽기-쓰기로 마운트되어 증거 무결성을 위반하는 것을 방지하기 위해 파일 시스템 마운트를 차단합니다.
https://github.com/aburgh/Disk-Arbitrator
Volafox
volafox, 일명 'Mac OS X 메모리 분석 툴킷'은 python 2.x로 개발되었습니다.
https://code.google.com/p/volafox/
Mandiant Memoryze(tm) for the Mac
Mac용 Memoryze는 사고 대응자가 Mac의 메모리에서 악성 요소를 찾을 수 있도록 도와주는 무료 메모리 포렌식 소프트웨어입니다. Mac용 Memoryze는 메모리 이미지를 획득 및/또는 분석할 수 있습니다. 오프라인 메모리 이미지 또는 라이브 시스템에서 분석을 수행할 수 있습니다.
http://www.mandiant.com/resources/download/mac-memoryze
Volatility MacMemoryForensics
https://code.google.com/p/volatility/wiki/MacMemoryForensics
라이선스
OS X Auditor
Copyright (C) 2013-2015 Jean-Philippe Teissier
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
Bootstrap과 JQuery는 각각의 GPL 호환 라이선스를 가지고 있습니다.