DIVA Android
  • Damn Insecure and Vulnerable App (DIVA)
  • Pendahuluan
    • Persiapan
    • Konfigurasi Burp Suite dengan Android
    • Instalasi Aplikasi DIVA
  • Reversing of APK
    • Decompiling dan Reversing APK
  • Challenges
    • Insecure Logging
    • Hardcoding Issues - Part 1
    • Insecure Data Storage - Part 1
    • Insecure Data Storage - Part 2
    • Insecure Data Storage - Part 3
    • Insecure Data Storage - Part 4
    • Input Validation Issues - Part 1
    • Input Validation Issues - Part 2
    • Access Control Issues - Part 1
    • Access Control Issues - Part 2
    • Access Control Issues - Part 3
    • Hardcoding Issues - Part 2
    • Input Validation Issues - Part 3
Powered by GitBook
On this page
  • Pendahuluan
  • Penyelesaian
  • Melihat Source Code
  • Melihat Log
  • Kesimpulan

Was this helpful?

  1. Challenges

Insecure Logging

Logging Security Risk

PreviousDecompiling dan Reversing APKNextHardcoding Issues - Part 1

Last updated 4 years ago

Was this helpful?

Pendahuluan

Dengan melakukan logging akan mempermudah developer melakukan debug aplikasi untuk melihat alur kerja yang tepat atau mengidentifikasi crash.

Mungkin saja ada developer yang melakukan logging terhadap data sensitif untuk melihat alur kerja telah sesuai atau mengidentifikasi crash pada masa development. Tetapi hal ini akan menjadi masalah yang cukup serius ketika developer lupa untuk menghilangkan fitur logging terhadap data sensitif, apa lagi jika data tersebut masih berbentuk plain text.

Salah satu akibatnya adalah log yang bisa dibaca oleh non-root user, bisa dimanfaatkan oleh Attacker melalui aplikasi lain untuk mendapatkan data sensitif milik korban. Hal ini disebabkan oleh developer yang lupa untuk menghapus fitur logging terhadap data sensitif pada masa production.

Penyelesaian

Bagian aplikasi yang akan kita bahas kali ini memiliki fitur check out yang mengharuskan user untuk menginputkan credit card.

Kita akan mencoba untuk mencari tahu apakah fitur tersebut melakukan logging terhadap credit card yang diinputkan user.

Melihat Source Code

LogActivity.class
package jakhar.aseem.diva;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class LogActivity extends AppCompatActivity {
  private void processCC(String paramString) {
    throw new RuntimeException();
  }
  
  public void checkout(View paramView) {
    EditText editText = (EditText)findViewById(2131493014);
    try {
      processCC(editText.getText().toString());
    } catch (RuntimeException runtimeException) {
      Log.e("diva-log", "Error while processing transaction with credit card: " + editText.getText().toString());
      Toast.makeText((Context)this, "An error occured. Please try again later", 0).show();
    } 
  }
  
  protected void onCreate(Bundle paramBundle) {
    super.onCreate(paramBundle);
    setContentView(2130968615);
  }
}

Perhatikan baris ke-21. Ketika user gagal melakukan transaksi, maka nomor credit card akan tercatat di log.

Melihat Log

Pertama kita masuk ke dalam shell Android menggunakan perintah adb shell. Setelah itu, cari process ID dari aplikasi diva menggunakan perintah berikut:

ps | grep "diva"

Selanjutnya, lihat log dari aplikasi diva menggunakan perintah logcat dan kita coba untuk melakukan check out.

logcat | grep "process_id"

Terlihat bahwa informasi credit card yang diinputkan user tersimpan di log.

Kesimpulan

Sebelum aplikasi tersebut diluncurkan ke production, developer harus memastikan bahwa tidak ada informasi sensitif yang di-log.

Tampilan Soal Insecure Logging