9 Ağustos 2020 Pazar

Temel Linux Komutları ve Kullanımları


Linux kullanıcılarının bilmeleri gereken en önemli ve temel linux komutlarını kullanımları ile birlikte hazırladık.


  • pwd:Hangi dizinde bulunulduğunu gösterir.
  • man:Komut hakkında detaylı bilgi almak için kullanılır.
     man ls
  • mkdir:Yeni bir dizin oluşturur.
     mkdir klasoradi
  • touch:Yeni bir dosya oluşturur.
     touch dosyaadi
  • rm:Dosya veya klasör siler
     rm dosyaadi
  • cp:Dosya veya klasörü kopyalar.
     cp klasoradi
  • mv:Dosya veya klasörleri taşımak için kullanılır.
     mv klasoradi klasoradi2
  • find: Gelişmiş arama aracıdır.

     find . -name "*.txt"

  • cd: Dizin değiştirir.
     cd klasoradi
  • ls:Dosya ve dizinleri listeleyip, özelliklerini görüntüler.
     ls -a
     ls -l
  • cat:Dosya içeriğini görüntüler
     cat dosyaadi
  • echo: ekrana basar.
     echo "stratejidedektifi"
     echo $HOME
  • more, less:Ekrana sığmayan dosyaları görüntüler.
           more dosyaadi
  • head: Bir dosyanın baştan itibaren istenilen sayıda satırını ekrana basar.
     head dosyaadi
     head -l dosyaadi
  • tail:Head gibi çalışır, farkı sondan itibaren ekrana basar.
     tail -f dosyaadi
  • grep:Metin dosyaları içerisinde belirli değerleri arar.
     grep "kelime" dosyaadi
     grep "kelime . -R
     grep "kelime" dosyaadi -i
  • uname:Sistem bilgilerini görüntüler.
     uname -a
  • chown:Dosya ve klasörlerin sahibi, grubunu değiştirir.
     chown ali :users dosyaadi
     chown -R ali : users klasoradi/
  • service:Servislerin yönetimi için kullanılır.
     service apache2 start
  • mount:Diskleri sisteme bağlar.
     mount / dev /sdb1 mnt


NetBeans IDE ve JDK Kurulumu - Resimli Anlatım

Resimler yardımı ile Windows İşletim Sistemleri için JDK ve NetBeans IDE'yi Kuralım. https://www.oracle.com/technetwork/java/javase/download/index.html sitesinden işletim sisteminize uygun JDK'yı indirdikten sonra bildiğimiz çift tıkla "next, next" işlemlerine başlayalım.



Bu ekranda change ile JDK'nın kurulacağı dizini değiştirebilirsiniz. Devamındaki iki ekranda next ve finish diyerek kurulum bitirilir.

http://netbeans.org adresinden işletim sisteminize uygun Netbeans IDE'sini indirebilirsiniz.İndirme işleminden sonra çift tıklayıp aşağıdaki ekranda customize'yi seçelim.



Gelen ekranı düzenleyelim, diğer yazılım dillerini kaldıralım ve tomcat ekleyelim.



Lisans sözleşmesini kabul edelim, ne olur ne olmaz.Ekranda NetBeans'in kurulacağı ve java'nın bulunduğu dizin gösterilmektedir.Doğru ise next diyelim. Glassfish ve tomcat'e de next dedikten sonra install diyelim.





NetBeans'in gelişmesine katkıda bulunmak istiyorsanız bu alana bir tik koyun. Ben koymadım.Finish'e tıkladıktan sonra artık nur topu gibi Java ortamımız oldu. NetBeans'in Türkçe'si de yayınlandı onu da tavsiye ederim.


NetBeans başlangıç ekranında new project'te tıklıyoruz.



Gelen ekranda java ve java application'u seçip next diyoruz.


Aşağıdaki ekranda projemize isim veriyoruz...



Yukarıdaki ekranı biraz açalım;

Project Name: Oluşturacağımız projeleri isimlendirdiğimiz alandır.
Project Location:Projelerin kaydedileceği dizini belirler, değiştirebilirsiniz.
Project Folder:Projelerin kaydedildiği alt klasör.
Use Dedicated Folder For Storing Libraries:Kullanılacak kütüphaneleri belli bir dizine kopyalar.Düzen getirir.Karar sizin ilk başta çok önemli değil.

Create Main Class: Projelerimiz için main sınıfı oluşturur.
Set As Main Project: Seçili projeyi main proje olarak atar. Çalıştır ve hata ayıkla denildiğinde doğrudan bu proje çalıştırılır.Eğer birden fazla proje üzerinde çalışılıyor ise proje listesinde koyu renkle gösterilen proje main proje olarak belirlenmiş demektir.

Projemizin ismini JavaIlkProje olarak belirleyip çalıştıralım.Artık aşağıdaki gibi bir projemiz var.


3 Ağustos 2020 Pazartesi

MS SQL Server 2014 Express Kurulumu - MS SQL Server 2014 - Resimli Anlatım



Not: SQL Server Express (Sadece veritabanı motoru kurulumu) için bilgisayarda .NET 3.5 SP1 veya .NET 4'ün kurulması gerekir.Tam veya ileri sürümlerin kurulumu için .NET Framework 4.0 veya 4.5 ile birlikte ayrıca .NET Framework 3.5 SP1de yüklü olmalıdır.(Burada belirtilen gereklilikler yeni sürümlerde farklılık gösterebilecektir.


