BlockSec CEO Andy Zhou, Spraping Bits podcast'ına davet edildi ve Web3'ün çalkantılı ve karmaşık ortamında BlockSec ekibinin potansiyel güvenlik açıklarını nasıl tespit edip azalttığı konusunu tartıştı. Aşağıda derlediğimiz ilgi çekici içerik koleksiyonu bulunmaktadır. Podcast'in tam sürümünü dinlemek için buraya tıklayın.
Andy Zhou 00:00
Ekibimizde çalışan bir sistemimiz var; bu sistem, bilgisayar korsanları saldırı işlemlerini göndermeden önce bile saldırı sözleşmesini tespit edebiliyor. Bunun nedeni, bilgisayar korsanlarının önce bir saldırı sözleşmesi dağıtmaları ve ardından protokolü saldırmak için işlemleri göndermeleri gerektiğidir. Dolayısıyla saldırı işlemlerinden önce bile, bilgisayar korsanları bir saldırı akıllı sözleşmesi dağıttığında, yapay zeka tabanlı motorumuz kötü amaçlı sözleşmeyi tam olarak tespit edebiliyor.
Andy Zhou 00:53
Teşekkürler DeGatchi. Burada olmaktan büyük onur duyuyorum.
DeGatchi 00:56
Onur bende. Çok teşekkür ederim. Sizi tanımayanlar için, siz kimsiniz ve ne yapıyorsunuz?
Andy Zhou 01:02
Adım Andy. BlockSec'in CEO'suyum ve aynı zamanda Çin'in önde gelen üniversitelerinden Zhejiang Üniversitesi'nde profesörüm. Siber güvenlik alanında 10 yılı aşkın deneyimim var. Daha önce akıllı telefon güvenliği alanında çalışıyordum, ardından birkaç yıldır akıllı sözleşme güvenliğine geçtim.
DeGatchi 01:22
Akıllı sözleşme güvenliğindeki ilk günleriniz nasıldı? Manuel denetim mi yapıyordunuz, yoksa benim gibi direkt otomasyona mı geçtiniz?
Andy Zhou 01:30
Akıllı sözleşme güvenliği için, hem şirkette hem de araştırma ekibimizde statik ve dinamik yöntemlerin ikisini de uyguluyoruz. Statik taraf için, akıllı sözleşmenin statik analizini geliştirmek amacıyla birkaç farklı teknik geliştirdik. Bunun nedeni, toplulukta şu anda mevcut olan araçların çoğunun bazı ortak sorunları olmasıdır; çünkü bu araçlar çok fazla yanlış pozitif üretiyor. Örneğin, yeniden giriş sorunlarını tespit etmek için bir araç kullanmak istediğinizde, basit bir akıllı sözleşmeyi araca verdiğinizde çok sayıda yeniden giriş sorunu veya başka sorunlar raporlayabilir. Ancak bu raporu manuel olarak incelediğinizde, büyük çoğunluğunun yanlış pozitif olduğunu görürsünüz. Bu nedenle yanlış pozitiflerin mevcut statik analiz araçlarının en büyük sorunu olduğunu fark ettik.
Andy Zhou 02:20
Bu tür yanlış pozitiflerin temel nedeni, akıllı sözleşmenin anlambilimine ilişkin yetersiz anlayıştır. Anlambilim, sözleşme içindeki değişkenlerin ve aralarındaki ilişkilerin arkasındaki anlama atıfta bulunur. Örneğin, bir ERC-20 tokeniniz varsa, her sahibin bakiyesini ve onaylanan değeri temsil eden değişkenler bulunur; bu değişkenler kimin ne kadar miktarı kime transfer etmek için onayladığını gösterir. Statik analizin hassasiyetini artırmak için hangi değişkenlerin bakiyeye karşılık geldiğini ve hangi değişkenlerin onaylarla ve diğer özel işlevlerle ilişkili olduğunu doğru bir şekilde belirlemek son derece önemlidir. Bunu yaparak statik analizde çok daha iyi bir hassasiyet elde edebiliriz.
Andy Zhou 03:00
Statik analiz aracını geliştirme deneyimimizden elde ettiğimiz bir içgörü, değişkenler arasındaki korelasyonları kurmak için güçlü bir kirlilik analizi motoruna ihtiyaç duyulduğudur. Statik analiz araçları tarafından kullanılan temel bir teknik olan veri akışı analizi kritik bir rol oynamaktadır. Bu teknik, belleklerin ve depolamaların modellenmesini ve kirlilik analizi tekniklerinin statik analiz aracı içinde nasıl hassas ve verimli şekilde kullanılacağını kapsar. Kirlilik analizi ve veri akışı analizi olmak üzere bu iki temel teknik, statik analiz aracımızın yeteneklerini geliştirmede son derece etkili olduğunu kanıtlamıştır.
Andy Zhou 03:48
Araştırma ekibimizde bu statik analiz aracını geliştirip dağıttık ve blok zincirinde oluşturulan her yeni akıllı sözleşmeyi analiz ediyoruz. Tespit ettiğimiz sıfır gün açıklarını geliştiricilere bildireceğiz. Ne yazık ki bazı geliştiriciler açıkla ilgilenmiyor. Hatta onlara rapor etmek için verimli kanallar bile bulamıyoruz. Bu çok üzücü.
Andy Zhou 04:13
Gerçekten etkili bir statik analiz aracı istiyorsanız, anlambilime ve bir kirlilik analizi motoruna ihtiyacınız var. Bu, statik analiz aracıyla ilgili deneyimimizdir. Statik analiz aracının yanı sıra, araştırma ekibimizde dinamik bir analiz aracımız da var. Bunun nedeni, savunmasız akıllı sözleşmelerin yanı sıra kötü amaçlı işlemleri de tespit etmek istememizdir, değil mi?
Andy Zhou 04:31
Sadece savunmasız akıllı sözleşmeleri analiz etmekle kalmayıp protokollere veya diğer akıllı sözleşmelere saldırıyor olabilecek işlemleri tespit etmek de önemlidir. Bunu başarmak için enstrümantasyon yeteneklerine sahip özelleştirilmiş bir sanal makinemiz var. Bu, herhangi bir akıllı sözleşmenin sanal makinesine veya yürütme ortamına kolayca eklenebilecek kendi tespit kurallarımızı yazmamıza olanak tanır. Bir işlemin kötü amaçlı olup olmadığını belirlemek için çeşitli sinyaller yakalıyoruz. Örneğin, işlem göndericisinin daha önce saldırı gerçekleştirip gerçekleştirmediğine veya fonların şüpheli kaynaklardan gelip gelmediğine bakıyoruz. Farklı sinyalleri bir araya getirerek her işlemle ilişkili riski değerlendiriyoruz. Ekibimiz bu tespit motorunu dağıtarak saldırı işlemlerini hızla yakalayıp tespit etmemizi sağladı.
DeGatchi 05:41
Evet, bu ilginç. Statik analizörlerimle aynı şeyi yaptım. Kirlilik analizi temelde zorunludur, ama statik analizörle ne yaparsanız yapın, tüm bu verileri bir fuzzer'a aktarırsınız, değil mi? Ben de kendi fuzzer'ımı inşa ediyordum. Ve insanların buna nasıl yaklaştığını görmek gerçekten ilginç. Ama çok ilginç çözümler var. İnsanlar bu alanda çok sıralı düşünüyor, oysa düşünülmesi gereken pek çok boyut var, dolayısıyla sıralı yaklaşım doğru cevap değil.
DeGatchi 06:08
Boyutlar hakkında konuşalım. Diyelim ki bir işlemin çağrı verisine sahipsiniz, değil mi? Ayrıca fonksiyonlar ve sözleşmeler de var. Bir de diğer boyut var, o da aşama. Yani bu bağlama çok bağımlı. Ve şimdi bu dört farklı değişkeniniz, boyutunuz var ve hepsi en ufak bir değişiklikle birbirini etkiliyor. Örneğin, A sözleşmesi ve B sözleşmesi ve tüm fonksiyonları olabilir. Şimdi bunları tüm farklı sıralarda düzenlemeniz gerekiyor, ama bu sadece tek bir fonksiyon A ve fonksiyon B, fonksiyon B ve fonksiyon A değil. Fonksiyon A, fonksiyon B, fonksiyon B, fonksiyon B, fonksiyon A şeklinde de yapabilirsiniz. Bu gerçekten zorlu bir problem.
DeGatchi 06:43
Ve bence sizin yaptığınız şey oldukça ilginç. Phalcon'u yakın zamanda işlem tespitini içerecek şekilde geliştirdiğinizi biliyorum. Bu artık daha çok genelleştirilmiş bir ön koşucu gibi, ama hackler için. Ve bunu yaparken çok düşündürücü. Ön koşma oyunu, bu adanmış MEV ekipleri tarafından domine edilmektedir, değil mi? Ön koşma, sandviçleme, geri koşma vb. yapıyorlar. Gecikmenin çok az olduğu özel altyapıları, yüksek frekanslı işlem sistemleri var ve birbirleriyle, blok oluşturucularla, röle sistemleriyle ortaklık kuruyorlar. Yani soru şu: Bu MEV ekipleri yerine siz bu işlemleri nasıl ön koşturabiliyorsunuz?
Andy Zhou 07:24
Evet, bu çok güzel bir soru. Temel olarak sistemimizin ana hedefi MEV Botlarını ön koşturmak değil, protokolleri korumaktır ve hedefimiz bilgisayar korsanlarıdır.
DeGatchi 07:37
Ama şöyle düşünün, bir bilgisayar korsanı halka açık Mempool'a bir işlem gönderdiğinde, eğer özel ise kimse bunu göremez. Ama halka açık bir Mempool ise, diğer tüm genelleştirilmiş ön koşucular da bunu görecektir. Yani onlara gitmeniz gerekiyor. Peki onları nasıl geçiyorsunuz? Onları nasıl yeniyorsunuz?
Andy Zhou 07:51
Evet, her zaman şunu söyleriz: Güvenlik, iyi adamlar ve kötü adamlar arasındaki bir silah yarışıdır. Başlangıçta kötü adamlar ekibimizin ve MEV Bot'un varlığından habersizdi, bu yüzden işler daha kolaydı. O zamanlarda, gaz ücretini nasıl ödediğinize veya doğrulayıcılara nasıl rüşvet verdiğinize bağlıydı. O dönemlerde çok daha kolaydı, ama günümüzde bilgisayar korsanları kendilerini ön koşturulmaktan korumak için bazı teknikler kullanıyor. Örneğin, MEV Bot tarafından ön koşturulmayı önlemek amacıyla bilgisayar korsanları tarafından kullanılan çok ilginç bir teknik gördük. Temel olarak işlemlerinde önce bazı değerleri kontrol ediyorlar; başka bir akıllı sözleşmeden belirli bir değer çekerek bu değerin ilgili değişkenin başlangıç değerine eşit olup olmadığını kontrol ediyorlar. Saldırıyı gerçekleştirirken, bilgisayar korsanları önce o kontrolü karşılayacak şekilde başka bir akıllı sözleşmedeki değişkeni ayarlamak için bir işlem gönderiyorlar ve asıl hack için ikinci işlemi kullanıyorlar. Çünkü MEV Bot tarafından kullanılan en yaygın teknik, tek bir işlemi simüle etmektir. Yalnızca ikinci işlemi simüle ederseniz başarısız olursunuz çünkü koşul sağlanmaz. Bunun nedeni, koşulun birinci saldırı işlemi tarafından ayarlanmış olmasıdır. Bu yanıltıcı kısım nedeniyle bazı MEV Botları bunu işleyemiyor. Biz bunu halledebiliyoruz çünkü farklı işlemler arasındaki korelasyonu analiz eden bir tekniğimiz var.
DeGatchi 09:40
Evet, birden fazla işlem yapmanız gerekiyor. Sadece biriyle gidemezsiniz çünkü genelleştirilmiş ön koşturma yapıyorsanız, standart yaklaşım adresleri değiştirmektir ya da birden fazla adres varsa hepsini değiştirmeniz ve temel olarak her seçeneği denemeniz gerekir.
Andy Zhou 09:52
Kesinlikle.
DeGatchi 09:53
Eğer çoklu sözleşmeli kurulum yapıyorlarsa, sözleşme dağıtımını yapacaklar ve ardından o kurulum sözleşmesinde yeni şeye ayarlanacak bir fonksiyonu çağıracaklar, sonra da bunu açıklama sözleşmelerinde kullanacaklar. Ama bunu düzeltmenin yolu temelde yeniden simüle etmek olacaktır, ancak aslında çağrılan şeyin durumunu kontrol etmeniz gerekir. Eğer bu, orijinal sözleşmenin dağıtım durumuyla eşleşmiyorsa, bunu bir şekilde ayarlamanız, bir CFG aracılığıyla o fonksiyonu bulmanız ve ardından o açıklama sözleşmesini bunu da ayarlayacak şekilde değiştirmeniz ya da tamamen kaldırmanız gerekir. Bu oldukça zor, ama bunu gerçekten yaptığınız ve şu an çalıştığı inanılmaz.
Andy Zhou 10:33
Evet, çalışıyor, ama bunun için çok fazla geliştirme çabası gerekiyor. Ayrıca bunun için çok iyi ve verimli bir analiz motoruna sahip olmanız da gerekiyor.
DeGatchi 10:42
Çok etkileyici. 20 hack'i önlediniz ve zaten yaklaşık 15 milyon dolar kayıptan korudunuz. Ve bu, lansmanınızdan önceki altı ay içinde gerçekleşti.
Andy Zhou 10:51
Hack'lerin önlenmesi son bir buçuk yıldır devam ediyor. Yani bu bir ay veya iki ayda gerçekleşmedi. Bir buçuk yıl boyunca süregelen bir çabadır.
DeGatchi 11:04
Ama yine de bunu yapan başka kimse yok. Bu gerçekten harika bir şey ve bence herkes en azından buna sahip olmalı çünkü bu önemli bir şey. Ve %100 herkesin kurtarıcısı olmayabilir çünkü kaydolmaları gerekiyor, belki biraz farklı olabilecek bazı hafif gizleme teknikleri vardır. Yine de hiç yoktan iyidir, değil mi? Bir şeyleri kurtarıyorsunuz, hack'lenmek tüm şirketin, tüm kullanıcıların, tüm itibarın çöküşü gibidir—hepsi bir anda gidiyor. Bu yüzden bu çok önemli bir şey. Bunu nasıl inşa ettiniz? AI kullandınız mı? Ya da bu tamamen sezgisel olamaz.
Andy Zhou 11:41
Temel olarak farklı teknikleri bir araya getiriyoruz. Hack'lerin tespiti için yapay zeka tabanlı çözümü davranış analizi çözümüyle birleştiriyoruz. Yapay zeka tabanlı çözüm için, saldırı sözleşmesini tespit etmek amacıyla makine öğrenmesi tekniğini kullanıyoruz. Ekibimizde çalışan bir sistemimiz var ve bu sistem, bilgisayar korsanı saldırı işlemlerini göndermeden önce bile saldırı sözleşmesini tespit edebiliyor. Bunun nedeni, bilgisayar korsanlarının önce bir saldırı sözleşmesi dağıtmaları ve ardından protokolü saldırmak için işlemleri göndermeleri gerektiğidir. Dolayısıyla saldırı işlemlerinden önce bile, bilgisayar korsanları saldırı akıllı sözleşmesini dağıttığında, yapay zeka tabanlı motorumuz kötü amaçlı sözleşmeyi tam olarak tespit edebiliyor. Yanlış pozitiflerimizin olmadığını söylemiyorum, ama yanlış pozitifler oldukça düşük. Dolayısıyla hack işlemlerinden önce bu aşamada bile saldırı akıllı sözleşmesini tespit edebiliyoruz. Sorun şu ki, bir saldırı Akıllı Sözleşmesini tespit ettiğinizde bu hack'in gerçek kurbanını bilemeyebilirsiniz. Bunun nedeni, bazen hedef adresin akıllı sözleşmeye kodlanmamış olması ve parametreler olarak geçirilebilmesidir. Bunu tetiklemek için bazı fuzzing tekniklerine ihtiyacınız var. Ama tüm hedef akıllı sözleşme adresleri parametrelerden geçiriliyorsa, fuzzing bile yardımcı olamaz.
Andy Zhou 13:05
Yani bu karmaşık olanlar için, bu aşamada saldırı akıllı sözleşmelerini tespit edemiyoruz, onları saldırı işlemi tespit aşamasında ele almamız gerekiyor. Saldırı işlemleri için, hack işlemlerini tespit etmek amacıyla bazı davranış tabanlı çözümler kullanıyoruz. Üst düzey fikir şu: Her bilgisayar korsanı kâr etmek ister. Bu nedenle işlemlerden kâr elde etmek için hassas olmanız gerekir. Bu saldırı işlemlerini tespit ettikten sonra, MEV Bot'un yaptığı gibi otomatik olarak benzer bir saldırı geçişi sentezleyecek, kâr adresini değiştirip zincire koyacağız. Temelde sistem, BlockSec Phalcon'u piyasaya sürmeden önce böyle çalışıyordu.
DeGatchi 13:54
Yapay zeka konusunda, bunun gözetimli bir öğrenme modeli olduğunu hayal edemiyorum. Pekiştirmeli öğrenme olması gerektiğini düşünüyorum çünkü yeterli hack örneği yok, değil mi? Gerçekten bunu yapmak için yeterli veri yok.
Andy Zhou 14:08
Makine öğrenmesi için çok iyi bir nokta belirttiniz. Kötü amaçlı akıllı sözleşme tespiti için, modeli eğitmek için çok fazla örneğimiz olmadığından bu etkili olmayabilir. Bu durumda, bu şeylerin işe yaramasını sağlamanın temel içgörüsü, bir akıllı sözleşme içindeki temel özellikleri çıkarmanız gerektiğidir. Bazıları modeli eğitmek için bayt kodunun dizisini kullanır. Bu işe yaramaz çünkü bayt kodunun dizisi akıllı sözleşme için çok genel ve çok yaygındır. Akıllı sözleşmenin belirgin özelliklerini çıkarmanız gerekir. Bu nedenle şu anda kullandığımız şeyler arasında kontrol grafiği, temel fonksiyonlar arasındaki veri akışı ilişkisi ve modeli eğitmek için sözleşme oluşturucusunun adres etiketleri veya özelliği yer alıyor ve bunların çok etkili olduğu kanıtlandı.
DeGatchi 14:55
Yani temelde temel özellikleri çıkarıyorsunuz. Örneğin, sabit kodlanmış adreslere veya çağrı verisi olarak geçirilen adreslere diyelim. Belki Solidity'de maskeleme yapıyorlarsa, bu Solidity'de oldukça yaygın. Ama özel yüksek kod sözleşmesi ise, her şeyden önce oldukça sofistike bir bilgisayar korsanı olacak. Ama gerçekten sıkı planlı sofistike bilgisayar korsanları, özel bayt kodunun özel işlemlerini kesinlikle %100 kullanacak ve belki gizlemek için işlem sürüleri bile kullanacak. Bu, incelediğim ve çok ilgilendiğim bir şeydi. Etkili olduğu kanıtlandı. Aslında, bulduğum türden teknikleri kullanan kimseyi hiç görmedim. Bunları asla kullanmayacağım için aslında bu konuda bir makale bile yazabilirim. Ama ilginçti.
Andy Zhou 15:46
Evet, bu araştırma projesini yapmadan önce ben de bunun işe yarayacağını düşünmemiştim. Ama altı aydan sonra bunun çok etkili olduğunu kanıtladık.
DeGatchi 16:02
Evet, evet, bu çılgınca. Bunun doğru yönde atılmış dikkate değer bir adım olduğunu düşünüyorum ve bunun gibi daha fazla araca ihtiyaç var. Ama bu aynı zamanda şu soruyu da akla getiriyor: Yapay zeka kullandığınızı biliyorsunuz. Yapay zekanın öncelikle işinizi ne ölçüde etkileyeceğini nasıl görüyorsunuz? Ve yapay zeka nedeniyle ne eskiyecek, ve biri bu devrim için bugünden ne yapabilir?
Andy Zhou 16:23
Evet, dürüst olmak gerekirse, ben bir yapay zeka uzmanı değilim. Sadece kötü amaçlı akıllı sözleşmeyi tespit etmek amacıyla araştırma alanımıza yapay zekayı uyguluyoruz. Yapay zekanın güvenlik alanındaki potansiyelinin henüz tam olarak keşfedilmediğini düşünüyorum. Bunun bir nedeni şu: Yapay zekayı güvenlik alanına uygulamak için, çözdüğünüz problemi çok iyi anlamanız gerektiğini düşünüyorum. Çünkü çözdüğünüz problemi çok iyi anlıyorsanız, çok iyi özellikler çıkarabilirsiniz. Özelliğin çok önemli olduğunu düşünüyorum, değil mi? Aynı sözleşme veya aynı işlemler için bile, eğitim için çok iyi bir özelliğe sahip değilseniz sonuç tamamen farklı olacaktır. Benim bakış açımdan, yapay zekanın potansiyeli henüz tam olarak keşfedilmedi çünkü çok iyi bir yapay zeka uzmanının ve özellikleri çıkarmak için çok iyi bir alan uzmanının kombinasyonuna ihtiyacınız var.
DeGatchi 17:30
Katılıyorum. Bu çok farklı. İki alan, iki domain'in kombinasyonu. Her şeyden önce, yapay zekada iyi olmak zor. Ve ayrıca bu şeyleri öğrenmek de zaman alıyor. Matematiği bilmeniz gerekiyor, yapay zekayla ilgili her şeyi bilmeniz gerekiyor. Paketleri, kütüphaneleri bilmiyorsanız ve aynı zamanda kripto alanında da olmanız gerekiyor; bayt kodu ve siber güvenlik olan başka bir domain'de, bu da zaman alıyor. Ama saf yapay zekadan kripto'ya geçen insanların, kripto'dan yapay zekaya geçmek kadar zor olmayacağını düşünüyorum, çünkü ihtiyaç duyduğunuz matematik ve mevcut mimarinin ve nasıl çalıştığının tam olarak anlaşılması açısından saf yapay zekaya girmek çok daha zor.
DeGatchi 18:13
Ama süper ilginç, düşünüyorum. Neyin eskiyeceğini düşünüyorsunuz? Çünkü yapay zeka açıkça her şeyi değiştirecek. Ve yapay zeka kullanmıyorsanız, tüm bu işletmelerde diğer insanlara karşı avantajınız olmayacağını düşünüyorum çünkü rekabet etmek zor. Fuzzer ve yığın analizörüyle aynı şeyi yapıyordum, ama yapay zeka yapan insanları tanıyorum. Ve mantıklı çünkü bu sonsuz eylem uzayını düşünürseniz, bunu zorla geçemezsiniz. Tüm eylemleri filtrelemek ve neyi gerçekten hedefleyeceğinizi bilmek için bir tür sezgiye ihtiyacınız var. Bu yüzden bunun için yapay zekaya ihtiyacınız var. Özellikle tüm bu protokollerde bir şey çalıştırıyorsanız—tüm sözleşmeler, milyonlarca örnek veya çalıştırma, değil mi—tekrarlanan örnekler üzerinden sezgi öğrenebilen bir şeye ihtiyacınız var. Aksi takdirde, bu sezgiyi kendiniz oluşturuyorsunuz. Bu çok zaman alıcı ve aynı zamanda çok kusurlu çünkü tüm bu boyutlarda düşünemezsiniz ve günün sonunda neyi bilmediğinizi bilmiyorsunuzdur. Şahsen düşünüyorum ki, bu konuya dahil değilseniz, her halükarda dahil olmalısınız. Ben matematiği bile bilmiyorum ve buna başlıyorum. Eğer ben yapabiliyorsam, herkes yapabilir. Bekleyip göreceğiz. Ama bu büyük bir adanmışlık gerektiriyor.
Andy Zhou 19:36
Kesinlikle. Yapay zeka hakkında yakın zamanda yaptığımız bir deneyi paylaşabilirim. Dediğim gibi, güvenlik açıklarını bulmak için akıllı sözleşme için bir fuzzing sistemimiz var; bunun için dahili bir sistemimiz var. Fuzzing için tohum girdiler oluşturmak amacıyla yapay zekayı kullanabiliriz ve bu çok etkili oluyor. Peki bunu nasıl yapıyoruz? Örneğin, fuzzing yapılacak beş akıllı sözleşmemiz var. Önce bu akıllı sözleşmeleri ChatGPT'ye giriyoruz ve GPT'ye "Bu fonksiyonun ana işlevselliği budur, başka bir fonksiyon şunu yapıyor" diyerek her fonksiyonun temel işlevlerini özetleyebiliyoruz. Ardından GPT'ye "Lütfen bu fonksiyonlar için 50 farklı girdi üretin" diyoruz. Ve bu çok etkili oluyor. Bunu tohum girdi olarak, bilirsiniz, akıllı sözleşmeleri fuzzlamak için kullanıyoruz.
DeGatchi 20:38
İlginç. Bence LLM'ler aslında oldukça iyi. Gömümleri anlamak açısından şu an sahip olduğumuz en iyisi, bunun ötesinde çok fazla bilgim yok, ama şu an için en iyi çaba bu. Bu nedenle mantıklı. Pek çok insanın ChatGPT kullandığını düşünüyorum, ama bu gerçekten iyi bir kullanım durumu gibi görünüyor. Bazı insanların sözleşmeleri kendilerine açıklatmak için bunu kullandığını biliyorum. Bu sayede tüm anlayış ortadan kalkıyor; tüm kod tabanını anlamaya çalışmak yerine hızla konuya gelmelerine yardımcı oluyor. Çünkü bu bin satırlık bir kod tabanı olabilir, değil mi? Ya da çoklu sözleşmeler, binlerce satır. Her şey arasındaki ilişkiyi ve bağımlılıkları görmek gerçekten zor.
DeGatchi 21:18
Ama sormak istediğim bir şey var: Bu yeni işlem engellemeyi yaptığınıza göre, artık işlem engellemeniz var, ama neden bir adım daha ileri gidip tüm sıfır günleri ve tüm sözleşmeleri bulmaya çalışmıyorsunuz? Çünkü düşünün, eğer sofistike bir bilgisayar korsanıysa ve ne yaptığını gerçekten biliyorsa ve birine hedef aldıysa, diyelim ki Ronin gibi 600 milyon dolarlık bir hack ya da daha gerçekçi bir şey gibi bir protokolde 200 milyon veya 20 milyon dolar, sadece özel bir işlem gönderirler ve onu engelleyemezsiniz. Neden sıfır günleri tamamen önlemeye tam yatırım yapmıyorsunuz? Çünkü bulursanız, sadece özel bir işlem yaparsınız ve her şeyi baştan kurtarırsınız.
Andy Zhou 22:02
Evet, çok güzel bir soru. Aslında BlockSec içindeki projeler için bazı tekliflerimiz var. Şu anda BlockSec Phalcon için, zincirde veya Mempool'da kötü amaçlı işlemleri tespit edebildik. Ama özel işlemler için, bunu göremeyiz. Bu mevcut aşama. Ayrıca çabalarımızı biraz daha ileri götürmek istiyoruz; bilgisayar korsanlarından önce akıllı sözleşmenin güvenlik açıklarını tespit etmek. Az önce söylediğim gibi, bunun için fuzzing sistemlerimiz var, ancak şu anda blok zincirinde dağıtılan akıllı sözleşmenin güvenlik açıklarını tespit etmek için fuzzing sistemimizi hâlâ geliştiriyoruz.
Andy Zhou 22:55
Güvenlik açıklarını tespit etmek için akıllı sözleşmelerde fuzzing yaparken birkaç zorluk olduğuna inanıyorum. Akıllı sözleşmelerde fuzzing yapmanın zorluklarından biri, hedef sözleşme için girdiler, özellikle işlemler oluşturmaktır. Dahası, akıllı sözleşme için, güvenlik açıklarını tetiklemek amacıyla tek bir işlem değil, seri bir işlem dizisi oluşturmanız gerekiyor. Ve bazen işlem dizisi birbirlerine bağlıdır. Önce birinci işleme, ardından ikinciye ve üçüncüye ihtiyacınız var ve yalnızca bu üç işlemin tamamı güvenlik açıklarını tetikleyebilir. Birkaç işlemden oluşan diziyi oluşturmanız ve bu işlemlerin bağımlılığını anlamanız gerekiyor. Bu şu anda oldukça zor. Bu, birinci zorluktur. Ve ikinci zorluk, bir güvenlik açığının olup olmadığını belirlemek için bir oracle'a ihtiyaç duymanızdır. Diyelim ki bir akıllı sözleşmeye bir işlem gönderdik, peki güvenlik açıklarını tetikleyip tetiklemediğinizi nasıl belirlersiniz? Tabii ki, kâr hesaplamak için benzer bir teknik kullanabiliriz. Bu işlem çok yüksek bir kâr tetikliyorsa veya bazı borç verme protokollerinin sağlık faktörünün anormal olmasına neden oluyorsa, o zaman bir güvenlik açığı olduğunu görürüz. Ama fuzzers için özetlenmiş farklı türde oracle'lara ihtiyacınız var. Bu ikinci zorluktur.
DeGatchi 24:35
Bu ikinci kısım oldukça ilginç çünkü yeni bir protokol çıksa ve bir token'ı olsa, büyük token'larla herhangi bir likidite havuzu olmayabilir. Başka bir token'la olabilir. Fiyatını bile belirleyemezsiniz, değil mi? Yani bu büyük bir engel. Bu tür bir oracle ile buna nasıl yaklaşacağınızı hiç düşündünüz mü?
Andy Zhou 24:57
Evet, kesinlikle. Bu başka bir zorluk çünkü fuzzers ve DEX havuzları için ortamı hazırlamanız gerekiyor. Farklı token'lar hazırlamanız ve her token'ın fiyatını bir sisteme beslemeniz gerekiyor. Fuzzers için farklı türde şeyler hazırlamanız gerekiyor. Bu çok karmaşık. Yeniden giriş gibi basit güvenlik açıkları için fuzzers için tetiklemesi çok kolay. Ama fiyat manipülasyonu gibi bazı karmaşık olanlar için zor. Hâlâ bir sistem üzerinde çalışıyoruz, ama biraz daha zamana ihtiyacımız var. Ama haklısınız, bu yönde çalışıyoruz.
DeGatchi 25:43
Evet, bu hiç de önemsiz bir görev değil. Çok fazla karmaşıklık gerektiriyor, değil mi? Ve diğer şeylere bağlı pek çok şeyi hesaba katmanız gerekiyor. Bu yüzden sanki bir soru soruyorsunuz ve iki soru daha alıyorsunuz, şimdi bunlar birbirleriyle ilişkili ve sürekli aşağı doğru gidiyor. Ama o oracle meselesi muhtemelen en zor şeylerden biri. Ve aynı zamanda en önemli şeylerden biri çünkü oracle manipülasyonu muhtemelen en büyük saldırı faktörü. Her şey buna bağlı bir şekilde dayanıyor. Ve her ne şekilde olursa olsun, dahili bir döviz kuru olabilir, harici bir oran ile dahili bir oran olabilir.
DeGatchi 26:22
Yani hesaba katmadıkları bir tür arbitraj gibi, her şeyde hatalar var çünkü insan hatası belirli bir şey. Ve etkileşim sayısı hesaba katılmayacak. Her gün yeni protokoller çıkıyor. Mevcut protokolünüz artık onunla etkileşime girebilir. Bu açıdan beş farklı protokolden oluşan bir dizi olabilir.
DeGatchi 26:45
Ve bu kolay değil. Yapay zekaya ihtiyacınız olduğunu düşünüyorum çünkü güvenlik açığı olan farklı sözleşmelerdeki tüm bu farklı fonksiyonları uzamsal olarak düşünmeniz gerekiyor, bunları sıralı olarak çözemezsiniz çünkü çok fazla olasılık var, değil mi? Yani bu yılın başlarında biri ile bu konuda konuşuyordum ve onunla Pickle Finance açığı hakkında konuşuyordum. Bu çok ilginç çünkü sekiz güvenlik açığı içeriyor. Ve eğer birini kaçırırsanız, açığınız olmazdı ve bu belirli bir sırada olması gerekiyordu. Ve bu açık aslında beş özel sözleşmeden oluşuyordu. Yani temelde bu savunmasız fonksiyon dizilerinin belirli bir şekilde kullanılabileceği bağlamı oluşturmak için beş özel sözleşme vardı.
DeGatchi 27:44
Ve bunun başka bir kısmı, Athena'nın yalıtıcısında bir adres ve bayt 20'nin ikisinin de aynı anlama geldiğini anlamaktı. Ve insanlar bunu gözden kaçırıyor çünkü bu türlerin ne anlama geldiğini bilmeniz gerekiyor. Ama temel olarak yaptıkları şey, ki bunu çok büyüleyici buldum, gerçek bir altta yatan token gibi olan bu sözleşmeleri oluşturdular. Ve sahte altta yatan token nokta bakiye, bir adres döndürdü, gerçek bir miktar döndürmedi. Ve bu doğru değil çünkü gerçek bir miktar sadece bayt 32 ve adres bayt 20. Yani teknik olarak bu olduğu için adresi 2,5,6'ya girebilirsiniz, değil mi? Ve bu aslında, bu aslında tüm zinciri yarattı çünkü kullanılmakta olan bir temsilci kodu durumu gibi yarattı. Ve bu böyle oldu. Ama gerçekten ilginçti. Bilirsiniz, yeni dizileri mümkün kılan belirli şeyler yapan sözleşmeler oluşturmanız gerekiyor. Ve en az beş tane gibi bu sözleşmeleri üretmek hiç de önemsiz değil. Bu son derece büyüleyici bir problem ve çok uyarıcı. Ve bu tür şeyler için yapacak daha iyi bir şey yok. Bunu çok seviyorum.
DeGatchi 29:06
Ama bu tür şeyler gerçekten zor. Ve tüm bu şeyleri düşündünüz mü? Şu an araştırdığınız teknik türleri neler? Açıkçası, az önce uzamsal olarak söyledim, izole fonksiyonlara bakıp birbirleriyle nasıl etkileşime girdiklerini görüyorum. İlişki, nasıl ele aldığınıza bağlı olarak kesinlikle en zor kısımlardan biri. Çünkü kirlilik analizi, açıkçası yeterli değil.
Andy Zhou 29:26
Evet, farklı akıllı sözleşmeler arasındaki ilişki için şu an çok ilginç bir şey yapıyoruz. En iyi DeFi protokollerinin akıllı sözleşmelerini manuel olarak topluyoruz. Sonra farklı akıllı sözleşmeler arasındaki ilişkinin bir figürünü çizmek için manuel analiz yapıyoruz. Örneğin, wstETH'nin ABC gibi bir protokolde teminat olarak kullanılabilmesi durumunda, bu protokoller arasına bir çizgi çekiyoruz. Eğer bir token, başka bir akıllı sözleşmenin temel token'ı olarak kullanılabiliyorsa, bu protokolleri birbirine bağlıyoruz.
Andy Zhou 30:02
Yani temel olarak, en iyi protokoller arasındaki ilişkinin genel bir resmini elde etmek için bazı betikler kullanıyoruz. Ve bu içgörüleri statik analiz ve fuzzing tekniklerine karşı koruma amacıyla kullanacağız.
Andy Zhou 30:15
Bu şu an üzerinde çalıştığımız şeylerden biri. Hâlâ erken bir aşamada, ama oluşturduğumuz ilişkiler bazen statik analiz ve fuzzy sistemler için yardımcı oluyor. Şu an yaptığımız başka bir çalışma da tür çıkarımı üzerine. Akıllı sözleşme çağrısı içindeki girdi verilerinin, örneğin çağrı verisinin türünü çıkarmak istiyoruz. Örneğin, çağrı verisinin 0. baytından 20. baytına kadar türün bir adres olduğunu çıkarabiliriz. Ve girdinin başka bir bölümünden tür başka biridir. Bu, fuzzing'de çok yardımcı olabilir. Tür çıkarımını gerçekleştirmek için statik analizden yararlanmaya çalışıyoruz.
DeGatchi 30:55
İlginç. Evet, yukarıdaki şeyler arasındaki ilişki bir tür grafik gibi. Yaptığınız şey zor. Çünkü diyelim ki, bunlar da birkaç teknik. Eğer bir sözleşmeniz varsa ve içinde diğer sözleşmelere referansları varsa, diyelim ki sabit kodlanmış adresler, değil mi? Bu oldukça basit. Bu, erişebileceğiniz tür alanı ve bu ilişkide hepsinin nasıl bağlandığını bildiğiniz anlamına gelir. Ama aynı zamanda birbirlerine doğrudan atıfta bulunmayan sözleşmeler de var. Onlara çağrı verisiyle başvurabilirsiniz ya da artık yeni bir sözleşmeye başvuran bir havuz oluşturabilirsiniz. Sanırım buna Iron Vault ya da bir şey deniliyordu. Diğer ekosistemde.
Andy Zhou 31:33
Evet, bu kolay değil, ama farklı akıllı sözleşmeler arasındaki etkileşimleri ortaya çıkarabildiği için bunları bağlamak amacıyla zincir üstü işlemlerden yararlanabiliriz.
DeGatchi 31:44
Ama bununla ilgili akış şu ki, fonksiyonların normal dizilerine bakıyorsunuz, değil mi? Ve sıfır günü bulmak için normun dışına çıkıp farklı bir şey yapmanız gerekiyor. Yani normalin ne olduğunu belirlemenin iyi olduğunu düşünüyorum ve artık ne yapmamanız gerektiğini ve onu nasıl kıracağınızı biliyorsunuz, bu iyi. İlginç. Peki fuzzer ile planlarınız neler? Bunu bir tür sinir ağı fuzzing ile mi eşleştireceksiniz? Bu Trail of Bits'in girişimi. Buna değmez, ama açıkçası, doğru şekilde uygulanmıyor. Peki fuzzer konusundaki planınız ne? Nöral ağ destekli fuzzing mi yapacaksınız yoksa tamamen yapay zeka mı? Şu an gidilecek yer neresi?
Andy Zhou 32:23
Fuzzing için, önce fuzzer için tohum girdilerin oluşturulmasını ve girdilerin mutasyonunu kolaylaştıracak çok iyi bir tür çıkarım sistemine sahip olmaya çalışıyoruz. Ayrıca tohum girdiler oluşturmamıza yardımcı olması için yapay zekadan da yararlanıyoruz. Ayrıca güvenlik açıklarını hızlı bir şekilde tespit etmek için çok verimli bir tane istediğimizden fuzzing sürecini hızlandırmaya da çalışıyoruz. Fuzzer'ı geliştirmeye çalıştığımız üç farklı çalışma bölümü var.
DeGatchi 33:01
Tamam, ilginç. Araç konuşmasından biraz farklı olan bir şey var; alana baktığımızda, değil mi? Ve siz bir profesörsünüz, bu konuları biliyorsunuz.
DeGatchi 33:10
Pek çok insan, en üst düzey denetçi olmanın nasıl mümkün olacağını açıklıyor. Spearbit veya Trail of Bits'te güvenlik araştırmalarına öncülük eden kişiler—herhangi bir şey, hatta sadece solo denetçiler—yeni denetçi akışıyla gerçekten iyi iş çıkarıyorlar, değil mi? Bu alana giren bu yeni oyunculara ve bu becerilere sahip olmak isteyen diğer firmalara ve kişilere karşı kendinizi gerçekten nasıl farklılaştırmayı hedefliyorsunuz? Açıkçası, bunlardan çok fazla yok ama yine de geliyor. Ve geldikçe, bu daha zeki insanlar, belki yapay zekayla bile geliyor. Testify gibi insanların yapay zeka açık oluşturma yaptığını biliyorum. Eminim bunları duymuşsunuzdur. Ve yeni denetçiler geldikçe ve alana yeni oyuncular katıldıkça, kendinizi bu insanlardan gerçekten nasıl farklılaştırıyorsunuz?
Andy Zhou 33:55
Evet, bu çok zorlu bir soru. Benim bakış açımdan, örneğin DeFi protokol güvenlik alanı gibi bu belirli alanın trendini iyi anlaman gerekiyor. Farklı saldırı vektörleri ve yeni türde güvenlik açıkları var. Ve bu yeni şeyleri incelemeye çalışmak için çok iyi bir motivasyona veya becerilere sahip olmanız gerekiyor. Bu yeni şeyleri nasıl hızlı öğreneceğiniz ve yeni bilgileri nasıl hızlı özümseceğiniz benim avantajlarım. Ve tabii ki, bu alana girecek pek çok zeki insan var. Ama şunu söyleyebilirim: Doktora olarak yetiştiğim için, yeni bir alana nasıl hızlıca gireceğimi, son teknolojik durumu nasıl hızlıca anlayacağımı, üzerinde çalışılacak iyi bir problemi nasıl hızlıca bulacağımı ve başka bir alandan teknikleri bu alana nasıl uygulayacağımı biliyorum. Bence bu beni diğerlerinden ayıran şey.
DeGatchi 34:56
Yüzde yüz. Bir grup insanı düşünürseniz ve hepsi zeki ve yetenekliyse, temel fark sadece yaratıcılıktır; bu, hepsinin eşit seviyede zeki olduğu düz bir alanda geçerli görünüyor ki bu hiçbir zaman doğru değil. Ve en büyük şey yaratıcılık, değil mi? Hepimiz farklı düşünüyor ve farklı bakış açılarına sahibiz. Yani bence bu ana şey; kendinize gerçekten inanmak ve başkalarının yapamayacağınıza inandığı şeylere inanmak ve başka kimsenin gerçekten yapmadığı şeyler ve bunun yapılabileceğine inanmak ve nasıl yapılabileceğini bilmiyor olabilirsiniz, ama bunu bulmak için tutkunuza sahip olduğunuz sürece itmeye devam ettikçe, bu gerçekten ana şey. Yeni trendleri tespit edip onlardan yararlanabilmek ana şey. Bu çok sık oluyor; sadece fırsata sıçramak için bilgiyle hazır olmanız gerekiyor.
DeGatchi 35:45
Ne yazık ki ben, yapay zekayı bilmediğim için yapmadım. Her şey, doğru yer, doğru zaman, doğru becerilerle ilgili. Yapay zekanın gerçekten bir sonraki sınır olduğunu düşünüyorum ve buna geçiş yapmayan herkesin geride kalacağını düşünüyorum. Geliştirici dünyalarında alan bilgisine ve ayrıca yapay zekaya sahipsiniz, ama bunları birleştirirseniz dünyayı değiştirmiyorsunuz çünkü her iki alanı da biliyorsunuz. Ve böylece bölünmüş bilgiye kıyasla daha iyi problem çözümleri düşünebilirsiniz. Sanırım iyi bir örnek matematiği anlamaktır. Dünyaya, onu anlamayan birinden farklı bakarsınız. Ve bunu finans sektörü gibi farklı şeylerle birleştirirseniz, gerçekten verimli algoritmik işlem sistemleri oluşturmanın yollarını düşünebilirsiniz, değil mi? Ve rekabet için inanılmaz bir avantaj elde edebilirsiniz. Bunun aslında AVAX'taki bir adam olduğunu düşünüyorum, sanırım tüm arbitrajların %90'ını yakaladı çünkü sadece bir matematik avantajı vardı. Bunu demek istiyorum. Sadece iki alana sahipseniz, gerçekten çok sayıda fırsatı yakalayabilirsiniz. çünkü bu şeyleri öğrenmek zor. Ve bildiğiniz daha fazla domain'i birleştirebilirseniz, rekabet azalır; bu sadece uzaklaşır.
DeGatchi 36:55
Peki kendinizi ve BlockSec'i gelecekte nerede görüyorsunuz? Kariyerinizde ve şirketin kendisinde kendinizi nasıl ilerlediğinizi görüyorsunuz? Ve endüstrinin nereye gittiğini ve nereye gitmesi gerektiğini nasıl görüyorsunuz?
Andy Zhou 37:05
Bence endüstri için, Web3 çok yeni bir alan ve bu yeni alanın hâlâ erken aşamalarındayız. Benim bakış açımdan, endüstri çok hızlı ilerliyor. Aynı zamanda, endüstri tarafından henüz ele alınmamış çok sayıda güvenlik sorunu var. Ekosistemi hızlı ama aynı zamanda güvenli bir şekilde hareket ettirmeye yardımcı olmak için kendi çözümlerimizi kullanmaya çalışıyoruz. Ürünlerimiz ve protokollerimiz var, bunlar varlıkları korumak içindir. Bu bir şey. Ayrıca gelecekte bu alanda birkaç farklı Web3 kullanıcısı olacağını da görüyoruz. Kullanıcıların da güvenlik korumasına ihtiyacı var çünkü şu anda Web3 ürünlerini kullanmaları biraz karmaşık. Özel anahtarlarını ve varlıklarını korumak için çok iyi bir yönteme ihtiyaçları var, çünkü kullanıcıların çoğu ERC20 token'larının onay sürecini anlamıyor. Kötü amaçlı sözleşmedeki tüm token'ları onayladılar.
Andy Zhou 38:10
Bu yüzden DeFi kullanıcıları için mevcut endüstri tarafından henüz ele alınmamış çok iyi bir koruma sistemine ihtiyacımız var. Tabii ki bunu yapan bazı şirketler var, ama kullanıcıları korumak için daha iyi yollar var.
DeGatchi 38:27
Bence fuzzer'ın üzerine, kullanıcıları korumaktan bahsederken bir cüzdan gibi bir şeye genişleyebilirsiniz. Yani iki farklı yol ya da üç farklı yol var. Bekleyen işlemler gibi, bunlar %100 kesin değil. Yani biraz daha ayrıntılı gitmeniz gerekiyor. Bu, sıfır günlerin kendisini bulmak gibi olabilir. Ama bu bir seçenek değilse, analizi cüzdanın kendisine gömmek iyi olabilir, hızlı bir tane olsa bile, değil mi? Token veya her ne ile uğraşıyorlarsa yapıyorlar. Ama işlemi yapmadan önce biraz analiz gerçekleştirebilirseniz, sanırım bunu daha önce yapan biri olmuş.
Andy Zhou 39:01
Bunu yapmak için işlemleri simüle eden ve kullanıcılara işlemi imzalamaları durumundaki sonuçları bildiren birkaç şirket var.
DeGatchi 39:10
Bence bu gerçekten akıllıca ve bunun güvenlik yapan herhangi bir şirket için kolay bir ilerleme olduğunu düşünüyorum; bence bu gerçekten harika bir yol. Yani doğrudan onlara verin. Sanırım fire veya bir şeydi. Hatırlamıyorum. Ama evet, bunlar gerçekten iyi, simülasyonlar, ama bence biraz kusurlu çünkü örneğin bir LP'ye işlem yapıyorsunuz. İnsanlar özel bayt kodu yapar ve koşullu işlevsellik yapar. Diyelim ki bu 100 tür LP başka bir şey yapmaya geçiyor. Yani gerçekten her şeyi, her tek fonksiyon yolunu test etmediğiniz sürece paralarının veya her neyse başlangıçtaki simülasyonu çıkmaz. Bu düşündüğüm bir şeydi. Ama ayrıca çok zor sorunlar var. Zehrinizi seçmeniz gerekiyor. Siber güvenlik ve yapay zekanın birleşimi için gelecekte ne için heyecanlısınız? Eminim çok daha fazlasını kullanacaksınız. Planlarınız neler ve kendinizi o yolda nasıl ilerlediğinizi görüyorsunuz?
Andy Zhou 40:06
Evet, planım için, bilirsiniz, topluluğu ve kullanıcıları daha iyi korumak için bu yeni teknikleri bir araya getirmek istiyoruz. Yapay zekaya kaynaklarımızı yatırmaya devam edeceğiz, çünkü Web3 güvenlik sahnesiyle birleşen yapay zeka daha iyi ürünler üretecek. Daha iyi bir saldırı tespit sistemi, daha iyi bir fuzzing sistemi ve kullanıcıların varlıklarını korumak için daha iyi çözümler elde etmek için işleri daha da ileri götürmek istiyoruz. İşte BlockSec içindeki mevcut planımız bu.
DeGatchi 40:36
İlginç. Tamam. Bunun çok daha iyi olacağından ve çok daha fazlasını yapabileceğinizden eminim. Bu tüm hack'leri önlemek için zaten çok şey yapıyorsunuz. Ama bence çok daha fazla yenilik için alan var ve bu sadece başlıyor. Bence insanlar bundan haberdar olmaya başladıkça ve daha fazla hack'i önledikçe, çok daha belirgin hale gelecek ve sağlıklı bir rekabet için çok daha fazla rekabet olacak; bu hack'leri önlemek ve ekosistemi gerçekten genişletmek için harika. Çünkü nihai hedef bir şekilde CeFi'nin yerini almak, değil mi? Banka hesabınızdan para çıkarmak için dört ay beklemek istemezsiniz. Bu oldukça saçma. Bilgi sektöründeki çabalar, perakende ve mevcut protokoller için gerçekten hafife alınıyor. Hack'lendikleri zaman bunu gerçekten ancak o zaman öğreniyorlar. Bunun aslında bazı insanların bu alana nasıl girdiği olduğuna inanıyorum. Ama dostum, inşa ettiğiniz şeyler için süper heyecanlıyım ve siber güvenlik ve kripto'nun geleceği konusunda gerçekten iyimserim. Ama dostum, geldiğiniz için gerçekten minnettarım. Atladığınız ilk podcast olmaktan çok mutluyum. Evet, zamanınız için gerçekten minnettarım Andy. Harika bir sohbetti.
Andy Zhou 41:38
Evet, burada olmak bir onurdu. Teşekkürler DeGatchi.



