BarsUP.AM: bagaimana kami mengembangkan alat untuk melindungi informasi aplikasi web

gambar

BarsUp.Access Manager (BarsUp.AM) - paket perangkat lunak kami untuk melindungi informasi rahasia. Ketika merancang dan mengembangkan sistem ini sesuai dengan persyaratan dokumen peraturan FSTEC Rusia, kami mengalami kesulitan dalam mengelola akses ke aplikasi web menggunakan alat perlindungan informasi bersertifikat.

Orde FSTEC Rusia No. 17 mengatakan bahwa harus ada pilihan alat perlindungan informasi yang disertifikasi untuk kepatuhan dengan persyaratan keamanan informasi, dengan mempertimbangkan biayanya, kompatibilitas dengan teknologi informasi dan sarana teknis. Kami melihat apa yang ada di pasaran pada saat itu dan memahami: biaya solusi yang sesuai dengan sistem informasi kami sering melebihi biaya sistem itu sendiri, atau mereka tidak kompatibel.

Dalam hal ini, regulator melaporkan bahwa tanpa adanya sarana perlindungan informasi yang sesuai, pengembangan (revisi) dan sertifikasi sesuai dengan undang-undang Federasi Rusia atau penyesuaian keputusan desain diatur . Kami memutuskan untuk mengembangkan dan mensertifikasi dalam perangkat lunak FSTEC Rusia yang mengimplementasikan fungsi identifikasi dan otentikasi pengguna, kontrol akses, dan pendaftaran acara keamanan untuk kemungkinan penggunaannya:

  • Dalam sistem otomatis hingga kelas keamanan 1G inklusif sesuai dengan persyaratan dokumen pedoman β€œSistem otomatis. Perlindungan terhadap akses tidak sah ke informasi. Klasifikasi sistem otomatis dan persyaratan perlindungan informasi ”(Komisi Teknis Negara Rusia, 1992);
  • 11 2013 . β„– 17 Β« , , Β» 11 2014 . Β« Β»;
  • 1 18 2013 . β„– 21 Β« Β».

Produk ini disebut BarsUP.Access Manager atau BarsUP.AM . Saya akan menghapus masalah yang berkaitan dengan mendapatkan keputusan dari FSTEC dan menyimpulkan perjanjian dengan laboratorium pengujian dan lembaga sertifikasi di luar batas materi ini, dan menjelaskan bagaimana kami mengembangkan perangkat lunak untuk melindungi aplikasi web.

Mulailah


Kami membentuk tim yang terdiri dari manajer proyek, insinyur keamanan informasi, analis, arsitek perangkat lunak, dan dua pengembang terkemuka. Selama implementasi proyek, kami mengidentifikasi tahap kerja berikut:

gambar

Pada tahap analisis, kami mengumpulkan persyaratan dari dokumen peraturan yang dapat diimplementasikan oleh alat keamanan untuk web, kemudian kami bekerja bersama dengan pengembang tentang kemungkinan implementasi mereka dalam hal sumber daya yang dihabiskan dan waktu. Ketika membahas persyaratan, kami menerjemahkan kata-kata dari tindakan hukum ke dalam bahasa yang dapat dipahami oleh analis dan pengembang, membentuk peta jalan: apa yang harus diterapkan di tempat pertama, yang merupakan opsional. Kami menulis dokumentasi untuk sertifikasi secara paralel dan setelah pengembangan produk.

Pada output, kami menerima produk yang menyelesaikan tugas-tugas berikut:

  • (SSO) ;
  • ;
  • ;
  • ;
  • ;
  • .
  • , ;
  • ;
  • () , TOTP ;
  • ;
  • ;
  • () ;
  • ;
  • ;
  • skalabilitas horisontal sistem karena pengelompokan.

Perangkat lunak ini mendukung dua standar untuk menerapkan sistem masuk tunggal:

  • bahasa markup pernyataan keamanan (SAML);
  • OpenID Connect 1.0.

Implementasi Single Sign-On SAML


Sesuai dengan ketentuan standar SAML, perangkat lunak bertindak sebagai penyedia identitas (IdP). Subsistem IP bertindak sebagai penyedia layanan (SP).