Yazılımın kurulumu için ilgili dosyayı açıp klasördeli (örn:SQLEXPR_x64_ENU) kurulum (setup.exe) dosyasının çalıştırılması gerekektedir. Kurulum yardımcısı aşağıdaki adımları izleterek kullanıcıya kurulumu tamamlatacaktır.Bu aşamalar, izleyen kısımda adımlar halinde anlatılacaktır.


  • Kurulum(Installation): Bu adımda "New SQL Server stand-alone installation or add features to an existing installation" seçeneği uygulamaları çalıştıracak bir SQL sunucu oluşturmak için uygundur. Eğer kurulu bir eski sürüm varsa resimdeki gibi alt kısımda olan seçeneği işaretlemek gerekecektir.











  • Evrensel Kurallar (Global Rules): Bu adım için sizden bir girdi beklememekte olup kurulum yardımcısı tarafından kullanılacak dosyaların kurulumu sırasında bir problemle karşılaşılmaması için bazı kontroller yapılır. Problem yoksa sonraki adıma geçer.
  • Kurulum Tipi (Installation Type): Bu adımda Resim 1.2deki "Perform anew installation of SQL Server 2014" seçilip devam edilir.


  • Lisanslama (Licence Terms): Bu adımda, kurulumun devam etmesi için "I accept the license terms" ile lisans anlaşmasının kabul edildiği işaretlenmelidir.
  • Özellik Seçimi (Feature Selection): Bu adımda, MS SQL Server üzerinde hangi alt özelliklerin çalışacağı belirlenir. Express kurulum olduğu için Resim 1.3teki temel bileşenlerin hepsinin kurulumu önerilir.

  • Oluşum Yapılandırması (Instance Configuration): Bu adımda SQL Server 2014 için bir isim verilebilir veya resim 1.4teki "Default instance" seçimiyle ilerlenebilir.Daha sonra yeni bir kurulum yapılacaksa ona isim verilmesi gerekir.

  • Sunucu Yapılandırma (Server Configuration): Daha önce seçilen özelliklere göre belirlenen SQL Server veritabanı motoru için resim 1.5teki gibi başlangıç parola belirlenmesi yapılabilir.
  • Veritabanı Motoru Yapılandırması (Database Engine Configuration): Bu adımda, MS SQL Server 2014 veritabanı motoru servisine yönetici olarak erişirken kullanılacak kimlik doğrulama yöntemi belirlenir. Resim 1.6da gösterilen "Mixed Mode (SQL Server authentication and Windows authentication)" seçeneği ile hem Windows kullanıcılarını hem de SQL kullanıcısı tanımlanarak devam edilebilir."Data Directions" sekmesinde veritabanı, veri, yedek gibi içeriklerin bulunacağı varsayılan dizinler.İstenilen değişiklikler yapılabilir.
  • Kurulum İşlemi ve Tamamlanma (Installation Progress and Complete): Bu adımlarda sırası ile kurulum işlemi sürdürülür ve tamamlanır.Tamamlanma adımında başarı ile kurulum yapılan özellikler listelenir.

SQL Server Management Studio Kurulumu
İlgili dosyayı açıp klasördeki (örn: SQLManagmentStudio_x64_ENU) kurulum (setup.exe) dosyasını çalıştırınız.Kurulum yardımcısı sizi aşağıdaki adımları izleterek kurulumu tamamlatacaktır.
  • Kurulum (Installation): Bu adımda resim 1.7deki "New SQL Server stand -alone installation or add features to an existing installation" seçeneği, uygulamaları çalıştıracak bir SQL Server oluşturmak için uygundur. Eğer kurulu bir eski sürüm varsa alttaki seçeneği seçmeniz gerekir.


  • Özellik Seçimi (Feature Selection): Bu adımda, MS SQL Server üzerinde hangi alt özelliklerin çalışacağı belirlenir.SQL Server Management Studio için resim 1.8deki ekranda seçili temel bileşenlerin hepsinin kurulumu önerilir.


Kurulum İşlemi ve Tamamlanma  (Installation Progress and Complete): Bu adımlarda sırası ile kurulum işlemi sürdürülür ve tamamlanır. Tamamlanma  adımında başarı ile kurulum yapılan özellikler listelenir.

Bu kurulumdan sonra bilgisayarınızdaki "SQL Server Management Studio"u çalıştırarak SQL Server 2014'e sağlanan arayüzler ile erişebilirsiniz.

2 Ağustos 2020 Pazar

Debugger Soft Ice Uygulaması (Debugger soft ice application)

Soft Ice uygulaması düşük seviyeli bir yazılımı debug etmek için geliştirilmiştir.Bu uygulamanın geliştirilme nedenleri aşağıdaki gibidir:

  • Yüksek seviyeli olarak geliştirilen debugger'ların çok düşük bir hızda gerçekleştirdiği kimi zaman, hiç gerçekleştiremediği debuggerların çok düşük bir hızda gerçekleştirdiği kimi zaman, hiç gerçekleştiremediği debug mekanizmalarına sanal makine özelliği sağlamak için geliştirilmiştir.
  • Soft Ice, debugger uygulamasını diğer uygulamalardan ayıran bir diğer özellik ve bu özellik bu uygulamanın gelişmesinin temeli olmuştur.Soft Ice uygulaması güçlü bir hata bulma debugger'ıdır.
  • Soft Ice uygulamasının geliştirilme sebepleri arasında yer alan bir diğer madde ise, kolay bir arayüz ekranına sahip olmasıdır.Diğer debugger'lardan ayıran bir diğer özelliği de budur.


