Инвентаризация мен қауіпсіздік үшін osquery: сұраулар мен тапсырмалар
osquery арқылы инвентаризация және қауіпсіздік: автозапуск, USB, патчтар мен қызметтер бойынша пайдалы сұраулар және табылғандарды ИТ‑тапсырмаларға айналдыру тәсілі.

Инвентаризация мен қауіпсіздік үшін osquery не үшін керек
osquery қажет болған жерде болжамдар мен қолмен жүргізілген кестелерге сүйенбей, жұмыс станциялары мен серверлерден алынған нақты фактілерге негізделгіңіз келеді. Ол не орнатылғанын, не іске қосылғанын және кеше не өзгергенін тез анықтауға көмектеседі.
Бір антивирус әдетте картинаның тек бір бөлігін көреді. Ол белгілі қауіптерді табады, бірақ компьютерге жаңа автозапуск қалай пайда болғанын, артық қызмет қайдан шыққанын немесе неге құрылғы жаңартылмай қалғанын әрдайым түсіндірмейді. Ал «тізім бойынша» жүргізілетін инвентаризация бір аптадан кейін ескіріп кетеді: біреу утилитаны орнатты, модемді USB‑ге қосты, жаңартулар қызметін өшірді — және бұл есепке түспеуі мүмкін.
osquery‑дың күші — нәтижелерді түсінікті ИТ‑тапсырмаларға оңай айналдыруда. Ең пайдалысы «барлық деректер» емес, ауытқулар:
- белгісіз немесе есепке алынбаған құрылғылар мен ПО
- күдікті автозапуск нүктелері мен бекіту түрлері
- саясатқа сай келмейтін USB қосылымдары мен сыртқы тасымалдаушылар
- патчтар мен жаңартулардан артта қалу
- тоқтап қалған немесе күтпеген конфигурациядағы маңызды қызметтер
Мысал қарапайым: мектепте немесе мемлекеттік органда бір бөлігі ПК‑да кенеттен жаңа автозапуск пайда болып, жаңартулар қызметі өшірілгені көрінсе — бұл «вакуумдағы инцидент» емес, нақты жоспар: орнату көзін тексеру, артық нәрсені жою, саясаттарды қайтару, жүйелерді жаңарту және қайталанбауын қамтамасыз ету.
Маңызды шекараларды есте ұстаңыз: osquery өзін өзі «емдемейді» және блоктамайды. Ол шынайылықтың тез «суретін» береді, сол арқылы сіз шешім қабылдап, өзіңіздің басқару және қолдау құралдары арқылы жұмысты орындайсыз.
osquery қалай жұмыс істейді — қарапайым тілмен
osquery — бұл агент, ол компьютерді дерекқорға ұқсаған кестелер жиынына айналдырады. Сіз SQL‑сұрау жазасыз, агент фактілермен жауап береді: не іске қосылған, не орнатылған, қандай пайдаланушылар бар, қандай құрылғылар қосылған.
Ол жұмыс станциялары, серверлер, VDI және тест машинасына жарайды. Әртүрлі парктерде — кеңсе ПК‑дан бастап стойкадағы серверлерге, виртуалды жұмыс орындарына дейін — бір дереккөз: хост өзінен алынған мәлімет.
Көбінесе процестер мен қызметтер, пакеттер мен жаңартулар, пайдаланушылар мен топтар, желілік баптаулар, құрылғылар (оның ішінде USB) туралы кестелер пайдаланылады. Маңыздысы — сіз желіні «скандамайсыз», әр компьютерден оның жағдайын сұрайсыз.
Екі жұмыс режимі бар. Біріншісі — тұрақты опрос: мысалы, әр сағат сайын автозапуск тізімін немесе маңызды қызметтердің күйін жинап, өзгерістерді бақылау. Екіншісі — инцидент бойынша нүктелік тексерулер: «қазір бұл процестің қайда іске қосылғаны?» немесе «қай машиналарда бұл USB тасымалдаушы көрінеді?» деген сұрақтарға тез жауап қажет болғанда. Әдетте екеуі де керек: тұрақты бақылау дрейфті табады, нүктелік тексерулер тергеуге көмектеседі.
Бастапқы қадам тыныш болу үшін алдын‑ала минималды тексерулер жиынтығы мен нәтижелерді сақтау тәсілін келісіңіз. Практикалық минимум алғашқы 2–3 аптаға:
- ОС және орнатылған пакеттердің инвентаризациясы
- автозапуск пен жоспарлаушы аудиті
- USB қосылымдарын бақылау
- патчтар деңгейі мен соңғы жаңартулар датасы
- бірнеше маңызды қызметтердің күйі (мысалы, антивирус, журнал жинау)
Осылайша сіз тез пайда аласыз және алғашқы аптада деректерге батып кетпейсіз.
Қадамдық: енгізіп, алғашқы тексерулерді іске қосу
Сұраулардан емес, мақсаттан бастаңыз. osquery‑ды әртүрлі мақсаттарда қолдануға болады: активтер тізімін жинау, саясатқа сәйкестігін тексеру, тұрақты бақылау өлшемдерін жүргізу немесе тергеуге көмектесу. Барлығын бірден араластыратын болсаңыз, деректерге батып кетесіз.
Содан кейін паркіні түсінікті құрылғылар топтарына бөліңіз. Әдетте 3–6 топ жеткілікті: бухгалтерия, қарапайым офис ПК‑лары, әкімшілер, ноутбуктар, маңызды серверлер. Осылай әртүрлі тексеру жиіліктерін қою оңайингіз және қай ауытқу шынымен маңызды екенін жылдам түсінесіз.
Бастапқыда пилот шағын топта жасалсын және екі нәрсені тексеріңіз: жүктеме және деректер сапасы. Мысалы, 20–50 жұмыс орны мен бірнеше сервер алыңыз, бірнеше қарапайым сұрау іске қосыңыз (ПО, автозапуск, USB, патчтар) және пропусктер, күмәнді мәндер мен CPU немесе диск бойынша секірістер жоқ па екеніне қараңыз.
Пилоттың минималды жоспары:
- апта ішінде пайда әкелетін 3–5 тексеруді анықтау
- құрылғылар топтарын және жауапты иелерін белгілеу
- іске қосу жиілігін жоспарлау (бір реттік және кестемен)
- нәтижелерді қайда сақтау және кім талдайтынын шешу
- қысқа есеп: не таптыңыз, не жөнделеді, не нақтылау керек
Нәтижелер орталықтан жиналсын. Оларды агрегаттап, сақтау және нәтижелерді талдайтындарға қолжетімді ету керек. Әйтпесе тексерулер қолмен хат алмасуға айналады.
Алдын‑ала негізгі ережелерді бекітіңіз: не сақтау керек, қанша уақытқа, кімнің қолжетімі бар, қателік хабарламаларын қалай белгілеу және табылғандарға қалай тапсырма құру.
Инвентаризация: тез нәтиже беретін сұраулар
Қарапайым сұрақтарға жауап беретін тексерулерден бастаңыз: бұл қандай компьютер, кім оны басқарады, не орнатылған және не желіге шығады. Бұл парк бойынша көрініс береді және тез «нормаға сай емес» нәрселерді көрсетеді.
1) Актив туралы негізгі мәліметтер
Минимум жинаңыз: хост аты, ОС және нұсқасы, uptime. Қол жетімді жерде сериялық нөмір қосыңыз.
SELECT hostname, cpu_brand, physical_memory FROM system_info;
SELECT name, version, build, platform FROM os_version;
SELECT * FROM uptime;
Кейбір құрылғыларда сериялық нөмір өрісі бос немесе хост аты «секіреді» болса, бұл есеп пен атау ережелерін стандартқа келтіру қажеттігін білдіретін тапсырма.
2) Пайдаланушылар және локалды әкімшілер
Инвентаризацияның әлсіз жері — «жұмбақ» локалды админдер. Машинада кім бар екенін және қай жерлерде бұл қалыпты емес екенін тексеріңіз.
SELECT username, type, shell FROM users;
SELECT user, groupname FROM user_groups WHERE groupname IN ('Administrators','sudo');
3) Не орнатылған және не күмәнді көрінеді
Пакеттер тізімін нұсқаларымен бірге алыңыз (кесте ОС‑қа байланысты). Кейін барлық тізімді емес, ауытқуларды салыстырыңыз.
SELECT name, version FROM programs ORDER BY name;
4) Негізгі желілік фактілер
Интерфейстер және қазір қандай порттар тыңдап тұрғаны, процеспен байланысы бар түрде қажет.
SELECT interface, address, mask FROM interface_addresses;
SELECT pid, port, protocol, address FROM listening_ports;
SELECT pid, name, path FROM processes;
Есептер «жапыраққа» айналмауы үшін алдын‑ала норманы анықтаңыз: рұқсат етілген ОС пен минималды нұсқалар, локалды админдер бойынша ережелер, әр роль үшін базалық ПО жиынтығы және күтілетін ашық порттар. Одан кейін тек айырмашылықтарды көрсетіңіз: құрылғы — ауытқу — тәуекел — кімнің жұмысқа алу керектігі.
Мысал сұраулар: автозапуск пен жүйеге бекіту
Автозапускты әкімшілер де (агенттер, жаңартқыштар), зиянкестер де қолданады (қайта іске қосылғаннан кейін бекіту үшін). osquery‑да бастау нүктелерінің бірыңғай тізімін жинап, оларды тапсырмаларға бөлген ыңғайлы: не жою, не рұқсат ету, не тергеу.
Windows: Run‑кілттері, автозапуск, жоспарлаушы
Run және RunOnce реестрін бастап, кейін жоспарлаушы тапсырмаларын және автозапуск қалталарындағы ярлыктарды тексеріңіз.
-- Run / RunOnce
SELECT key, name, data
FROM registry
WHERE key IN (
'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run',
'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce',
'HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run',
'HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce'
);
-- Планировщик
SELECT name, path, action, enabled, state, last_run_time
FROM scheduled_tasks
WHERE enabled = 1;
-- Папки автозапуска (пример: ищем файлы)
SELECT path, size, mtime
FROM file
WHERE path LIKE 'C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\%'
OR path LIKE 'C:\\Users\\%\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\%';
macOS және Linux: launchd, cron, systemd
macOS‑та launchd элементтерін жинау пайдалы, Linux‑та — cron және systemd unit‑тарын.
-- macOS: launchd
SELECT name, program, program_arguments, run_at_load, keep_alive, path
FROM launchd
WHERE run_at_load = 1 OR keep_alive = 1;
-- Linux: cron
SELECT username, command, path
FROM crontab;
-- Linux: systemd (включенные юниты)
SELECT name, description, fragment_path, unit_file_state
FROM systemd_units
WHERE unit_file_state = 'enabled';
Жиі бірінші қаралатын белгілер: пайдаланушы жазуға болатын директорийден іске қосу (AppData, Downloads, /tmp, үй папкасы), уақытша қалталар, күмәнді аргументтер (base64, жасырын терезелер, cmd/powershell/bash арқылы тізбектелген командалар), «жүйелікке ұқсас» атау бірақ жүйелік емес жол.
Нәтижелерді бірден әрекетке айналдыру жақсы: автозапуск жазбасын және файлды жою (расталғаннан кейін), корпоративтік агентті исключенияға қосу және жауапты белгілеу, инцидент ашып контекст жинау (құрылғы иесі, пайда болған уақыт, байланысты процесс), осы нүктелерде жаңа автозапуск пайда болуын қадағалау.
Мысал сұраулар: USB және сыртқы тасымалдаушылар
USB — жиі дерек ұрлау мен жұқтыру каналы, бірақ сондай‑ақ күнделікті жұмыс құралы. Сондықтан мақсат — «бәрін тыйу» емес, фактіні көру: не қосылды, қайда, қашан және кім жауапты.
Пайдалы сұраулар
Қысқа «сурет» алу үшін (қолдау көрсетілген жағдайда) usb_devices кестесінен бастаңыз. Ол VID, PID және кейде сериялық нөмір сияқты негізгі белгілерді көрсетеді.
SELECT
vendor, vendor_id, model, model_id, serial,
removable, uuid
FROM usb_devices;
Қосылулар тарихы ОС‑ке байланысты. Мысалы, macOS‑та usb_device_history бойынша соңғы N күндегі жаңа қосылымдарды сұрыптауға болады.
SELECT
vendor, model, serial, time
FROM usb_device_history
WHERE time > (strftime('%s','now') - 14*24*60*60)
ORDER BY time DESC;
Windows‑та көбіне реестр артефактілеріне сүйенген оңай: USBSTOR кілттерінен идентификаторлар мен уақыт белгілерін алу.
SELECT
key, name, data, mtime
FROM registry
WHERE key LIKE 'HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\USBSTOR\\%'
ORDER BY mtime DESC;
Табылғандарды тапсырмаға айналдыру
Бір USB жазбасы әдетте инцидент емес, бірақ тапсырма жасауға негіз болады. Хостты иесі немесе бөлімшесімен сәйкестендіріп қою пайдалы, сонда «қай ноутбук?» деген уақыт босқа кетпейді.
Әдетте одан әрі бірнеше түрге бөлінеді: факті мен контекстті растау (қандай ПК, қандай пайдаланушы, қашан), егер USB тыйым салынса — негіз сұрау, нақты құрылғыға (сериялық нөмір бойынша) ерекшелік беру, белгілі топтар үшін саясатты күшейту (блоктау немесе «тек оқу»), критикалық сегменттерге «соңғы N күндегі жаңа USB» тексеру орнату.
Мысал сұраулар: патчтар және жаңартулар деңгейі
Патчтар жиі «жабық» инциденттің себебі болады: көп жерде түзетілген осалдық бірнеше машиналарда ескіріп қалады. Мұнда қарапайымнан бастаған ыңғайлы: ОС нұсқасы, build және соңғы жаңартулар орнатылмауының белгілері.
Базалық деңгей: ОС нұсқасы және build
Алдымен ең жиі қол жетімді нәрсені жинаңыз:
SELECT name, version, build, platform, arch
FROM os_version;
Windows‑та осы жол жеткілікті болып, «құлап қалған» құрылғыларды анықтауға көмектеседі: бірдей нұсқа, бірақ әртүрлі build немесе ескірген тармақ.
Windows және Linux: орнатылған жаңартулардың белгілері
Windows‑та osquery жинағында patches кестесі болса орнатылған жаңартулар тізімін алуға болады:
SELECT hotfix_id, installed_on, caption
FROM patches
ORDER BY installed_on DESC;
Linux‑та нақты пакеттердің нұсқаларын тексеріп, минималды рұқсат етілген нұсқаға сәйкестігін қарау пайдалы:
SELECT name, version, source, install_time
FROM packages
WHERE name IN ('openssl','sudo','openssh-server')
ORDER BY name;
«X күн жаңартылмаған» эвристикасы жақсы жұмыс істейді. Егер install_time толтырылған болса, маңызды пакеттер ұзақ уақыт өзгермеген машиналарды табуға болады:
SELECT name, version, datetime(install_time, 'unixepoch') AS installed
FROM packages
WHERE name IN ('openssl','sudo')
AND install_time < (strftime('%s','now') - 60*60*24*90);
Нәтижелерді әрекетке айналдыру: ескірген жинақтары бар топтар үшін қызмет көрсету терезесін жоспарлау, жаңартуларды пилот тобына тестілеуді келісу, ерекшеліктерді белгілі уақытпен тіркеу, минималды нұсқаларды ереже ретінде бекіту және оларды тұрақты тексеріп отыру.
Мысал сұраулар: маңызды қызметтер және олардың күйі
Маңызды қызметтер — бақылауды тез жоғалтатындар: аутентификация, қорғау, резервтеу, журнал жинау. Әр ұйымда тізім жеке болады. Көбінесе домен қызметтері, DNS, EDR/антивирус агенті, резервтеу агенті, SIEM агенті, қашықтан басқару қызметтері кіреді.
Міндет — қызметтің іске қосылғанын, іске қосылу түрі Manual/Disabled емес екенін және бинарий жолы күтілгендей екенін тексеру.
-- Windows: таңдалған қызметтердің статусы және автозапуск
SELECT name, display_name, status, start_type, pid, user_account, path
FROM services
WHERE name IN ('WinDefend','W32Time','Dnscache');
-- Windows: күмәнді жол өзгерісі (System32, Program Files сияқты жерлерден емес)
SELECT name, status, start_type, path
FROM services
WHERE start_type != 'DISABLED'
AND path NOT LIKE 'C:\\Windows\\System32%'
AND path NOT LIKE 'C:\\Program Files%'
AND path NOT LIKE '"C:\\Program Files%';
-- Linux: маңызды systemd юниттері (мысал)
SELECT name, load_state, active_state, sub_state, fragment_path
FROM systemd_units
WHERE name IN ('sshd.service','rsyslog.service');
Факт деңгейінде тұтастықты қосқыңыз келсе, жол мен іске қосу аргументтерін тіркеңіз, Windows‑та қосымша файлдың қолтаңбасын тексеріңіз.
-- Windows: қызмет файлының қолтаңбасын тексеру (егер кесте қолжетімді болса)
SELECT s.name, s.path, a.subject_name, a.issuer_name, a.result
FROM services s
LEFT JOIN authenticode a ON a.path = TRIM(s.path, '"')
WHERE s.name IN ('WinDefend');
Тәуекел мен рутинаны бөліңіз. Қызмет өшірілген немесе Manual режиміне ауысқан болса — бөлек инцидент. Егер бинарий жолы өзгерсе немесе қолтаңба жарамсыз болса — тергеуге себеп.
osquery нәтижелерін ИТ‑тапсырмаларға қалай айналдыру
Нәтижелер пайдалы болуы үшін: не істеу керектігі, кім орындайтыны және қашан жақсаруы керектігі айқын болуы қажет. Сондықтан анықтап алынған табылғандарды типтік тапсырмаларға айналдыру ыңғайлы.
Табылғандарды мәніне қарай бөлу ыңғайлы:
- инцидент: айқын тәуекел немесе шабуыл ізі (мысалы, маңызды серверде белгісіз автозапуск)
- стандарттан ауытқу: базалық саясатқа сәйкес емес баптама
- техникалық қарыз: ескі нұсқалар, мерзімі өткен патчтар, ұмытылған ерекшеліктер
- нақтылау сұрауы: деректер жеткіліксіз, жүйе иесінен растау қажет
Тапсырманы орындаушының контекстті ойлап таппайтынын қамтамасыз етіңіз. Тапсырма шаблоны:
- не табылған: нақты жол/мән (қызмет, жол, құрылғы, KB, нұсқа)
- қайда табылған: хосттар тізімі немесе топ
- маңыздығы не: тәуекел, бизнеске әсері (тоқтаулар, утечкалар, норматив талаптары)
- не істеу керек: дәл әрекет
- «жөнделді» критерийі: қайталама сұрау арқылы қалай және қандай нәтиже норма деп есептелетінін көрсету
Приоритизацияны төрт фактор бойынша қарау жеңіл: жүйе критикалықтығы, таралуы (1 хост немесе 300), зұлым пайдалануға мүмкіндік ықтималдығы (USB, автозапуск), норматив талаптары. Минималды SLA‑лар қарапайым болуы мүмкін: инциденттер үшін жедел (сағатқа дейін), массалық ауытқулар үшін тез (тәулікте), техникалық қарыз үшін жоспарлы (келесі спринт немесе терезе).
Иелерді тағайындаңыз: ИБ инциденттер мен ережелерді қарайды, Windows/ Linux әкімшілері конфигурация мен патчтарды жөндейді, сервис‑деск қолданушымен бастапқы байланыс жасайды (мысалы, кім және не үшін USB қосты деген сұрақ).
osquery қолданудағы жиі қателіктер мен тұзақтар
Ең жиі қате — бірден ондаған тексерулерден бастау. Деректер көптеп жиналады, есептер ұлғаяды, ал нақты әрекеттер жоқ. Көп тиімдірек 5–10 нақты сұрақ таңдап алу: автозапуск, USB, патчтар, маңызды қызметтер.
Екінші тұзақ — нәтижелерді байланыстыру қиындығы. Бір ПК‑да хост аты жоғарғы регистрде, басқа жерде домендік суффикс бар, қай жерде‑де дубликаттар переустановкадан кейін пайда болады, ал құрылғылар топтары толтырылмаған. Жай нормализациясыз (бір форматтағы hostname, бірегей идентификатор, «офис», «сервер», «касса» сияқты тегтер) сіз тәуекелдер жайлы емес, чья машина деген даумен уақыт жоғалтасыз.
Шудың тағы бір көзі — «күдікті» мен «тыйым салынғанды» араластыру. Планировщик арқылы орнатылған автозапуск корпоративтік агент үшін қалыпты болуы мүмкін, ал зиянкестік ПО үшін бекіту болуы да мүмкін. Сол сияқты USB: бухгалтериядағы флешка жарамды болуы мүмкін, серверде — жоқ. Ережелер мен ерекшеліктер тізімі болу керек, әйтпесе әр табылу хат алмасуға айналады.
Деректерге батып кетпеу үшін
Жекелей есептер жасау орнына өткен аптамен салыстыруды енгізіңіз: не пайда болды, не жоғалды, не өзгерді. Әйтпесе бүгін 30 машинада патч жоқ деп табасыз, ал аптадан кейін жақсарған ба, әлде хосттар жиыны өзгерді ме түсінбей қаласыз.
Неліктен тапсырмалар орындалмайды
Тіпті жақсы табылулар да иесі жоқ болса өледі. osquery бухгалтериядағы бірнеше жұмыс станциясында жаңа USB‑құрылғылар қосылғанын және бірнеше ПК‑да күтпеген автозапуск элементтері барын көрсетті делік. Егер жауапты (ИТ‑операциялар, ИБ, сервис иесі) тағайындап, мерзімдер келісілмесе, нәтиже кестеде қалады.
Жұмыс тәртібі былай көрінеді:
- бастапқы сұраулар жиынтығын және «қызыл» оқиға критерийлерін шектеу
- хосттарды және топтарды бір стандартқа келтіру, дубликаттарды жою
- себеп пен мерзімі көрсетілген ерекшеліктер тізімін жүргізу
- тарихты сақтау және өзгерістерді қарау, тек «срез» емес
- табылғаннан бірден орындаушыға және келесі қадамға байлау
Қысқа чеклист: өндірісте іске қосар алдында не тексеру керек
Барлық құрылғыларда osquery іске қоспас бұрын деректерді қандай жағдайда жинайтыныңызды, кім қарайтынын және табылғандармен не істейтініңізді келісіңіз. Әйтпесе тіпті пайдалы сигналдар шудың көзіне айналады.
Әдетте тез әсер беретін минималды жиынтық:
- құрылғылар топтары мен иелерін анықтаңыз: кемінде «қызметкерлер ноутбуктары», «серверлер», «киосктар/ортақ ПК‑лар». Әр топ үшін базаны белгілеңіз: ОС, роль, бөлім немесе жауапты.
- 5 міндетті бақылауды дайындаңыз және олар сіздің ОС‑та жұмыс істейтінін тексеріңіз: автозапуск, USB және сыртқы тасымалдаушылар, патчтар/жаңартулар деңгейі, маңызды қызметтердің күйі, локалды админдер тізімі.
- табылымдардың бірмәнді болуын қамтамасыз ететін порогтарды қойыңыз: «7 күн ішінде жаңа пайда болды», «30 күн бойы жаңартылмады», «қызмет тоқтаған», «пайдаланушы админге қосылған». Порогтар бүкіл топқа бірдей болуы керек.
- ИТ‑тапсырма шаблонын және приоритет ережесін дайындаңыз (мысалы, сервер + маңызды қызмет = жоғары приоритет).
- пилотта сапаны тексеріңіз: 10–20 құрылғыдағы нәтижелер өндірісте сол логикамен қайталануы керек.
«Шынайы» іске қосу алдындағы практикалық тест: бір табылғанды (мысалы, ноутбуктағы жаңа автозапуск элементі) алып, оның жабылуына дейінгі жолын өткізіп көріңіз. Егер бұл жолда даулы жерлер болса, процессті алдын ала түзеткен дұрыс.
Нақты жағдай мысалы: табудан жұмыс жоспарына дейін
Ұйымда бірнеше қызметкерде күмәнді терезелер пайда болды және бір терминал серверде антивирустық қызмет остановлен болды. Күдік флешкаларға түседі, себебі проблемалар мердігерлермен файл алмасудан кейін басталған. Мұнда osquery фактілерді тез жинап, ізді тарылтуға көмектеседі.
Бастапқыда тек бухгалтерия компьютерлері мен терминал серверлер алынып, тек соңғы 14 күн қаралады. Сосын үш қысқа тексеру іске қосылады: қандай USB‑құрылғылар қосылған, автозапускқа не пайда болды және қорғау қызметтері өшірілген бе.
Жиі бастапқы ұпайлар беретін сұраулар мысалдары:
-- USB: қазір қосылған құрылғылар ("осы жерде және қазір" үшін пайдалы)
SELECT * FROM usb_devices;
-- Автозапуск: жаңа/күдікті элементтер
SELECT name, path, source FROM startup_items;
-- Қызметтер: маңызды тоқтағандары
SELECT name, status, start_type FROM services
WHERE status != 'RUNNING';
-- Патчтар (Windows үшін): не орнатылған және қашан
SELECT hotfix_id, installed_on FROM patches;
Нәтижелер жинақталғаннан кейін олар иесі мен мерзімі бар тапсырмаларға аударылады: бухгалтерия үшін USB‑ты уақытша шектеу (белгіленген құрылғыларды қалдырып), табылған автозапуск жазбаларын жою және жолдардағы файлдарды тексеру, қорғау қызметтерін қалпына келтіру және іске қосылуын бекіту, терминал серверлер мен жұмыс орындарын жаңартуды қамтамасыз ету.
Ай сайын бірдей талдауды қайталаудың орнына тұрақты тексерулерді бекіту: USB, автозапуск, қызмет күйі, патч деңгейі; қарапайым порогтар қою және кім қалайша тез әрекет ететінін келісу.
Келесі қадамдар: тәжірибені бекіту және деректерге батып кетпеу
osquery нақты көмектессін десеңіз, жүздеген тексерулерге талпынбаңыз. Автозапуск, USB, патчтар, маңызды қызметтер сияқты әрекетке алып келетін шағын сұраулар жиынтығынан бастаңыз. Әр табылған түріне алдын‑ала иені тағайындаңыз: кім түзетеді және кім жабылуын растайды.
Практикалық бастапқы тәсіл:
- 10–15 сұрауды таңдап, ауытқу нені білдіретінін бекітіңіз.
- категориялар бойынша жауаптыларды тағайындаңыз (жұмыс станциялары, серверлер, ИТ, ИБ) және реакция мерзімдерін белгілеңіз.
- бір топта (мысалы, 50 ПК) пилот жүргізіп, қанша табылыс, қаншасы апта ішінде жабылды және не шу екенін есептеңіз.
- артық нәрсені алып тастаңыз және пилотта жиі шыққандарды қосыңыз.
Есептер мүмкіндігінше қысқа болсын: тек ауытқулар мен күй көрсету. Идеалда әр есеп жолы тапсырмаға айналуы керек: құрылғы, табылыс, тәуекел, иесі, мерзімі, растау.
Үлкен инфрақұрылымда бұл тәжірибені қолдау және өзгерістерді басқару процесіне қалай қосуға болатынын алдын‑ала ойластырыңыз. Құрылғы жеткізу мен жүйелік интеграция қажет жобаларда бұл бір контурда шешіледі: мысалы, GSE.kz өндірушісі және жүйелік интегратор ретінде енгізуді жоспарлауға, инфрақұрылым таңдауға (жұмыс станциялары мен серверлерді қоса) және 24/7 қолдауды ұйымдастыруға көмектесе алады.
FAQ
osquery деген не және ол инвентаризацияға не үшін пайдалы?
osquery — бұл хостқа орнатылатын агент, ол жүйеге қатысты фактілерді SQL‑сұраулар арқылы береді: процестер, қызметтер, пакеттер, пайдаланушылар, желі және құрылғылар. Оның артықшылығы — әр компьютерден ағымдағы күйді сұрап, әртүрлі ОС пен машиналар үшін бірдей форматтағы деректер алу.
Антивирус немесе EDR бар болса, неге osquery керек?
Антивирус пен EDR негізінен қауіптерді табуға және блоктауға бағытталған, бірақ олар «апталық не өзгерді» немесе «қайда жаңа автозапуск пайда болды» сияқты есептеу сұрақтарына әрқашан ыңғайлы жауап бермейді. osquery емдемейді және блоктамайды, бірақ өзгерістер мен ауытқуларды жылдам көрсетіп, оларды ИТ және ИБ‑ге нақты тапсырмаларға айналдыруға мүмкіндік береді.
Осquery енгізуді қайдан бастау керек, деректерге батпау үшін?
Деректерге батпау үшін мақсаттан және кішкентай пилоттан бастаңыз, көптеген сұраулардан емес. Практикалық бастама — 20–50 жұмыс орны және бірнеше сервер: жүктемені, деректердің толықтығын тексеріп, қай табылғандардың іс‑әрекетке айналатынын анықтаңыз.
Сұрауларды қанша жиілікпен жүргізу және не нәрсені тұрақты, не нәрсені нақты тексеру ретінде іске қосу керек?
Тұрақты бақылауда кейбір тексерулерді сағат сайын немесе тәулігіне бір рет жүргізу жеткілікті, ал ауыр және сирек тексерулерді апта сайын жоспарлау орынды. Тергеулер үшін «осы жерде және қазір» деген режим болу керек — жедел сұрау жасауды күтуге болмайтын кезде.
Тексеру үшін құрылғыларды қалай дұрыс топтастыру керек?
Құрылғыларды қауіп пен басқаруға қарай қарапайым топтарға бөліңіз, сонда ережелер бірмәнді болады. Көбінесе «қызметкерлердің ноутбуктары», «офистік ПК», «әкімшілер», «маңызды серверлер» сияқты ролдер жеткілікті — әр топқа порог пен күту түрлі болады.
osquery нәтижелерін қайда және қалай сақтау керек, олар пайда әкелуі үшін?
Орталықтан жинаңыз — әйтпесе нәтижелер қолмен хат алмасуға және бөлініп кеткен файлдарға айналады. Бастапқыдан хост идентификаторының форматын, өзгерістер тарихын және рұқсаттарды келісіп алыңыз, сол кезде өткен аптамен салыстырып, тез иеленушіні табуға болады.
Қайталанатын жалған срабатываниялар мен «шуды» қалай азайтуға болады?
Әдепкі түрде «барлығын» көрсетпей, нормаға сай келмегендерді ғана көрсету ережесін енгізіңіз және ерекшелік тізімін себеппен және қайта қарау мерзімімен жүргізіңіз. Егер табылу легитимді деп расталса, оны рұқсат етілген оқиға ретінде формализациялау керек, әйтпесе бірдей шуды үнемі бөлетін боласыз.
Автозапуск пен жүйеге бекіту тексерулерінің қайсысы ең маңызды?
Ең пайдалы нүктелерден бастаңыз: Windows‑тағы Run‑кілттері және жоспарлаушы, macOS‑тағы launchd, Linux‑тағы cron мен enabled systemd unit‑тар. Пайдаланушы жазуға болатын каталогтардан (AppData, Downloads, /tmp, үй каталогы) іске қосылатындарды, уақытша қалталар мен күмәнді аргументтерді бірінші тексеріңіз.
osquery арқылы USB және сыртқы тасымалдаушыларды қалай бақылауға болады?
Қазіргі сәттің «суреті» үшін usb_devices кестесі жеткілікті болады; тарих үшін ОС‑нің қалдық артезіфактілерін (мысалы, Windows реестріндегі жазбалар) қарап шығыңыз. Ең маңыздысы — фактіні хост пен пайдаланушымен байлау, сонда бұл саясат бұзылуы ма әлде жұмысқа қажетті құрал ба тез шешіледі.
Патчтар мен маңызды қызметтердің күйін тез тексеріп, тәуекелді қалай табуға болады?
Бастапқыда ОС және build нұсқаларын жинап, одан кейін маңызды пакеттердің нұсқаларын немесе орнатылған KB‑ларды тексеріңіз; «X күн жаңартылмаған» эвристикасы жиі жұмыс істейді. Қызметтер үшін статусты, іске қосылу түрін және бинарий жолын тексеріңіз — қызмет тоқтаған немесе күмәнді жолдан іске қосылған болса, жедел әрекет қажет.