Postingan

Tips Pengamanan OJS: Panduan Lengkap Mencegah Serangan Malware, Cloaking, dan Peretasan

Tips Pengamanan OJS: Panduan Lengkap Mencegah Serangan Malware, Cloaking, dan Peretasan

Platform Open Journal Systems (OJS) merupakan CMS berbasis PHP yang sangat populer di dunia akademik, CMS ini banyak digunakan dalam mengelola dan menerbitkan jurnal ilmiah secara daring (online). Karena kepopuleran dan celah keamanan yang dimilikinya, OJS menjadi target bagi peretas yang melakukan serangan:

  • SEO Gambling Cloaking
  • Header injection
  • File-based malware
  • Arbitrary PHP upload
  • Bot scanning & brute force login

Kasus peretasan yang pernah terjadi pada OJS biasanya mengakibatkan:

  • Judul jurnal di Google berubah menjadi promosi judi/slot online (judol)
  • Meta description disisipi konten judi
  • Halaman yang dilihat oleh pengunjung tampak normal dan baik-baik saja
  • Tetapi Googlebot (dan bot lainnya) diarahkan ke halaman lain yang menampilkan konten judol (cloaking)
  • File inti OJS disusupi kode berbahaya

Artikel ini merangkum tips pengamanan OJS paling penting dan praktis, berdasarkan pengalaman nyata proses pembersihan dan hardening sistem.


1. Waspadai Tanda-Tanda OJS Diretas

Beberapa indikasi OJS Anda telah terinfeksi:

  • Deskripsi Google berubah menjadi seperti“SLOT”, “Gacor”, dll
  • Google Search Console menampilkan pemilik baru yang tidak dikenal
  • Ada file HTML verifikasi palsu di root OJS
  • Terdapat akun Journal Manager atau Admin yang bukan milik Anda
  • Hasil curl Googlebot berbeda dibanding tampilan browser
  • File inti OJS seperti bootstrap.inc.php mengalami modifikasi

Jika tanda-tanda ini muncul, besar kemungkinannya OJS Anda menjadi korban Malware SEO Gambling Cloaking.


2. Perbaiki dan Bersihkan File Berbahaya

Serangan cloaking biasanya bekerja dengan cara:

  1. Mendeteksi apakah pengunjung adalah Googlebot
  2. Jika ya, malware mengirim halaman judi palsu
  3. Jika bukan, OJS tampil normal
  4. Semua dilakukan melalui file PHP yang dimodifikasi

Hal ini berdampak pada hasil pencarian di mesin pencari. Jika Anda mengalami hal tersebut, bersihkan file berikut:

  • bootstrap.inc.php (sering menjadi target injeksi, tidak menutup kemungkinan injeksi dilakukan di file lain)
  • file verifikasi palsu googlexxxx.html
  • file PHP mencurigakan di /public, /files, /journals, /submission

Gunakan perintah pencarian, seperti:

1
2
3
grep -R "slot" -n .
grep -R "fetch(" -n .
grep -R "is_bot(" -n .

Cek file inti apakah masih bersih:

1
diff -r OJS-original/ OJS-live/

Terakhir, periksa cron job mencurigakan.


3. Tambah Pengamanan dengan .htaccess

Banyak serangan OJS terjadi karena file PHP berbahaya dapat dieksekusi langsung di direktori publik. Pastikan Anda menyimpan data jurnal (direktori files) di luar direktori public_html. Di samping itu, gunakan .htaccess berikut ini di root OJS untuk meningkatkan keamanannya:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
###########################################
# Security Headers
###########################################
<IfModule mod_headers.c>
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-Content-Type-Options "nosniff"
    Header always set Referrer-Policy "strict-origin-when-cross-origin"
    Header always set X-XSS-Protection "1; mode=block"
</IfModule>

###########################################
# Force HTTPS
###########################################
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

###########################################
# RESTful URLs
###########################################
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>

###########################################
# Block Sensitive Files
###########################################
<FilesMatch "(?i)(config.inc.php|composer\.json|composer\.lock|package\.json|package-lock\.json|\.env|\.git)">
    Require all denied
</FilesMatch>

Di samping itu, tambahkan .htaccess khusus di folder upload dan/atau files:

/public/.htaccess dan/atau /files/.htaccess

1
2
3
<FilesMatch "\.(php|phtml|php5|php7|php8)$">
    Require all denied
</FilesMatch>

Ini memblokir sebagian besar serangan malware berbasis upload file.


4. Hardening OJS dari Panel Admin