Prosedur umum untuk bekerja dengan sistem masuk tunggal melalui SAML disajikan di bawah ini:

gambar

  1. Pengguna mencoba menerapkan akses web ke aplikasi (SP);
  2. Aplikasi memeriksa keberadaan konteks keamanan dan, jika tidak ada, menghasilkan pesan AuthnRequest dan mengarahkan ulang browser pengguna ke server otorisasi BarsUP.AM (IdP);
  3. Pengguna terhubung ke server otorisasi dan memasuki kredensial;
  4. , ;
  5. Response;
  6. , Response. Response .

Pertukaran pesan antara para pihak adalah dalam bentuk pernyataan SAML (pernyataan) . Klaim SAML ditransmisikan menggunakan protokol HTTPS yang aman.

Hubungan kepercayaan dibangun antara penyedia identitas IdP dan penyedia layanan SP. Pesan SAML yang dikirim, termasuk AuthRequest dan AuthResponse, masing-masing ditandatangani menggunakan sertifikat digital SP dan IdP.

Pesan AuthRequest ditandatangani dengan kunci pribadi aplikasi dan dikirim ke server otorisasi menggunakan HTTP Redirect, HTTP POST, atau pesan HTTP Artifact. Pesan AuthRequest, khususnya, berisi informasi berikut:

  • URL aplikasi
  • URL Penyedia Identitas IdP (Server Otorisasi BarsUP.AM);
  • ID dan waktu pembuatan permintaan.

Pesan respons AuthnResponse ditandatangani dengan kunci pribadi dari server otorisasi. Pesan AuthnResponse, khususnya, berisi informasi berikut:

  • Identifikasi permintaan AuthRequest yang sesuai dengan respons ini;
  • URL penangan respons
  • periode di mana respons dianggap valid;
  • Tanggal dan waktu otentikasi pengguna
  • pengidentifikasi sesi pengguna;
  • atribut pengguna dan nilainya.

Menerapkan Sistem Masuk Tunggal Berdasarkan OpenID Connect


OpenID Connect adalah ekstensi yang dirancang untuk memberikan identifikasi dan otentikasi pengguna melalui protokol OAuth 2.0.

Dalam proses penerapan sistem masuk tunggal menggunakan teknologi OpenID Connect, BarsUP.AM bertindak sebagai penyedia OpenID (Penyedia OpenID, OP). Sistem informasi (mis., Aplikasi web tertarget yang diakses oleh pengguna) bertindak sebagai Relying Party (RP), yang menggunakan OP untuk mengotentikasi pengguna.

Implementasi sistem masuk tunggal melalui OpenID Connect dijelaskan pada gambar di bawah ini:

gambar

  1. Seorang pengguna mencoba mengakses aplikasi web (SP);
  2. Aplikasi ini menghasilkan Permintaan Kode Otorisasi (protokol OAuth2.0) dan mengalihkan browser pengguna ke server otorisasi BarsUP.AM (OP);
  3. Pengguna memasukkan kredensial mereka di OP;
  4. OP ;
  5. , OP RP . , Authorization Response, ;
  6. RP OP, (Token Request). TLS;
  7. , OP RP (ID Token, Access Token);
  8. RP .

BarsUP.AM web-


Untuk menghindari serangan yang bertujuan menipu OP atau RP, mereka harus saling mengautentikasi.

BarsUP.AM mendukung metode otentikasi yang ditentukan dalam spesifikasi untuk OpenID Connect. Prinsip operasi OpenID Connect dan OAuth 2.0 didasarkan pada penggunaan token identifikasi (token ID) dan otorisasi (token akses).

Saya akan memberikan implementasi fungsi keamanan dasar dalam perangkat lunak:

  • identifikasi dan otentikasi pengguna;
  • kontrol akses;
  • logging acara keamanan.

Otentikasi dan Otentikasi Pengguna


Identifikasi dan otentikasi diterapkan di BarsUP.AM berdasarkan nama pengguna dan kata sandi. Pengguna memasukkan kredensial mereka di halaman web otentikasi BarsUP.AM. Dalam hal ini, kredensial dikirim dalam bentuk aman melalui protokol HTTPS. Akses ke aplikasi target hanya diizinkan jika otentikasi berhasil. Dengan demikian, identifikasi dan otentikasi pengguna diwujudkan dengan akses web jarak jauh ke IP.

