Summ3r 0f h4ck 2019: hasil penelitian


Hari ini kami akan membagikan hasil program pelatihan musim panas Summ3r 0f h4ck keempat di perusahaan kami di departemen penelitian.


Untuk tahun-tahun terakhir, hasilnya dapat ditemukan di sini: 2016 , 2017 . Departemen audit dalam artikel terpisah di sini dan artikel bersama untuk 2018 .


Jadi, mari kita mulai dengan angka, fakta, dan informasi menarik lainnya.


  • 76 aplikasi dari seluruh Rusia dan negara-negara tetangga
  • 10 kandidat terpilih
  • Para kandidat mewakili kota-kota seperti Saratov, Kaliningrad, Rostov-on-Don, Moskow, Vladivostok, St. Petersburg, Krasnodar.
  • Universitas: SSU (dinamai Chernyshevsky), BFU dinamai I. Kant, Universitas Federal Selatan, HSE MIEM, Universitas Federal Timur Jauh (FEFU), Universitas Teknik Negeri St. Petersburg, Universitas Teknik Teknis Moskow dinamai N.E. Bauman, Universitas Politeknik St. Petersburg, Peter the Great, Perang Salib Kementerian Dalam Negeri Federasi Rusia.

Selama masa pelatihan dari departemen kami dari 15 Juli hingga 15 Agustus, kuliah diberikan tentang topik-topik seperti:


  • Pengantar Pencarian Kerentanan dalam Aplikasi Biner dan Kode Sumber
  • Analisis Keamanan Statis Proyek Open Source Besar
  • Pemulihan informasi simbolik selama rekayasa terbalik
  • Keamanan Firmware (Tentang UEFI BIOS)
  • Memperkenalkan Alat Analisis Biner Ghidra
  • Pentahapan dengan KLEE, libfuzz, AFL
  • Pengantar serangan pihak ketiga pada mikroarsitektur

Salah satu siswa juga memberikan kuliah internal dengan topik "Tinjauan umum perlindungan menggunakan virtualisasi kode menggunakan contoh VMProtect". Terima kasih kepada teman-teman untuk pertanyaan yang menarik, minat yang besar akan kuliah. Secara terpisah, harus dicatat bahwa siswa dari kedua departemen dapat menghadiri kuliah dan berpartisipasi dalam mini-CTF, yang dapat dibaca lebih detail dalam sebuah artikel dari departemen audit .


Adapun topik tahun ini, ada seperti:


  • Pelacak berbasis perangkat keras prosesor Intel
  • Plugin untuk Dentang Analisis
  • Memberdayakan Pigaios
  • Kerangka kerja penelitian keamanan firmware UEFA
  • Pembersihan API berbasis negara
  • Serangan saluran-samping pada mikrokontroler
  • Kerangka kerja untuk memulihkan nama fungsi secara otomatis
  • Menyesuaikan AFL Phaser untuk Aplikasi Jaringan
  • Mengurai eBPF di Ghidra

Perlu dicatat bahwa dalam proses mengerjakan suatu topik, topik itu sendiri dan arahnya terkadang berevolusi dan dimodifikasi karena satu dan lain alasan. Kita dapat mengatakan bahwa semua orang hebat dan mencoba memeras maksimal untuk periode program yang agak singkat ini. Meskipun hal yang paling penting adalah untuk memperoleh pengetahuan dan pengalaman baru (dan kencan).


Penting untuk dipahami bahwa program Summ3r 0f h4ck kami adalah program pelatihan, bukan program magang (meskipun demi kesederhanaan, beberapa orang menyebutnya begitu). Dalam prosesnya, orang-orang bersama dengan para mentor mengerjakan tema proyek, mendengarkan ceramah, menyelesaikan berbagai lab, mendapatkan berbagai tip tentang berbagai aspek keamanan informasi dan, tentu saja, menjawab pertanyaan mereka.


Seperti biasa, kami beralih ke ulasan yang tidak dapat diedit dari siswa kami tentang bulan mereka di perusahaan kami (yang ingin menerbitkannya).


