← Blog

EndpointGuard'ı neden baştan yazdık

EndpointGuard "yeni bir ürün" değil. İşin kaynağı eskiye gidiyor. Bu yazıda neden hazır bir araç almadığımızı, işe neyle başladığımızı ve hangi kararları bilerek verdiğimizi anlatıyoruz.

Hazır bir envanter aracı almak yerine neden kendimizinkini yazdık

NS Yazılım olarak 2003'ten beri sanayi ve üretim tesislerine yazılım yapıyoruz. 90'ın üzerinde fabrikada çalıştık ve her yerde benzer bir tablo gördük: bilgisayar parkı büyük, IT ekibi küçük, çoğu zaman da tek kişi.

Bu insanların elinde iki şey eksikti: parkta ne olduğunu gösteren güncel bir liste ve bir şey ters gittiğinde "ağda ne oluyor?" sorusunu cevaplayacak basit bir araç.

Piyasadaki seçeneklere baktık. Büyük ürünler küçük bir ekip için fazla ağır ve fazla pahalı; kurulumu, ayarı ve öğrenmesi başlı başına bir iş. Ücretsiz olanlar ya bakımsız kalmış ya da önce bir sunucu kurmanızı istiyor, yani sorunu çözmeden önce yeni bir sorun ekliyor.

Bizim üç isteğimiz vardı. Kurulum beş dakikada bitsin. Sunucu derdi olmasın. Arayüz Türkçe olsun ve fatura Türkiye'den kesilsin. Üçünü birden karşılayanı bulamadık, biz de yazdık. Yani bu bir "bizim de bir ürünümüz olsun" kararı değil, aradığımızı bulamamanın sonucuydu. Önce kendi müşterilerimizin parklarında kullandık; ürün ancak ondan sonra başkalarına açıldı. Sahada çalışmayan bir şeyi satmak istemedik, sahada çalışanın da ne eksik bıraktığını ancak orada görebilirdik.

Başlangıç noktası

İkinci ihtiyaç için elimizde zaten bir şey vardı: tek bir adres kutusu ve bir "Ping" düğmesi olan, yalnızca o bilgisayarda çalışıp verisini yalnızca orada tutan "Ping Reporter" adlı eski bir ping aracı.

Envanter tarafını (agent, panel, uzaktan müdahale) eklemek istediğimizde bir seçim yapmamız gerekti: eski kodun üstüne yamamak ya da ortak bir temel kurup her şeyi onun üstüne oturtmak. İkincisini seçtik. Agent'ın, panelin ve yeni IP Pinger'ın aynı kimlik, şifreleme, kayıt ve eşitleme katmanını paylaşması, üçünü de ayrı ayrı güvenli tutmaya çalışmaktan çok daha makul geldi.

Dört karar

1. Uzaktan komutlar sunucu imzalıdır ve serbest metin komut yoktur. Panelden bir komut gönderdiğinizde (yeniden başlat, USB'yi kapat, bir yazılımı kaldır) komutu sunucu imzalar; agent imzayı doğrulayamazsa komutu çalıştırmaz. İmza tek taraflıdır: özel anahtar yalnızca sunucudadır, agent'lar yalnızca doğrulama anahtarını bilir. Her makinede aynı gizli parola olsaydı, ele geçirilen tek bir bilgisayar tüm parka komut göndermeye yeterdi. Üstelik panel yalnızca bir komut tipi ve bir hedef seçer, çalıştırılacak komut satırını ne panel ne sunucu yazar. Ürün, bir saldırganın ele geçirmek isteyeceği hazır bir uzaktan komut aracına dönüşmüyor.

2. Bir komut tek kez çalışır. "Yeniden başlat" komutunun iki kez çalışması, hiç çalışmamasından daha kötüdür. Bu yüzden komut bir kez teslim edilir, agent onu çalıştırmadan önce çalıştırdığını kaydeder ve servis tam ortasında kesilirse yarım kalan komut tekrar denenmez; sonucu "yarım kaldı" olarak panelde görürsünüz. Yeniden denemek isteyip istemediğinize siz karar verirsiniz; bu kararı yazılıma bırakmak istemedik.

3. Neyin toplanmayacağını baştan belirledik. Agent kişisel dosya adlarını, tarama geçmişini, Wi-Fi parolalarını, parola özetlerini ve e-posta içeriğini toplamaz. Kullanıcı adı yalnızca hesap bağlamında, yalnızca hesap adı olarak geçer. Bayiler ve dış kuruluşlar varsayılan olarak envanteri göremez. KVKK da bir nedendi, ama asıl gerekçe daha basit: toplamadığınız veri sızmaz. Bir müşteriye "envanterinizi görmüyoruz" demek, "görüyoruz ama özenle saklıyoruz" demekten çok daha rahat bir cümledir.

4. Ücretsiz bir basamak olacak ve kurulum basit olacak. Beş cihaza kadar ücretsiz. Kurulum, kurumsal kod imzalı tek bir MSI paketi: sessiz kurulabilir, grup ilkesiyle ya da Intune ile dağıtılabilir, Windows 7 SP1'den itibaren çalışır. Küçük bir işletmenin bunu denemek için bir sözleşmeye ya da satış görüşmesine ihtiyacı olmamalı; beş bilgisayarı bağlayıp bir hafta bakmak yeterli.

Bilerek yapmadıklarımız

Bir ürünü anlatmanın dürüst yolu, olmayanı da söylemektir.

  • Agent yalnızca Windows'ta çalışıyor. Linux, macOS ve Android daha sonra.
  • Otomatik güncelleme yok. Panel yeni bir agent sürümü çıktığında yalnızca bir rozet gösterir; güncelleme sizin kararınız.
  • Toplanamayan bilgi "bilinmiyor"dur, tahmin değil. Bir özellik makinede okunamıyorsa panel "güvenli" ya da "güncel" demez, boş bırakır. Bir ekranın eksik görünmesi, yanlış bir "tamam" göstermesinden iyidir.
  • Yedeklerin çalışıp çalışmadığını doğrulamıyoruz. Bunu başka bir işin konusu sayıyoruz.

Şimdi nerede duruyoruz

Agent, panel ve IP Pinger çalışıyor; raporlar da bugünden kullanılabiliyor: envanteri, lisansları ve güvenlik durumunu tablo olarak görüp CSV, Excel ya da PDF olarak alabilirsiniz. Sırada ağ cihazlarının envanteri, bildirimler ve destek talepleri var; bunları tarih vermeden, sırayla yapıyoruz. Beta programına başvurular açık; ilk davetleri agent'ın bir sonraki sürümüyle birlikte gönderiyoruz. Ayrıntılar Beta programı sayfasında.

EndpointGuard'ı baştan yazmamızın nedeni kısaca şu: küçük bir IT ekibinin elindeki parkı olduğu gibi göstermek, ve bunu güvenle yapmak.

Paylaş:LinkedIn

Bu yazıyı İngilizce okuyun: Why we rebuilt EndpointGuard from the ground up