Saat memasukkan kata sandi, kata sandi tidak ditampilkan dalam formulir web dan khusus diganti. karakter. Karena itu, perlindungan umpan balik diterapkan ketika memasukkan informasi otentikasi.

Kebijakan kata sandi BarsUP.AM memberikan pengaturan berikut:

  • algoritma hashing;
  • larangan nama pengguna dengan kata sandi;
  • jumlah digit minimum dalam kata sandi;
  • panjang kata sandi minimum;
  • jumlah minimum huruf kecil;
  • jumlah minimum huruf besar;
  • jumlah minimum karakter khusus;
  • panjang riwayat kata sandi;
  • penggantian kata sandi paksa setelah jangka waktu tertentu;
  • Jumlah minimum karakter yang diubah dalam kata sandi baru.

BarsUP.AM juga mendukung otentikasi pengguna multi-faktor (dua-faktor).

Kontrol akses


BarsUP.AM mengimplementasikan dukungan manajemen akun pengguna otomatis dan penguncian akun pengguna otomatis.

Administrator dapat membuat, memodifikasi, menghapus, memblokir dan membuka blokir akun pengguna atas kebijakannya sendiri. Akun pengguna dibuat oleh administrator menggunakan konsol web server manajemen BarsUP.AM. Saat membuat akun, nama, alamat email, periode validitas akun dan, jika perlu, atribut pengguna lainnya ditunjukkan. Kata sandi diubah oleh pengguna pada login pertama sesuai dengan kebijakan kata sandi. Akun pengguna dapat dikelompokkan dengan atribut dan izin grup tertentu.

Mekanisme penguncian akun pengguna berikut ini adalah:

  • pemblokiran administrator;
  • memblokir pada akhir periode waktu yang ditentukan untuk menggunakan akun;
  • memblokir setelah periode waktu tertentu tidak digunakannya akun;
  • memblokir ketika melebihi upaya login yang gagal;
  • memblokir ketika jumlah sesi bersamaan dilampaui.

Akun akan diblokir oleh administrator atau setelah batas waktu pemblokiran telah berlalu (misalnya, ketika diblokir karena melebihi jumlah upaya login yang gagal).

BarsUP.AM mengimplementasikan kontrol akses terhadap subjek setelah memasuki IP. Setiap pengguna atau grup pengguna di BarsUP.AM dapat diberi peran dan hak. Hak dapat berlaku untuk sistem tertentu atau ke seluruh domain yang mencakup beberapa sistem (aplikasi). Informasi tentang peran dan hak diatur oleh administrator dan diperbaiki dalam bentuk atribut akses.

Pencatatan Kejadian Keamanan


BarsUP.AM mengimplementasikan pengumpulan, perekaman, dan penyimpanan informasi tentang peristiwa keamanan selama akses web jarak jauh ke IP. Secara khusus, peristiwa yang terkait dengan mengubah kata sandi pengguna, pengaturan dan penghapusan akun pengguna, perubahan aturan kontrol akses dan izin pengguna dicatat.

Peristiwa keamanan dicatat dalam log peristiwa. Untuk setiap peristiwa, tanggal dan waktu, jenis peristiwa, sistem yang terpengaruh, pengguna yang terkait dengan peristiwa tersebut, dan alamat IP dari simpul dicatat. Server logging digunakan untuk menyimpan log peristiwa.

Acara dibagi menjadi beberapa kategori, termasuk acara keamanan dan acara sistem. Hak untuk melihat log peristiwa diberikan kepada administrator.

Komposisi peristiwa keamanan yang akan direkam dapat disesuaikan. Definisi peristiwa keamanan yang akan direkam dan periode penyimpanannya dicatat dalam dokumen organisasi dan administrasi untuk perlindungan informasi

Total


Proyek ini memakan waktu 6 bulan bagi kami, tidak termasuk waktu pengujian dan pekerjaan lembaga sertifikasi. Sekarang, ketika mengimplementasikan proyek untuk memastikan perlindungan informasi dalam sistem informasi, kami tidak pusing, bagaimana melindungi aplikasi web.

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


All Articles