Soft Ice uygulamasının nedenlerini yukaruda gördük.Şimdi göreceğimiz uygulamalar ise Soft Ice uygulamasının özellikleridir..

  • Var olan bir debugger uygulaması ile çalışabilme özelliği
  • Debugger kullanıcıları için kolay bir arayüz ve öğrenebilmeleri için geliştirilmiş bir yardım sistemi 
  • Sembolik ve kaynak seviyeli hata ayıklama sistemi 
  • Port okuma ve yazma aynı zamanda hafıza okuma ve yazma özelliğine sahip olması
  • Diğer uygulamalara gerek kalmadan kullanılabilme imkanı sağlaması 
Soft Ice uygulamasında dikkat edilmesi ve yüklenmesi gereken DLL dosyaları da, aynı konfigürasyon dosyası içerisinde yer almaktadır.

F1:Yardım sistemini görüntülemektedir.
F2: Kayıt penceresini görüntülemektedir.
F3: Varsayılan kod modunu değiştirmek için kullanılmaktadır.
F4: Bu fonksiyon ile ekran yenilenmektedir.
F5: Uygulamaya dönebilmek için bu fonksiyon tuşu kullanılır.
F6: Kursör sistemini komut ve kod penceresi arasına getirir.
F7: Kursörün bulunduğu satıra gitmek için kullanılan fonksiyon tuşudur.
F8: Satır satır çalışmak için kullanılan fonksiyon tuşudur.
F9: Kursörün bulunmuş olduğu satıra breakpoint işlemi yapmak için kullanılan fonksiyon tuşudur.
F10: Uygulama basamaklarını görüntüler.
F11: Dönüş adresine gitmek için kullanılan fonksiyon tuşudur.
F12: Uygulamanın versiyonunu öğrenmek  için kullanılan fonksiyon tuşudur.

Git Nedir ve Nasıl Kullanılır ?


Git Nedir ?
Git , yazdığımız projeleri veya uygulamaları yerel diskte ve internet ortamında saklamamızı sağlayan bir versiyon takip sistemidir.Ekip projelerinde geliştiricilerin birbiri arasında bir köprü niteliği görür.
Git , Linus Torvalds tarafından tasarlanıp geliştirilmiştir.

Git Kavramları
Repository uzak sunucudaki proje dosyalarını içeren depodur.
Branch şube anlamına gelmektedir ve bir şubede yapılan değişikler diğer şubeleri etkilemez. Bu sayede projenin birçok bölümünün daha düzenli olmasını sağlar. Ana branch Master'dır.
Fork uzak sunucudaki projelerinin bir kopyasının alınmasıdır.Kullanım amacı kopyalanan repository üzerinden değişiklikler yapılarak asıl projeye katkıda bulunmaktır.
Pull Request fork edilen projenin yapılan değişikliklerden sonra gerçek projeye göndererek geliştiricinin değerlendirmesine sunmaktır.Geliştirici kabul ederse branch üzerinden yapılan değişiklikler gerçek projeye de yansır
Merge branch üzerindeki değişikleri ana branch master ile birleştirme olayıdır.

Git Neden Kullanılmalıdır ?
Bir sipariş takip programi yazdığımızı varsayalım. Aklımızda güzel bir değişiklik fikri var ve bunu uygulamaya geçirdiğimizi düşünelim. Oldu ki yaptığımız değişikliği beğenmedik yada işe yaramadı. Projenin eski haline dönmemiz gerek ama yedek almadığımız için sıkıntı yaşıyoruz. Başka bir örnek daha verirsek projenin klasörlerini başka isimlerle kaydetmek de sizin açınızdan belli bir zamandan sonra hem yer kaplama açısından sıkıntı olacaktır hem de klasör kalabalıklığı yapacağı için bu kargaşadan kurtulmak için bir versiyon kontrol sistemine ihtiyaç duyarız.

Git Kurulumu
Bu linkten sisteminize uygun kurulum dosyasını indirip çalıştırın. Çoğu ayarı default seçeneğinde bırakabilirsiniz.Sizin işinizi fazlasıyla görecektir.


Bu ekran karşınıza çıktığında ortadaki seçenek sizin için yeterli olacaktır.

Kısaca açıklamak gerekirse cmd.exe üzerinden de git kullanmanızı sağlıyor ve çevre değişkenlerine path otomatik olarak ekleniyor. Ayriyeten bir ayar yapmanıza gerek kalmıyor.



Git Nasıl Kullanılır ?
Projemizi oluşturduk ve ve birkaç git ayarını yapmamız gerekiyor. Öncelikle bu projede git kullanılması için mevcut klasörümüz içerisine sağ tıklayıp Git Bash Here'a tıklıyoruz.

