Bu öğreticiyi kısa tutmak için, ELK yığınının "ne" ve "nasıl" konularına derinlemesine girmeyeceğiz. Bunun yerine, Osquery ile nasıl kullanılacağını hızlı ve anlaşılır bir şekilde tartışacağız. Ayrıca, sağlanan kılavuza rağmen, SQL hakkında çalışma bilgisine sahip olduğunuzu varsayacağız).
Osquery nedir??
Facebook tarafından geliştirilen Osquery, SQL tabanlı sorgular kullanarak sistemleri sorgulamak ve izlemek için kullanılan, platformlar arası, açık kaynaklı bir araçtır.
Osquery sistemle etkileşime girebilir ve bellek kullanımı, çalışan işlemler, yüklü çekirdek modülleri, donanım olayları, ağ bağlantıları vb. gibi ayrıntılı bilgileri toplayabilir. Araç, Windows, Linux, Mac ve BSD dahil tüm sistemlerde çalışır.
Osquery'yi kullanarak sistemle ilgili bilgileri görüntüleyen SQL sorguları oluşturabilir ve bu bilgileri toplanan verileri izlemek ve analiz etmek için kullanabilirsiniz.
Debian Sistemlerine Osquery Nasıl Kurulur
Osquery'yi Debian sistemlerine kurmak çok kolaydır ve ana Debian depolarında bulunmasa da eklemek oldukça basittir.
Osquery'yi Debian'a kurmak için kullanabileceğiniz ilk yönteme bakalım:
İlk ve en basit adım, deb yükleyiciyi ana sayfadan indirmektir:
https://pkg.osquery.io/deb/osquery_4.6.0-1.linux_amd64.borç
wget https://pkg.osquery.io/deb/osquery_4.6.0-1.linux_amd64.borçsudo dpkg -i osquery_4.6.0-1.linux_amd64.borç
Deb paketlerinin çoğu Debian dağıtımında çok az bağımlılığı olduğundan yukarıdaki yöntemi öneriyoruz. Ancak, apt'e eklemek istiyorsanız, sonraki yöntemi kullanın.
Osquery'yi depolardan yüklemek için aşağıdaki komutları girin.
OSQUERY_KEY'i dışa aktar=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80Bsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-anahtarları $OSQUERY_KEY
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb ana'
sudo apt-get güncellemesi
sudo apt-get install osquery
Debian 10'da Osquery Nasıl Kullanılır
Otomatik komut dosyaları oluşturmaya ve ELK yığını ile çalışmaya derinlemesine dalmadan önce, yerel sistemdeki bazı basit Osquery kullanımını tartışalım.
Osquery, API ile etkileşim kurmak için kullanabileceğiniz üç ana bileşene sahiptir.
osquery: İlk bileşen, etkileşimli bir kabuk oturumu olan osqueryi'dir. Osqueryi modu tamamen bağımsızdır ve Osquery-Osquery arka plan programı ile etkileşim gerektirmez. Osquery modunu kullanarak, SQL sorgularını etkileşimli olarak yürütebilir ve mevcut sistemi bir SQL kabuğuna benzer şekilde keşfedebilirsiniz.
NOT: Osquery, kullanıcı alanlarına saygı duyar ve kabuğu normal bir kullanıcı modu olarak çalıştırırsanız, ayrıcalıklı tablolara erişiminiz olmaz.
Osqueryd: Diğer bileşen, sorguları programlamak ve arka planda durum değişikliklerini kaydetmek için kullanılan Osquery arka plan programı olan osqueryd'dir. Daemon, belirli bir zaman çerçevesinde yürütülen sorgu sonuçlarını toplayarak çalışır ve her sorgunun durum değişikliklerini karşılaştırmak için kullanılan günlükleri oluşturur.
Osqueryctl: Üçüncü bileşen, dağıtım yapılandırmasını test etmek için kullanılan bir yardımcı komut dosyası olan Osqueryctl'dir. Ayrıca, hizmeti başlatmanıza ve durdurmanıza olanak tanıyan bir Osquery hizmet yöneticisi olarak da kullanabilirsiniz.
Osquery, sistem hakkında bilgi sorgulamak için basit bir araçtan başka bir şey değildir. Ancak, iyi sıralanmış ve toplanmış veriler oluşturmak için sorguları birleştirdiğinizde, bir sorgu aracından daha fazlası olur.
Başlamak için, nasıl çalıştığını anlamak için temel bilgilerle başlayalım:
İlk adım, komutla ilgili yardım almaktır:
sudo osqueryd -- yardımBu komut, kabukta kullanabileceğiniz argümanların bir listesiyle birlikte Osquery arka plan programı yardımını görüntüler.
Osquery ile etkileşim kurmanın bir sonraki ve en kolay yolu, osqueryi oturumunu kullanmaktır. Örneğin, osqueryi komutunu argüman olmadan çalıştırırsanız, SQL benzeri bir kabuğa düşersiniz:
sudo osqueryiOsqueyi kabuğunun içinde, sistemle ilgili belirli bilgileri seçmek için komutları ve SQL sözdizimini çalıştırabilirsiniz.
Osqueryi kabuğunun içindeki yardım modunu görüntülemek için şu komutu kullanın:
osquery > .YardımBu komutu yürütmek, Osquery oturumu ile ilgili yardımı göstermelidir.
Osquery, sisteminiz için ilişkisel bir veritabanı eşleyicisi olduğundan, SQLite Sorgularını kullanarak bilgi seçmek için kullanabileceğiniz bir tablo listesine sahiptir.
NOT: Osquery sorguları SQLite tabanlıdır. Osquery yeterli bilgi sağlamıyorsa belgelerine başvurabilirsiniz:
https://www.sqlit.kuruluş/dizin.html
Osqueryi kabuğunun içinde şu komutu kullanın:
osquery > .tablolarBu komut, sistem bilgilerini içeren mevcut tabloları listeler.
Oradan, mevcut şemalardan bilgi seçebilirsiniz. Örneğin, DNS çözümleyicileri hakkındaki bilgileri görüntüleyin.
dns_resolver'dan * SEÇİN;Sorguladığınız şemaya bağlı olarak, bir tekne dolusu bilgi alacaksınız ve bunu anlamak için bir SQL sorgusu kombinasyonu kullanmanız gerekebilir.
Aşağıdaki kaynaktan Osquery tabloları ve şemaları hakkında daha fazla bilgi edinebilirsiniz:
https://osquery.io/şema/4.6.0/
Temel Bir SQL Kılavuzu
Osquery, bir sistem hakkında bilgi toplamak için SQLite sözdizimi sorgularını kullanarak çalışır. Facebook'un neden bu yolu seçtiğini bilmiyorum ama işe yarıyor.
Bu basit eğitim, Osquery ile etkileşim kurmak için nasıl kullanabileceğinizi açıklamak için SQLite temellerini tartışacaktır.
NOT: Bu hiçbir şekilde SQL veya ilgili diller için bir rehber değildir. Dile özgü daha fazla kılavuz için birincil belgelere bakın.
Bir tablodan belirli girdileri seçme
Temel SQLite sözdizimini kullanarak, gösterildiği gibi SELECT ifadesini kullanarak bir tablodan belirli bilgileri seçebiliriz:
İşlemlerden pid, ad, yol SEÇİN;SQL işlevleri ekleme
Osquery ayrıca SQL fonksiyonlarını da destekler ve sorgulardan toplanan verilerle çeşitli eylemler gerçekleştirmenize izin verir.
Örneğin, sayma işlevi, sisteminizdeki kullanıcı sayısını görmenizi sağlayabilir.
kullanıcılardan SAYI SEÇ(*);Bu komut sistemdeki toplam kullanıcı sayısını döndürür.
Osquery'nin SQL sözdizimini kullanma yeteneği, size bir sistemin daha derinlemesine analizini verebilecek karmaşık veri kümeleri oluşturmanıza yardımcı olabilecek büyük bir avantajdır. Ayrıca PostgreSQL, MySQL ve diğerleri gibi motorları kullanan SQL geliştiricilerinin kolaylıkla uyum sağlamak için kullanabileceği bir köprü oluşturur.
https://osquery.Belgeleri oku.io/tr/kararlı/giriş/sql/
Eğlenceli, Yan Bir Proje
Osquery'yi daha fazla keşfedip denediğinizde, sistemlerinizi izlemek için özel olarak ayarlanmış projeler oluşturmayı kolaylaştıran kapsamlı ve güçlü bir araç olduğunu keşfedeceksiniz.
Bu öğreticinin kapsamı nedeniyle ve yeni başlayanların kafasını karıştırmamak için karmaşık projelere girmeyeceğiz. Bahsedilen, Osquery kullanarak oluşturabileceğiniz bazı araçlar:
- Logstash ile günlükleri toplayın
- Elasticsearch, Logstash ve Kibana ile bir sistem izleme panosu oluşturun.
- Kolide ile Osquery filosu oluşturun
https://osquery.Belgeleri oku.io/tr/stable/dağıtım/günlük toplama/
https://www.elastik.co/rehber/tr/beats/filebeat/7.10/filebeat-module-osquery.html
https://github.com/fleetdm/fleet
Sonuç
Bu eğitimde, sistem bilgilerini toplamak için nasıl kullanılacağı da dahil olmak üzere Osquery'nin temellerine baktık.
Kapsamlı olmasa da, bu kılavuz size Osquery'ye hızlı ve anlaşılır bir giriş sağlamayı amaçladı; hiçbir şekilde bir başvuru kılavuzu değildi.
Bu eğitimde tartıştığımız çeşitli kavramları daha iyi anlamak için diğer kaynakları kullanmaktan çekinmeyin.