Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Windows Service Uygulamasının durdurulmasını ve Kaldırılmasını Engellemek
#1
Merhabalar, 

Güvenlik amacıyla yazdığımız bir uygulamamız var, (Service Application) bunu client makinelerimize kuruyoruz ve kullanıcıların performanslarını takip ediyoruz. (Evden çalışan personellerimiz için) Kullanıcılarımızın bu uygulamayı kapatmasını engellemek istiyoruz.


 * Guest oturumu vermek bir çözüm ancak herkese lokal admin vermek zorundayız bazı sebeplerimizden ötürü.

 * Domain Controller kullanmıyoruz.


   Antivirüs ve buna benzer bir çok uygulamanın servisi bunu yapabiliyor, Bunu Delphi dili ile yapmak mümkün müdür?

  Harici bir uygulama ile tetikleme yapabiliriz ama o uygulamanın da sonlandırılmasını engellememiz gerekecek. 

    Değerli fikirlerinizi paylaşabilirseniz çok sevinirim.

    İyi çalışmalar.
Cevapla
#2
Servis uygulamasını Delphi'de mi yazdınız? Bunda değişiklik yapabiliyor musunuz?
Yoksa Delphi'de yazılan bir uygulama ile başka bir servisin durdurulmasını engellemek mi istiyorsunuz?
There's no place like 127.0.0.1
WWW
Cevapla
#3
Hangi servis olursa olsun, bu şekilde engelleyemezsiniz. Ancak birden fazla servis varsa ve biri ötekinin varlığına bağlıysa bu durumda kendine bağlı olan servisi kapatamazsınız. Diğerini durdurduktan sonra bunu da kapatabilirsiniz. Yani windows servislerinde bağlılık olayı var. Antivirüs servislerini bile durdurabilirsiniz.
Ancak bu servis haricinde başka bir servis daha yazıp, bu servisin ne durumda olduğunu kontrol ettirebilirsiniz. Eğer bir şekilde durmuşsa servisi tekrar start edersiniz.

Bu arada servisi kapatmak için sistemi bayağı biliyor olması gerekir kullanıcının. Bunu yapacak kadar biliiyor mu kullanıcılarınız. Zaten öyleyse, ne yaparsanız yapın yine de durdurur. Bunun yolu o programın çalışmasının yükümlülüğünü o kişiye vermektir. Aksi halde çok başınız ağrır.
Cevapla
#4
(02-11-2018, Saat: 23:26)aruno Adlı Kullanıcıdan Alıntı: Merhabalar, 

Güvenlik amacıyla yazdığımız bir uygulamamız var, (Service Application) bunu client makinelerimize kuruyoruz ve kullanıcıların performanslarını takip ediyoruz. (Evden çalışan personellerimiz için) Kullanıcılarımızın bu uygulamayı kapatmasını engellemek istiyoruz.


 * Guest oturumu vermek bir çözüm ancak herkese lokal admin vermek zorundayız bazı sebeplerimizden ötürü.

 * Domain Controller kullanmıyoruz.


   Antivirüs ve buna benzer bir çok uygulamanın servisi bunu yapabiliyor, Bunu Delphi dili ile yapmak mümkün müdür?

  Harici bir uygulama ile tetikleme yapabiliriz ama o uygulamanın da sonlandırılmasını engellememiz gerekecek. 

    Değerli fikirlerinizi paylaşabilirseniz çok sevinirim.

    İyi çalışmalar.


Virüs benzeri program yazanlar genelde birbirini kontroleden 2 tane servis yazarlar. Birini kaldırırsanız diğeri onu onarıyor veya yeniden başlatıyor.
WWW
Cevapla
#5
(03-11-2018, Saat: 00:48)SimaWB Adlı Kullanıcıdan Alıntı: Servis uygulamasını Delphi'de mi yazdınız? Bunda değişiklik yapabiliyor musunuz?
Yoksa Delphi'de yazılan bir uygulama ile başka bir servisin durdurulmasını engellemek mi istiyorsunuz?

Evet Delphi ile yazdık, kaynak bizde hocam.

(03-11-2018, Saat: 01:19)mustafaozpinar Adlı Kullanıcıdan Alıntı: Hangi servis olursa olsun, bu şekilde engelleyemezsiniz. Ancak birden fazla servis varsa ve biri ötekinin varlığına bağlıysa bu durumda kendine bağlı olan servisi kapatamazsınız. Diğerini durdurduktan sonra bunu da kapatabilirsiniz. Yani windows servislerinde bağlılık olayı var. Antivirüs servislerini bile durdurabilirsiniz.
Ancak bu servis haricinde başka bir servis daha yazıp, bu servisin ne durumda olduğunu kontrol ettirebilirsiniz. Eğer bir şekilde durmuşsa servisi tekrar start edersiniz.

Bu arada servisi kapatmak için sistemi bayağı biliyor olması gerekir kullanıcının. Bunu yapacak kadar biliiyor mu kullanıcılarınız. Zaten öyleyse, ne yaparsanız yapın yine de durdurur. Bunun yolu o programın çalışmasının yükümlülüğünü o kişiye vermektir. Aksi halde çok başınız ağrır.

Cevap için teşekkür ederim, yalnız şöyle bir durum var sizin dediğiniz gibi ise eğer biz servisi durdurduğumuz da diğer servis otomatik olarak tekrar çalıştıracaktır ama güvenlik yazılımlarının servislerini kapatmaya çalışırsanız eğer göreceksiniz ki “erişim engellendi” gibi bir hata ile karşılaşacaksınız. Burada sanırım farklı bir olay var. Servisin register edilme şeklinde mi bilmiyorum ama  belki bir sistem sürücü ile ya da hook ile yapılabileceğini düşünüyorum. Ama sanırım delphi ile bunu yapacak tecrübemiz yok Wink
Cevapla
#6
Erişimi engelleme servisin yazılımında oynayarak olamaz. Ancak erişim ayarlarıyla ya da group policy'yi değiştirerek yapabilirsiniz. Bence yetkilerle oynayarak yapmışlardır. Eğer elinizde admin hakkına sahip kullanıcı varsa (domain'e bağlı olmamak kaydıyla) her türlü düzeltmeyi yapabilirsiniz. Düşünün bazı klasörlere erişimi hesapta engelliyor, ama As Administrator diye yaptığınızda o işi yapabiliyorsunuz ya da o klasörü görüntüleyebiliyorsunuz.

Control Panel'den Services kısmına girerseniz burada istediğiniz servisin Property'sine girip burada yapılabilecek değişiklileri görürsünüz. Bunun dışında benim bildiğim bir yöntem yok! Ama yine de (buradan, yanılsamalarla yapılıyor olsa bile) nasıl yapıldığını bilmek iyidir tabii ki! Ancak bu programlamanın dışında, sistemcilikle ilgili bir olay haline gelmiş oluyor gibi sanki.
Cevapla
#7
Device driver programlamayı bilmiyor iseniz, maalesef normal yollarla bir uygulamamın kapanmasını kolay kolay engelleyemezsiniz. Ancak yapabileceğiniz şeyler elbette var.

1- Device driver yazabilirsiniz ve o driverda uygulamanızın kapatılma taleplerine NTSTATUS 5 ile yani access denied ile yanıt verirsiniz. Ancak çok meşakkatli ve uzun bir yoldur bu yol.
2- Uygulamanız başladığında sistem process’lerinin bir tanesine code/dll injection yaparsınız ve uzak process içinde çalışan threadiniz sizin uygulamanın varlığını kontrol eder, bulamazsa yeniden çalıştırır. Ama bu yol da nispeten uzun ve uğraştırıcı bir yoldur.
3- Uygulamanızı “kritik sistem uygulaması” olarak işaretleyebiliriniz. Bu durumda uygulamamız kapatıldığında işletim sistemi mavi ekrana düşer  Big Grin
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#8
(03-11-2018, Saat: 21:54)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Device driver programlamayı bilmiyor iseniz, maalesef normal yollarla bir uygulamamın kapanmasını kolay kolay engelleyemezsiniz. Ancak yapabileceğiniz şeyler elbette var.

1- Device driver yazabilirsiniz ve o driverda uygulamanızın kapatılma taleplerine NTSTATUS 5 ile yani access denied ile yanıt verirsiniz. Ancak çok meşakkatli ve uzun bir yoldur bu yol.
2- Uygulamanız başladığında sistem process’lerinin bir tanesine code/dll injection yaparsınız ve uzak process içinde çalışan threadiniz sizin uygulamanın varlığını kontrol eder, bulamazsa yeniden çalıştırır. Ama bu yol da nispeten uzun ve uğraştırıcı bir yoldur.
3- Uygulamanızı “kritik sistem uygulaması” olarak işaretleyebiliriniz. Bu durumda uygulamamız kapatıldığında işletim sistemi mavi ekrana düşer  Big Grin

Tuğrul hocam cevap için teşekkür ederim, Device Deiver açıkçası bizi aşar. Delphi ile yapılabilir mi onu dahi bilmiyordum sizden öğrendim. Hiç tecrübe etmedik malesef. CriticalProcess iyi bir seçenek, mavi ekran değilde sanırım restart istiyordu o şekilde yapınca ve yine yanlış hatırlamıyorsam 32/64 bit olarak ayırmak gerekiyordu. Maleaef uygulamamız 32 bit. Gerçi sistem sürücüsü ve dll injection bile yapsak bunu 32/64 olarak ayırmamız gerekecek. 32 bir uygulama ancak 32 bit başka bir uygulama ya da dll ye enjekte olabiliyordu. Neyse belli ki bunu servis ile çözemeyeceğiz.

Peki hocam sizden bu konuda destek alabilmemiz mümkün müdür? Freelance olarak bize destek verebilir misiniz? Eğer vaktiniz var ise tabii Wink

Teşekkürler.
Cevapla
#9
(03-11-2018, Saat: 10:14)aruno Adlı Kullanıcıdan Alıntı: Evet Delphi ile yazdık, kaynak bizde hocam.

Arkadaşların dediği gibi kapanmayı tam olarak engellemenin kolay bir yolu yok.
Zor yollar:
https://security.stackexchange.com/quest...in-windows

 
En azından kapanma işini zorlaştırmak isterseniz servisin AllowStop ve AllowPause özelliklerini False yaparsanız Görev Yönetisicisinden vs. normal yollarla kapanması engellemiş olursunuz. 

Görev Yöneticisinden kapatmak isteyen şöyle bir uyarı görür:

2018-11-05_zvetwd.png
There's no place like 127.0.0.1
WWW
Cevapla
#10
(05-11-2018, Saat: 10:56)SimaWB Adlı Kullanıcıdan Alıntı:
(03-11-2018, Saat: 10:14)aruno Adlı Kullanıcıdan Alıntı: Evet Delphi ile yazdık, kaynak bizde hocam.

Arkadaşların dediği gibi kapanmayı tam olarak engellemenin kolay bir yolu yok.
Zor yollar:
https://security.stackexchange.com/quest...in-windows

 
En azından kapanma işini zorlaştırmak isterseniz servisin AllowStop ve AllowPause özelliklerini False yaparsanız Görev Yönetisicisinden vs. normal yollarla kapanması engellemiş olursunuz. 

Görev Yöneticisinden kapatmak isteyen şöyle bir uyarı görür:

2018-11-05_zvetwd.png

Merhaba,
Güvenli modda da geçerli mi bu durum?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Windows XP; Win32 uygulaması geçerli değil! delphi.developer 1 193 24-01-2024, Saat: 22:32
Son Yorum: enigma
  Aras web service osiso 11 7.245 01-10-2023, Saat: 16:45
Son Yorum: itsmylife38
  Windows API kodu çözümlemesi parlakcuma 1 638 23-09-2023, Saat: 05:29
Son Yorum: parlakcuma
  Windows Hizmet Listesi barissagir 0 201 13-09-2023, Saat: 10:55
Son Yorum: barissagir
  Windows Metin Boyutu Yüzdesi ermanispir@gmail.com 2 513 02-07-2023, Saat: 12:56
Son Yorum: Halil Han BADEM



Konuyu Okuyanlar: 1 Ziyaretçi