Git ayarlarından en önemli olanları kullanıcı adınız ve email adresinizdir. Git, ayar olarak tanımladığınız değerleri commit vb işlemlerde otomatik olarak kullanır. Bu ayarların değerini belirlemek için komut satırında aşağıdaki komutları çalıştırıyoruz


Ayarları da yaptığımıza göre artık git kullanmaya başlayabiliriz.

Git init
Bu komut ile proje dizininizde GIT dizinini oluşturur.

Git add
Verilen paremetrelere göre o dosyaları dizine ekler ve commit etmeye hazır hale gelirler. "Git add . " yazılarak tüm dosyalar yada başka bir dosya ismi yazılarak sadece o dosya dizine eklenebilir.


Git status
Proje dosyalarının o anki güncel durumu hakkında bilgi verir. Değişiklik yapılan dosyaları listeler.

Git remote
Git proje dizininin uzak sunucudaki bağlantısı için kullanılır. Uzak sunucudaki bağlantı için aşağıdaki kod yazılır.


Git push
Yerel sunucudaki git proje dizinini uzak sunucuya aktarmak için kullanılır.

Swagger Nedir? .NET Core Swagger Entegrasyonu


Bu yazımızda, restful api üzerinde kullanacağımız swagger nedir, ne amaçla kullanılır ve nasıl kullanılır gibi soruların cevaplarını arayacağız. Her şeyden önce API nedir ve neden ihtiyaç duyarız bu soruların cevaplarına bakalım.

Application Programming Interface (API) Nedir?
Bir uygulamaya ait işlevlerin ve üretilen , depolanan verilerin başka tür uygulamalarda da kullanılması için geliştirilen yapı olarak özetleyebiliriz . Bir örnek verecek olursak web üzerinde iletişim programı yaptınız ve aynı şekilde kullandığınız veritabanindaki verileri mobilde de kullanmak istiyorsunuz . İşte burada API araya giriyor ve bizi büyük bir yükten kurtarıyor . Yalnız hem uygulamaların birbiri ile hem de server ile sağlıklı bir iletişim kurabilmesi için aynı dili konuşması gerektiğini unutmayalım. Burada sıklıkla REST ve SOAP mimarisi kullanılır.

Swagger Nedir?
Web API geliştirirken en önemli ihtiyaç dökümantasyon ihtiyacıdır . API içerisindeki metodların ne iş yaptığı , ne için kullanıldığı , hangi parametreleri aldığı gibi birçok bilgi dökümantasyonda belirtilir . Dökümantasyonların elle yazılması güncel tutulma açısından zor ve oldukça vakit alıcı bir durum olacağı için geliştiricilere kullanıcı arayüzü sunan , hangi metodun ne işe yaradığını ve hangi parametrelerle gönderileceği gibi birçok bilgiyi aktarmamızı sağlayan Swagger teknolojisini kullanırız .

Swagger Nasıl Kullanılır ?
Öncelikle bir solution project oluşturalım ve gerekli olan Business , DataAccess , Entities , UI ve son olarak en çok uğraşacağımız Web API katmanlarını ekleyelim . API katmanı dışındaki katmanları yazdığımızı varsayalım . API katmanı üzerine sağ tıklayalım ve Manage Nuget Packages seçeneğine tıklayalım .


NSwag.AspNetCore adlı kütüphanemizi indiriyoruz.Kullanıcı arayüzüne gitmeden önce startup.cs dosyasında birkaç ayar yapmamız gerekiyor.


Ayarlarımızı yaptık . Şimdi projemizi API üzerinden çalıştıralım ve localhost:PORT/swagger linkine gidelim . Karşımıza aşağıdaki gibi bir ekran gelecek. Şimdi bu ekrandakilerin neler olduğunu anlamaya çalışalım .


Sayfamızın başında başlık , versiyon numarası gibi birkaç metin görebiliyoruz . Burayı makalenin sonlarına doğru beraber düzenleyeceğiz . Altında , API'de sahip olduğumuz controller isimlerini görüyoruz. Bizde şuanlık sadece Books controller var. İçerisinde de tanımlanmış metodları ve HTTP protokollerini görüyoruz lakin açıklaması olmadığını farkediyoruz . Altında Models kısmını görüyoruz.Burada API içerisinde kullanılan model sınıflarını görebiliyoruz . Model içerisinde de hangi kolonların hangi türde olduğunu da görebiliyoruz . Tabi normalde bu kadar az içerik görünmez , ben kısa ve öz olması açısından sadece BookController ile çalıştım ama siz daha fazla içerik ile uğraşabilirsiniz.

Alttaki fotoğrafta sol kısım henüz açıklama eklemediğimiz , sağ kısım ise açıklama eklememizden sonraki hali .


Ancak tekrar aynı URL'e bağlanmaya çalıştığımızda açıklamamız görünmeyecektir . Bunu engellemek için Web API katmanı üzerinden Properties'e basıp Build sekmesine tıklayın . XML documentation file seçeneğine tik atın . ( Fotoğraf aşağıda )


Çalıştırmadan önce yukarıda da bahsettiğim gibi başlık versiyon numarası vb. kısımları düzenleyelim . Startup.cs dosyasında ConfigureServices metodunu tekrardan düzenledik .