Pertanyaan untuk wawancara mini seperti ini


  1. Mengapa Anda memutuskan untuk magang di Digital Security? Apa yang menarik Anda ke perusahaan?
  2. Apakah Anda suka magang? Apa yang paling berkesan? Bagaimana kenyataan itu sesuai dengan harapan Anda?
  3. Ceritakan tentang tugas / tugas Anda.
  4. Apakah tugas yang Anda kerjakan selama magang tampak menarik? Apakah ada sesuatu yang ingin Anda lakukan tetapi gagal?
  5. Apakah Anda siap untuk kembali ke perusahaan untuk magang atau bekerja?

Dan inilah beberapa jawaban yang diberikan oleh beberapa siswa


Novoseltseva Alyona



  1. Digital Security adalah perusahaan terkemuka di Rusia di bidang keamanan informasi dengan tim pembalik terbesar dan paling ramah. Saya selalu ingin masuk ke lingkungan orang-orang yang dekat dengan Anda dalam semangat. Ada profesional sejati di sini, dan banyak yang bisa dipelajari dari mereka. Terlebih lagi, di wilayah saya tidak ada perusahaan dan komunitas seperti itu secara umum yang setidaknya berhubungan dengan rekayasa terbalik.
  2. Saya sangat menyukai magang. Yang paling menakjubkan adalah suasana di mana perusahaan beroperasi. Orang-orang yang penuh perhatian akan setuju dengan saya - di meja karyawan tidak ada selembar kertas kecuali notebook mereka sendiri dengan pikiran dan ide. Ini banyak bicara, dan sangat langka di dunia birokrasi kita!
    Anda diberikan kondisi kerja terbaik - keheningan, kenyamanan, dan yang paling penting - orang. Staf dan penelitian mereka sangat menginspirasi. Saya benar-benar suka bekerja pada sebuah proyek dalam tim dengan mentor - kami memecahkan masalah siang dan malam, bersama-sama kami mencari solusi, bersama-sama bersukacita ketika sesuatu berhasil. Saya sudah lama tidak mengalami kebahagiaan seperti itu. Sasha, Kolya - Aku tunduk padamu.
  3. Pekerjaan penelitian saya adalah pengembangan di Sleigh dari sebuah sistem untuk menerjemahkan bytecode eBPF ke pCode untuk kemungkinan pembongkaran dan penguraian. Itu perlu untuk mengembangkan ekstensi untuk Ghidra, yang akan memungkinkan untuk membongkar dan mengurai program eBPF. Saya harus menguasai bahasa spesifikasi prosesor Sleigh, memahami fitur arsitektur eBPF dan interaksi program eBPF dengan kernel, mendapatkan pengalaman dalam mengembangkan ekstensi untuk Ghidra dan bekerja dengan Eclipse, dan banyak lagi
    Tugas selesai dengan sukses! Proyek ini tersedia untuk umum dan diterbitkan di Github. Hasilnya dapat diuji oleh siapa saja dengan mengunduh rakitan ekstensi dari repositori menggunakan tautan di bawah ini. Rincian lebih lanjut dapat ditemukan di artikel terpisah.
  4. Ya, tugasnya rumit dan menarik, saya sangat menyukai proses pengembangan dan kerja tim. Saya sangat ingin mempelajari topik analisis otomatis program dan mencari kerentanan biner lebih dalam, yang menarik adalah eksekusi simbolik.
  5. Dengan senang hati! Karena universitas belum belajar selama beberapa tahun, saya akan mempersiapkan magang berikutnya! Untuk bekerja - tentu dan mungkin sudah

Tautan ke proyek


