A14 - Akuisisi, pengembangan dan pemeliharaan sistem
Banyak orang berfikir bahwa ISO 27001 bicara soal IT terutama tentang aplikasi yang dibuat. Hal ini dikarenakan permintaan sertfikasi ISO 27001 dilakukan sesuai dengan persyaratan kemkominfo yang meminta sertifikasi dulu sebelum mendaftarkan diri menjadi PSE (penyelenggara Sisem Elektronik) sesuai dengan peraturan.
Padahal masalah aplikasi hanya berkutat di annex 14 : Akuisisi, pengembangan dan pemeliharaan sistem sisanya adalah bagaimana kita mengelolan seluruh aspek manajemen dalam penerapan operasional dan sistem PE yang kita buat
Mari kita lihat pengendalian risiko yang diperlukan dalam Annex 14 ini
1. Persyaratan keamanan sistem informasi
Kita lihat persyaratan pengendaliannya
A.14 System acquisition, development and maintenance
A.14.1 Security requirements of information systems
Objective: To ensure that information security is an integral part of information systems across theentire lifecycle. This also includes the requirements for information systems which provide servicesover public networks.A.14.1.1 Information security requirements analysis and specification
Control
The information security related requirements shall be included in the requirements for new information systems or enhancements to existing information systems.A.14.1.2 Securing application services on public networks
Control
Information involved in application services passing over public networks shall be protected from fraudulent activity, contract dispute and unauthorized disclosure and modification.
A.14.1.3 Protecting application services transactions
Control
Information involved in application service transactions shall be protected to prevent incomplete transmission, mis-routing, unauthorized message alteration, unauthorized disclosure, unauthorized message duplication or replay
1.1. Persyaratan Keamanan Informasi
harus mempertimbangkan :
a) tingkat kepercayaan yang dibutuhkan terhadap identitas pengguna yang disimpan, untuk mendapatkan persyaratan otentikasi pengguna ;
misal : pada saat mengisi data pendaftaran
b) penyediaan akses dan proses otorisasi untuk pengguna termasuk untuk hak istimewa atau hak biasa bila mendaftar;
misal : membedakan antara pengguna terdaftar dan pengguna yang berhak melakukan transaksi tertentu
c) menginformasikan pengguna dan operator tentang tugas dan tanggung jawab mereka;
misal : kewajiban dan hak pengguna
d) kebutuhan perlindungan yang diperlukan dari aset yang terlibat, khususnya terkait ketersediaan, kerahasiaan, integritas;
e) persyaratan yang berasal dari proses bisnis, seperti pencatatan dan pemantauan transaksi serta persyaratan wajib yang harus disetujui (non - repudiation requirement);
f) persyaratan yang diamanatkan oleh kontrol keamanan lainnya, misalnya antarmuka untuk logging dan pemantauan atau sistem deteksi kebocoran data.
Untuk sebuah aplikasi yang dibangun tentunya anda harus menjelaskan kondisi - kondisi keamanan yang diinginkan dari aplikasi tersebut
1.2 layanan aplikasi pada jaringan publik
jaringan publik adalah semua yang dapat diakses melalui internet dan diketahui oleh publik. Ada beberapa alamat internet yang jarang diketahui oleh publik. Berarti risiko ini dapat dikecualikan. Risiko ini juga dapat dikecualikan bila tidak ada transaksi pada aplikasi yang dibangun / developed.
Perlindungan terhadap aktivitas penipuan, perselisihan kontrak dan pengungkapan dan atau modifikasi yang tidak sah
1.3 Perlindungan transaksi layanan aplikasi
perlindungan terhadap transaksi layanan dapat dilakukan pada
a) penggunaan tanda tangan elektronik oleh masing-masing pihak yang terlibat dalam transaksi;
b) semua aspek transaksi dengan memastikan bahwa:
1) informasi otentikasi rahasia pengguna dari semua pihak valid dan diverifikasi;
2) transaksi tetap rahasia;
3) privasi yang terkait dengan semua pihak yang terlibat;
c) jalur komunikasi antara semua pihak dienkripsi;
d) protokol keamanan yang digunakan untuk berkomunikasi antara semua pihak yang terlibat;
e) memastikan bahwa penyimpanan rincian transaksi berada di luar semua yang dapat diakses publik lingkungan, mis. di platform penyimpanan yang ada di intranet organisasi, dan tidak dipertahankan dan diekspos pada media penyimpanan yang dapat langsung diakses dari Internet;
f) pada saat otoritas terpercaya digunakan (misalnya untuk tujuan menerbitkan dan memelihara tanda tangan digital atau sertifikat digital), keamanan harus terintegrasi dan embeded (melekat) di seluruh proses manajemen sertifikat / tanda tangan.
2. Keamanan pengembangan dan proses pendukungnya
Pengendalian yang diminta oleh standar adalah sbb :
A.14.2 Security in development and support processes
Objective: To ensure that information security is designed and implemented within the development lifecycle of information systems.A.14.2.1 Secure development policy
Control
Rules for the development of software and systems shall be established and applied to developments within the organization.A.14.2.2 System change control procedures
Control
Changes to systems within the development lifecycle shall be controlled by the use of formal change control procedures.A.14.2.3 Technical review of applications after operating platform changes
Control
When operating platforms are changed, business critical applications shall be reviewed and tested to ensure there is no adverse impact on organizational operations or security.A.14.2.4 Restrictions on changes to software packages
Control
Modifications to software packages shall be discouraged, limited to necessary changes and all changes shall be strictly controlled.A.14.2.5 Secure system engineering principles
Control
Principles for engineering secure systems shall be established, documented, maintained and applied to any information system implementation efforts.
2.1 Kebijakan Pengembangan
Pengendalian ini meminta kita untuk membuat kebijakan terkait keamanan pada proses pengembangan aplikasi. Setidaknya kita bisa membuat kebijakan terkait
a) keamanan lingkungan pembangunan;
b) panduan tentang keamanan dalam siklus pengembangan perangkat lunak:
1) keamanan dalam metodologi pengembangan perangkat lunak;
2) pedoman pengkodean yang aman untuk setiap bahasa pemrograman yang digunakan;
c) persyaratan keamanan dalam fase desain;
d) ttitik pemeriksaan keamanan dalam tahapan proyek;
e) keamanan penyimpanan file (repository);
f) keamanan dalam pengendalian versi;
g) pengetahuan keamanan aplikasi yang diperlukan;
h) kemampuan pengembang untuk menghindari, menemukan, dan memperbaiki kerentanan.
2.2 Prosedur perubahan sistem
Bila terdapat perubahan (penambahan atau pengurangan fitur dalam aplikasi ataupun perubahan aplikasi secara besar2an) maka harus membuat prosedur yang mencantumkan proses
a) menyimpan catatan otorisasi / persetujuan;
b) memastikan perubahan diajukan oleh pengguna yang berhak;
c) meninjau kontrol dan prosedur integritas untuk memastikan bahwa mereka tidak akan terganggu oleh perubahan;
d) mengidentifikasi semua perangkat lunak, informasi, entitas basis data, dan perangkat keras yang memerlukan perubahan;
e) mengidentifikasi dan memeriksa kode penting keamanan untuk meminimalkan kemungkinan kelemahan keamanan yang diketahui;
f) memperoleh persetujuan formal pada rincian proposal sebelum pekerjaan dimulai;
g) memastikan pengguna yang berwenang menerima perubahan sebelum implementasi;
h) memastikan bahwa dokumentasi sistem diperbarui pada penyelesaian setiap perubahan dan dokumentasi lama diarsipkan atau dibuang;
i) mempertahankan kontrol versi untuk semua pembaruan perangkat lunak;
j) memelihara jejak audit dari semua permintaan perubahan;
k) memastikan bahwa dokumentasi pengoperasian dan prosedur pengguna diubah seperlunya agar tetap sesuai;
l) memastikan bahwa implementasi perubahan terjadi pada waktu yang tepat dan tidak mengganggu proses bisnis yang terkait.
2.3 Tinjauan teknis setelah platform berubah
Sebuah aplikasi yang dibuat oleh developer tentunya harus menyesuaikan dengan kebutuhan user sehingga tidak aneh bila aplikasi tersebut mengalami perubahan baik dalam sistem operasi, database, dan atau tampilan dan fitur.
Tinjauan teknis harus dilakukan dengan prosedur tertentu yang mencakup proses ;
a) peninjauan kontrol aplikasi dan prosedur integritas untuk memastikan bahwa operasional tidak diganggu oleh perubahan platform operasi;
b) memastikan bahwa pemberitahuan perubahan platform operasi disediakan tepat waktu untuk memungkinkan tes dan review dilakukan sebelum implementasi;
c) memastikan bahwa perubahan yang dilakukan sesuai dengan rencana kesinambungan bisnis (terkait Annex 17)
2.4 larangan untuk modifikasi software
Ini sebenernya udah jarang terjadi di zaman sekarang. Dengan berkembangnya aplikasi yang mengijinkan untuk diutak atik disertai dengan kemudahan melakukan pengembangan atau prinsip DIY (Do It Yourself) maka tidak banyak yang melakukan modifikasi software yang emang udah baku.
Sebaiknya dibuat aja kebijakan untuk risiko ini sebagai bukti pelaksanaan dari mitigasi risiko
2.5 Prinsip Secure system engineering
Secure System engineering itu apa? Agak riweuh sih jelasinnya. Tapi mari kita lakukan dengan konsep SDLC. Nah klo ini udah tau kan? System Development Life Cycle. Gunakan konsep ini sebagai bagian dari system engineering principles lalu tambahkan security dengan melakukan pengujian sesuai dengan standar keamanan, yang menjadi rujukan banyak sih sebenernya tapi yang paling umum digunakan adalah owasp.org
Nah silahkan buat prosedur bagaimana proses pembuatan aplikasi / penambahan fitur / perubahan yang dilakukan dengan konsep itu. Pastikan pada saat tahapan pengujian di dalam pengembangan aplikasi anda memasukkan unsur keamanan sistem sebagai bukti pelaksanaan mitigasi dalam risiko ini
A.14.2.6 Secure development environment
Control
Organizations shall establish and appropriately protect secure development environments for system development and integration efforts that cover the entire system development lifecycle.A.14.2.7 Outsourced development
Control
The organization shall supervise and monitor the activity of outsourced system development.A.14.2.8 System security testing
Control
Testing of security functionality shall be carried out during development.A.14.2.9 System acceptance testing
Control
Acceptance testing programs and related criteria shall be established for new information systems, upgrades and new versions.
2.6 keamanan lingkungan pengembangan
Setidaknya ada 2 cara untuk membuktikan anda melaksanakan perlindungan pada lingkungan pengembangan anda, offline dan onlie. Ini dikarenakan ada 2 cara yg berbeda bagi developer untuk membuat suatu aplikasi. Ada yg menyimpan di dalam server lokal atau laptop sendiri, ada juga yang menyimpannya dalam server online
Kedua cara diatas tentunya harus dibuktikan apakah source code anda aman unutk disimpan.
cara 1 : Tidak disarankan menyimpan source code yang anda simpan di dalam laptop kantor. Disarankan disimpan pada server atau laptop kantor agar tidak ada pertanyaan sederhana yang muncul, klo laptopnya hilang, bagaimana? Biasanya developer akan bilang klo dia menyimpan juga di penyimpanan online sebagai back up, entah di git atau di area server onlinenya sendiri. Pada kondisi ini disarankan untuk mengubah, bahwa penyimpanan online sebagai tempat utama sedangkan laptop atau sebagai back up
cara 2 : Anda melakukan penyimpanan online, tentunya dengan demikian anda harus memastikan bahwa penyimpanan ini cukup aman. (untuk area penyimpanan yang besar spt git atau server aws / alibaba tentunya securitynya tidak akan ditanyakan lagi oleh audior) Pada titik ini anda cuma harus mengendalikan user name dan password yang dibutuhkan untuk login termasuk mengendalikan programmer / developer yang punya akses dan bila mereka ada yg sudah tidak bekerja lagi)
3. Data uji
Pengendalian data uji dapat dilihat sbb :
A.14.3 Test data
Objective: To ensure the protection of data used for testing.
A.14.3.1 Protection of test data
Control
Test data shall be selected carefully, protected and controlled.
Pelaksanaan pengujian pada aplikasi sering menggunakan data uji yang menggunakan data pribadi. Hal ini yang mengandung risiko sehingga perlu di buatkan perlindungan terhadap data uji. metode simpan dan atau proteksi yang diperlukan untuk mengakses data tersebut. Ataupun jenis data sensitif lain seperti data perusahaan, data organisasi atau data lainnya.
0 comments