OSQUERY 설치 - Linux
- EDR에 활용될 수 있는 다양한 로그를 남겨주는 프로그램[프로세스/파일/레지스트리 생성, 네트워크 연결 정보 등]
osqueryi // osquery 실행
기본 쿼리 실습
- 모든 사용자 정보 확인 - users
select * from users;
- 모든 프로세스 정보 확인
select pid, path, name from processes;
- /usr/sbin 경로에서 실행된 프로세스 정보만 확인
select pid, path, name from processes where path like '/usr/bin%';
- ip 정보 확인
select * from interface_addresses;
- 현재 로그인한 사용자 확인
select * from logged_in_users;
- 현재 열려있는 포트정보 확인
select * from listening_ports;
- 명령어 실행 기록 확인
shell_history;
osquery 로깅 설정
- EDR을 구축하려면 명령어 입력없이 자동으로 값을 가져와야 하기 때문에 osqueryd를 사용
ex)
[
...
"listening_ports": {
"query": "SELECT pid, port, processes.path, cmdline, cwd FROM listening_ports JOIN processes USING (pid) WHERE port!=0;",
"interval" : 10,
"removed": false, ==> false면 기존에 없던 로그가 새로 생겼을 때 탐지를 함
...] => 쿼리 만들기
listening port를 조회해서 pid, port 등을 10초에 한 번씩 실행
쿼리 데몬 등록
var/log에 로그 생성 확인
sudo nc -l 55555 // 55555포트를 열면 log에서 해당 포트를 볼 수 있다
상기 로그를 splunk로 불러오기
splunkbase에서 add-on osquery 설치 후 conf설정하기
SPLUNK 연결 성공
index=main sourcetype="osquery:results" //conf에서 설정한 것처럼 나온 로그 확인
- 다시 listening port를 열고 splunk에서 보면 잡히는 걸 확인
index=main sourcetype="osquery:results" name="listening_ports"
SYSMON 설치 - Window
: EDR에 활용될 수 있는 다양한 로그를 남겨주는 프로그램
https://learn.microsoft.com/ko-kr/sysinternals/downloads/sysmon
https://github.com/SwiftOnSecurity/sysmon-config
config 파일은 탐지하는 항목, 탐지하지 않는 항목을 정리해놓은 설정파일이다
cmd 관리자 모드 > sysmon dir로 이동 > 아래 명령 입력 > 동의 > sysmon64 started. 뜨면 성공
C:\Windows\System32\winevt\Logs // 이 경로에 로그가 남는다
로그 생성은 설정했으니 로그 분석을 위해 slunk와 연결
SPLUNK와 연결하기
splunk 설정 > 데이터 전달 및 수신 > 데이터 수신 > 새로추가
포워더 --> splunk로 데이터가 이동
간단히 포워더는 데이터 송신.
포트만 정하면 끝.
9997이 열린 것을 확인
universial forwarder에서 sysmon 로그를 splunk로 보내기
universial forwarder 설치
https://www.splunk.com/en_us/download/universal-forwarder.html?locale=en_us
아이디 입력 > deployedment server는 아무것도 입력하지 말고 다음 > Reveiving indexer는 현재 splunk에 접속한 ip 입력[리눅스에서 ip:8000] , 포트는 9997 다음> 끝.
- splunk에서 로그를 잡을 때 splunk에서 생성되는 로그들이 많이 잡힌다.
ProcessCreate에서 exclude로 splunk에서 생성하는 로그들은 제외하도록 설정
threatHunting
설정 > 검색, 보고서 및 경고 > 앱 : ThreatHunting
- 각 항목은 마이터어택 지표에 따른 윈도우에서 악성행위를 탐지할 수 있는 쿼리 집합이다.
- event_id가 1이거나 윈도우 감사로그 event_id가 4688일 때 pocess가 파워쉘일 때 rar.exe를 실행하면 악성코드가 데이터를 유출하는 것으로 판단
- 스피어피싱 첨부파일
sysmon event_id가 13이며 레지스트리 키에 trustrecords가 들어가거나 키 path가 다음과 같을 때 스피어피싱 첨부파일을 연 것으로 판단
매크로 악성코드 제작 실습
워드 열기 > 파일 > 옵션 > 리본 사용자 지정 > 개발도구 체크 다음 > 매크로 열기 > AutoOpen으로 매크로 만들기[문서가 열릴 때마다 자동으로 실행하는 매크로] > 매크로 위치 설정(어디에 악성 매크로를 넣을지 정한다)
- 간단한 계산기 프로그램을 여는 코드
- 엑셀, 파워포은티 등 프로그램들이 파워쉘이나 cmd에서 실행되면 탐지하는 룰 적용
- 의심 룰 splunk에서 잡힌 calc.exe
EDR 탐지룰 제작
- Persistence - Office Application Startup(T1137)
(지속성) : 오피스 프로그램이 시작될 때마다 특정 매크로 코드가 실행되도록 설정 가능
워드 열기 > 파일 > 옵션 > 리본 사용자 지정 > 개발도구 체크 다음 > 매크로 열기 > AutoOpen으로 매크로 만들기
ID: T1137.001
워드와 엑셀을 각각 위치에 넣으면 명령어가 자동 실행한다.
Word Normal.dotm 위치:
C:\Users\<username>\AppData\Roaming\Microsoft\Templates\Normal.dotm
Excel Personal.xlsb 위치:
C:\Users\<username>\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
문서를 열때마다 코드가 자동으로 실행
-C:\Users\\AppData\Roaming\Microsoft\Templates\Normal.dotm경로에 파일을 지우면 코드가 실행되지 않는다.
- Persistence - CreateAccount(T1136)
: 지속적인 공격을 수행하기 위해 새로운 계정 생성 가능[계정 생성 명령어 net user <username> <password> \add]
cmd에서 명령어를 치면 sysmon 설정에서 로그를 잡아내 splunk에서 확인할 수 있다.
참고
https://www.osquery.io/schema/5.9.1/
https://attack.mitre.org/techniques/T1137/001/
'교육 및 자격증 > 빅데이터 기반 보안로그분석[splunk]' 카테고리의 다른 글
웹 해킹 로그 분석(sql, 파일 다운로드/업로드 ..) (0) | 2023.10.04 |
---|---|
SPL(Splunk Procedure Language) (0) | 2023.10.01 |
splunk 데이터 인덱싱 및 로그 분석[palo alto, v3] (0) | 2023.09.30 |
splunk 설치 (0) | 2023.09.30 |
빅데이터 기반 보안 로그 분석 (0) | 2023.09.30 |