Ağ analizi ile ilgili kitabımız yayınlandı. Değerli hocalarım, Dr. Çiğdem Baskıcı ve Prof.Dr. Yavuz Ercil ile birlikte editörü ve yazarı olduğum kitap ağ analizi ile ilgili Türkçe literatürde önemli bir katkı sağlıyor. Kitap, tüm üniversitelerin İşletme, Sosyoloji, İletişim ve Bilgisayar/Yazılım Mühendisliğinin hem lisans hem de lisansüstü programlarında okuyan öğrencilerin ağ anlayışı ve ağ analizi konusunda … Okumaya devam edin Yeni Kitabımız Yayınlandı: Ağ Analizi
Pomodoro Tekniğinin 5 yıllık Sağlam Uygulayıcısından Notlar Nedir?: Pomodoro Tekniği, insanları daha çok ve sistematik çalışmaya teşvik eden bir zaman yönetim sistemidir. Bu yöntemi kullanarak, iş gününüzü ya da ayırdığınız daha az bir zamanı beş dakikalık aralarla ayrılmış 25 dakikalık parçalara bölersiniz. Bu 25 dakikalık aralarda çalışır, 5 dakikalı molalarda ise dinlenirsiniz. Bu 25 dakikalık … Okumaya devam edin Pomodoro Tekniği Nedir
Elsevier’a ait Journal Finder adlı araçla makalenizi hangi dergiye göndermenizin uygun olduğunu bulabilirsiniz. Neticede doğru dergiye göndermek çalışmanızın kabul ihtimalini arttıracaktır. Ancak bu aracı kullanırken bir sürü ölçüt görürsünüz. Bu ölçütleri burada açıklıyorum. Bu yazıda ayrıca bu dergilerde karşılaşabileceğiniz ve epey uzun hikayeleri olan başka jargonları da ele alacağım. Gold Open Access: Yazarlardan ücret istenilir, … Okumaya devam edin Akademik Dergiler’de Sıkça Duyacağınız jargonlar
Bugün dinlediğim bir ses kaydında Tomek adlı hoca bilimsel çalışmaların düşüncelerimizin neredeyse tamamına yakının tekrar eden düşüncelerden oluştuğunu ve bu düşüncelerin genellikle beyinlerimizin hayatta kalmaya programlanmış olmaları nedeniyle negatif obsesyonlar olduğunu söyledi. Negatif düşünceler bizi hayatta tutmaya yardım ediyor. Eğer Afrika’da yaşayıp aslanlardan korkmadan yaşarsak büyük ihtimalle pek de yaşamayacaktık. Beynimiz negatif düşünceler için yapışkan … Okumaya devam edin Negatif Düşünceler Hayatta Kalmak içindir Takılmak için Değil !
Google kurucularının yazdığı ‘Google Nasıl Yönetiliyor’ adlı kitabı okudum. Kitap, mutfağından Google’da işlerin nasıl gittiğini anlatıyor. İşte bazı detaylar: İlk prototipi ışık hızında hazırlayın Kitaba göre Google Glass’ın ilk prototipinin hazırlanması 90 dakika sürmüştür. Bu durum günümüzde artık bir iş fikrinin donanımsal üretimi içermesi halinde dahi çok kısa sürede bittiğini gösteriyor. Peki bu kadar hızın … Okumaya devam edin Google Nasıl Yönetiliyor
Araştırmalar insan zihninin herhangi bir davranışı yapmaya devam ettikçe zihnin o davranışın bir sonraki tekrarını daha kolay yaptığını ortaya koymuş. Şikayet etmek de buna dahil. Yani durmadan bir şeylere söyleniyorsanız, bir sonraki söylenmeniz daha kolay hale gelir. Beynimizdeki nöronlar tekrarları sever ve tekrar edilen her şeyin yapılması daha hızlı hale gelir. Bunun alışkanlıkara etkisini şu yazımdan … Okumaya devam edin Söylenmeyin!
Kendi küçük crawler’ınızı oluşturmak ister misiniz? Ben haber analitiği ile ilgili çalışmalarımı yaparken eksteriyetle çok miktarda habere ihtiyaç duyuyorum. Şu ana kadar scra.py, newspaper3k gibi bir çok kütüphane kullandım Python’da. R’da ise Rvest. Ancak bu kütüphaneler bir yere kadar işe yarıyor. Çekebildiğim en fazla miktar 50.000 civarında haber idi. Burada suç bu kütüphanelerin değil, daha teknik ayrıntıda.
Yeni keşfettiğim kütüphane ise scraping değil crawling yapıyor ayrıca her çekilen veriyi .hjson formatında kayedediyor. CLI modunda sadece başlangıç sitesi vermek yeterli. O özel yollarla linkleri buluyor.
Buradan derlenen haberler bilgisayarınıza json formatında ayrıştırılmış olarak (başlık, tarih, fulltext) ve html dosyasının kendisi ile birlikte gelir. Bu dosyaları ise Python Pandas ile birleştirip analiz edebilirsiniz:
Benim kendi lokalimdeki çalışan kodlar şunlar:
path_to_json = '/home/suat/news-please-repo/data/2020/10/15/haberler.com'
json_files = [pos_json for pos_json in os.listdir(path_to_json) if pos_json.endswith('.json')]
print(json_files) # for me this prints ['foo.json']
jsons_data = pd.DataFrame(columns=['id', 'baslik','tarih','sayfa_url','tanim','anametin'])
i=0
for index, js in enumerate(json_files):
with open(os.path.join(path_to_json, js)) as json_file:
json_text = json.load(json_file)
# here you need to know the layout of your json and each json has to have
# the same structure (obviously not the structure I have here)
anametin = json_text['maintext']
baslik = json_text['title']
tarih = json_text['date_publish']
sayfa_url = json_text['url']
tanim = json_text['description']
#city = json_text['features'][0]['properties']['name']
#lonlat = json_text['features'][0]['geometry']['coordinates']
# here I push a list of data into a pandas DataFrame at row given by 'index'
jsons_data.loc[index] = [i,baslik,tarih,sayfa_url,tanim,anametin]
i=i+1
Veri içerisindeki kategorik kolonlar (sıralı olmayan) makine öğrenme modellerinde mevcut halleri ile kullanılamaz. Bu verileri kullanabilmek için örneğin şehir kolonunda van yazıyorsa van diye bir kolon açıp kişi vanlı ise 1 değilse 0 yazılabilir. Bu işlem one-to-hot olarak adlandırılmaktadır ve python sklearn kütüphanesinde bunun için metotlar vardır. Problem şudur ki o metotlar kolayca kullanılamaz bazı ön işlemler icap eder (bkz:manueli).
Lazım olduğunda siz de ben de kullanabilelim diye df_one_to_hot_yap şeklinde bir metot yazdım. Bu metoda kategorik kolonlarınızı dizi olarak tanımlarsanız size sonuç olarak aşağıda en sondaki tablo benzeri bir tablo oluşturur.
Daha sonra bu tabloyu makine öğrenme modellerinizde eğitim verisi olarak kullanabilirsiniz.
Beğendiniz mi?
Teşekkürler
df = pd.read_csv("temp.csv")
df
id
sehir
tip
yas
0
1
van
lisans
20
1
2
van
lisans
30
2
3
mus
yukseklisans
40
3
4
van
yukseklisans
50
4
5
mus
yukseklisans
19
from sklearn.preprocessing import OneHotEncoder
"""
Verilen df içinde belirtilen kategorik kolonları sayısallaştırır.
"""
def df_one_to_hot_yap(df,kategorik_kolonlar):
#kategorik_kolonlar = ['sehir','tip']
aX=df[kategorik_kolonlar].values.tolist()
enc = OneHotEncoder(handle_unknown = 'ignore')
enc.fit(aX)
dfX=enc.transform(aX).toarray()
ctg = enc.categories_
flatten = lambda l: [item for sublist in l for item in sublist]
ktg = flatten(ctg)
dfY=pd.DataFrame(dfX)
dfY.columns=ktg
# normal kolonlari at
dfN = df.drop(kategorik_kolonlar,axis = 1)
dfY
#cbind et
sonuc = pd.concat([dfN.reset_index(drop=True), dfY], axis=1)
return(sonuc)
Ortaokuldan beridir, kütüphane raflarında gördüğüm için okumak istediğim ancak cesaret edemediğim “Karamazov Kardeşleri” nihayet okudum. Bence bu kitaplar o yaşlar için pek ağır. Okunmayacağından değil, anlaşılması için yaşlanmak gerektiğinden… En azından benim için öyle.
1000 sayfalık ağır bir roman hakkında yapılacak yorum da “güzel kitap” diye iki kelime olursa, Dostoyevski’nin kemikleri sızlar. Okumamış olanlar için baştan söyleyeyim, eğer eski eserleri veya “sıkan kitapları” hemen bırakıyorsanız bu işe girmeyin… Bu kitap uzun, çok uzun bir rüyaya benziyor kitabı bitirmeyene kadar olan biteni anlamıyorsunuz. Arada insan ruhuna dair farklı kahramanların dilinden tahliller büyülüyor. Bazen kahramanların kendi tutarsızlıkları da öyle… Bir kahramanın tutarsızlığı diye yapıştırıverdiğimiz hükmü her gün yaşadığımızı unutuyoruz. Kitabın kahramanı neredeyse kitaptaki herkes… Alyoşa’yı ana karakter sayanlar var ancak aslında gerçek hayata ve insanlara bu kadar yaklaşmış bir romanda bir Gruşenka da, Dmitri de hatta İlyuşa.
Kitapta unutamayacağım bölüm yerini söylemeyeceğim bir duruşma sahnesi… Orada Avukat Fetükoviç ve İppolit Kiriloviç’in tahlillerini okuyunca hayatta bırakın basit bir olayı romanın konusu olan o büyük olayda bile insan ruhundan, olan bitenden, suçun/yargının toplumsallığından yana öyle dersler alıyorsunuz ki bunu burada “bütün ihtimalleri düşünün” şeklinde anlatırsak “Aa, bu muymuş” diye geçiştirisiniz ama öyle. Bu duruşma sahnesinde bir mühendis kafasıyla bir hesap yaptım. Bir duruşmada 10 delil ve 10 tanık olsun. Bu kişilerin hemen hemen her birinin birbirleri ile illiyeti olsun. Bu durumda 10+10 = 20 öğenin kendi aralarındaki ilişkileri 20×20 = 400 oluyor. Zaten insan zihninin bunu bir dava dokümanından okuyup aklında tutması imkansız. Bu yüzdendir ki her “iddia” veya her “savunma” ilk dinlendiğinde haklı bile gelebiliyor insana, hele İppolit Kiriloviç’in o tahlilleri öyle derin ki, eğer tanık sandalyesine masum adam otursa müebbet yer… Çünkü kitabın kendi benzetmesiyle maddi gerçekler de roman haline gelip anlamsız kurgular yaratabiliyor
Diğer yandan kitaptaki kahramanlardan Dimitri, Katerina, İvan ve Gruşenka’nın diğer en büyük özelliği “poliamori”. Kitapta bu terim elbette geçmiyor, yani bir kişinin birden fazla kişiye aşkı… Ama kahramanlar bunu yaşıyor. Önce saçma geliyor, sonra Gruşenka’nın ağzından birine karşı “onu sevebilme ihtimalim vardı” gibi cümleyi duyup olan biteni, kıskançlıkları, hesapları da okuyunca bunun da tipik bir insan davranışı olduğunu görüyoruz. Öyle ki romanda daha sonradan ruh aslında bu poliamori olgusunda insanın “her anının ayrı bir telde” olabileceğini görüyoruz. Her konuda da böyle.
Kitabı okuduktan sonra içimdeki “İppolit Kiriloviç” de Avukat Fetükoviç de birebir oluştu, yerlerini aldı. Kendimi kitaptaki tahlilleri kendime ve başkalarına yaparken buldum. Kitapta çok kızılan “Fyodor Pavloviç” in de aslında hepimizin içinde yer aldığını biliyorum. Sadece adlarını koyacak Dostoyevski gibi derin değiliz.
Dostoyevski kitapta ana hikayeden kısmen bağımsız olan eski yüzbaşının oğlu İlyuşa’nın babasının Dmitri’den uluorta dayak yerken, çocuğun babasının yanına gidişini öyle bir anlatıyor ki sarsılıyorsunuz. Ana hikaye değil ama yan hikayelerden biri olan İlyuşa’nın öyküsü ve betimlemeler sizi ağlatabilir.
Kitapta Alyoşa’nın “şeyhi” diyelim, Startez Zosima’nın kendi yaşam öyküsü ayrı bir romandır aslında. Bir düelloda yaptığı bir hareket sonrasında kendisi ile dost olan yaşlı bir adamın öyküsü var, siz okursunuz artık, insanın çelişkilerini öyle bir anlatıyor ki… Ayrıca Startez Zosima’nın verdiği öğütler çok etkileyici.
Her kitap bir ders verir en kötüleri ise okunmayacak kitabın ne olduğuna dair ders verir. Bu kitaptan çıkardığım ders şudur: İnsanlar da, ilişkiler de, hayat da neredeyse muammadır. Biz günlük yaşamın pratiklği içinde örneğin bir hakim olarak o gün hızlıca karar verip birilerini idama da gönderiyor olabiliriz. Öte yandan idama giden suçlu da olabiliriz. Bu muammanın içinde rasyonel olmak için adil olmak gerekiyor. Adil olmak için -kitapta Alyoşa karakteri tam bir adalet örneği- ise herşeyi çok dikkatli gözlemlemek, Dostoyevski’nin gözü ile tahliller yapmak, sezgilerimizi dinlemek ama onlarla hüküm vermek yerine daha fazla düşünmek zorundayız. Nitekim doğru ile yanlış, iyi ile kötü, yalan ile doğru feci şekilde bir aradadır.
Linux’da konsolda çalışıtken konsol üzerinde dosyaları açıp düzenlemek için Notepad’ı aratmayan bir editör var: Nano. Bilenler bilir, hızı, pratikliği ve kolaylığı ile alışkanlık yaratan bir editördür. Ancak düğme yoktur, kısayollar vardır.
Nano kullanmak için Linux’da iken açmak istediğiz dosyanın adının başına nano yazarrak programı çalıştırabilirsiniz:
Burada: ^ işareti Ctrl’i, M işareti Alt’ı ifade eder. Alttaki kısa yol hatırlatıcılarına bakara işleminizi yapabilirsiniz F1’e basıp değişiklikleri ihmal edebilir, Ctrl+S’ye basark değişiklikleri kaydedersiniz. Ctrl+X ise çıkmak içindir.
Navigasyon
İmleci ileri veya geri hareket ettirmek için Ctrl + F ve Ctrl + B yazabilirsiniz.
Her seferinde bir satır yukarı ve aşağı gitmek için Ctrl + P ve Ctrl + N tuşlarına basabilirsiniz. Başka bir deyişle, sırasıyla Sağ, Sol, Yukarı ve Aşağı okları yerine bu tuşları kullanabilirsiniz.
Ana Ekran ve Sonlandırma tuşları eksik mi? Ctrl + A ve Ctrl + E tuşlarını kullanabilirsiniz.
Bunun yerine sayfaları tek tek hareket ettirmek mı istiyorsunuz? Ctrl + V bir sayfa aşağı, Ctrl + Y bir sayfa yukarı gider.
Bir seferde bir kelime ileri ve geri gitmek için Ctrl + Boşluk ve Meta + Boşluk tuşlarını kullanabilirsiniz (unutmayın, bu Alt + Boşluktur).
Eğergerçekten acele ediyorsanız, Ctrl + _ tuşlarına basıp doğrudan oraya atlamak için satır numarasını, virgül ve sütun numarasını yazabilirsiniz.
İmlecinizin şu anda nerede olduğunu görmek istiyorsanız, nano-GPS gibi, Ctrl + C tuşlarına basın.
Koronavirüs nedeniyle bir çok kişi gibi içerideyiz. İlk günlerden şimdiye kadar sosyal medya ve Whatsapp gibi kanallarda komik videolar bir taraftan insanların stresini azaltıp bir taraftan güldürdü. Durmadan akan haber ve yorumları saymıyorum bile. Sosyal medya kullanıcısı olmadığım halde bu kadar izolasyona rağmen her şeyden haberim var 🙂 Daha sonra bir çok kütüphanenin kaynaklarını ücretsiz erişime açtığını duyduk. Hatta ücretsiz kitap, dergi ve kaynakların linkleri bile sayfaları doldurmaya başladı. Bu heyecan verici, harika bir durum.
Ancak…
O anda kendime sormuştum. Bu kadar dijital kaynaktan açıp birini okuyan var mıdır? Elbette vardır ancak gerçek tablo nedir? Korona dönemi için bunu ölçmenin bir yolu yok. Ancak okuma oranları ile geçmiş dönemdeki karnemize baktığımızda durumumuz iç açıcı değildi.
Bu uygulamayı epeydir kullanıyorum. Bu uygulama sizin hangi programa ne kadar zaman harcadığınızı, bunun yanında telefonu kaç kez elinize aldığınızın da istatatistiğini tutuyor. Bu uygulamanın en sevdiğim özelliği Konsantrasyon Modu.
Bu modu diyelim kitap okurken, çalışırken ya da dinlenirken açtığınızda önceden belirlediğiniz Whatsapp, SMS veya başka sosyal medya uygulamaları pasif oluyor. Giremiyor, mesaj alamıyor hatta şöyle bir göz ucuyla dahi açamıyorsunuz. Bu sayede bir saat kitap okuyacağım dediğinizde bir saat kitap okuyorsunuz rastgele akan gönderileri değil…
Konsantrasyon modundan bir kaç saaat çıkmadığım bazı zamanlar oldu. Daha sonra açtığımda ise telefonda “henüz okunmamış” 400 bildirim (mesajlar da dahil), epostalar, haberler ve sonu gelmeyen bir dünya kalabalık.
İçinden gerçekten önemli olan hatta acil olanları görmeye sıra gelmiyordu neredeyse. Hatta eleştiriliyor insan, bu zamanda insan mesajlarına bakmaz mı? Dijitalleşen dünyamız filan…
Bakmaz efendim! Yukarıdaki kitap ilk çıktığında aldım okudum. Yazarı MIT’de doktora yapmış başarılı bir hoca Amerika’da. Sosyal meyayı geçtim E-posta bile kullanmıyor neredeyse. Kullanmamama övülüyor. Adam ilahiyat hocası değil. Bilgisayar bilimleri hocası…
Yapay zeka’nın mucitleri daha fazla sosyal medya kullandıkları için değil daha fazla “çalıştıkları”, odaklandıkları, düşündükleri için ilerlediler. Dijitalleşen dünya öyle “Tweet atmakla” olmuyor hariçten…
Evet benimkisi biraz dijitalleşme düşmanlığı sayılabilir ama değil… Konu sadece kitap okumak da değil. Yaşamak, konuşmak, dinlenmek, düşünmek…
Dün okuduğum Farsça bir kitapta, eski Sasani Hükümdarı Anuşirevan ile ilgili okuduğum hikayeye bayıldım:
Anuşirevan, 90 yaşında bir adamın ceviz ağacı diktiğini görürür ve ceviz ağaçları genellikle 20 yıla kadar meyve vermez der etrafindakilere. Yaşlı adamın yanına gidip neden ağaç diktiğini sorar.
Yaşlı adam “yediğim cevizleri benden öncekiler dikti, bunu ise benden sonrakiler yer” der. Anuşirevan adama bir kese altın verin der.
Yaşlı adam teşekkür eder ve şöyle der: “Herhalde bu ağacın meyesini benden önce yiyen olmamıştır”. Anuşirevan şaşırır ve nedenini sorar: “Ben bu ağacı dikmesem, siz gelip bana bu soruyu sormayacaktınız, soruyu sormasanız bin altın vermeyecektiniz” der. Anuşirevan bu cevaba da bayılır ve bir kese daha altın verin der.
Bu hikayeye ben ve Anuşirevan neden bayıldık: Çalışmak, sonucundan bağımsız olarak faydalı bir şeyler yapmaya odaklanmak illa idealistçe bir iş değildir. Bazen beklenen sonucu dışında tali bir sonuç verebilir ve bu sonuç esas sonuçtan daha değerli de olablir. Biz bazen Anuşirevan’ları görmesek de böyledir.
Edit:
Bu hikayeyi ilkokula giden çocuğuma anlatırken, “Oğlum, sence Anuşirevan yaşlı adama ne diyecektir” dedim. O da COVID-19’un çocuklar ve yaşlılar için sokağa çıkma yasağı günlerinden mütevellit şöyle dedi: “Amca, bu Korona günlerinde dışarıda ne geziyorsun, ceviz ağacı filan, bak ben kralım, git evine :)”
Zeroday saldırıları: İleri düzey salsıdrganların standart saldırgtan araçlarını kullanmadan, özellikle herkesin çok kullandığı antivirüs, SQL yönetimi gibi araçlara daha kimse farketmeden açıklarını bulurlar. Daha sonra bu araçlar üzerinden backdoorlar açıp istismar ederler.
cve.mitre.org, nvd.nist.gov us-cert.gov, packetstorm security , gibi sitelerde güncel zafiyetler yayınlanır. Buraya bazı hackerlar ve uzmanlar kaynak kodlardan buldukları problemleri paylaşırlar. Örneğin Pandora FMS adlı network izleme aracında bulunan bir zaafiyet bir arkadaşım tarafından mitre’de paylaşıldı.
Kahynak kod analizi eğitiminde ilk adım programın ne işe yaradığına dair kılavuzları okumaktır. İlk problemler buradan bulunur.
Daha sonra kaynak koda erişim sağlanır. Kodlar okunurken notlar alınmalıdır. Aksi takdirde kodun içerisinde kaybolmak mümkün olabilir. Daha sonra bu kodlardan önemli olanlar kritiklik ölçeğine göre sınıflandırılır.
Örneğin BirbSuite gibi uygulamalarla yönlendirmelere dayalı yetkilerle çalışan sitelerde 301’i durdurarak sitelerin admin panellerine erişilebiliyor.
Shodan’dan uygulamaların zafiyetleri de aratılabiliyor.
Kontrol Listesi:
Kimlik doğrulama kontrolleri
Yetki kontrolleri
Veri tabanı erişim kontrolleri
Sistem fonksiyonlarının kullanım kontrolleri
Üçüncü parti uygulama ve kütüpnalelerin sıkıntıları
Tehdit Modelleme:
Uygulamayı kimler kullanacak
Uygılama nerelerde kullanılacak
Uygulama mali işlemler içeriyor mu?
Kod Analizi
Kodlar istenen bir IDE’de açılır.
Kimlik doğrulama get ve post istekleri kullanılır.
Kimlik doğrulama sırasında HTTPS kullanıldığından emin olunmalı.
Tanımlı yetkilerle koddakiler uyumlu
Dikey ve yatay yetki yükselme sebebiyet verebilecek durumlar kontrol edilmeli.
Girdiği doğrulamaları:
Girdiler sorguları olduğu gibi SQL’in içerisine ekleniyor mu?
Girdiler ekrana yazdırılıyor mu? (Muhakkak encode edilmeli ya da regex ile whitelist şeklinde temizlenmeli)
Frontend satırlarında kritik bilgi var mı?
SQL Injection’dan korunmak için PHP’de mysql_real_escape fonksiyonu kullanılabilir. Ancak eğer SQL içerisinde sorguda parametre alırken tırnak kullanılmazsa o zaman yine zaafiyet vardır.
XSS
Tarayıcı üzerinde Javascript kodu çalıştırmaktır.
Özel karakterleri engellemek gerekir. PHP için htmlspecialcharts var.
Bir önceki önlem alınsa bile, echo ile yazdırılan şey kesinlikle script tagı arasında olmamlı yoksa yine çalışır.
Kullanıcı “şunları giremesin” doğru bir mantık değildir. Kullanıcı “sadece şunları girebilsin” diye düşünülmelidir. Örneğin <script> tagı engellenebilir ama hackerlar <sCript> diye bunu aşabilirler.
Script tagı dışında <body onload = alert()> diyerek de XSS yapabilir.
LFI / Directory Traversal
Bu zaafiyet sunucudaki dosyanın görüntülenmesi durumudur. “Local File Inclusion”
RFI denilen bir metot daha var. Tam anlamadım. Öğrenirsem yazarım. URL’den parametrre gönderip config.php’yi base64 formatında alıp daha sonrasında okumaya yarıyor
File Upload
Dosyanın uzantı, boyut ve tipi muhakkak kontrol edilmelidir.
Kaynak kod analizi yaparken $_FILES aratılarak gözden geçirilebilir.
Remote Code Execution:
Sisteme herhangi bir şey yüklemeksizin sistemde komut çalıştırma eylemidir.
Güvenlik yazılımlarında, ağ izleme araçlarında vs. kullanılamktadır.
Örneğin bir sunucuya erişimde, ls komutundan sonra ; ya da ` gibi işaretlerden sonra gelen komutlar kullanılabiliyorsa bu sunucuaya ciddi bir erişim söz konusu olur.
Bu tür zaafiyetler pek paylaşılmaz.
PHP için shell....args diye bir fonksiyon var komut satırına sadece belirli bilgilerin girilebilmesini sağlar.
Bir kez bu açık bulunduktan sonra örneğin ilgili uygulamanın web arayüzündeki inputa girip bash komutu üzerinden kendi IP’mize bu kurban makinadaki konsolu yönlendirip bu makineyi kendi makinamızda tam erişimle kullanabiliriz.
Bu zaafiyetleri örneğin ağ izleme araçlarının PHP kodlarından eval, exec gibi komut satırınd çalışan kodları aratıp daha sonra bu fonksiyonlara erişimi olan inputları bulup saldırabiliriz.
RIPS adlı araçla kaynak kod analizi yapmak mümkündür. Bu araçlar bazen aslında güvenli olan yerleri de yakalar. Bu araçlar genellikle sadece inputları arar.
Yukarıdaki işlemden sonra kullamnıcı tablosunda kullancı adları ve şfireleri de elde edilebilir.
Bunu elle yapmak yerine SQLMap adlı uygulama ile elle de yapılabilir. sqlmap -u “url” denerek sonuçlar görüntülenebilir ve buradan zaafiyetler tespit edilebilir.
vulnweb.com adlı web sayfasından öğrendiğiniz saldırı tekniklerini deneyebilirsiniz.
İç güvenliği teminen hangi kullanıcnın hangi IP’den girebileceği ve ne yapacağı belirlenmeli ve ayarlanmalıdır.
Kullanıcıların çalıştırabileceği fonksiyonlar belirlenmeli. Kullanıcılara insert select gibi fonksiyonlarda kısıtlama getirilebilir. Grant insert,update on firma.tablo1 to ‘editor_kullanici’@ip şeklinde bir sınırlama getirilebilir.
show grants komutu ile hangi tabloda kimin ne yetkisi olduğu görülebilir.
Hangi tablolara gireceği ayarlanmalıdır.
Diyelim ‘developer’ diye bir grup var. Kullanıcı adı sabit, farklı IP’ler tanımlanarak tek tanımlama ile grup halinde tanımlşama da yapılabilir.
Yetkilendirmek için ‘grant’ yetki kaldırmaki için ‘revoke’ kullanılır.
Bir kullanıcıyı sadece spesifik bir veri tabanına tanımlayıp geri kalanını izole etmek mümkündür.
Her ne kadar bazen kapalı da olsa sql iiçerisinde LOAD_FILE adlı bir komut vardır. Bu komout ile sistemdeki herhangi bir yere dosya yazmak olasıdır. Eğer bu açık varsa bu çok iyi şekilde kullanılabilir. Bu foksiyonla dosya okumak da mümkündür.
Load file açık gelir MySQL ve SQLServer’da. DÜZELTİLMELİ.
Yukarıdaki senaryoda bu durumda PHP dosyası içerisinde exec fonksiyonu içerisinde $_GET(“”) içerisine CMD yazılarak buradan konsolda istenen şey çalıştırılabilir. Böylece o php dosyasını web arayzüden çalıştırıp url’den paramatere yollanabilir.
Düzenli mysql yedeği için mysqldump komutu Cron Jobs olarak tanımlanmalıdır.
MySQL’de logları tabloda da haricen text dosyalarında da tutmak mümkündür.
Loglar üzerindeki logları incelmeek için select * from mysql.general_log ile konutlar görünür.
Ama komutlar hexadesimal olarak görünür convert fonsksiynonu ile komutlae görünmelidir.
Güvenlik amacıyla logların text olarak saklanması iyidir. Bu biraz yer kaplar.
Dosya halinde log tutulduğu takdirde logun yazılacağı yerdeki dosya izinleri iyi ayarlanmalıdır.
MSSQL’de xmp_cmdshell saldırıları çok kritiktir. Bu sayede veri tabanı sunucusu üzerinde sunucu konsoluna komut yollanabilir. Bunu engellemek için ‘sa’ kullanıcısı uygulamaların içerisinde kullanılmamalıdır.
Bu ilkelere uyulduğu takdirde paralı bir güvenlik uygulaması olmaksızın da sunucu güvenliği sağlanabilir.
Port numaraları defaulttan değiştirilmelidir ki Shodan yakalamasın.
RStudio harika bir araç. Özellikle değişkenleri canlı olarak göstermesi, grafik ve yardım paneli ile vazgeçilmez bir veri bilim aracı. Bu aracın tam bir Python muadili yoktu, Python ile analizler için. Gerek de kalmadı. RStudio’nun son sürümlerinde Python ile analizleri gerçekleştirmek mümkün. Bunun için `reticulate` adlı bir R kütüphanesini import etmek gerekiyor. Gerisi şöyle: