日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
詳解osquery具體使用方法

osquery 是 SQL 驅(qū)動(dòng)的分析和監(jiān)控操作系統(tǒng)的工具,是操作系統(tǒng)分析框架,支持 OS X 和 Linux 系統(tǒng)。osquery 能幫助監(jiān)控和分析低水平的操作系統(tǒng),提供更直觀的性能監(jiān)控,下面為大家分享一下osquery具體使用方法。

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)長(zhǎng)洲,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575

本教程將介紹: 如何安裝Osquery 如何列出可用表 如何從osqueryi外殼執(zhí)行查詢 如何使用osqueryd守護(hù)程序監(jiān)控文件完整性 對(duì)SQL概念有基本知識(shí) 擁有執(zhí)行管理任務(wù)的root權(quán)限 軟件需求和Linux命令行約定

安裝

我們基本上有兩種方法來(lái)安裝Osquery:第一種是從官方網(wǎng)站下載適合我們系統(tǒng)的軟件包;第二種(通常是優(yōu)選方法)是將Osquery存儲(chǔ)庫(kù)添加到發(fā)行版軟件源。如圖:

Osquery如何在Linux上監(jiān)控文件的完整性?Osquery如何在Linux上監(jiān)控文件的完整性?

通過(guò)軟件包安裝