Bukovsky Victor



  1. Saya memutuskan untuk magang di Digital Security karena perusahaan ini adalah penyelenggara konferensi keamanan informasi favorit saya - ZeroNight.


  2. Magang itu tenggelam ke dalam jiwa. Semuanya berjalan dengan sempurna. Kasus yang jarang terjadi ketika kenyataan melebihi harapan saya. Saya terutama ingat bagaimana pada hari terakhir magang mereka mengadakan kuis tentang pengetahuan perusahaan dan kemampuan psikis :), untuk kemenangan di mana saya menerima sekotak kue dan T-shirt.


  3. Tugas saya adalah menulis plugin untuk IDA PRO 7 menggunakan Hex-Rays API. Tugas salah satu dari mereka adalah untuk menampilkan dalam tabel khusus (Gbr. 1) fungsi yang berisi fungsi yang tidak aman atas kebijaksanaan peneliti (tautologi tidak dapat dilewati). Tujuan dari yang lain, bisa dikatakan, inti plug-in untuk magang ini, adalah untuk mengembalikan nama fungsi dari file yang dapat dieksekusi (-s) yang dieksekusi menggunakan informasi pendukung. Dalam kasus saya, kami mengambil nama fungsi dari parameter yang diteruskan ke fungsi logging (Gbr. 2).



  4. Tugas bagi saya benar-benar non-sepele, yang hanya memicu minat dalam pelaksanaannya. Ironisnya, saya adalah salah satu dari sedikit orang beruntung yang mendapat kehormatan bekerja dengan tiga kurator. Pada awalnya Artyom yang memperkenalkan saya dengan topik ini, menyiapkan Bitbucket untuk menyimpan proyek, papan di Trello, dengan tugas dan tujuan awal, dan juga memberi tahu cara bekerja dengan bahasa markup Markdown. Kemudian Dmitry Evdokimov menjadi kurator saya, yang di masa lalu telah berurusan dengan pemulihan nama fungsi, membawa saya ke pemikiran yang diperlukan dan lebih mendalam mengungkapkan masalahnya. Nah, Boris Ryutin, orang yang mewawancarai saya dan terima kasih kepada siapa saya berakhir di magang ini, menjadi kurator saya. Dengan dia, saya sudah menerima tugas akurat yang bertujuan memperoleh hasil yang diinginkan. Segala sesuatu terjadi dengan langkah yang sangat kuat, dan semua yang kami rencanakan dilaksanakan, untuk itu banyak terima kasih lagi.


  5. Saya tidak yakin tentang magang, karena menurut saya terlalu beberapa bulan di perusahaan ini. Saya ingin tetap di sana selama mungkin, jadi ya, saya siap untuk kembali bekerja.



Tautan ke proyek: https://github.com/o0Starley0o/HexRaysPlugins


Ingin tetap anonim


  1. ZeroNights / adalah teman
  2. Secara alami, saya sangat menyukainya. Harapan dibenarkan dan bahkan lebih.
    Hal pertama yang perlu diperhatikan adalah topik yang saya bahas. Saya berencana untuk melihat sesuatu yang saya tidak bisa (tidak akan) lakukan di rumah dan, pada kenyataannya, temanya sesuai dengan ini.
    Meskipun saya tidak bisa mengatakan bahwa saya mencurahkan banyak waktu untuknya, saya benar-benar puas dengan hasil dan pengetahuan yang diperoleh dalam proses (sebenarnya - sedikit lebih dari seminggu dan hasil utama diperoleh =).
    Saya senang bahwa untuk pertanyaan apa pun pertanyaan tentang topik tersebut dapat langsung mendapatkan jawaban dari mentor (dan jawabannya adalah "apakah Anda ingin mencoba / belajar lebih banyak?").
    Yang kedua adalah banyak orang yang menarik di sekitar, tidak hanya dari karyawan, tetapi juga dari pekerja magang, yang dengannya kita dapat menilai masa depan keamanan informasi.
    Ketiga - pentester membuat pilihan mesin yang sangat keren dengan pengaturan / layanan yang rentan (dari tugas xss dengan bot, eskalasi hak istimewa, hingga penangkapan berurutan dari admin domain).
    Semua orang diizinkan bermain dan itu sangat menyenangkan selama 2 minggu. Mereka yang tidak memberinya cukup cinta salah perhitungan sangat banyak.
    Keempat - kuliah, menyenangkan mengisi kekosongan dalam pengetahuan atau menemukan sesuatu yang baru untuk diri Anda sendiri.
    Hampir semua kuliah terbalik sangat serius: Pentester membagikan makanan dan memiliki tugas interaktif.
  3. Tugas menghapus trek eksekusi dalam mode SMM (ring-2). Anda tidak dapat mengaktifkan pelacakan dari mode kurang istimewa, Anda perlu kode SMM untuk mengaktifkannya. Secara alami, dia tidak tahu bagaimana melakukan ini.
    Mereka membuat tambalan, melemparkannya ke SMM (untuk ini perlu untuk mengupgrade UEFI) dan menggunakan alat yang ada (WinIPT) mereka dapat merekam bagaimana kode dijalankan di SMM.
  4. Sekarang ada begitu banyak teknologi yang tidak mungkin untuk diambil dan dicoba semuanya secara berturut-turut. Anda selalu membutuhkan insentif atau tugas yang akan menyebabkan Anda melihat sesuatu yang baru.
    Kemudian muncul keinginan alami: "Bisakah saya menggunakan teknologi ini untuk tugas saya? Bisakah lebih mudah / lebih efisien dengan itu?".
    Karena itu, saya senang dengan tema saya.
    Namun demikian itu layak membawa proyek ke setidaknya fuzzer primitif. Ini adalah salah satu hal yang saya tidak bisa coba tanpa stimulus eksternal.
  5. tidak ada komentar