Bu kısmı kendi dökümasyonundan da bakabilirsiniz . Birçok ayar bulunmakta . Artık tüm ayarları yapmış bulunuyoruz . Gelin beraber sonucu görelim .








(Kaynak: Abdullah Ö)

Vulnerability Assessment (Zafiyet Testleri) nedir?

Zafiyet taraması bir sistemdeki muhtemel tüm açıkların belirlenmesine yönelik tasarlanmış bir testtir. Zafiyet taramasında amaç taranan sistemin genel güvenlik görüntüsünü almaktır. Zafiyet taraması raporunda çıkan tüm bulgular ciddi bir tehdidi göstermeyebilir.

 Örnek vermek gerekirse bir ISS sunucunda yapılan taramada sunulan bir web hizmeti http olabilir. http protokolünün güvenli şifrelenmiş versiyonu bildiğimiz üzere httpsdir. Dolayısı ile bir sitede http yerine https kullanmak zafiyet taramasında bir bulgu olarak gözükebilir. Fakat siz o hizmeti http sunmak zorunda olabilirsiniz.Gerekli güvenlik önlemleriniz var ise bu sizin için ciddi bir tehdit değildir.Yukarıdaki örnekteki gibi tüm protokoller, verilen her hizmette şifrelenmiş olmak durumda değildir. Ama bu durum zafiyet taramasında bir bulgu olarak gözükebilir. Dolayısı ile zafiyet taraması sistemle ilgili oluşabilecek tüm güvenlik risklerini bize sunan bir güvenlik taramasıdır.Tabi bu zafiyet taramasının ciddiye alınmaması gibi bir durum ortaya koymaz. 

Zafiyet taramasında çıkan tüm bulguların dikkatli bir şekilde incelenmesi gerekir.Bu tehditlerden hangisi bizim sistemimizde gerçek bir risk oluşturuyor buna karar verilmesi gerekir. Zafiyet taramasında denetlenen bir diğer şey ise uyumluluk süreçleridir. Zafiyet taraması firmaların PCI, SOX, HIPPA vs. gibi dünyaca kabul edilmiş birçok uyumluluk standatlarına göre durumunu da inceler. BT ortamınız bu uyumluluklardan geçecekse bu taramaların mutlaka yapılıp sistemin durumu hakkında fikir sahibi olmak ve gerekli önlemleri almak gerekir.

26 Temmuz 2020 Pazar

Sosyal Mühendislik Nedir?

Bilgisayar güvenliği terimleriyle "sosyal mühendislik" insanlar arasındaki iletişimdeki ve insan davranışındaki açıkları tanıyıp, bunlardan faydalanarak güvenlik süreçlerini atlatma yöntemine dayanan müdahalelere verilen isimdir.Bu tanım çerçevesinde iletişim kavramındaki kasıt, kişiler arasında, kişiyle kurum arasında ya da kurumlar arasındaki etkileşimdir.İnsan davranışlarındaki açıklıklarsa, insanların gündelik sergiledikleri, niyetlerinden bağımsız hareketlerin güvenlik açısından istenmeyen durumlara sebep olması ihtimalleridir.

Sosyal mühendislik kullanılarak hedef kişi veya kurumun normal yollarla ulaşamayacağı bilgilerine ulaşılabilmektedir.Sosyal mühendisliği kullanan ilk bilgisayar korsanlarından olan Kevin Mitnick 15 Şubat 1995'te FBI tarafından yakalanmıştır. Büyük şirketlerin bilgisayar ağlarına izinsiz girmekten suçlu bulunarak beş yıl hapis cezası almıştır. Cezası 21 ocak 2000'de, bilgisayarlara yaklaşma yasağı 21 Ocak 2003'te bitmiştir. Kevin Mitnick, eylemlerini bilişim teknolojilerine hakim olmasının yanı sıra çok iyi bir sosyal mühendis olması sayesinde yapabilmiştir. Yaptıklarını ve yöntemlerini de "Aldatma Sanatı" isimli kitabında detaylarıyla anlatmıştır. Kitaba göre bil güvenliğinin en zayıf halkası insandır ve bilgi güvenliğine yönelik yapılan saldırılarda sosyal mühendislik kullanılarak yani insan unsuru kandırılarak gizli bilgilere ulaşılabilir. 

Sosyal Mühendislik dört aşamada gerçekleşmektedir.

  • Birinci aşamada kişi hedef aldığı kişi ya da kurumla ilgili bilgi toplar.
  • Daha sonar topladığı bilgilerle birlikte hedefle iletişime geçer ve bu bilgileri de kullanarak hem daha fazla bilgiye ulaşır hem de amacı doğrultusunda kullanabileceği araçları tespit eder. 
  • Kişi artık elindekiler sayesinde uygulamaya geçer ve erişmek istediği bilgilere erişir. 
  • Son olarak erişilen bilgiler istismar edilerek diğer amaçlara ulaşılabilir.

Bu amaçlar bazen ciddi maddi kazançlar olabilir.

Casus Yazılımları ve Reklam Yazılımları


Casus yazılımlar (spyware) ve reklam yazılımları (adware)bilgisayarınıza geldikten sonra bilgisayarınızda farklı etkiler ile casusluk yapan veya sizi rahatsız eden yazılımlardır.Bu rahatsızlık yöntemlerinden en popülerleri; bilgisayarınızdaki verileri, gezdiğiniz siteleri belli bir merkeze gönderme ve reklam gösterme, internette reklam indirme şeklinde karşımıza çıkmaktadır.

