๐ ๋ณด์๋๊ตฌ์ ๋ํ์: OSQuery๋ก ์๋ํฌ์ธํธ ๋ณด์ ๋ชจ๋ํฐ๋ง ๋ง์คํฐํ๊ธฐ ๐ต๏ธโโ๏ธ

์๋ ํ์ธ์, ๋ณด์ ๋ํ ์ฌ๋ฌ๋ถ! ์ค๋์ ์๋ํฌ์ธํธ ๋ณด์์ ํซํ ํธ๋ ๋, OSQuery์ ๋ํด ๊น์ด ํํค์ณ๋ณผ ๊ฑฐ์์. ์ด ๊ธ์ ๋ค ์ฝ๊ณ ๋๋ฉด ์ฌ๋ฌ๋ถ๋ OSQuery ๋ง์คํฐ๊ฐ ๋ ์ ์์ ๊ฑฐ์์! ใ ใ ใ ์, ๊ทธ๋ผ ์์ํด๋ณผ๊น์? ๐
๐ก Pro Tip: OSQuery๋ Facebook์ด ๊ฐ๋ฐํ ์คํ์์ค ๋๊ตฌ๋ก, SQL ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํด ์ด์ ์ฒด์ ์ ๋ก์ฐ ๋ ๋ฒจ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์์งํ ์ ์์ด์. ์์ ๊ฟํ ์ด์ฃ !
1. OSQuery, ๋๋์ฒด ๋ญ๊ธธ๋? ๐ค
OSQuery๋ ๋ง์น ์ด์ ์ฒด์ ๋ฅผ ํ๋์ ๊ฑฐ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฒ๋ผ ๋ค๋ฃฐ ์ ์๊ฒ ํด์ฃผ๋ ๋ง๋ฒ ๊ฐ์ ๋๊ตฌ์์. ์๋์ฐ, ๋งฅOS, ๋ฆฌ๋ ์ค ๋ฑ ๋ค์ํ ์ด์ ์ฒด์ ์์ ์ฌ์ฉํ ์ ์์ด์ ์ง์ง ํธ๋ฆฌํ์ฃ . ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์์คํ ์ ์ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ , ๋ณด์ ์ํ์ ๋น ๋ฅด๊ฒ ํ์งํ ์ ์์ด์.
OSQuery์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋ฐ๋ก SQL ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ค๋ ๊ฑฐ์์.
SQL์ ์กฐ๊ธ์ด๋ผ๋ ์๋ ์ฌ๋์ด๋ผ๋ฉด ๋๊ตฌ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ฃ . ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌํ๋ฏ์ด ์์คํ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์์ผ๋๊น ์์ ์ง๊ด์ ์ด์์!์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด OSQuery๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ํ๋์ ์ ์ ์์ฃ ? ์ด์ ์ฒด์ ์ ์ ๋ณด๋ฅผ SQL ์ฟผ๋ฆฌ๋ก ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์๋ค๋, ์ ๋ง ํ์ ์ ์ด์ง ์๋์? ๐
2. OSQuery ์ค์นํ๊ธฐ: ์ด๋ณด์๋ ํ ์ ์์ด์! ๐ช
์, ์ด์ OSQuery๋ฅผ ์ค์นํด๋ณผ ์ฐจ๋ก์์. ๊ฑฑ์ ๋ง์ธ์, ์๊ฐ๋ณด๋ค ํจ์ฌ ์ฌ์์!
์๋์ฐ์ ์ค์นํ๊ธฐ
- OSQuery ๊ณต์ ์น์ฌ์ดํธ(https://osquery.io)์์ ์๋์ฐ์ฉ ์ธ์คํจ๋ฌ๋ฅผ ๋ค์ด๋ก๋ํด์.
- ๋ค์ด๋ก๋ํ ์ธ์คํจ๋ฌ๋ฅผ ์คํํ๊ณ ์ค์น ๋ง๋ฒ์ฌ์ ์ง์๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉด ๋!
๋งฅOS์ ์ค์นํ๊ธฐ
๋งฅ ์ฌ์ฉ์๋ผ๋ฉด Homebrew๋ฅผ ์ด์ฉํด ์ฝ๊ฒ ์ค์นํ ์ ์์ด์.
brew update
brew install osquery
๋ฆฌ๋ ์ค์ ์ค์นํ๊ธฐ
์ฐ๋ถํฌ๋ ๋ฐ๋น์ ๊ณ์ด์ด๋ผ๋ฉด ๋ค์ ๋ช ๋ น์ด๋ก ์ค์นํ ์ ์์ด์.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo add-apt-repository "deb [arch=amd64] https://pkg.osquery.io/deb deb main"
sudo apt update
sudo apt install osquery
๐ ์ถํํด์! ์ด์ OSQuery๊ฐ ์ฌ๋ฌ๋ถ์ ์์คํ ์ ์ค์น๋์์ด์. ๋ณด์์ ์ธ๊ณ๋ก ํ ๊ฑธ์ ๋ ๋ค๊ฐ๊ฐ๋ค์!
3. OSQuery ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ: SQL๋ก ์์คํ ์ ํดํน(?)ํด๋ณด์! ๐ต๏ธโโ๏ธ
OSQuery๋ฅผ ์ค์นํ๋ค๋ฉด ์ด์ ์ค์ ๋ก ์ฌ์ฉํด๋ณผ ์ฐจ๋ก์์. OSQuery๋ osqueryi๋ผ๋ ๋ํํ ์์ ์ ๊ณตํด์. ์ด ์์์ SQL ์ฟผ๋ฆฌ๋ฅผ ์คํํด ์์คํ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์์ฃ .
ํฐ๋ฏธ๋์ด๋ ๋ช ๋ น ํ๋กฌํํธ๋ฅผ ์ด๊ณ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด๋ณด์ธ์:
osqueryi
์ง์! OSQuery ์์ ๋ค์ด์์ด์. ์ด์ SQL ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํด ์์คํ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์์ด์.
๊ธฐ๋ณธ์ ์ธ ์ฟผ๋ฆฌ ์์
- ์คํ ์ค์ธ ํ๋ก์ธ์ค ๋ชฉ๋ก ์กฐํํ๊ธฐ
- ์ค์น๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ชฉ๋ก ๋ณด๊ธฐ
- ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ํ ํ์ธํ๊ธฐ
- ์ฌ์ฉ์ ๊ณ์ ์ ๋ณด ์กฐํํ๊ธฐ
SELECT name, pid, path FROM processes;
SELECT name, version, install_location FROM apps;
SELECT * FROM listening_ports;
SELECT * FROM users;
์ด๋ฐ ์์ผ๋ก SQL ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํด ์์คํ ์ ๊ฑฐ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์์ด์. ์์ ์ฉ๋ค, ๊ทธ์ตธ? ใ ใ ใ
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด OSQuery๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ํ๋์ ์ ์ ์์ฃ ? SQL ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅํ๋ฉด OSQuery ์์ง์ด ์ด๋ฅผ ํด์ํ๊ณ , ์ด์ ์ฒด์ ์์ ํ์ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด์. ์ ๋ง ๊ฐ๋จํ๊ณ ํจ์จ์ ์ด์ฃ ?
4. OSQuery๋ก ์๋ํฌ์ธํธ ๋ณด์ ๋ชจ๋ํฐ๋งํ๊ธฐ: ๋ณด์ ์ ๋ฌธ๊ฐ์ฒ๋ผ! ๐ฆธโโ๏ธ
์, ์ด์ OSQuery์ ๊ธฐ๋ณธ์ ์์์ผ๋ ์ค์ ๋ก ์๋ํฌ์ธํธ ๋ณด์ ๋ชจ๋ํฐ๋ง์ ์ด๋ป๊ฒ ํ์ฉํ ์ ์๋์ง ์์๋ณผ๊น์?
1. ์์ฌ์ค๋ฌ์ด ํ๋ก์ธ์ค ํ์งํ๊ธฐ
์ ์ฑ ํ๋ก์ธ์ค๋ ์ข ์ข ์ด์ํ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์๊ฑฐ๋, ํน์ดํ ๊ฒฝ๋ก์์ ์คํ๋ผ์. ๋ค์ ์ฟผ๋ฆฌ๋ก ์์ฌ์ค๋ฌ์ด ํ๋ก์ธ์ค๋ฅผ ์ฐพ์๋ณผ ์ ์์ด์.
SELECT name, path, pid
FROM processes
WHERE path NOT LIKE 'C:\Windows\%'
AND path NOT LIKE 'C:\Program Files\%'
AND path NOT LIKE 'C:\Program Files (x86)\%';
์ด ์ฟผ๋ฆฌ๋ ์ผ๋ฐ์ ์ธ Windows ์์คํ ๊ฒฝ๋ก ์ธ์์ ์คํ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ฐพ์๋ด์. ๋ฌผ๋ก ๋ชจ๋ ๊ฒฐ๊ณผ๊ฐ ์ ์ฑ์ ์๋๊ฒ ์ง๋ง, ์์ฌ์ค๋ฌ์ด ๋๋ค์ ๊ณจ๋ผ๋ด๋ ๋ฐ ๋์์ด ๋์ฃ !
2. ๋น์ ์์ ์ธ ๋คํธ์ํฌ ์ฐ๊ฒฐ ํ์งํ๊ธฐ
ํด์ปค๋ค์ ์ข ์ข ํน์ดํ ํฌํธ๋ฅผ ํตํด ์์คํ ์ ์ ๊ทผํ๋ ค๊ณ ํด์. ๋ค์ ์ฟผ๋ฆฌ๋ก ๋น์ ์์ ์ธ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ฐพ์๋ณผ ์ ์์ด์.
SELECT DISTINCT processes.name, listening_ports.port, listening_ports.address, processes.pid
FROM processes
JOIN listening_ports ON processes.pid = listening_ports.pid
WHERE listening_ports.port > 1024;
์ด ์ฟผ๋ฆฌ๋ 1024๋ฒ ์ด์์ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ธ์ค๋ฅผ ์ฐพ์๋ด์. ๋๋ถ๋ถ์ ํ์ค ์๋น์ค๋ 1024๋ฒ ์ดํ์ ํฌํธ๋ฅผ ์ฌ์ฉํ๋, ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ์ฐ๊ฒฐ์ ์ฃผ์ ๊น๊ฒ ์ดํด๋ณผ ํ์๊ฐ ์์ฃ .
3. ์ต๊ทผ์ ์์ ๋ ํ์ผ ํ์ธํ๊ธฐ
์ ์ฑ ํ๋ก๊ทธ๋จ์ด ์์คํ ์ ์นจํฌํ๋ฉด ์ข ์ข ํ์ผ์ ์์ ํ๊ฑฐ๋ ์๋ก์ด ํ์ผ์ ์์ฑํด์. ๋ค์ ์ฟผ๋ฆฌ๋ก ์ต๊ทผ์ ์์ ๋ ํ์ผ์ ํ์ธํ ์ ์์ด์.
SELECT path, filename, mtime
FROM file
WHERE path LIKE 'C:\Users\%'
AND mtime > (SELECT datetime('now', '-1 day'))
ORDER BY mtime DESC
LIMIT 20;
์ด ์ฟผ๋ฆฌ๋ ์ง๋ 24์๊ฐ ๋์ ์ฌ์ฉ์ ๋๋ ํ ๋ฆฌ์์ ์์ ๋ ํ์ผ 20๊ฐ๋ฅผ ๋ณด์ฌ์ค์. ๊ฐ์๊ธฐ ์ด์ํ ํ์ผ์ด ์๊ฒผ๋ค๋ฉด ๋ญ๊ฐ ์์ํ ๊ฑฐ๊ฒ ์ฃ ?
4. ์๋ ์คํ ํ๋ก๊ทธ๋จ ํ์ธํ๊ธฐ
๋ง์ ์ ์ฑ ํ๋ก๊ทธ๋จ๋ค์ด ์์คํ ์์ ์ ์๋์ผ๋ก ์คํ๋๋๋ก ์ค์ ๋ผ์. ๋ค์ ์ฟผ๋ฆฌ๋ก ์๋ ์คํ ํ๋ก๊ทธ๋จ ๋ชฉ๋ก์ ํ์ธํ ์ ์์ด์.
SELECT name, path, source
FROM startup_items;
์ด ๋ชฉ๋ก์์ ๋ฏ์ ํ๋ก๊ทธ๋จ์ ๋ฐ๊ฒฌํ๋ค๋ฉด, ๊ผญ ํ์ธํด๋ณด์ธ์! ์ ์ฑ ํ๋ก๊ทธ๋จ์ผ ์๋ ์์ผ๋๊น์.
5. USB ์ฅ์น ๋ชจ๋ํฐ๋งํ๊ธฐ
USB ์ฅ์น๋ฅผ ํตํ ์ ์ฑ ์ฝ๋ ์ ์ ๋ ํํ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ด์์. ๋ค์ ์ฟผ๋ฆฌ๋ก ์์คํ ์ ์ฐ๊ฒฐ๋ USB ์ฅ์น๋ฅผ ํ์ธํ ์ ์์ด์.
SELECT * FROM usb_devices;
์ด ์ฟผ๋ฆฌ๋ก ํ์ฌ ์ฐ๊ฒฐ๋ ๋ชจ๋ USB ์ฅ์น์ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ด์. ๋ฏ์ ์ฅ์น๊ฐ ๋ณด์ธ๋ค๋ฉด ์ฃผ์๊ฐ ํ์ํด์!
๐ Mini Quiz: OSQuery๋ก ์ด๋ค ์ ๋ณด๋ฅผ ์กฐํํ ์ ์์๊น์?
- ์คํ ์ค์ธ ํ๋ก์ธ์ค
- ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ํ
- ์ค์น๋ ์ ํ๋ฆฌ์ผ์ด์
- ์์คํ ์ฌ์ฉ์ ์ ๋ณด
์ ๋ต: ๋ชจ๋ ๋ค! OSQuery๋ ์ด ๋ชจ๋ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์กฐํํ ์ ์์ด์. ๋๋จํ์ฃ ? ๐
5. OSQuery์ ๊ณ ๊ธ ๊ธฐ๋ฅ: ํ๋ก ๋ณด์ ์ ๋ฌธ๊ฐ ๋๊ธฐ ๐
์ง๊ธ๊น์ง OSQuery์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์์๋ดค์ด์. ์ด์ ์ข ๋ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ดํด๋ณผ๊น์? ์ด ๋ถ๋ถ์ ๋ง์คํฐํ๋ฉด ์ฌ๋ฌ๋ถ๋ ํ๋ก ๋ณด์ ์ ๋ฌธ๊ฐ๊ฐ ๋ ์ ์์ด์!
1. ์ค์ผ์ค๋ง๋ ์ฟผ๋ฆฌ ์คํํ๊ธฐ
OSQuery๋ osqueryd๋ผ๋ ๋ฐ๋ชฌ ํ๋ก์ธ์ค๋ฅผ ์ ๊ณตํด์. ์ด๋ฅผ ์ด์ฉํ๋ฉด ์ฃผ๊ธฐ์ ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ก๊ทธ๋ก ์ ์ฅํ ์ ์์ฃ .
๋จผ์ , ์ค์ ํ์ผ์ ๋ง๋ค์ด์ผ ํด์. ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ osquery.conf ํ์ผ์ ๋ง๋ค์ด๋ณด์ธ์:
{
"schedule": {
"process_check": {
"query": "SELECT name, path, pid FROM processes WHERE path NOT LIKE 'C:\\Windows\\%';",
"interval": 3600
},
"network_check": {
"query": "SELECT * FROM listening_ports WHERE port > 1024;",
"interval": 3600
}
}
}
์ด ์ค์ ํ์ผ์ 1์๊ฐ(3600์ด)๋ง๋ค ์์ฌ์ค๋ฌ์ด ํ๋ก์ธ์ค์ ๋น์ ์์ ์ธ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ํ์ธํ๋ ์ฟผ๋ฆฌ๋ฅผ ์คํํด์.
์ด์ ๋ค์ ๋ช ๋ น์ด๋ก osqueryd๋ฅผ ์คํํ์ธ์:
osqueryd --config_path=osquery.conf --verbose
์ด๋ ๊ฒ ํ๋ฉด OSQuery๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๊ณ์ ์คํ๋๋ฉด์ ์ฃผ๊ธฐ์ ์ผ๋ก ์์คํ ์ ๋ชจ๋ํฐ๋งํด์. ์์ ํธํ์ฃ ? ใ ใ ใ
2. ํ์ผ ๋ฌด๊ฒฐ์ฑ ๋ชจ๋ํฐ๋ง (FIM)
OSQuery์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ค ํ๋๊ฐ ๋ฐ๋ก ํ์ผ ๋ฌด๊ฒฐ์ฑ ๋ชจ๋ํฐ๋ง์ด์์. ์ค์ํ ์์คํ ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด ์ฆ์ ์ ์ ์์ฃ .
osquery.conf ํ์ผ์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํด๋ณด์ธ์:
{
"file_paths": {
"system": [
"C:\\Windows\\System32\\drivers\\etc\\hosts",
"C:\\Windows\\System32\\config\\SAM"
]
}
}
์ด ์ค์ ์ hosts ํ์ผ๊ณผ SAM ํ์ผ์ ๋ณ๊ฒฝ์ ๋ชจ๋ํฐ๋งํด์. ์ด ํ์ผ๋ค์ด ๋ณ๊ฒฝ๋๋ฉด ํดํน์ ์งํ์ผ ์ ์์ผ๋ ์ฃผ์ ๊น๊ฒ ๋ด์ผ ํด์!
3. ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ชจ๋ํฐ๋ง
OSQuery๋ ์ค์๊ฐ์ผ๋ก ์์คํ ์ด๋ฒคํธ๋ฅผ ๋ชจ๋ํฐ๋งํ ์ ์์ด์. ์๋ฅผ ๋ค์ด, ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ์์๋ ๋๋ง๋ค ์๋ฆผ์ ๋ฐ์ ์ ์์ฃ .
osquery.conf ํ์ผ์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํด๋ณด์ธ์:
{
"events": {
"windows_events": {
"event_categories": ["process_creation"],
"event_sources": ["Microsoft-Windows-Security-Auditing"]
}
}
}
์ด ์ค์ ์ผ๋ก Windows ์์คํ ์์ ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ๋๋ง๋ค ์ด๋ฒคํธ๋ฅผ ์บก์ฒํ ์ ์์ด์. ์ ์ฑ ํ๋ก๊ทธ๋จ์ ์คํ์ ์ค์๊ฐ์ผ๋ก ํ์งํ ์ ์๋ ๊ฑฐ์ฃ !
4. ์ฌ์ฉ์ ์ ์ ํ ์ด๋ธ ๋ง๋ค๊ธฐ
OSQuery์ ๋ ๋ค๋ฅธ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ์ ์ ํ ์ด๋ธ์ ๋ง๋ค ์ ์๋ค๋ ๊ฑฐ์์. ์๋ฅผ ๋ค์ด, ํน์ ๋ ์ง์คํธ๋ฆฌ ํค๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ ์ด๋ธ์ ๋ง๋ค ์ ์์ด์:
CREATE TABLE custom_registry (
path TEXT,
name TEXT,
type TEXT,
data TEXT
);
INSERT INTO custom_registry
SELECT path, name, type, data
FROM registry
WHERE path LIKE 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run%';
์ด ์ฟผ๋ฆฌ๋ Windows์ ์๋ ์คํ ํ๋ก๊ทธ๋จ ๋ ์ง์คํธ๋ฆฌ ํค๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ์ฌ์ฉ์ ์ ์ ํ ์ด๋ธ์ ๋ง๋ค์ด์. ์ด์ 'SELECT * FROM custom_registry;'๋ก ์ธ์ ๋ ์ด ์ ๋ณด๋ฅผ ์กฐํํ ์ ์์ฃ !
5. ๋ถ์ฐ ์ฟผ๋ฆฌ ์ฌ์ฉํ๊ธฐ
์ฌ๋ฌ ๋์ ์ปดํจํฐ๋ฅผ ํ ๋ฒ์ ๋ชจ๋ํฐ๋งํด์ผ ํ๋ค๋ฉด? OSQuery์ ๋ถ์ฐ ์ฟผ๋ฆฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ผ์!
๋จผ์ , ์ค์ ์๋ฒ๋ฅผ ์ค์ ํ๊ณ ๊ฐ ํด๋ผ์ด์ธํธ์ ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ ์ถ๊ฐํด์:
{
"options": {
"distributed_interval": 60,
"distributed_tls_max_attempts": 3,
"distributed_tls_read_endpoint": "/distributed_read",
"distributed_tls_write_endpoint": "/distributed_write",
"distributed_plugin": "tls"
}
}
์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ 60์ด๋ง๋ค ์ค์ ์๋ฒ์ ์ฐ๊ฒฐํด์ ์๋ก์ด ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์์ค๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ์กํด์. ๋๊ท๋ชจ ๋คํธ์ํฌ ๋ชจ๋ํฐ๋ง์ด ํ๊ฒฐ ์ฌ์์ง์ฃ !
๐ก Pro Tip: OSQuery๋ฅผ ์ฌ์ฉํ ๋๋ ํญ์ ์ต์ ๋ฒ์ ์ ์ ์งํ์ธ์. ๋ณด์ ๋๊ตฌ์ธ ๋งํผ, ์๋ก์ด ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋๋ฉด ๋น ๋ฅด๊ฒ ํจ์น๊ฐ ์ด๋ค์ง๋๊น์!
6. OSQuery์ ์ค์ ํ์ฉ ์ฌ๋ก: ํ์ฅ์์๋ ์ด๋ ๊ฒ ์จ์! ๐ต๏ธโโ๏ธ
์ง๊ธ๊น์ง OSQuery์ ์ด๋ก ๊ณผ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์์๋ดค์ด์. ์ด์ ์ค์ ํ์ฅ์์ OSQuery๊ฐ ์ด๋ป๊ฒ ํ์ฉ๋๊ณ ์๋์ง ๋ช ๊ฐ์ง ์ฌ๋ก๋ฅผ ํตํด ์ดํด๋ณผ๊น์?
1. ๋์ฌ์จ์ด ํ์ง
๋์ฌ์จ์ด๋ ํ๋ ๊ธฐ์ ์ ํฐ ์ํ์ด ๋๊ณ ์์ด์. OSQuery๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ฌ์จ์ด์ ํ๋์ ์ด๊ธฐ์ ํ์งํ ์ ์์ด์.
SELECT f.path, f.filename, f.size, f.mtime, h.md5, h.sha1, h.sha256
FROM file f
JOIN hash h ON f.path = h.path
WHERE f.path LIKE 'C:\Users\%\Desktop\%'
AND f.mtime > (SELECT datetime('now', '-1 hour'))
AND (f.filename LIKE '%.encrypted' OR f.filename LIKE '%.locked' OR f.filename LIKE '%.crypted');
์ด ์ฟผ๋ฆฌ๋ ์ต๊ทผ 1์๊ฐ ๋์ ๋ฐ์คํฌํฑ์ ์์ฑ๋ ํ์ผ ์ค ๋์ฌ์จ์ด๊ฐ ํํ ์ฌ์ฉํ๋ ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ์ ์ฐพ์๋ด์. ์ด๋ฐ ํ์ผ์ด ๊ฐ์๊ธฐ ๋ง์ด ์๊ฒผ๋ค๋ฉด ๋์ฌ์จ์ด ๊ฐ์ผ์ ์์ฌํด๋ณผ ์ ์์ฃ !
2. ๋ด๋ถ์ ์ํ ํ์ง
๋๋ก๋ ์กฐ์ง ๋ด๋ถ์ ์ํ์ด ์ธ๋ถ ์ํ๋งํผ์ด๋ ์ํํ ์ ์์ด์. OSQuery๋ก ๋ด๋ถ์์ ์์ฌ์ค๋ฌ์ด ํ๋์ ๋ชจ๋ํฐ๋งํ ์ ์์ด์.
SELECT u.username, f.filename, f.path, f.size, f.mtime
FROM users u
JOIN file f ON f.uid = u.uid
WHERE f.path LIKE 'C:\Users\%\Downloads\%'
AND f.size > 1000000000 -- 1GB ์ด์
AND f.mtime > (SELECT datetime('now', '-24 hours'));
์ด ์ฟผ๋ฆฌ๋ ์ง๋ 24์๊ฐ ๋์ ์ฌ์ฉ์๊ฐ ๋ค์ด๋ก๋ํ 1GB ์ด์์ ํฐ ํ์ผ์ ์ฐพ์๋ด์. ๋ฌผ๋ก ์ ์์ ์ธ ๊ฒฝ์ฐ๋ ์๊ฒ ์ง๋ง, ๋๋์ ๋ฐ์ดํฐ ์ ์ถ์ ์๋ํ๋ ๋ด๋ถ์๋ฅผ ํฌ์ฐฉํ ์๋ ์์ฃ !
3. ์ ๋ก๋ฐ์ด ์ทจ์ฝ์ ๋์
์๋ก์ด ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋๋ฉด ๋น ๋ฅด๊ฒ ๋์ํด์ผ ํด์. OSQuery๋ฅผ ์ฌ์ฉํ๋ฉด ์ทจ์ฝํ ์์คํ ์ ์ ์ํ๊ฒ ์๋ณํ ์ ์์ด์.
SELECT name, version, install_location
FROM apps
WHERE name LIKE '%์ทจ์ฝํ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฆ%'
AND version < '์์ ํ ๋ฒ์ ๋ฒํธ';
์ด๋ฐ ์์ ์ฟผ๋ฆฌ๋ก ์ทจ์ฝํ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค์น๋ ์์คํ ์ ๋น ๋ฅด๊ฒ ์ฐพ์๋ผ ์ ์์ด์. ํจ์น๊ฐ ํ์ํ ์์คํ ์ ์ฐ์ ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ์ฃ ?
4. ๋คํธ์ํฌ ์ด์ ํ๋ ํ์ง
ํดํน๋ ์์คํ ์ ์ข ์ข ์ด์ํ ๋คํธ์ํฌ ํ๋์ ๋ณด์ฌ์. OSQuery๋ก ์ด๋ฐ ํ๋์ ํ์งํ ์ ์์ด์.
SELECT DISTINCT p.name, p.path, l.port, l.address, p.pid
FROM processes p
JOIN listening_ports l ON p.pid = l.pid
WHERE l.port > 1024
AND l.address != '127.0.0.1'
AND p.name NOT IN ('chrome.exe', 'firefox.exe', 'iexplore.exe ', 'edge.exe', 'Teams.exe', 'Zoom.exe');
์ด ์ฟผ๋ฆฌ๋ ์ผ๋ฐ์ ์ธ ๋ธ๋ผ์ฐ์ ๋ ํ์ํ์ ์ฑ์ ์ ์ธํ๊ณ , 1024๋ฒ ์ด์์ ํฌํธ๋ฅผ ์ฌ์ฉํด ์ธ๋ถ์ ํต์ ํ๋ ํ๋ก์ธ์ค๋ฅผ ์ฐพ์๋ด์. ์ด์ํ ํ๋ก์ธ์ค๊ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์๋ํ๋ค๋ฉด ์ฃผ์ ๊น๊ฒ ์ดํด๋ด์ผ ํด์!
5. ๊ถํ ์์น ์๋ ํ์ง
ํด์ปค๋ค์ ์ข ์ข ์์คํ ์ ๊ถํ์ ์์น์ํค๋ ค๊ณ ์๋ํด์. OSQuery๋ก ์ด๋ฐ ์๋๋ฅผ ํ์งํ ์ ์์ด์.
SELECT p.name, p.path, p.cmdline, p.parent, pp.name AS parent_name
FROM processes p
JOIN processes pp ON p.parent = pp.pid
WHERE p.name IN ('runas.exe', 'sudo', 'su', 'whoami', 'net.exe')
OR p.cmdline LIKE '%privilege%'
OR p.cmdline LIKE '%admin%';
์ด ์ฟผ๋ฆฌ๋ ๊ถํ ์์น๊ณผ ๊ด๋ จ๋ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ํ๋ก์ธ์ค๋ฅผ ์ฐพ์๋ด์. ๋ฌผ๋ก ์ ์์ ์ธ ๊ด๋ฆฌ ์์ ์ผ ์๋ ์์ง๋ง, ์์ฌ์ค๋ฌ์ด ๊ฒฝ์ฐ๋ผ๋ฉด ๊ผญ ํ์ธํด๋ด์ผ ํด์!
7. OSQuery์ ํ๊ณ์ ์ฃผ์์ฌํญ: ์๋ฒฝํ ๋๊ตฌ๋ ์๋ค! ๐ง
OSQuery๋ ์ ๋ง ๊ฐ๋ ฅํ ๋๊ตฌ์ง๋ง, ๋ชจ๋ ๋๊ตฌ๊ฐ ๊ทธ๋ ๋ฏ ํ๊ณ์ ์ฃผ์์ฌํญ์ด ์์ด์. ์ด๋ฅผ ์๊ณ ์ฌ์ฉํ๋ฉด ๋์ฑ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์๋ต๋๋ค!
1. ์ฑ๋ฅ ์ํฅ
OSQuery๋ ์์คํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ๋๋ฌด ์์ฃผ ๋๋ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด ์์คํ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ด์.
โ ๏ธ ์ฃผ์: ๋ณต์กํ ์ฟผ๋ฆฌ๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์ฟผ๋ฆฌ๋ ์คํ ์ฃผ๊ธฐ๋ฅผ ๊ธธ๊ฒ ์ค์ ํ์ธ์. ์์คํ ๋ฆฌ์์ค๋ฅผ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ์ง ์๋๋ก ์ฃผ์๊ฐ ํ์ํด์!
2. ๋ก๊ทธ ๊ด๋ฆฌ
OSQuery๋ ๋ง์ ์์ ๋ก๊ทธ๋ฅผ ์์ฑํ ์ ์์ด์. ์ด๋ฅผ ์ ๋๋ก ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ๋์คํฌ ๊ณต๊ฐ์ด ๋น ๋ฅด๊ฒ ์์ง๋ ์ ์์ฃ .
๋ก๊ทธ ๋กํ ์ด์ ์ ์ค์ ํ๊ณ , ์ค์ํ ์ด๋ฒคํธ๋ง ์ ๋ณ์ ์ผ๋ก ์ ์ฅํ๋ ๊ฒ์ด ์ข์์. ๋ก๊ทธ ๋ถ์ ๋๊ตฌ์ ์ฐ๋ํด์ ์ฌ์ฉํ๋ฉด ๋์ฑ ํจ๊ณผ์ ์ด๊ฒ ์ฃ ?
3. ์ํธํ๋ ๋ฐ์ดํฐ
OSQuery๋ ์ํธํ๋ ๋ฐ์ดํฐ์ ๋ด์ฉ์ ๋ณผ ์ ์์ด์. ์๋ฅผ ๋ค์ด, HTTPS ํธ๋ํฝ์ ๋ด์ฉ์ ํ์ธํ ์ ์๋ต๋๋ค.
๋คํธ์ํฌ ํธ๋ํฝ ๋ถ์์ด ํ์ํ๋ค๋ฉด OSQuery์ ํจ๊ป ์ ์ฉ ๋คํธ์ํฌ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์์.
4. ์ค์๊ฐ์ฑ์ ํ๊ณ
- ์ง์์ธ์ ์ฒ - ์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
- ์ ์๊ถ ๋ฐ ์์ ๊ถ: ๋ณธ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ๋ ์ AI ๊ธฐ์ ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ํ๋ฏผ๊ตญ ์ ์๊ถ๋ฒ ๋ฐ ๊ตญ์ ์ ์๊ถ ํ์ฝ์ ์ํด ๋ณดํธ๋ฉ๋๋ค.
- AI ์์ฑ ์ปจํ ์ธ ์ ๋ฒ์ ์ง์: ๋ณธ AI ์์ฑ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ์ง์ ์ฐฝ์๋ฌผ๋ก ์ธ์ ๋๋ฉฐ, ๊ด๋ จ ๋ฒ๊ท์ ๋ฐ๋ผ ์ ์๊ถ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
- ์ฌ์ฉ ์ ํ: ์ฌ๋ฅ๋ท์ ๋ช ์์ ์๋ฉด ๋์ ์์ด ๋ณธ ์ปจํ ์ธ ๋ฅผ ๋ณต์ , ์์ , ๋ฐฐํฌ, ๋๋ ์์ ์ ์ผ๋ก ํ์ฉํ๋ ํ์๋ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ๊ธ์ง: ๋ณธ ์ปจํ ์ธ ์ ๋ํ ๋ฌด๋จ ์คํฌ๋ํ, ํฌ๋กค๋ง, ๋ฐ ์๋ํ๋ ๋ฐ์ดํฐ ์์ง์ ๋ฒ์ ์ ์ฌ์ ๋์์ด ๋ฉ๋๋ค.
- AI ํ์ต ์ ํ: ์ฌ๋ฅ๋ท์ AI ์์ฑ ์ปจํ ์ธ ๋ฅผ ํ AI ๋ชจ๋ธ ํ์ต์ ๋ฌด๋จ ์ฌ์ฉํ๋ ํ์๋ ๊ธ์ง๋๋ฉฐ, ์ด๋ ์ง์ ์ฌ์ฐ๊ถ ์นจํด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ฌ๋ฅ๋ท์ ์ต์ AI ๊ธฐ์ ๊ณผ ๋ฒ๋ฅ ์ ๊ธฐ๋ฐํ์ฌ ์์ฌ์ ์ง์ ์ฌ์ฐ๊ถ์ ์ ๊ทน์ ์ผ๋ก ๋ณดํธํ๋ฉฐ,
๋ฌด๋จ ์ฌ์ฉ ๋ฐ ์นจํด ํ์์ ๋ํด ๋ฒ์ ๋์์ ํ ๊ถ๋ฆฌ๋ฅผ ๋ณด์ ํฉ๋๋ค.
ยฉ 2025 ์ฌ๋ฅ๋ท | All rights reserved.
๋๊ธ 0๊ฐ