Bu makalemizde “ Just-in-time Virtual Machine Access “ kavramını açıklamaya çalışacağım. Just-in-time Virtual Machine Access en öncelikli olarak “ Tam zamanında Sanal Makine erişimi “ olarak geçtiğinin bilgisini vermek isterim.
Kötü insanlar , kötü insanlardan kasıtım siber saldırı ve kaba kuvvet saldırısı yapanlardan bahsediyorum. Her zaman interneti kötü eylemler için kullanmaktadır. “ Remote Desktop Protocol , Secure Shell ,WinRM ( Windows Remote Management ) “ vs. portları gibi dışarıya açık bağlantı noktalarını hızlı şekilde taramaktadır. Organizasyonların internete açık portları mevcut ise Sanal Makinenizden birisine erişim sağlayarak , Ortamınızdaki tüm Sanal Makinelere ele geçirdiği Sanal Makine üzerinden erişim sağlayarak, Sanal Makine içerisinde barındırılan Verileri ve Uygulamaları Ransomware ile şifreleyebilmektedir.
Bu bahsetmiş olduklarım genelde “ Brute Force Attack “ yani “ Kaba Kuvvet Saldırı “ olarak geçmektedir. Bu saldırılar genelde 22 ve 3389 Portlarını hedeflemektedir.
JIT , Azure Security Center servisinde, Standart Tier parçasında yer almaktadır. Bazı durumlarda Management Portlarınızı İyileştirme çalışmaları ve yönetim işlemleri gerçekleştirmek için açmaya ihtiyaç duyarsınız. İşte burada Azure Portalında en çok ve sizin ortamınız için getirisi olacak “ Just-in-Time VM Access “ devreye girmektedir. JIT özelliği etkinleştirme işlemi sağladıysanız, belirlemiş olduğunuz portların ne kadar açık kalacağını ve bu portlara nereden erişmek istediğiniz IP adreslerini belirterek , bu bilgiler ile alakalı Politikalar oluşturabilirsiniz. Bu Politika oluşturma sonrası , kontrol tamamen sizde olmaktadır. Ortamınızdaki Sanal Makinelere istekler geldiğinde , Azure RBAC yani Role Based Access Control üzerinden yetkilendirmiş olduğunuz kullanıcılara erişim veriliyor olacaktır.
JIT özelliği , güvenli olması gereği Sistem Entegratörlerinin hizmet verdiği müşterilere bağlanabilmesi için sıklıkla kullandıkları Azure hizmetidir diyebiliriz.
Just-in-Time özelliğiyle alakalı bilgi aldıysak , Bu özelliği Azure ortamımızda nasıl etkinleştirebiliriz. Aslında bunu etkinleştirmek için iki yöntemimiz mevcuttur :
- Azure ortamınızda bulunan Sanal Makine üzerinden aktifleştirme yöntemi
- Azure ortamında Security Center Servisini kullanarak aktifleştirme yöntemi
İlk olarak “ Azure ortamınızda bulunan Sanal Makine üzerinden aktifleştirme yöntemini “ uyguluyor olacağız . O halde başlayalım :
Azure Portalında Sanal Makine oluşturmadıysanız , ilk olarak Sanal Makine oluşturarak başlayabilirsiniz. Ardından Azure Portalından arama çubuğuna “ Virtual Machines “ yazarak , servislerden “ Virtual Machines “ seçeneğini seçeriz.
Azure ortamında “ SCCM2103 “ adında Sanal Makinemizin mevcut olduğunu görürüz. Ardından bu Sanal Makinemizin ilk öncelik olarak Network Konfigürasyonlarını incelemek ve işlem yapmak için Sanal Makinemizi seçeriz.
Azure ortamımızda bulunan “ SCCM2103 “ adındaki Sanal makinemizin “ Settings “ bölümünde “ Networking “ konfigürasyon sayfasına erişim sağlarız.
Azure Portalı içerisinde oluşturmuş olduğunuz Sanal Makinemizin “ Inbound Port Rules “ yani Gelen Port Kurallarını incelediğimizde ilgili RDP , SSH Portlarının her zaman dışarı açık olması saldırganların ellerini ovuşturmaya yetmektedir.
“ Networking “ seçeneğinin altında bulunan “ Connect “ seçeneğini seçtiğimizde Sanal Makinemizde “ Just-in-time access “ özelliğinin bu Sanal Makinede etkinleştirilmesi gerektiğinin bilgisinin vermektedir.
Ardından tekrardan “ Networking “ seçeneğini seçeriz. Priority değerimizin 300 olduğunu görürüz . ( Azure ortamlarında değişiklik göstermektedir. ) Bu Priority değerinin özelliğimizi etkinleştirme sonrası değiştiğini görüyor olacağız.
Sanal Makine konfigürasyon ekranında “ Settings “ bölümünde “ Connect “ seçeneğini seçerek tekrardan o ekrana geliriz. Ardından yukarıda anlatmış olduğumuz “ To improve security , enable just-in-time access on this VM. “ seçeneğine tıklarız.
Bu ekranda Azure Security Center upgrade isteyebilmektedir. Aboneliğiniz için 30 Günlük Azure Defender etkinleştirmesi sağlayabilirsiniz. ( Ayrıca “ Connect “ adımından gerek kalmadan Sanal Makine “ Settings “ bölümünden “ Configuration “ seçeneğini seçerek “ Just-in-time VM access “ özelliğini aktifleştirmeniz mümkün olmaktadır. ) “ Enable just-in-time “ seçeneğini seçeriz.
Sanal Makinemizde JIT özelliğini etkinleştirilme işlemi başladığını görürüz.
Sanal Makinemizde özelliği başarıyla etkinleştirilmiştir.
Ardından tekrardan Sanal Makinemizin “ Networking “ konfigürasyonlarına geldiğimizde birşeyleri değiştiğini gördük. “ Inbound Port rules “ içerisinde JIT özelliği ile alakalı rule oluştuğunu görmüş oluruz ve “ Priority “ değerlerinin değiştiğini görmüş oluruz.
Bu kuralı yorumlayacak olursak ; 10.0.0.13 kaynağının dışındaki hiçbir makineye 3389 port ile erişimleri engelle şeklinde yorumlayabiliriz.
Azure ortamındaki Sanal Makinelerin 2 Adet Ip adresi bulunmaktadır. Bu IP adresleri Private IP , Diğer ise Public IP adresidir. Ortamımızdaki Sanal Makineye internet üzerinden iletişim kurmak için genelde Sanal Makinede tanımlı Public IP adresini kullanırız. Azure tarafından otomatik olarak eklenen bahsettiğim kural JIT özelliğini etkinleştirdiğimizde , bu 3389 numaralı porta gelen trafiği engellemektedir. Burada bir olaydan daha bahsetmek istiyorum. “ Inbound port rules “ bölümünde “ Priority “ değerleri en düşük olan en öncelikli olduğunun bilgisini vermek isterim.
Şuandan itibaren “ SCCM2103 “ adlı Sanal Makinemize bağlanmaya çalışırsak , bağlanma işlemimiz başarısız olacaktır. Peki o halde deneyelim:
Bilgisayarımızdan “ Remote Desktop Connection “ uygulamasını açarız. ( Klavyenizden Windows+R tuşlarına hep birlikte basarak , kutucuğa “ mstsc “ yazara uygulamayı açabilirsiniz. )
Ardından Sanal Makinemize erişmek için bir müddet bekleriz.
Ve Uzak Bağlantımızın Başarısız olduğunu görmüş oluruz. Yaptığımız konfigürasyonlara göre Sanal Makineye bağlanamamamız normaldir.
Ben Sanal Makineye bağlanmak istersem, yapmam gereken işlemler mevcut. İlk olarak Azure Portal ekranından Sanal Makine konfigürasyon arayüzden “ Settings “ bölümünden “ Connect “ seçeneğini seçeriz.
Burada “ Request access “ seçeneğini seçerek bağlanma talebi gerçekleştirebiliriz.
Yada “ Settings “ bölümünden “ Configuration “ seçeneği üzerinden “ Open Azure Security Center “ seçeneğini seçeriz.
İlgili ekranda erişmek istediğimiz Sanal makinenin yanındaki kutucuğu işaretleyerek “ Request Access “ seçeneğini seçeriz.
Normalde “ Toggle “ bölümü “ Off “ halde gelmektedir. “ SCCM2103 “ Sanal makinesinde 3389 portunu açmak için “ On “ duruma getirmeniz gerekmektedir. “ Allowed source IP “ bölümünde ise Notebook ile bağlanmış olduğumuz IP’mizi baz alarak bağlantı sağlamış olursunuz yada “ IP Range “ durumuna getirerek , Bağlantı gerçekleştirebilmemiz için IP Adres aralığı belirtebilirsiniz. Yani birden çok IP adresi belirtebilirsiniz. Bu makineye bağlanmak isteyen tüm herkesin IP adreslerini yetkilendirebilirsiniz. “ Time Range (hours) “ bölümünde ise 3389 portunun ne kadar süreyle açık kalmasını saat biriminde belirtebilirsiniz. “ Enable request justification “ bölümündeki kutucuğa ise bu portumuzu neden açtığımızın gerekçesini yazabilirsiniz. “ Open Ports “ seçeneğini seçerek devam ederiz.
İsteğimiz iletildi.
Dilerseniz sondaki “ … “ seçeneğini tıklayarak “ Edit “ seçeneğini seçerek konfigürasyonları yeniden düzenleyebilirsiniz.
Ardından Sanal Makinemizin Konfigürasyon arayüzünde bulunan “ Networking “ seçeneğini seçeriz. “ Inbound port rules “ listemize otomatik olarak önceki yapmış olduğumuz Request işlemlerine istinaden otomatik olarak oluştuğunu görmüş oluruz . Bu kuralı yorumlayacak olursak , Priority değeri 100 listedeki en öncelikli kurallar arasında ve bu kuralımız geçerli olacak ve Sanal Makinemize artık Uzak Bağlantı Başarılı bir şekilde gerçekleştirebiliyor olacağız.
Ardından Tekrardan Sanal Makinemize Bağlantı sağlamak istediğimizde “ Username “ ve “ Password “ bilgilerini girerek , Başarılı bir şekilde gerçekleştiğini görmüş oluruz.
Şimdi bir bilgi daha vermek istiyorum : Bu Sanal Makineye erişim süremizi bir önceki Request konfigürasyonlarında 1 saat olarak belirlemiştik. 1 Saat geçtikten sonra Azure ortamının oluşturmuş olduğu kural otomatik olarak silinecek ve erişimimiz olmayacak.
Bu sayede “ Just-in-time vm access “ özelliğini etkinleştirerek , Inbound Port kurallarımızı gereksinimimiz olduğunda belirlediğimiz süreye kadar açarak saldırıları minimize edebilirsiniz ve Belirlediğiniz süre geçtikten sonra otomatik olarak kapanıyor olacaktır. Böyle Just-in-time VM access ile Hangi Portu açmak istediğinizi , Erişim vermek istediğiniz IP adresi ve Ip adres aralıklarını , Erişime açmak istediğiniz Portun açık kalmasını istediğiniz süreyi saat cinsinden belirterek Sanal Makinenizi dışarıdan gelecek Brute force yani Kaba Kuvvet Saldırılarından korumuş olursunuz.
Ve 1 saat sonra bağlantımızı sağlayan kuralımızın Otomatik silindiğini ve yerine “ Deny “ kuralımızın kaldığını görmüş oluruz.
Makalemi zaman ayırıp okuduğunuz için çok teşekkür ederim. Diğer makalelerimde görüşmek üzere.
Faydalı olması Dileğiyle.