Uygulamalara bakıldığında bu yazılımların temel iki amaç için kullanıldığını görmekteyiz.
Birincisi milyonlarca kişinin bilgisayar kullanımı ile ilgili istatistikleridir ve bu istatistikler bazı firmalar için çok değerli olabilmektedir.
İkincisi ise yazılımın bulaştığı program vasıtasıyla istem dışı olarak internet üzerinden reklamları tıklatmaktır.
Bu reklamlar büyük reklam gelirleri sağlayabilmektedir.

Bazı kötü niyetli kişiler tarafından casus yazılımlar kullanılarak istenilen bilişim sistemlerinden bilgiler çalınacağı vaadiyle dolandırıcılık da yapılmaktadır.
Ülkemizde de benzer bir durumla karşılaşılmıştır, para karşılığı casus yazılımlarını kullandırarak hedeflenen bilişim sistemlerine erişilebileceğini iddia eden dolandırıcılara yönelik operasyonlar yapılmıştır.

Son yıllarda casus yazılımlar cep telefonlarının da gelişmesiyle birlikte bu alanda kullanılmaya başlandı. Cep telefonlarına yüklenen casus yazılımlar sayesinde telefon konuşmalarını dinleme, ortam dinlemeleri, kısa mesajlara erişim gibi işlemler yapılabilmektedir.Bu yazılımlar tek başına satıldığı gibi, yazılımların yüklü olduğu cep telefonları da satılmaktadır.

Reklam yazılımları ve casus yazılımları genel olarak ayrı ayrı geliştirilse de bazı zararlı yazılımlar her iki özelliği de barındırmaktadır. Bu yazılımların bilgisayarda aktif hale gelmesi için kullanıcı tarafından kurulum yapılması ya da bu işlemin onaylanması gerekmektedir, kullanıcılar dikkatsizlikle ya da ilgi çekici bir internet içeriğine erişmek amacıyla bu hataya düşebilmektedirler. Yazılımların bulaştığı bilgisayarlarda tespit gerçekten zor olmaktadır ve sıradan anti virüs programları da yetersiz kalmaktadır.

19 Temmuz 2020 Pazar

Kötücül Yazılımlar: Truva Atları



Truva atları, ismini herkes tarafından bilinen tarihteki Truva atından almaktadır ve aynı plan ve yönetim üzerinde çalışırlar.Bir Truva Atı (trojen horse), legal bir program içindeki illegal talimatlar ya da bir işi yapıyormuş gibi görünüp kullanıcısından habersiz işlemler yapan zararlı bir programdır. 


Genel olarak bir Truva Atı iki bölümden oluşur,
İstemci ve Sunucu bölümü.
Sunucu tarafında hedef seçilen kişinin bilgisayarında,
İstemci tarafı ise diğer bilgisayarda yani uzaktan illegal olarak erişen ve yöneten kişinin bilgisayarında çalışır.Truva atları sıklıkla bilişim sistemlerine yönelik yapılan saldırılarda kullanılsa da bazen legal olarak bilişim sistemlerinden sorumlu teknik personel tarafından da kullanılabilmektedir.


Truva atları diğer kötücül yazılımlar gibi kendi başlarına işlem yapamazlar. Truva atlarının zararlılığı kullanıcının hareketlerine bağlıdır.Truva atları kendilerini kopyalayıp dağıtsalar bile her kurbanın programı (Truva Atını) çalıştırması gerekir.Bu yüzden truva atlarının zararlılığı bilgisayar sistem açıklarına veya ayarlarına değil toplum mühendisliğinin (sosyal mühendislik) başarılı uygulamalarına bağlıdır. Truva atları da diğer birçok zararlı yazılımda olduğu gibi kullanıcılar tarafından internette veya e-posta yolu ile ücretsiz kullanabilecekleri basit programlar ya da ekran koruyucular gibi küçük ama ilgi çekici uygulamalar aracılığı ile bilgisayarlara bulaşmaktadırlar.


Truva atları bilişim sistemlerinden yararlandıkları güvenlik zaafiyetlerine ve nasıl zarar verdiklerine göre yedi türde gruplandırılabilirler. Bunlar;

  • Uzaktan erişim sağlayan truva atları
  • Başka bir bilgisayara veri gönderen truva atları
  • Verilere zarar veren truva atları
  • Hedef bilgisayarı vekil sunucu haline getiren Truva atları
  • Hedef sistemi basit dosya gönderme- alma (FTP) sistemi haline getiren Truva atları
  • Güvenlik programlarını etkisiz hale getiren truva atları
  • Ve hedef sistemi hizmet veremez hale getiren (DoS) truva atlarıdır.

Kötücül Yazılımlar: Bilgisayar Solucanları

