전자 증거 수집#

plans-img Enterprise 플랜 에서 사용 가능

deployment-img 자체 호스팅 배포

전자 증거 수집(eDiscovery라고도 함)은 법적 사건에서 증거로 사용하기 위해 전자 데이터를 검색하는 프로세스를 의미합니다.

이 페이지에서는 전자 증거 수집을 위해 Mattermost에서 데이터를 추출하는 방법을 설명합니다. Mattermost에서 사용자 게시물 데이터를 추출하는 목표를 달성하기 위해 사용할 수 있는 세 가지 주요 방법이 있습니다:

각 옵션은 아래에서 자세히 설명합니다.

참고

소송 보존(법적 보존이라고도 함)은 전자 증거 수집의 확장으로, 기록 검색 외에도 현재 또는 향후 법적 사건과 관련될 수 있는 전자적으로 저장된 정보나 종이 문서는 폐기할 수 없습니다.

Mattermost 규정 준수 내보내기#

Mattermost Enterprise는 규정 준수 보고서 내보내기 기능을 제공합니다.

Mattermost는 메시지 내용과 해당 메시지를 본 사람을 포함한 규정 준수 관련 데이터를 세 가지 형식(Actiance XML, Global Relay EML, 일반 CSV)으로 내보낼 수 있습니다. 보고서는 지연 기반으로 실행되도록 구성하고 공유 위치에 저장할 수 있습니다.

내보내기 기능과 보고 설정 방법에 대한 자세한 내용은 문서 를 참조하세요.

Mattermost RESTful API#

Mattermost API를 사용하여 Mattermost Enterprise의 일부인 CSV 규정 준수 형식으로 사용자의 게시물을 내보낼 수 있습니다. 다음 섹션에서는 API를 사용하여 특정 사용자에 대한 보고서를 생성하고 검색하는 방법을 설명합니다. Mattermost API의 전체 문서는 https://api.mattermost.com에서 확인할 수 있습니다.

API를 사용하려면 먼저 여기 에 설명된 대로 인증해야 합니다. 인증에 사용하는 계정은 manage_system 권한이 있어야 합니다. curl을 사용하는 경우 다음 명령어로 인증할 수 있습니다:

curl -i -d '{"login_id": "username", "password": "password"}' https://yourmattermosturl/api/v4/users/login

Mattermost는 다음과 같은 응답을 반환합니다:

HTTP/2 200
server: nginx/1.10.3 (Ubuntu)
date: Thu, 12 Jul 2018 14:43:45 GMT
content-type: application/json
content-length: 679
set-cookie: MMAUTHTOKEN=yi94pwci6ibjfc9phbikhqutbe; Path=/; Expires=Sat, 11 Aug 2018 14:43:45 GMT; Max-Age=2592000; HttpOnly; Secure
set-cookie: MMUSERID=qfjzamfg47bu9gsyyfbqjk4s6a; Path=/; Expires=Sat, 11 Aug 2018 14:43:45 GMT; Max-Age=2592000; Secure
token: yi94pwci6ibjfc9phbikhqutbe
x-request-id: 5y45pxyfxpb8updtge1zts39he
x-version-id: 5.0.0.5.0.1.18c0fbd759664a85fe95132bb7fc04cf.true

응답으로 전송된 token 값을 Bearer 방식을 사용하여 향후 API 요청의 Authorization 헤더에 포함하세요. 예:

curl -i -H 'Authorization: Bearer yi94pwci6ibjfc9phbikhqutbe http://yourmattermosturl/api/v4/users/me'

Mattermost에 인증되면 규정 준수 API를 사용하여 새 규정 준수 보고서 생성 할 수 있습니다. 아래의 curl 기반 예제는 인증 토큰을 기반으로 요청을 보내고 Mattermost에 craig@mattermost.com 이메일 주소를 가진 사용자의 2017년 12월 31일 오후 8시 15분부터 2018년 12월 31일 오후 8시 15분까지의 게시물을 포함하는 보고서를 생성하도록 요청하는 방법을 보여줍니다:

참고

JSON 페이로드의 데이터는 Unix Epoch 형식이어야 합니다. https://www.epochconverter.com/ 와 같은 도구는 필요한 형식으로 변환할 때 유용할 수 있습니다.

curl --header "Content-Type: application/json" \
--request POST \
-H 'Authorization: Bearer yi94pwci6ibjfc9phbikhqutbe' \
--data '{"id":"","create_at":0,"user_id":"craig","status":"","count":0,"desc":" ","type":"","start_at":1514769359000,"end_at": 1546305359000,"keywords":"","emails":"craig@mattermost.com"}' \
https://yourmattermosturl/api/v4/compliance/reports

게시가 성공하면 Mattermost는 서버가 규정 준수 내보내기 프로세스를 실행 중임을 나타내는 다음과 같은 메시지를 반환합니다:

{"id":"du6kektczifqxexeroywpz3nbc"," create_at":1531444617901, "user_id":"qfjzamfg47bu9gsyyfbqjk4s6a", "status":"running", "count":0, "desc":" ", "type":"adhoc", "start_at":1514769359000, "end_at":1546305359000, "keywords":"", "emails":"craig@mattermost.com"}

내보내기 프로세스가 완료되면(실행 시간은 반환할 레코드 수와 현재 서버 부하에 따라 다름) 다음 curl 요청과 같은 보고서가 포함된 zip 파일을 검색하고 다운로드하기 위해 Mattermost에 다른 HTTP Post 요청을 보내야 합니다:

curl --request GET \
-H 'Authorization: Bearer p9o1qx457fbc9gdrn39z9ah59o' \
--data '{"status_code":0,"id":"du6kektczifqxexeroywpz3nbc","message":"","requestion_id":""}' \
--output report-zip.zip \
https://yourmattermosturl/api/v4/compliance/reports/du6kektczifqxexeroywpz3nbc/download

요청을 보낼 때는 보고서가 생성되었을 때 Mattermost가 반환한 응답에서 보고서 ID를 가져와야 합니다. 또한 파일을 저장할 이름을 지정해야 합니다. 위 예제에서는 파일이 report-zip.zip 으로 저장됩니다.

Mattermost 데이터베이스#

표준 SQL을 사용하여 Mattermost 데이터베이스에서 메시지를 선택하는 것은 매우 쉽습니다. 사용자 이름을 알고 있다면 다음 쿼리를 사용하여 지정된 사용자의 모든 메시지를 선택할 수 있습니다:

SELECT * FROM mattermost.Posts WHERE UserId = (SELECT Id FROM mattermost.Users WHERE Username = 'username');

메시지가 게시된 날짜와 시간을 기준으로 쿼리 결과를 제한하려면 위 쿼리를 다음과 같이 수정할 수 있습니다:

SELECT * FROM mattermost.Posts WHERE UserId = (SELECT Id FROM mattermost.Users WHERE Username = 'username' AND CreateAt > 1530405832000 AND CreateAt < 1532997832000);

참고

Mattermost 데이터베이스는 날짜와 시간 스탬프를 Unix Epoch 형식으로 저장합니다. Epoch Converter 와 같은 도구는 필요한 형식으로 변환할 때 유용할 수 있습니다.