SecurityBridge CEO’su Christoph Nagy tarafından
Hizmet Reklam Protokolü (“SAP”) temsilcisinin yakın zamanda düzeltilen bir güvenlik açığını açıkladığı bir web seminerine katılalı birkaç yıl olmuş olmalı. Düzeltme, sorunlu kodu kaldırmadı, yalnızca ek bir kontrol getirdi. Bana göre normal prosedür budur. Ancak SAP konuşmacısının açıklamasının ardından dinleyicilerden araya bir soru geldi. Soru şuydu: Düzeltme, denetimi atlamak için SAP Hata Ayıklayıcı’yı kullanan saldırganlara karşı nasıl koruma sağlıyor? Cevap olarak sözcü, kullanıcıların hata ayıklama ayrıcalıklarına sahip olduğu bir SAP sisteminin (program değişkenlerindeki değişikliklerle birlikte); uzlaşmadan korunamaz.
Hata ayıklayıcı yetkilendirmesinin söz konusu program değişkenlerini değiştirme olasılığı ile birleşimine SAP dilinde denir, Hata Ayıklama ve Değiştirme. SAP uzmanının açıklamasını desteklemek için şuna bakalım: SAP Hata Ayıklayıcı nedir? ve Sisteme ne yapabilir?
SAP Hata Ayıklayıcı nedir?
Advanced Business Application Programming (ABAP) Debugger olarak da bilinen SAP Debugger, SAP tarafından sunulan en önemli geliştirme araçlarından biridir. Bir ABAP geliştiricisi veya teknik bir SAP danışmanı, sorunları analiz etmek veya program akışlarını simüle etmek için kullanır. Genellikle hata ayıklayıcı, SAP ERP’deki belirli bir davranışı anlamak ve özelleştirme seçeneklerini belirlemek veya anlamak için kullanılır. Bir kullanıcının uygun yetkilere sahip olması koşuluyla, hata ayıklayıcı /h işlev kodu kullanılarak tüm ABAP ekran tabanlı işlemlerden çağrılabilir. SAP ABAP Hata Ayıklayıcı, OData, ABAP için WebDynpro vb. içinde de kullanılabilir.
SAP Debugger’da ne yapabilirim?
Kaynak kodun adım adım işlenmesi ve program değişkenlerinin değerlerinin analizi gibi genel olarak bilinen işlevlerin yanı sıra, yine de herkes tarafından bilinmeyen bazı gizli özellikler vardır.
SAP Hata Ayıklayıcı ile bir kullanıcının SAP oturumunu analiz edebileceğiniz veya etkileyebileceğiniz bir uzaktan hata ayıklama oturumu başlatabileceğinizi biliyor muydunuz? Bu arada, 2013 tarihli bu blog tarafından kanıtlandığı gibi, özellik yeni değil: Uzaktan ABAP Hata Ayıklama (https://blogs.sap.com/2013/04/29/remote-abap-debugging/)
Alternatif olarak, aradaki kaynak kodunu çalıştırmadan imlecin 1. satırdan sonrakine geçmesine izin verebilirsiniz.
Sözde kesme noktaları da dinamik olarak ayarlanabilir. Kesme noktaları hata ayıklayıcıyı veya daha kesin olmak gerekirse imleci program akışında belirli bir noktada durdurur.
Ek olarak, bir program değişkeninin değerlerini görüntüleme yeteneğine ek olarak, değerleri değiştirme seçeneği de vardır. SAP, bu işlevi ayrıntılı olarak yetkilendirme imkanı sunar. Bu konuda daha fazla bilgi için: Kendimi nasıl koruyabilirim?
SAP Debugger’dan hangi riskler doğar?
Bu makalenin başında bahsedilen SAP web seminerinin konuşmacısı tarafından haklı olarak, saldırganın bunu yapmak için yetkilere sahip olması veya edinmesi koşuluyla, hata ayıklayıcının sistemi tehlikeye atmak için kullanılabileceğine dikkat çekildi.
Vahşi doğada tespit edilen bazı örnekler:
- Dönüş kodunu (SY-SUBRC) sıfırlayarak veya imleci ayarlayarak yetkilendirme kontrollerini atlayın.
- Veritabanına sızmak veya onu manipüle etmek için program değişkenlerindeki değerleri değiştirme
- Bir iptal veya nihai sonuçta bir değişiklik elde etmek için program akışının değiştirilmesi.
Artık şunu bilmelisiniz ki, bir saldırgan gıpta ile bakılana erişirse Hata Ayıklama ve Değiştirme izni, genellikle saldırıyı yalnızca hata ayıklayıcıya dayandırmaz, bunu Keşif aşamasında veya Erişim Kazanma bölümünde kullanır. SAP Hata Ayıklayıcı, SAP saldırısının kanıtlarını silmede de yararlı bir araç olabilir, çünkü herkes SE16 hilesini bilir: SE16 kullanılarak Hata Ayıklama Modunda SAP tabloları nasıl düzenlenir. (https://sapboost.com/how-to-edit-sap-table-in-debug-mode-using-se16)
Bu, elbette, kullanım davranışındaki bir anormalliği tanımayı daha önemli hale getirir. Sözde olsa daha da iyi uzlaşma göstergeleri saldırıları tespit edebilmek için erken bir aşamada tespit edilir.
Kendini nasıl koruyabilirsin?
SAP Debugger’ın bu işlevleri yetkilendirmeler yoluyla kısıtlanabilse de, geliştiricilerin kapsamlı yetkiler olmadan çalışamayacağını hemen fark edeceksiniz. Elbette SAP geliştiricisinin işi ağırlıklı olarak geliştirme sisteminde yapılır. Bu nedenle, özellikle üretken verilere sahip bir sistemdeki program değişkenlerinin değişiklik izniyle birlikte SAP Debug yetkilendirmesine izin verilmesine gerek yoktur. Bu nedenle, bu kritik yetki kombinasyonunun üretken bir SAP ortamında atanmasını veya asla atanmamasını sağlamalısınız.
“S_DEVELOP” yetkilendirme nesnesini kullanın ve etkinlikle birlikte “DEBUG” nesne türünü önleyin:
- ’02’ – Alanların ve (Sürüm 6.10’dan itibaren) >Goto deyimi işlevi ve
- ’90’ Diğer kullanıcıların oturumlarında hata ayıklama.
İlgili SAP günlüklerindeki, bu durumda SAP Güvenlik Denetim Günlüğü’ndeki (SAL) etkinlikleri düzenli ve hızlı bir şekilde analiz ederek ek koruma elde edebilirsiniz.
Ancak, bu çok zaman alıcı olabilir. Özellikle, anormalliklerin güvenilir bir şekilde tespiti veya SAP sistemi için bir uzlaşma göstergesi ek analizler gerektirir. Bunu manuel olarak yapacak vaktiniz yoksa, pazar çözümleri yardımcı olabilir.
yazar hakkında
Christoph Nagy, SAP endüstrisinde 20 yıllık çalışma deneyimine sahiptir. Bu bilgiyi, dünyanın önde gelen markalarının çoğuna hizmet veren ve şu anda ABD’de faaliyet gösteren küresel bir SAP güvenlik sağlayıcısı olan SecurityBridge’de kurucu üye ve CEO olarak kullandı. Onun çabaları sayesinde, SecurityBridge Platform for SAP stratejik bir güvenlik çözümü olarak ün kazandı. SAP güvenlik ayarlarının otomatik analizi ve siber saldırıların gerçek zamanlı tespiti için. SecurityBridge’den önce Nagy, Adidas ve Audi’de SAP teknoloji danışmanı olarak becerilerini uyguladı. Christoph’a çevrimiçi olarak [email protected] adresinden ulaşılabilir.