Son yılların en popüler virüs benzeri programı olan "worm" ya da Türkçesiyle "kurtçuklar/solucanlar", virüslere oldukça benzer özelliklere sahip oldukları için virüslerle karıştırılmaktadır.Birçok yerde de virüs olarak anılmaktalar. Virüslerle olan temel farkları yayılmak için bulaşmak zorunda oldukları bir dosyaya (konak) ihtiyaç duymamalarıdır.Bunlar bir anlamda bulaşmadan kopyalanma yoluyla çoğalırlar, yayılırlar.Yayılmak için ağları kullanırlar.Bu ağ (network), kurumsal bir ağ (LAN/WAN) olabileceği gibi, internet ya da intranet olabilmektedir.Bu nedenle solucanlardan bahsedilirken çoğu zaman "ağ solucanları"da denmektedir.

Standart bir bilgisayar virüsü bir sisteme girdiği zaman bir sistem dosyasını veya ulaşabildiği bir dosyayı gelecekte herhangi bir zamanda kullanılmak üzere değiştirir. Bu değiştirme genellikle virüs bilgisayarın neresinde olursa olsun aktif hale getirilebileceği bir komutun dosyaya eklenmesiyle olur.Virüsler ile solucanlar arasındaki yapılacak karşılaştırmada dikkat edilecek en önemli nokta, kullanıcı tarafından virüs aktif hale getirilinceye kadar virüsün bilgisayarda hareketsiz kalmasıdır.Oysa solucan bu açıdan bakıldığında çok daha güçlüdür.Bir solucan bilgisayara girdiği zaman eğer yapabilirse bulaşabileceği internet alanlarını arayan bir programı başlatır.Bir solucanın yüklediği bu programın başlayabilmesi için herhangi bir kullanıcının işlem yapmasına ihtiyacı yoktur.Dahası solucan internet üzerinde gezer ve kendini  ekleyebileceği yeni kurban bilgisayarlar arar.Solucanın çalışması için kullanıcının bir hareketine ihtiyaç duymadığı gibi yayılmak için de herhangi bir harekete ihtiyaç duymaz.

Solucanlar özellikle yayılmasının çok hızlı ve kolay olmasından dolayı suç dünyasında kullanmaktadır.Binlerce bilgisayarı ve kullanıcısı olan büyük şirketler ve finans kurumlarının bilişim sistemlerine yönelik yapılan illegal girişimler için solucanlar tercih edilmektedir. Geniş bir alanı hedef alan bu saldırılarda takip de çok zor olmaktadır.

Bilişim Güvenliğinde Zararlı Yazılımlar



Zararlı (kötücül) yazılımlar İngilizce "malware" yani "malicious software" teriminin kısaltılmasından türetilmiştir.Genel olarak kullanıcısının bilgisi dışında gizlice bir bilgisayar sistemine erişebilmek için kullanılan yazılımlardır.Uzmanlar tarafından zararlı yazılımların ortak özellikleri davetsiz (istenmeyen), düşmanca ve rahatsız edici olarak tanımlanmaktadırlar.


Zararlı yazılımlar üretilme amaçlarına göre değil kullanım amaçlarına ve özelliklerine göre isimlendirilirler.Bilgisayar virüsleri, solucanlar (worms), Truva atları (troajan horses), casus yazılımlar (spyware), reklam yazılımları(adware) ve kök kullanıcı takımları (rootkit) en bilinen zararlı yazılımlardır.


Bilgisayar dünyasındaki olumsuz gelişmelerde ilk akla gelen durum bilgisayar virüsleridir.Bilgisayar virüsleri özel olarak yazılmış küçük birer programdır.Yani, her hangi bir iş, oyun, müzik programı gibi bilgisayar programcıları tarafından yazılmış birer programdır.Farklı olan yönleri diğer programlara kendilerini bulaştırabilmeleridir ve bu şekilde çoğalıp yayılırlar.

Bilgisayar kullanıcılarının birincil sorunu kuşkusuz; virüslerdir. 1982 yılına gelindiğinde Rich Skrenta adlı lise öğrencisi tarafından arkadaşlarına şaka amacıyla hazırlanan ve Apple DOS 3.3 işletim sistemine disketten yayılan ilk virüs yazılmıştır.Bu gelişmelerden sonra 1986'da Pakistan'ın Lahora kentinde yaşayan Basit ve Amjad Farooq Alvi isimli iki kardeş tarafından bir virüs daha yaratılmıştır.Bu virüsün adı "Brain" idi.Açıklanan tarih 1986 olmasına rağmen birçok kişi bunun 1981 tarihinde bulunduğunu ve ilk virüs olduğunu iddia etmektedirler.Uzmanlar, bilgisayar virüsünün evriminde en önemli değişimin, virüs programı yazma hobisinden maddi çıkar sağlama amaçlı sanal suçlara geçiş olduğunu belirterek, ilk bilgisayar virüsünün ortaya çıkışının üzerinden onlarca yıl geçmesinin ardından yüz elli binin üzerinde virüs programının yazıldığını kaydediyorlar. Ancak zararlı yazılımların milyonlarca olduğunu söylemek yanlış olmaz. 

Virüslerin bulaştığı bilgisayarlara verebileceği zarar türleri;

  • Bilgisayarlarınızda hata ve uyarı mesajları almanıza neden olabilir.
  • Bilgisayarlarınızın kilitlenmesini, kapatmasına ve açılamaz hale gelmesine yol açabilir.
  • Bilgisayarınızda erişmek istediğiniz bir dosyaya erişiminizi engelleyebilir.
  • Dosyalarınızın tamamını ve/veya bir kısmını kullanılmaz hale getirebilir.
  • Bilgisayarınıza yerleşerek durağan kalır ve sizin yaptığınız işlemlerin veya bilgilerin (internet bankacılığı işlemleri, kredi kartı bilgileri ) yetkisiz üçüncü kişilerin tarafından bilinmesine hatta bu kişiler tarafından bilgisayarınıza uzaktan erişime yol açabilir.


Bilişim Güvenliğine Yönelik Saldırılar (Hacking, Cracking)



Bilişim sistemlerine yönelik saldırılar genel olarak "hacking" denmektedir.Ancak "hacking" terimi aslında "cracking" teriminin yerine kullanılır hale gelmiştir ve artık hem kamuoyu hem de medyada bu şekilde kullanılmaya devam edilmektedir. "Hacking" terimi; bilişim dünyasının yer altındaki (gizli kalmış) kişilerin kendi yeteneklerini geliştirmek amacıyla bilgisayar sistemlerinin en derin teknik detaylarıyla uğraşır hale gelmesi eylemine denmektedir. "Cracking" ise illegal bir amaç için yine illegal olarak bir bilişim sistemine erişim sağlamak ve verilere müdahale etmek veya bilişim ürünlerine yönelik (yazılımlar) illegal müdahalelerde bulunmaktadır.


"Hacking" dünyasından ve terimlerinden bahsedilirken "jargon file" (argo dosyası)" konusuna değinmek gerekmektedir.Argo dosyası başta internet olmak üzere bilişim teknolojilerindeki birçok yeniliği bilişim dünyasına kazandıran MIT (Massachusetts Institute of Technology)'de  geliştirilmiştir.İlk sürümü 1973-1975 yıllarında yayınlanan Argo dosyası bir tür sözlük şeklindeydi.Bu argo sözlüğü, kültürün kendini tanımlamakta kullandığı önemli belgelerden birisi haline gelmiş ve 1983 yılında "The Hacker's Dictionary (Bilişim Korsanının Yeni Sözlüğü) halen yayınlanmaktadır.


Bilişim sistemlerine yönelik saldırılarda saldırganlar beş aşamalı bir yolu takip etmektedirler.
Bunlar sırasıyla
  • Keşif
  • Tarama
  • Erişimi sağlama
  • Erişime devam etme 
  • Ve İzleri temizlemektedir.
Keşif evresi hazırlık evresidir amaç saldırı yapılacak hedef hakkında olabildiğince bilgi toplamaktır.

Tarama ön saldırı evresidir saldırgan hedef sisteme ulaşmada kullanacağı bilgisayar ağına ya da diğer bağlantılara yönelik zafiyetleri belirlemeye çalışır.

Erişim sağlama artık hazırlıklar tamamlanmış kullanılacak yöntem belirlenmiş ve sonunda hedef sisteme erişilmiştir.

Erişime devam ettirme  saldırganın sisteme sahip olma evresidir ve saldırının başkaları tarafından anlaşılmaması için çalışılır.

İzleri temizleme evresi son evredir, saldırgan artık hedefine ulaşmıştır ancak daha sonra yaptığı işin anlaşılmaması için hedef sistemde kendisiyle veya eylemiyle ilgili izleri silmek durumundadır.


12 Temmuz 2020 Pazar

Pentest (Sızma Testleri) Nedir?




Penetrasyon testi firmaların Bilişim Sistemlerini oluşturan ağ altyapılarını,donanım, yazılım ve uygulamalara kötü niyetli birinin saldırmasını öngören yöntemler kullanılarak yapılan saldırı ve müdahaleler ile güvenlik açıklarının tespit edilip bu açıklarla sisteme sızılmaya çalışılması ve tüm bu işlemlerin raporlanmasıdır. 

Amaç şirketlerin farkında olmadıkları güvenlik açıklarının iyileştirilmesidir.Test sırasında uzmanlar tıpkı bir saldırgan gibi hareket eder ve sistemin tüm açıklarını, riskleri ve erişilebilirliği ortaya çıkarırlar. Çok farklı yöntemler ve değişkenler söz konusu olduğundan uzmanlar tarafından gerçekleştirilmesi gerekmektedir.


Penetrasyon TestleriBlack Box, Gray Box, White Box olarak üç gruba ayrılır.
Black Box:Bu yöntemde sızma testini gerçekleştiren firmayla herhangi bir bilgi paylaşımında bulunulmaz. Zarar vermek ya da firmadan bilgi sızdırmak amacıyla sızmaya çalışan saldırgan gibi davranılarak verilebilecek zararları görmek ve önlem almak amacıyla sistemlere girmeye çalışılır.

Gray Box: White Box + Black Box olarak tanımlayabiliriz. Sistemlerin, sistemler hakkında detaylı bilgi alınmadan test edilmesi yöntemidir. Bu test ile firma içinde kısıtlı yetkilere sahip kullanıcıların sisteme verebilecekleri zararlatespit edilip önlemler geliştirilir.

White BoxGüvenlik uzmanı, firma içinde yetkili kişilerce bilgilendirilir ve firma hakkındaki tüm sistemler hakkında bilgi sahibi olur. Bu yöntemde daha önce firmada yer almış ya da hala çalışmakta olan kişilerin sistemlere verebilecekleri zararlar gözetilir ve raporlanır.