Mind map
Security Engineering
Map content
Security Engineering
1 - System Architecture
- - ISO/IEC/IEE 42010 System & Software Engineering - Architecture Description Standardın amaçlarından birtanesi de ortak bir dil ve yaklaşım oluşturmaktadır.
- - baked in: güvenlik gereksinimlerinin analiz aşamasından itibaren dahil edilmesi - bolted on: güvenlik gereksinimlerinin geliştirme aşamasında dahil edilmesi
- Architecture
- Büyük ve karmaşık bir entity'nin yapısını (Structure) ve davranışlarını(behavior) anlamayı sağlar. - Stakeholder'lara kendi anlayabilecekleri dilde sistem tanımları sunar. (Different views) - Komponentlerin birbirleri, sistem ve çevre ile ilişkisini anlamatı sağlar. - Büyük resmi gösterir. - Sonraki adımlar için referans noktası olur. Diğer adımlar mimariyi referans alarak ilerler.
- Teorik olarak güvenlik mimari seviyeden başlar sonrasında mimariyi referans alan pratik uygulamalar ile devam eder.
- Development
- CISSP içerisinde yalnızca geliştirme eforunu değil bir sistemin bütün yaşam döngüsünü temsil eder. (Bakım ve emekli etme dahil). İçerisinde subset olarak fazlar tanımlanmıştır.
- System
- Sistem çok geniş anlamda kullanılabilmektedir. Bu nedenle bir PC'den mi yoksa temel uygulamamı kastediliyor kapsam netleştirilmelidir.
- Architecture Description
- Mimarinin formal olarak tanımlanması için oluşturulan doküman koleksiyonu
- Bir ev tasarımında mimarinin formal olarak dokümante edilmesi bu aşamadır. Stakeholder'lar bu dokümantasyonlara onay verdikten sonra design fazı başlayabilir.
- Stakeholder
- Sistemin paydaşları
- View
- Sistemlerin farklı concern'lere göre hazırlanmış temsilleridir. (Architecture Views olarakta geçer)
- Stakeholder'ların concernleri arc. view'lar ile açıklanır. Bu view'lar ile requirementların karşılandığı gösterilir.
- View Point
- View oluşturmak ve kullanmak için belirlenen spesifikasyonlar. Taslak, şablon vb.
2 - Computer Architecture
- PC'nin bütün parçaları bu kavrama dahildir.
- CPU - Central Processing Units
- - PC'nin beynidir. Dışarıdan gelen instructionları alır ve işler. Aynı zamanda kendi içerisinde de instruction seti vardır. - PC'lerin düzgün çalışabilmesi için OS'ler CPU'nun dilinden konuşmayı bilmelidir.
- ALU - Aritmatik Logic Unit
- - veri üzerinde matematiksel ve mantıksal işlemler yapan elemandır.
- Control Unit
- İşlemci ve requestler arasında trafik polisi görevi görür. Instruction'ların sırasunu belirler.
- Address Bus
- - RAM ve I/O cihazlara hardwired olarak bağlı bir komponenttir.(Connection). - CPU address bus'a bağlıdır. CPU'nun her hangi bir veriye ihtiyacı olduğunda bu talebini fetch request olarak address bus'a iletir
- Data Bus
- - Locate edilen veri CPU'nun erişmesi ve okuması için data bus'a koyulur. -CPU RAM ve I/O ile ilgilenmez ihtiyacın olan verilere adress bus ve data bus ile ulaşır.
- Register
- - Temp storage location for CPU
- General Registers
- ALU'nun müsvette kağıdıdır. Temp sonuçlar bu alana yazılır ve bu alan üzerinde çalışılır.
- Program Counter Register
- - Fetch edilecek bir sonraki instrustionın memory adresini tutar. - Güncel talimat işlendikten sonra bir sonraki talimatı getirir.
- PSW - Program Status Word
- Instruction requestler güvenilir mi yoksa değil mi bunu söyler -user mode -privilege mode
- Multiprocessing
- Bu mode'ların kullanılabilmesi için OS desteği gerekir
- Symmetrics Mode
- Aynı anda birden fazla çekirdek kullanılır
- Asymmetrics Mode
- Bir çekirdeğe deike işlem atanır ve o çekirdeğe farklı bir görev verilmez
- RAM - Random Access Memory
- -OS ve uygulamalar için temp read/write alanıdır. Volatile bir memorydir. Enerji gittiği zaman içerisindeki bilgi gider.
- Dynamic RAM - DRAM
- - Volatile elektrik akımı RAM üzerinde bulunan veri corrupt olmasında diye sürekli olarak kendi üzerinde yeniden yazar. Bu nedenle static RAM'e göre daha yavaştır.
- Statis RAM - SRAM
- -dynamic RAM'den farklı bir mantık ile çalışır sürekli r/w yapmaz bu nedenle daha hızlıdır. Ancak bilgiyi saklamak için daha fazla alana ihtiyaç duyar ve pahalıdır. Aynı zamanda bütün vendorlar ile uyumlu bir teknoloji değildir.
- Trashing
- - PC datayı bir yerden başka bir yere taşırken processingden uzun zaman harcarsa ortaya çıkan durum trashing olarak adlandırılır.
- Other Types of RAMS
- Synchronous DRAM
- CPu sinyal input ve outputları ile sync olur bu sayede hızlı çalışır
- Extended Data Out DRAM - EDO DRAM
- DRAM'den daha hızlıdır. T anında mutliple block erişimi vardır.
- Busrt Edo DRAM - BEDO BDRAM
- EDO DRAM gibi çalışır ancak daha yüksek kapasiye sahiptir. 8Busrt)
- Double Data Rate SD DRAM - DDR SDRAM
- Clock Time'da T anında 1 operasyon yerine 2 operasyon gerçekleştirir.
- Synchronous DRAM
- Hardware Segmentation
- -RAM üzerinde hafıza alanını direk fiziksel olarak segmente edereke güvenlik sağlanması yöntemine verilen isim.
- ROM - Read-Only Memory
- Non-volatile tipte bir memory'dir elektrik gitse bile veri kalır. yazılan veri bir daha değiştirilemez.
- Programmable ROM
- Üzerinde yalnızca bir kere yazılabilir
- Erasable Programmable ROM
- Elektriksel olarak üzerine yazılabilir ve UV ışınları ile silinebilir ancak silindiği zaman üzerinde bulunan bütün bilgiler gider.
- Electrically Erasable Programmable ROM
- 1 bit at a time silinebilir ancak bu işlem yavaş gerçekleşir
- Flash Memory
- Dijital Kamera, BIOS, hafıza kartı vb. yapılarda kullanılan özel bir hafıza tipidir. Solid State çalışır
- Cache Memory
- Hızlı bir Memory tipidir. kendi içerisinde hızlarına göre gruplandırılabilir. L1 > L2 >L3
- Memory Mapping
- -Uygulamalar memory'de bulunan bilgiler memory mapper "ACL" aracılığı ile erişir. Hafızaya direk erişim güvenilir kaynak olan CPU tarafından gerçekleştirilebilir. -OS'ler uygulamaların memory erişimlerini index table ve pointer(logical address) üzerinden yapmasına izin verir. -Uygulamalar yalnızca kendi hafıza alanlarına direk olarak erişebilir bu sayede güvenli bir yapı ortaya çıkmış olur.
- Absolute address
- CPU Memory erişim adresi, direk fiziksel adres
- Logical/Relative address
- -Yazılımlar tarafından indexlenen memory adresleri -offset value uygulanmış adres (Logical=Relative)
- Uygulamalar talimatları kendi logical adres schemalarına göre mapler (0-5000). Bu bilgiler memoryde fiziksel olarak farklı bir schema ile tutulutrsa Örn, 0 yerine 3400'den başlayan --> Uygulama ve fiziksel schema arasında bir mapping ihtiyacı doğar. - Logical: 100 - Physical: 3500 - Off Set Value: 3400
- Buffer Overflow
- Bir process için kapasiteden fazla talep kabul edildiği zaman bu sorun ortaya çıkar -Buffer allocated segment of memory
- -Yazılımcı buffer boyutunu düzgün ayarlamazsa buffer'a fazla yüklenen veri STACK içerisinde bufferlarda bulunan data ve instructionlar overwrite eder. (Kullanılacak data ve instructionlar buffer içerisinde saklanır) -Buffer'a gönderilen veri miktarı kontrol edilmelidir. -OS'in 32-bit veya 64-bit olması stack boyutunu değiştirir. -Buffer Overflow'u engellemek için uygulama alınan veriye bound checking uygulamalıdır. C'de bulunan 'strcpy' komutu bound checking yapmadan kopyalama yapar ve bu soruna neden olur
- -İşlemci setleri üzerinde farklı komutlar çalıştığı için Intel'de çalışan buffer overflow saldırısı AMD üzerinde çalışmayabilir.
- -Bir saldırganın buffer overflow saldırısı gerçekleştirebilmesi için 1-Buffer size 2-Stack address bilgilerine sahip olması gerekmektedir. + payload boyutunun küçük olması gerekmektedir.
- Buffer
- Stack içerisinde bulunan allocated segment of memory
- Stack
- Uygulama ve process arasında iletişimi sağlayan memory segment. 32-bit 64-bit yapılara göre boyutu değişir.
- Return Pointer
- Stack içerisine ilk olarak koyulan bilgidir. İşlemin sonunucunun nereye gönderileceği bilgisini tutar. FILO yapısı oldupundan stack içerisinden en son RP çıkar
- Memory Protection Techniques
- ASLR - Address Space Layout Randomization
- -İlk olarak windows vistalarda uygulanan koruma yöntemi --> memory address sürekli olarak güncellenir.
- DEP - Data Execution Prevention
- -Bir çok OS güncel olarak bu yapıyı kullanır. Kod güvenilmeyen hafıza segmenti üzerinde çalışamaz ve saldırı engellenir.
- ASLR - Address Space Layout Randomization
- Memory Leaks
- Kötü yazılan kodlar nedeniyle uygulamalar cihaz hafızasını tüketirler. Uygulamaların işleri bittikten sonra kaynağı bırakmaması nedeniyle aslında bir çeşit DoS ortaya çıkar bu durum memory leak olarak adlandırılır.
Operating Systems
- Process Management
- Multiprogramming
- -Birden fazla programın aynı anda çalışabilmesidir. Aslında çalışan farklı processlerdir ancak program olarak adlandırılmıştır.
- Multitasking
- -Processlerin yanı sıra gelen iletilen requestlerin eş zamanlı olarak işlenebilmesidir. -Multiprogramming'in gelişmiş versiyonudur.
- -Tost yaparken ev işlerinin yapılması örneği.
- Cooperative Multitasking
- -Eski teknoloji, resource yazılımı tarafından serbest bırakılır.
- Preemptive Multitasking
- -Resource OS tarafından yönetilir. Java Garbage Collector.
- Process
- -En temel olarak aktif koşan instruction set ve bu instructionlara atanan kaynaklar Process olarak adlandırılır. -Bu tanımın dışında bireysel olarak çalışan uygulamalar da process adlandırılmaktadır.
- States of a Process
- Running State
- -Data ve instructionların CPU tarafından aktif olarak işlendiği durum
- Ready State
- -CPU'ya bilgi göndermeye hazır durum
- Blocked State
- -Process'in input bekleme durumudur. Klavye'den veya grep'teki gibi bir önceki processing bitmesini beklmesi gibi.
- Running State
- Proess Table
- -OS process ve ilgili bilgileri (stake pointer, memory location vb.) her zaman bir tablo üzerinde tutar ihtiyacı olduğu durumda direk olarak burdan alır.
- Interrupts
- Processlerin CPU ile konuşma önceliklerini belirler
- Maskable Interrupts
- -İhmal edilebilir taleplerdir. Standart talepler
- non-Maskable Interrupts
- -Geldiği zaman direk olarak önceliği alan ve ertlenemeyen interruplardır. -PC memory hatası alırsa ve bunu çözemezse restart talimatı gönderir ve bu beklenmeden işlenir.
- Spawning
- -Unix ve Linux'lerde OS tarafından child processing ortaya çıkarmanın adı. cat file1 file2 | grep stuff --> Bu komut çalıştığında 2 process spawn edilir.
- Memory Stacks
- -Her bir process kendi stack'ine sahiptir. Stack'ler LIFO olarak çalışır en altta Return Pointer bulunur. -Sonrasında sırasıyla Intruction ve data gelir ve bu şekilde sıra ile devam eder. - CPU stack içerisinde hangi pozisyonda kaldığını Stack Pointer ile takip eder. CPU talimat ve datayı işledikten sonra bir sonraki ile bu şekilde devam eder.
- Thread Management
- -CPU processleri kolayca yönetebilmek için bir entity altında toplar. Sonrasında CPU'ya bir işlem için talimat göndereceği zaman thread üretir CPU'ya talimatları bu şekilde gönderir. - Thread individual instruction set ve data'lardan oluşur.
- Multi-threaded
- -Uygulamalar birden fazla fonksiyonu yerine getirmek amacıyla tasarlarnır. Örndeğin dosyayo kaydet, yazıcıya gönder vb. bu işlemlerin herbiri CPU tarafında farklı thread'ler üzerinden işlenmektedir.
- Process Security
- -Processler CPU'ya yüklenmeden önce güvenlik kontrolleri gerçekleşir ve sonrasında işlenir. Saldırgan bu aşamada proess içerisine farklı bir talimat yüklerse (ve privilege modda ise ) bu talimat işlenir ve sisteme zarar verilebilir. Bu nedenle processler yalnızca approved entity'lerden talimat kabul etmelidir. Bu sayede saldırının önüne geçilmiş olur.
- Process Scheduling
- -Scheduling Policy: Thread'lerin birbirleri ile nasıl iletişime geçeceğini yönetmek amacıyla oluşturlmuştur. OS gereken durumuna göre processleri yaratır ve kill eder. - Bu sistem düzgün olarak çalışmazsa saldırgan bazı processlerin hiç bir zaman işlenmemesini sağlayarak bir çeşit DoS'a neden olabilir.
- -Bir process kaynapa ihtiyaç duyduğu zaman OS bir data structure oluşturur ve sonrasında bu kaynağı process'e dedike eder. Bu işlem düzgün gerçekleşmezse sistem kaynak sıkıntısı yaşar (Memory kısıtı yaşamak gibi) Bu bir DoS tipidir.
- Software Deadlock
- App1: A kaynağına sahip ve işlemi tamamlaması için B kaynağına ihtiyaç duyuyor. App2: B kaynağına sahip ve işlemi tamamlamak için A kaynağına ihtiyaç duyuyor. Bu durumda Software Deadlock ortaya çıkar ve her 2 process te işlemini tamamlayamayaz. OS akıllı algoritmalar ile bu sorunu çözer - OS'ler bu durumu çözmek için farklı yöntemler izler. Örneğin, kaynak uzun süre dedile kalırsa process kill eder ve kaynağı havuza geri gönderir.
- Process Activity
- -Aynı dosya ve kaynak, aynı anda birden fazla process'in kullanımına verilmiş olabilir ancak burada aynı anda read-write işlemleri yapamazlar bu bir kuraldır.
- Process Isolation
- -Process'lerin birbirine müdahale etmemesi amacıyla geliştirilen bir mekanizmadır. -Bu mekanizma sayesind eğer bir process fail ederse. bu durum diğerlerini etkilemez. -
- Preemptive mutitasking için process isolation olması şarttır.
- Encapsulation of Object
- -Encapsulated olan process'in içerisinde yapılan işlemler başka hiç kimse tarafından anlaşılamaz ve müdahale edilemez. -İletişim interface'ler arasından gerçekleşir.
- Encapsulation --> Data Hiding sağlar
- Time multiplexing
- CPU'nun kaynaklarını farklı processler için ayırması durumudur. Tek bir kaynak var ancak herkes sırayla kullanıyor. -Baz istasyonlarında telefonla konuşurkende benzer bir mekanizma kullanılır.
- Naming Distinctions
- -Her process kendisine özel bir isme veya ID'ye sahiptir. (PID) -BU isolation'ın farklı bir türüdür
- Virtual Address Memory Mapping
- -OS'in virtual memory adreslerine karşılık fiziksel memory atamasında bir process tarafıdan kullanılan hafızayı başka bir process'e vermesinin engellenmes
- Multiprogramming
- Memory Management
- OS tarafından yapılan memory management'ın 3 temel görevi 1- Yazılımcılar için abstraction level sağlaması 2- Kıstlı memory ile performans optimizasyon 3- Memory'ye yüklenen appleri ve OS'yi korumak.
- Abstraction
- Bir şeyin detayının gizli olmasıdır. Bu tanıma göre yazılımcı yazdığı kodun nasıl hafıza kullanması gerektiği ile ilgilenmez.
- Memory Manager
- -hafıza segmentlerinin alokasyonu -Process'lerin ACl enformcementlt'ı -RAM to HardDrive swap işlemlerini yapmaktan sorumludur.
- Hafıza Kapasiteleri (yukarıdan aşağı yavaşlar) 1- CPU register 2- Cache 3- Main Memory 3.5 - Swap Space 4 - Disk Storage
- Memory Manager 5 Basic Responsibilities
- Relocation
- -RAM TO HardDrive Swap - İnstrucionlar ve memory segmen hafıza'da farklı bir yere taşındıysa uygulamalra için pointer sağlamak
- Protection
- -Process'leri yalnızca ilgili memory segmentleri ile iletişim kurmaya zorlamak -Memory Segment'ler için ACL sağlamak
- Sharing
- -Birden fazla processs aynı hafıza segmentini kullanacaksa komplex mekanizmalar ile gizliliği ve bütünlüğü korur - Tek bir memory segment üzerinde çalışan uygulamaya birden fazla kullanıcının farklı erişim hakları ile erişmesini sağlar.
- Logical Organization
- - Bütün memory tiplerini segmente eder ve abstract seviyede her birisi için adres schema sağlar. -Spesifik yazılım modüllerinin paylaşılmasını sağlar (Örn; DLL Prosedür)
- DLL
- -Dynamic Link Library (DLL) uygulamaların farklı işlemleri yaptırmak için çağırabildikleri kütüphaneler. Örneğin; crypt32.dll şifreleme için kullanılır
- Physical Organization
- -Fiziksel hafıza alanını uygulama ve işletim sistemi için ayrırır
- Relocation
- Process Management
Information
- Description
- This is the CISSP certification mind mapping based on Shon Harris 7th edition book
- Created by
- sefa duran · Jan 2019
- Updated
- Apr 10, 2019
- Views
- 85
- Tags
- Rating