可以從Osquery官方網(wǎng)站(https://osquery.io/downloads/official)下載簽名的deb和rpm軟件包,或下載更通用的打包文件。我們先選擇要安裝的版本,然后下載軟件包。

建議選擇最新的可用版本(截至發(fā)稿時(shí)4.1.2)。下載軟件包后,我們可以使用發(fā)行版軟件包管理器來(lái)安裝。比如想在Fedora系統(tǒng)上安裝該軟件(假設(shè)軟件包在當(dāng)前的工作目錄中),我們將運(yùn)行:

 $ sudo dnf install ./osquery-4.1.2-1.linux.x86_64.rpm

使用存儲(chǔ)庫(kù)

我們還可以將rpm或deb存儲(chǔ)庫(kù)添加到發(fā)行版中。如果我們使用基于rpm的發(fā)行版,可以運(yùn)行以下命令來(lái)完成任務(wù):

$ curl -L https://pkg.osquery.io/rpm/GPG | sudo tee
/etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
$ sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
$ sudo yum-config-manager --enable osquery-s3-rpm-repo
$ sudo yum install osquery

借助上述Linux命令,我們可以將用來(lái)簽名軟件包的gpg公鑰添加到系統(tǒng)中,然后添加存儲(chǔ)庫(kù)。最后,我們安裝Osquery軟件包。注意,在近期版本的Fedora和CentOS/RHEL中,yum只是dnf的符號(hào)鏈接,所以我們調(diào)用前者時(shí),使用的卻是后者。

如果你運(yùn)行基于Debian的發(fā)行版,可以將deb存儲(chǔ)庫(kù)添加到軟件源中,只要運(yùn)行:

$ 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-get update
$ sudo apt-get install osquery

一旦軟件包安裝完畢,我們可以看一下軟件的基本用法。

基本用法

Osquery讓我們可以監(jiān)控采用“表格抽象”的操作系統(tǒng)的不同方面,使用類似sqlite數(shù)據(jù)庫(kù)上所用語(yǔ)法的SQL語(yǔ)法。針對(duì)表執(zhí)行查詢,表對(duì)操作系統(tǒng)的不同方面(比如進(jìn)程和服務(wù))進(jìn)行抽象處理。

我們可以直接使用osqueryi交互式外殼來(lái)運(yùn)行查詢,也可以通過(guò)osqueryd守護(hù)程序來(lái)安排查詢。下面這個(gè)例子顯示了列出所有可用表的查詢(還可以在此處https://osquery.io/schema/4.1.2#processes看到附有表描述的完整列表):

$ osqueryi
osquery> .tables
=> acpi_tables
=> apt_sources
=> arp_cache
=> atom_packages
=> augeas
=> authorized_keys
=> block_devices
=> carbon_black_info
=> carves
=> chrome_extensions
=> cpu_time
=> cpuid
=> crontab
=> curl
=> curl_certificate
=> deb_packages
=> device_file
=> device_hash
=> device_partitions
=> disk_encryption
=> dns_resolvers
=> docker_container_labels
=> docker_container_mounts
=> docker_container_networks
=> docker_container_ports
=> docker_container_processes
=> docker_container_stats
=> docker_containers
=> docker_image_labels
=> docker_images
=> docker_info
=> docker_network_labels
=> docker_networks
=> docker_version
=> docker_volume_labels
=> docker_volumes
=> ec2_instance_metadata
=> ec2_instance_tags
=> elf_dynamic
=> elf_info
=> elf_sections
=> elf_segments
=> elf_symbols
=> etc_hosts
=> etc_protocols
=> etc_services
=> file
=> file_events
=> firefox_addons
=> groups
=> hardware_events
=> hash
=> intel_me_info
=> interface_addresses
=> interface_details
=> interface_ipv6
=> iptables
=> kernel_info
=> kernel_integrity
=> kernel_modules
=> known_hosts
=> last
=> listening_ports
=> lldp_neighbors
=> load_average
=> logged_in_users
=> magic
=> md_devices
=> md_drives
=> md_personalities
=> memory_array_mapped_addresses
=> memory_arrays
=> memory_device_mapped_addresses
=> memory_devices
=> memory_error_info
=> memory_info
=> memory_map
=> mounts
=> msr
=> npm_packages
=> oem_strings
=> opera_extensions
=> os_version
=> osquery_events
=> osquery_extensions
=> osquery_flags
=> osquery_info
=> osquery_packs
=> osquery_registry
=> osquery_schedule
=> pci_devices
=> platform_info
=> portage_keywords
=> portage_packages
=> portage_use
=> process_envs
=> process_events
=> process_file_events
=> process_memory_map
=> process_namespaces
=> process_open_files
=> process_open_sockets
=> processes
=> prometheus_metrics
=> python_packages
=> routes
=> rpm_package_files
=> rpm_packages
=> selinux_events
=> shadow
=> shared_memory
=> shell_history
=> smart_drive_info
=> smbios_tables
=> socket_events
=> ssh_configs
=> sudoers
=> suid_bin
=> syslog_events
=> system_controls
=> system_info
=> time
=> ulimit_info
=> uptime
=> usb_devices
=> user_events
=> user_groups
=> user_ssh_keys
=> users
=> yara
=> yara_events
=> yum_sources

運(yùn)行osqueryi命令,我們進(jìn)入交互式外殼;我們可以從該外殼執(zhí)行查詢或指令。這是查詢的另一個(gè)例子,這回列出所有運(yùn)行中進(jìn)程的pid和name。對(duì)process表執(zhí)行查詢(為便于閱讀,查詢的輸出已截短):

 osquery> SELECT pid, name FROM processes;

+——-+————————————+ | pid | name | +——-+————————————+ | 1 | systemd | | 10 | rcu_sched | | 10333 | kworker/u16:5-events_unbound | | 10336 | kworker/2:0-events | | 11 | migration/0 | | 11002 | kworker/u16:1-kcryptd/253:0 | | 11165 | kworker/1:1-events | | 11200 | kworker/1:3-events | | 11227 | bash | | 11368 | osqueryi | | 11381 | kworker/0:0-events | | 11395 | Web Content | | 11437 | kworker/0:2-events | | 11461 | kworker/3:2-events_power_efficient | | 11508 | kworker/2:2 | | 11509 | kworker/0:1-events | | 11510 | kworker/u16:2-kcryptd/253:0 | | 11530 | bash | […] | +——-+————————————+ 甚至可以使用JOIN語(yǔ)句對(duì)連接表執(zhí)行查詢,就像我們?cè)陉P(guān)系數(shù)據(jù)庫(kù)中操作那樣。在下面例子中,我們對(duì)processes表執(zhí)行查詢,通過(guò)uid列與users表進(jìn)行連接:

osquery> SELECT processes.pid, processes.name, users.username FROM processes JOIN
users ON processes.uid = users.uid;

+——-+——————————-+——————+ | pid | name | username | +——-+——————————-+——————+ | 1 | systemd | root | | 10 | rcu_sched | root | | 11 | migration/0 | root | | 11227 | bash | egdoc | | 11368 | osqueryi | egdoc | | 13 | cpuhp/0 | root | | 14 | cpuhp/1 | root | | 143 | kintegrityd | root | | 144 | kblockd | root | | 145 | blkcg_punt_bio | root | | 146 | tpm_dev_wq | root | | 147 | ata_sff | root | […] | 9130 | Web Content | egdoc | | 9298 | Web Content | egdoc | | 9463 | gvfsd-metadata | egdoc | | 9497 | gvfsd-network | egdoc | | 9518 | gvfsd-dnssd | egdoc | +——-+——————————-+——————+

文件完整性監(jiān)控(FIM)

前面我們使用交互式外殼osqueryi來(lái)使用Osquery。想使用FIM(文件完整性監(jiān)控),我們改用osqueryd守護(hù)程序。通過(guò)配置文件,我們列出了想要監(jiān)控的文件。file_events 表中記錄了涉及指定文件和目錄的事件,比如屬性變化。守護(hù)程序在指定的時(shí)間間隔后對(duì)該表運(yùn)行查詢,并在日志中通知何時(shí)發(fā)現(xiàn)新記錄。不妨看看配置示例。

配置結(jié)構(gòu)

Osquery的主配置文件是/etc/osquery/osquery.conf。該文件默認(rèn)情況下不存在,于是我們要?jiǎng)?chuàng)建它。配置以JSON格式來(lái)提供。假設(shè)我們想要監(jiān)控/etc下的所有文件和目錄;下面顯示了我們?nèi)绾闻渲迷搼?yīng)用程序:

{
"options": {
"disable_events": "false"
},
"schedule": {
"file_events": {
"query": "SELECT * FROM file_events;",
"interval": 300
}
},
"file_paths": {
"etc": [
"/etc/%%"
],
},
}

不妨分析上述配置。首先在options部分,我們將disable_events設(shè)為“false”,以便啟用文件事件。

之后我們創(chuàng)建schedule部分:在該部分,我們可以描述和創(chuàng)建各種命名的調(diào)度查詢。我們?cè)诒疚闹袆?chuàng)建了一個(gè)查詢,以便從file_events表選擇所有列,這意味著每300秒(5分鐘)執(zhí)行一次。

安排查詢后,我們創(chuàng)建了file_paths部分,在該部分指定要監(jiān)控的文件。在該部分,每個(gè)鍵代表要監(jiān)控一組文件的名稱(Osquery術(shù)語(yǔ)中的類別)。這里“etc”鍵引用僅含有一個(gè)條目/etc/%%的列表。

%符號(hào)代表什么?指定文件路徑時(shí),我們可以使用標(biāo)準(zhǔn)通配符(*)或SQL通配符(%)。如果提供單通配符,它將選擇位于指定級(jí)別的所有文件和目錄。如果提供雙通配符,它將遞歸選擇所有文件和文件夾。比如說(shuō),/etc/%表達(dá)式匹配/etc下面一級(jí)的所有文件和文件夾,而/etc/%%遞歸匹配/etc下的所有文件和文件夾。

如果需要,我們還可以使用配置文件中的exclude_paths部分,從提供的路徑中排除特定文件。在該部分,我們只能引用file_paths部分中定義的類別(本例中是“etc”)。我們提供了要排除的文件列表:

"exclude_paths": {
"etc": [
"/etc/aliases"
]
}
僅作為例子,我們從列表中排除了/etc/aliases文件。下面是最終配置的樣子:

{
"options": {
"disable_events": "false"
},
"schedule": {
"file_events": {
"query": "SELECT * FROM file_events;",
"interval": 20
}
},
"file_paths": {
"etc": [
"/etc/%%"
]
},
"exclude_paths": {
"etc": [
"/etc/aliases"
]
}
}

開啟守護(hù)程序

配置已到位,我們可以開啟osqueryd守護(hù)程序:

 $ sudo systemctl start osqueryd

為了使守護(hù)程序在系統(tǒng)啟動(dòng)時(shí)自動(dòng)開啟,我們要運(yùn)行:

 $ sudo systemctl enable osqueyd

一旦守護(hù)程序運(yùn)行,我們可以核實(shí)配置有效。僅舉個(gè)例子,我們將修改/etc/fstab文件的許可權(quán),將它們從644改為600:

 $ sudo chmod 600 /etc/fstab

現(xiàn)在我們可以核實(shí)文件更改以記錄下來(lái),只需閱讀/var/log/osquery/osqueryd.results.log文件。下面是該文件的最后一行:

{
"name":"file_events",
"hostIdentifier":"fingolfin",
"calendarTime":"Mon Dec 30 19:57:31 2019 UTC",
"unixTime":1577735851,
"epoch":0,
"counter":0,
"logNumericsAsNumbers":false,
"columns": {
"action":"ATTRIBUTES_MODIFIED",
"atime":"1577735683",
"category":"etc",
"ctime":"1577735841",
"gid":"0",
"hashed":"0",
"inode":"262147",
"md5":"",
"mode":"0600",
"mtime":"1577371335",
"sha1":"",
"sha256":"",
"size":"742",
"target_path":"/etc/fstab",
"time":"1577735841",
"transaction_id":"0",
"uid":"0"
},
"action":"added"
}

結(jié)論

在上述日志中,我們可以清楚地看到在target_path “/etc/fstab”(第23行)上進(jìn)行了ATTRIBUTES_MODIFIED操作(第10行),/etc/fstab是“etc”類別(第12行)的一部分。有必要注意這點(diǎn):如果我們從osqueryi外殼查詢file_events表,由于osqueryd守護(hù)程序和osqueryi無(wú)法聯(lián)系,因此看不到任何行。


新聞標(biāo)題:詳解osquery具體使用方法
URL鏈接:http://www.5511xx.com/article/dppphhs.html