Khabarov Oleg


  1. Menurut pendapat saya, di Rusia, perusahaan yang menggunakan teknik terbalik dalam kegiatan profesional sangat sedikit, dan perusahaan yang menggunakannya untuk menemukan kerentanan, dan bukan untuk analisis virus, apalagi Keamanan Digital dan Teknologi Positif.
  2. Magang membantu membentuk pedoman ke mana harus pergi jika Anda ingin menjadi reseller, bukan "spesialis keamanan informasi" abstrak. Saya ingat apa yang merupakan kuliah yang relatif sederhana tentang ceramah pentest dan head-loading dari para pembalik.
  3. Tugas saya adalah memperbaiki alat rekayasa terbalik Pigaios. Tujuannya adalah untuk menemukan fungsi perpustakaan open-source dalam biner yang dikompilasi secara statis dengan perbandingan. Namun, saya tidak berurusan dengan mekanisme perbandingan itu sendiri, tetapi dengan penyempurnaan bagian fungsi yang mengekstraksi definisi struktur, tipe, asosiasi, dll. Sebagai hasilnya, saya menyelesaikan parser elemen-elemen ini dan menambahkan dukungan untuk proyek-proyek yang dibangun menggunakan make. Saya memutuskan untuk tidak mengintegrasikan perbaikan ini ke dalam Pigaios, tetapi untuk membuat alat terpisah, karena lebih mudah untuk membongkar secara terpisah daripada menggali ke dalam kode Pigaios.
  4. Saya tidak akan mengatakan bahwa saya menyukai tugas ini, tetapi itu memungkinkan saya untuk meningkatkan pemahaman kode C, dan berkat tugas ini saya belajar bahwa Anda dapat mengurai kode C tanpa memahami teori teknik kompiler, tetapi cukup gunakan libclang. Karenanya, saya tidak mungkin memodifikasi instrumen saya. Jika ada yang mau, saya mencoba menulis dengan bersih dan meninggalkan komentar di mana-mana.
    Berkat ceramah dari para pembalik, saya menyadari apa yang ingin saya lakukan, yaitu, analisis biner dinamis (fuzzing, instrumentasi).
  5. Saya akan senang jika di masa depan saya berhasil mendapatkan pekerjaan di Digital Security, karena ada banyak profesional di bidangnya.

Tautan ke proyek: https://github.com/Barkhat26/decl-exporter