Beberapa langkah penting:

  1. Nonaktifkan pendaftaran user publik
    Serangan sering dimulai dengan pembuatan akun Author/Editor palsu.
  2. Batasi role yang dapat mengunggah file dan jenis file yang boleh diunggah
    Gunakan plugin Control Public Files untuk membatasi jenis file yang diizinkan untuk diunggah ke Open Journal Systems (OJS). File yang sebaiknya diizinkan untuk diunggah umumnya meliputi format standar untuk manuskrip, data tambahan, dan dokumen pendukung lainnya. Format yang paling umum dan direkomendasikan adalah:
    • Microsoft Word (.docx atau .doc): Ini adalah format yang paling umum digunakan oleh penulis dan editor karena kemudahan pengeditan dan peninjauan sejawat (peer-review). Format ini memungkinkan penggunaan fitur “track changes” untuk kolaborasi.
    • OpenDocument Text (.odt): Alternatif sumber terbuka untuk dokumen teks yang didukung oleh berbagai perangkat lunak perkantoran.
    • Rich Text Format (.rtf): Format teks yang lebih universal yang dapat dibuka oleh hampir semua program pengolah kata.
    • Portable Document Format (.pdf): Format ini sangat penting. File PDF memastikan tata letak dan pemformatan dokumen tetap konsisten di berbagai perangkat dan sistem operasi. OJS sering kali menggunakan PDF sebagai versi “bukti baca” (proof) atau versi final yang diterbitkan untuk pembaca.
    • Format Data Tambahan: Jika jurnal Anda menerima data pendukung (misalnya, kumpulan data penelitian, kode sumber, atau file multimedia), format yang diizinkan harus spesifik untuk jenis data tersebut, seperti:
      • Spreadsheet (.csv atau .xlsx)
      • Gambar (.jpeg, .png, .tiff)
      • File multimedia (jika relevan, seperti .mp3, .mp4, atau .wav, meskipun ini kurang umum untuk jurnal standar)
  3. Nonaktifkan plugin lama yang tidak digunakan
    Plugin lama adalah sumber celah RCE (Remote Code Execution).
  4. Gunakan kata sandi yang kuat
    Kata sandi yang kuat bertindak sebagai garis pertahanan pertama terhadap akses tidak sah ke akun dan sistem digital.
  5. Pastikan files_dir berada di luar public_html
    Contoh aman:
    1
    
     files_dir = "/home/user/ojs-files"
    

    Contoh berbahaya:

    1
    
     files_dir = "/home/user/public_html/files"
    

5. Hardening Level Server

Untuk memperkuat dari sisi hosting/server:

  1. Pasang reCAPTCHA pada login, dengan ini brute-force attack tidak akan berhasil. Konfigurasinya dilakukan melalui file config.inc.php.
  2. Aktifkan ModSecurity (OWASP CRS)
  3. Aktifkan ImunifyAV atau Imunify360
  4. Nonaktifkan fungsi PHP berbahaya
    1
    
     disable_functions = exec,passthru,shell_exec,system,proc_open,popen
    
  5. Gunakan permission yang benar
    1
    2
    3
    
     folder 755
     file   644
     config.inc.php 600
    
  6. Matikan directory listing

Jika menggunakan CDN seperti HCDN, pastikan untuk purge cache setelah membersihkan malware.


6. Hardening SEO untuk Mencegah Cloaking Ulang

Tidak sedikit serangan OJS yang memodifikasi meta tag, schema JSON-LD, atau OpenGraph untuk tujuan SEO gambling.

Langkah-langkah penting:

  1. Periksa Google Search Console → Ownership
    Hapus pemilik yang tidak dikenal.
  2. Hapus file verifikasi Google palsu
    Biasanya berbentuk googleXXXX.html.
  3. Gunakan URL Inspection untuk reindex ulang halaman
    Ini memperbaiki deskripsi & title di hasil pencarian.

7. Lakukan Monitoring Berkala

Setelah sistem bersih, lakukan monitoring:

  • Cek error log setiap 1–2 minggu
  • Jalankan grep untuk mencari injeksi baru
  • Pantau Search Console
  • Periksa pembaruan yang tersedia

Dengan menerapkan monitoring, Anda dapat mencegah dan mendeteksi serangan dengan cepat.


Kesimpulan

OJS adalah platform yang stabil dan handal, tetapi karena sifatnya yang kompleks, sering berjalan pada shared hosting, dan konfugurasi yang lemah, ia menjadi target favorit penyerang. Akan tetapi, Anda dapat meningkatkan keamanan OJS dengan melakukan beberapa hal seperti yang telah kita bahas di atas. Selain itu, perbarui versi OJS yang Anda gunakan secara rutin. Dengan begitu Anda dapat membuat instalasi OJS jauh lebih sulit diretas, sekaligus menjaga reputasi jurnal Anda.

Postingan ini dilisensikan di bawah CC BY 4.0 oleh penulis.