Zabelina Margarita


  1. Saya sebelumnya telah menyelesaikan masa magang di perusahaan lain sebagai karyawan dari layanan keamanan informasi. Di sana saya harus berurusan lebih dengan masalah keamanan web. Tetapi di tim KKP, saya selalu menyelesaikan tugas terbalik, sering karena minat saya membaca tentang serangan biner. Menjadi menarik bagi saya untuk melihat bagaimana pembalik bekerja, untuk melihat bagaimana saya akan mengatasi pekerjaan seperti itu. Plus itu menarik untuk melihat DSEC dari dalam.
  2. Magang itu bagus. Yang terpenting, saya menyukai ceramah. Karena hampir sepanjang waktu Anda sibuk dengan proyek, kesempatan untuk terganggu dan menyelesaikan tugas-tugas kecil, sangat menyegarkan kepala Anda. Selain itu, saya belajar banyak hal baru, di suatu tempat saya menggabungkan pengetahuan lama.
    Harapan / kenyataan cukup bertepatan.
  3. Saya berurusan dengan implementasi pemeriksa untuk Clang Static Analyzer. Tugasnya bukan rocketsaines, tapi prestasi yang bisa saya terapkan untuk tesis saya. Pertama-tama, saya harus membiasakan diri dengan alat ini, melihat apa yang dapat dilakukan lib clag, dan belajar cara mengumpulkan checker tes sederhana. Lebih lanjut diputuskan bahwa saya akan mengambil implementasi checker untuk integer overflow detector. Gagasan pemeriksa seperti itu ditunjukkan dalam daftar pemeriksa dentang potensial, saya pikir benda itu bermanfaat dan bermanfaat. Saya telah memilih pendekatan dengan analisis AST dan memberikan verifikasi. Tetapi solusi seperti itu hanya menentukan potensi luapan. Untuk verifikasi yang akurat, Anda dapat menggunakan analisis noda dan pemecah SMT. Tidak ada alat yang siap pakai untuk bekerja dengan noda di lib, ada perkembangan oleh peneliti lain, yang saya ambil sebagai dasar. Sayangnya, saya tidak berhasil menyelesaikan tugas saya dalam sebulan, tetapi saya akan menyelesaikan proyek sebagai bagian dari tesis.
  4. Gagasan bahwa Anda akan menyadari apa yang nantinya dapat diterapkan dan berguna dalam pekerjaan nyata sudah memicu minat dalam proyek. Saya ingin menulis ulang pengecekan noda sehingga nantinya dapat digunakan tidak hanya dalam proyek saya.
  5. Tim DSEC sangat baik, semua ahli keren. Saya akan datang untuk bekerja. Tapi saya tidak ingin magang lagi, mentoring mengecewakan menurut saya. Mengingat kami hanya punya satu bulan, pada waktu yang tepat, saya tidak menerima umpan balik dari mentor. Dan saya menghabiskan banyak waktu untuk menggali sendiri, meskipun saya bisa mendapatkan jawaban dari seorang mentor yang berpengalaman. Hanya jika tidak ada mentoring, lalu mengapa saya perlu magang, saya dapat memotong proyek saya sendiri di rumah.

Tautan ke proyek: https://github.com/dR3m/IntOverflow-CSA-plugin


Sankin Nikita


  1. Keamanan Digital tertarik dengan topik proyek dan umpan balik dari peserta dari magang sebelumnya, serta banyak artikel tentang Habré yang ditulis oleh karyawan. Secara umum, dari pos di Habré saya juga belajar tentang magang. Ada juga keinginan untuk mengubah situasi, setelah menyelesaikan magang di kota lain dan telah mencoba proyek yang tidak saya lakukan di pekerjaan utama saya.
  2. Magang tidak berjalan seperti yang saya harapkan, terutama karena sewa apartemen tidak berhasil, yang mencegah saya untuk fokus pada proyek dan melakukan semuanya tepat waktu. Selain itu, pada awalnya itu memalukan bahwa tugas itu lebih banyak tentang menulis kode daripada tentang penelitian, tetapi di sini mungkin masalah ketidakcocokan harapan dan faktor pribadi lainnya.
  3. Kami perlu menerapkan kerangka kerja pengujian kerentanan firmware UEFI berdasarkan solusi chipsec yang ada. Masalahnya adalah sulitnya mempertahankan kode chipsec, jadi Anda harus menulis ulang semuanya dengan indah di python 3.x dan mungkin menambahkan beberapa fungsi baru.
  4. Dalam tugas itu, tampaknya menarik bagi saya untuk tidak menulis kode untuk mempelajari teknologi yang harus saya gunakan. Saya ingin menyelesaikan proyek sampai ke tahap HAL (lapisan abstraksi perangkat keras) dan mempelajari lebih rinci pengoperasian perangkat perangkat keras dan antarmuka mereka. Sayangnya, alasan yang disebutkan dalam ayat 2 mencegah ini, tetapi saya berencana untuk melanjutkan proyek setelah magang.
  5. Saya siap untuk kembali ke magang untuk menyelesaikan dan menunjukkan proyek saat ini, atau jika ide yang menarik muncul. Saya pasti akan mempertimbangkan perusahaan sebagai yang pertama dalam pekerjaan di St. Petersburg, tetapi saat ini saya tidak membutuhkannya.

Komarov Nikita


  1. Saya sudah mengikuti Digital Security selama beberapa waktu, itu dimulai sejak pertama kali saya mendengar tentang Zeronights, saya pikir hanya perusahaan yang benar-benar keren yang bisa melakukan ini. Tidak segera, tetapi memperhatikan bahwa magang ditahan, namun pada awalnya saya tidak bisa pergi. Pada tahun yang sama, saya tidak sengaja melihat bahwa di poster iklan tepat di tengah adalah teman saya yang tidak dikenal yang telah sampai di sana, berpikir itu adalah pertanda bagus untuk akhirnya menghadiri magang.
  2. Ternyata sangat menarik, dan yang paling penting waktu itu selalu penuh dengan sesuatu. Saya ingat, tentu saja, laporan dan layanan dengan wavebox. Bahkan, saya tidak menyangka akan ada begitu banyak hal, setiap malam ada sesuatu yang harus dilakukan selain proyek utama, ini mencairkan suasana dengan baik dan memberikan berbagai tugas.
  3. Sebagai bagian dari magang, tugas saya adalah menulis kerangka pengujian keamanan uefi. Topiknya menarik, terutama mengingat fakta bahwa dalam kerangka kegiatan biasa saya belum harus melangkah terlalu jauh ke tingkat abstraksi ini.
  4. Tugas-tugas itu, tentu saja, menarik, kemungkinan besar dari kenyataan bahwa saya harus belajar banyak hal baru atau sudah lama dilupakan sebagai hal yang tidak perlu. Sayangnya, ada hal-hal yang tidak berhasil, tetapi sekarang ada insentif untuk terus mengerjakan proyek selama setahun.
  5. Saya berharap untuk mengunjungi magang tahun depan. Terima kasih banyak

Uvarov Kirill



  1. Saya membaca blog perusahaan di Habré. Oleh karena itu, opsi pertama ini adalah di mana Anda bisa merasakan bola dari dalam
  2. Saya menyukai magang. Saya sangat menyukai suasananya. Saya belum pernah terlibat dengan keamanan sebelumnya. Karena itu, saya benar-benar ingin menyentuh semuanya sendiri "dengan tangan saya."
  3. Terlibat dalam serangan pada saluran pihak ketiga pada mikrokontroler. Implementasi algoritma kriptografi, analisis energi dan akuisisi kunci.
  4. Tugas ini sangat dekat dengan minat saya, jadi saya menangani topik itu dengan senang hati.
  5. Berkat magang, saya tahu di mana harus berkembang, jadi saya pasti siap untuk kembali ke perusahaan :)

Kata terakhir


Selama program musim panas ada juga keadaan force majeure, dari mana tidak ada yang aman, tetapi semua siswa bereaksi terhadap hal ini dengan pemahaman (yang mereka ucapkan terima kasih), dan kami mengambilnya dengan pensil untuk meminimalkan hal ini di masa depan.


Tunggu pengumuman Summ3r 0f h4ck 2020 tahun depan!


NB Kemudian, pada sejumlah proyek cowok, kami akan menerbitkan artikel teknis mereka yang terpisah.

Source: https://habr.com/ru/post/id466465/


All Articles