RASP — ano ito, prinsipyo ng paggana at real-time na proteksyon

May-akda: IT Sectr Nai-publish: 2026-04-03 Oras ng pagbabasa: 10 min

RASP (Runtime Application Self-Protection) — teknolohiya ng seguridad na direktang naka-embed sa aplikasyon at sinusuri ang pag-uugali nito sa runtime upang matukoy ang mga pag-atake. Hindi tulad ng mga firewall ng network o WAF, gumagana ang RASP mula sa loob: nakikita nito hindi lamang ang papasok na kahilingan, kundi pati na rin kung paano pinoproseso ng code ang kahilingang iyon — kung anong mga function ang tinatawag, anong data ang binabasa mula sa memorya, anong mga system call ang isinasagawa. Ayon sa datos ng OWASP Runtime Protection Project (2025), hinaharangan ng mga solusyong RASP ang hanggang 94% ng mga pag-atake bago pa man sila umabot sa mahinang code. RASP ay hindi nangangailangan ng pagbabago ng imprastraktura — lahat ng kailangan ay gumagana sa loob ng proseso ng aplikasyon.

Mga Pangunahing Punto

  • RASP — naka-embed na proteksyon na gumagana sa loob ng aplikasyon at sinusuri ang konteksto ng pagpapatupad ng bawat tawag sa real-time
  • Prinsipyo ng paggana ay batay sa instrumentasyon ng code: ang ahente ay humaharang ng mga kritikal na function (exec, open, read, send) at sinusuri ang mga ito para sa mga anomalya
  • Pagkakaiba sa WAF — nakikita ng RASP hindi lamang ang HTTP na kahilingan, kundi ang buong konteksto ng pagproseso: stack ng tawag, halaga ng variable, estado ng memorya
  • Mobile RASP ay natutukoy ang Frida, Xposed, JDWP debugging, mga emulator at pagbabago ng APK sa pamamagitan ng pagsusuri ng integridad sa runtime
  • Mga patakaran ng RASP ay kinabibilangan ng pagharang (crash), pag-log na may abiso ng server at pagbuo ng pekeng data para malito ang umaatake

Ano ang RASP?

Runtime Application Self-Protection (RASP) — teknolohiya ng seguridad na isinama sa aplikasyon sa yugto ng pagbuo o sa pamamagitan ng ahente ng runtime. Sinusuri ng RASP ang pag-uugali ng aplikasyon sa panahon ng pagpapatupad at gumagawa ng mga desisyon tungkol sa pagharang ng mga pag-atake batay sa konteksto: saan nagmula ang tawag, anong data ang ipinapadala, ano ang estado ng stack. Hindi tulad ng mga sistema ng lagda, hindi hinahanap ng RASP ang mga kilalang pattern ng pag-atake — natutukoy nito ang abnormal na pag-uugali na lumilihis mula sa inaasahang senaryo ng pagpapatupad ng code.

Ang konsepto ng RASP ay pormal na ginawa ng Gartner noong 2011, at ang mga unang komersyal na pagpapatupad ay lumitaw noong 2014–2015. Para sa mga mobile platform, nagsimulang aktibong gamitin ang RASP mula noong 2017, nang matanto ng merkado ang kakulangan ng tradisyonal na obfuscation. Ayon sa ulat ng MarketsandMarkets (2025), ang dami ng merkado ng mga solusyong RASP ay 2.8 bilyon USD na may taunang paglago na 24.5%. Ang pagpapatupad ng RASP ay inirerekomenda ng mga pamantayang OWASP Mobile Top 10 at PCI DSS 4.0 para sa mga aplikasyon na nagpoproseso ng data ng pagbabayad.

Gumagana ang RASP sa dalawang antas: interception at assessment. Interception — pagharang ng mga system at library call sa pamamagitan ng mga hook na naka-embed sa code sa yugto ng pagbuo o sa runtime sa pamamagitan ng dinamikong instrumentasyon. Assessment — pagsusuri ng konteksto ng tawag: pagsusuri ng mga input parameter, stack ng tawag, estado ng sandbox, presensya ng debugger. Ang desisyon ay ginawa batay sa patakaran ng seguridad na itinakda ng developer. Ang patakaran ay maaaring mahigpit (harangin), malambot (ilog) o adaptive (baguhin ang pag-uugali depende sa antas ng banta).

Paano gumagana ang RASP: arkitektura at mekanismo

Ang arkitektura ng RASP agent ay binubuo ng tatlong bahagi: layer ng instrumentasyon, analyzer at patakaran. Ang layer ng instrumentasyon ay humaharang ng mga system call at framework call. Sinusuri ng analyzer ang konteksto para sa pagsunod sa inaasahang mga pattern. Tinutukoy ng patakaran ang reaksiyon.

Instrumentasyon ng code

Para sa mga mobile application, ginagamit ang compile-time instrumentation: ang bytecode o native code ay binago sa yugto ng pagbuo — bago ang bawat mapanganib na tawag ay isiningit ang pagsusuri. Binabago ng compiler ng RASP agent ang mga entry point na FileOutputStream.write(), Runtime.exec(), Class.forName() at android.app.Activity.onStart(). Para sa Android, ginagamit ang transformasyon ng DEX bytecode sa pamamagitan ng Gradle plugin; para sa iOS — pagbabago ng Mach-O binary file sa pamamagitan ng post-link script.

Pagsusuri ng konteksto

Sa pagharang ng tawag, sinusuri ng RASP: klase at pamamaraan ng tumatawag (sino ang tumatawag), bakas ng stack (kadena ng mga tawag), mga argumento (ipinadalang data), halaga na ibinalik (ano ang ibinabalik), timestamp at id ng thread. Ang anomalya ay naitala kapag, halimbawa, ang Runtime.exec() ay tinatawag hindi mula sa UI thread at hindi mula sa code ng aplikasyon, kundi mula sa isang library na na-load sa pamamagitan ng JNI na may hindi karaniwang landas. O kapag ang FileOutputStream.write() ay tumanggap ng data na naglalaman ng executable bytecode sa halip na inaasahang PNG header.

Mga patakaran ng reaksiyon

Sinusuportahan ng RASP ang tatlong uri ng reaksiyon: Block — emergency na pagtatapos ng aplikasyon kapag may nakitang pag-atake, Log — pagpapadala ng mga detalye ng insidente sa server ng pagtitipon ng log nang hindi humihinto sa aplikasyon, Deceive — pagpapalit ng ibinalik na halaga ng peke upang ang umaatake ay makatanggap ng maling data. Ang kombinasyon ng Log at Deceive ay nagbibigay-daan sa pagtitipon ng intelihensiya tungkol sa umaatake nang hindi ibinubunyag ang katotohanan ng pagkakatuklas.

java
// Halimbawa: Pagsusuri ng RASP ng tawag na Runtime.exec()
public class RASPAgent {
    public static Object onExecCalled(String command,
            StackTraceElement[] stack) {

        // Pagsusuri ng tumatawag
        String caller = stack[1].getClassName();

        // Kung ang tawag ay hindi mula sa aming package — kahina-hinala
        if (!caller.startsWith("com.example.app")) {
            SecurityPolicy.reportIncident(
                "UNEXPECTED_EXEC", command, stack
            );
            return SecurityPolicy.getAction().execute(command);
        }

        // Suriin ang utos sa itim na listahan
        String[] blocked = {"su", "frida", "ptrace", "/data/local"};
        for (String pattern : blocked) {
            if (command.contains(pattern)) {
                SecurityPolicy.reportIncident(
                    "BLOCKED_CMD", command, stack
                );
                return new Process(); // deceiving: walang laman na proseso
            }
        }

        return null; // payagan ang pagpapatupad
    }
}

RASP vs WAF at iba pang kasangkapan ng proteksyon

Ang RASP ay madalas ikinukumpara sa Web Application Firewall (WAF), ngunit ang pangunahing pagkakaiba ay nasa posisyon. Ang WAF ay nasa perimeter ng network at sinusuri lamang ang mga HTTP na kahilingan. Ang RASP ay gumagana sa loob ng aplikasyon at nakikita ang lohika ng pagproseso.

KatangianWAFRASP
LokasyonPerimeter ng networkSa loob ng aplikasyon
Ano ang sinusuriMga HTTP na kahilinganMga system call, memorya, stack
Naka-encrypt na trapikoNangangailangan ng decryption ng TLSNakikita pagkatapos ng decryption
Mga pag-atake sa mobileHindi nakikita (Frida, debugging)Direktang natutukoy
Maling alarmMataas (mga patakaran ng regex)Katamtaman (pagsusuri ng konteksto)
Epekto sa pagganapMinimal3–7% depende sa lalim ng pagsusuri

Hindi tulad ng obfuscation (ProGuard, DexGuard) na ginagawang hindi mabasa ang code, ang RASP ay aktibong natutukoy ang mga pag-atake sa panahon ng eksploytasyon. Ang obfuscation ay passive na proteksyon: kung ang umaatake ay gumugol ng sapat na oras sa reverse engineering, ang code ay mababasa. Ang RASP ay aktibo: nakikita nito na sinusubukan ng umaatake na i-debug ang aplikasyon at gumanti bago pa man mabasa ang kahit isang linya ng code. Ang kombinasyon ng obfuscation + RASP ay nagbibigay ng multi-layered na proteksyon, kung saan ang obfuscation ay nagpapabagal ng pagsusuri, at ang RASP ay humihinto ng pag-atake sa yugto ng instrumentasyon.

RASP sa mga mobile application

Ang mga mobile RASP na solusyon ay inangkop sa mga detalye ng Android at iOS. Hindi tulad ng mga server Java application, ang mga mobile RASP agent ay gumagana sa kondisyon ng limitadong memorya at baterya, na nangangailangan ng magaan na instrumentasyon.

RASP sa Android

Sa Android, ang RASP agent ay naka-embed sa pamamagitan ng Gradle plugin na nagbabago ng DEX bytecode sa yugto ng pagbuo. Ang ahente ay humaharang ng higit sa 50 system call, kabilang ang: Runtime.exec() para sa pagtuklas ng paglunsad ng su o Frida, Class.forName() para sa pagtukoy ng pag-load ng mga kahina-hinalang klase, System.loadLibrary() para sa pagkontrol ng pag-load ng mga native library mula sa hindi karaniwang mga landas. Bukod pa rito, ang presensya sa /proc/self/maps ng mga library na frida-agent, frida-helper, libinject at substrate ay sinusuri.

RASP sa iOS

Sa iOS, ang RASP ay ipinatutupad sa pamamagitan ng post-processing ng Mach-O binary file. Para sa iOS, ang kumplikasyon ay mas mataas dahil sa mahigpit na mga kinakailangan ng Apple sa pagbabago ng mga binary file. Ang ahente ay humaharang ng mga tawag ng mga function na fork(), dlopen(), ptrace() at sinusuri ang presensya ng CydiaSubstrate.dylib sa mga na-load na library. Ang RASP para sa iOS ay hindi maaaring baguhin ang code sa App Store build — para lamang sa Enterprise distribution. Para sa App Store, inirerekomenda ang paggamit ng compile-time instrumentation sa pamamagitan ng Swift Macro o Objective-C method swizzling.

Pagtuklas ng mga kasangkapan sa pagsusuri

Natutukoy ng mobile RASP ang: Frida (sa pamamagitan ng pagsusuri ng /proc/self/maps at /data/local/tmp/frida*), Xposed Framework (sa pamamagitan ng pagsusuri ng de.robv.android.xposed.XposedBridge sa ClassLoader), JDWP debugger (sa pamamagitan ng Debug.isDebuggerConnected()), mga emulator (sa pamamagitan ng pagsusuri ng Build.FINGERPRINT, Build.HARDWARE, Build.MODEL) at debuggable flag sa AndroidManifest. Ayon sa NowSecure Mobile Threat Report (2025), ang RASP agent ay natutukoy ang 89–97% ng mga na-instrument na Frida session.

Pagpapatupad ng RASP agent sa praktika

Ang pagpapatupad ng RASP sa isang mobile application ay nangangailangan ng pagsasaayos ng instrumentasyon, pagtukoy ng mga patakaran at pagsasama sa SIEM system para sa pagtitipon ng mga log ng insidente.

Pagpili ng pagpapatupad: compile-time vs runtime

Compile-time instrumentation — pagbabago ng bytecode sa yugto ng pagbuo, na hindi nakakaapekto sa pagganap sa runtime. Runtime instrumentation (sa pamamagitan ng Java Agent sa server o Frida sa client) — mas flexible, ngunit nagdaragdag ng 5–10% overhead. Para sa mga mobile application, ang compile-time na diskarte ay inirerekomenda, dahil hindi ito nangangailangan ng permanenteng koneksyon sa network at hindi kumukonsumo ng baterya para sa pagsusuri.

Pagsasama sa mga kasalukuyang library

Ang RASP agent ay dapat gumana nang tama sa mga sikat na SDK. Ang Firebase Crashlytics, Google Analytics at Appsee ay hindi dapat harangin. Ang pagsasaayos ng whitelist para sa mga kilalang library ay sapilitan. Sa pagsasaayos ng ahente, itinakda ang mga eksepsiyon: kung ang tawag ay nagmula sa klase na com.google.firebase — nilalaktawan ang pagsusuri. Ang Whitelist ay ina-update sa bawat paglabas ng SDK.

Halimbawa ng paghawak ng insidente

Kapag natukoy ang Frida ng RASP agent, nangyayari ang: pagtitipon ng konteksto (bakas ng stack, bersyon ng OS, oras), pagpapadala ng data sa server ng pag-log sa naka-encrypt na anyo, pagpapatupad ng patakaran (crash, log-only o deceive), pagtaas ng counter para sa pagtukoy ng malawakang pag-atake. Ang data mula sa iba't ibang device ay pinagsama-sama sa server para sa pagtukoy ng mga pattern ng pag-atake.

kotlin
class RASPManager {
    fun analyzeAndReact() {
        val threats = detectThreats()
        if (threats.isNotEmpty()) {
            val report = ThreatReport().apply {
                threats = threats
                timestamp = System.currentTimeMillis()
                deviceId = DeviceInfo.getHashedId()
                stackTrace = Thread
                    .currentThread()
                    .stackTrace
                    .take(10)
                    .toList()
            }

            val policy = SecurityPolicy.getPolicy(threats.maxBy { it.severity })

            when (policy) {
                Policy.BLOCK   -> throw SecurityException("Protection triggered")
                Policy.LOG     -> ServerLogger.sendReport(report)
                Policy.DECEIVE -> DeceptionLayer.activate(report)
            }
        }
    }
}

Mga limitasyon at maling alarm

Ang RASP ay hindi isang silver bullet. Ang teknolohiya ay may mga limitasyon na dapat isaalang-alang sa pagdidisenyo ng proteksyon.

Pagganap

Ang bawat naharang na tawag ay nagdaragdag ng pagsusuri ng konteksto. Sa agresibong pagsasaayos (pagharang ng lahat ng IO at exec na tawag) ang pagganap ay maaaring bumaba ng 5–15%. Para sa mga mobile application, ang oras ng pagsisimula ay kritikal: ang pagsisimula ng RASP ay nagdaragdag ng 200–500 ms sa startup. Inirerekomenda ang point na instrumentasyon — mga kritikal na function lamang, hindi lahat ng posibleng function. Ang Profil na may RASP agent ay sapilitan sa yugto ng pagsubok.

Maling alarm

Maaaring harangin ng RASP ang lehitimong pag-uugali: ang Firebase Crashlytics na nagpapadala ng stack ng error sa pamamagitan ng network call ay maaaring ituring na exfiltration ng data; ang Google Play Integrity API na sumusuri ng integridad ng device ay maaaring matukoy bilang kahina-hinalang tawag. Para mabawasan ang maling alarm, kinakailangan ang panahon ng pag-aaral (learning mode) na tumatagal ng 7–14 araw, kung saan ang RASP ay nagla-log lamang ngunit hindi humaharang.

Pag-iwas sa RASP

Kung ang umaatake ay makakuha ng access sa antas ng kernel (sa pamamagitan ng kernel exploit), ang RASP ay hindi maaaring magtiwala kahit sa sarili nitong mga pagsusuri — ang ahente ay gumagana sa espasyo ng user at nakikita kung ano ang pinapayagan ng kernel. Para maiwasan ang pag-iwas sa antas ng kernel, ginagamit ang Secure Boot Chain check sa kombinasyon ng atestasyon ng server. Bukod pa rito, ang RASP agent mismo ay dapat na obfuscat at protektado laban sa debugging — kung hindi, aalisin o idesaaktibo ng umaatake ang RASP bago simulan ang pag-atake.

Mga Madalas Itanong

Ano ang pagkakaiba ng RASP sa antivirus?

Ang antivirus ay gumagana sa antas ng operating system, nag-scan ng mga file at proseso batay sa mga lagda. RASP ay gumagana sa loob ng isang partikular na aplikasyon at sinusuri ang konteksto ng pag-uugali nito. Hindi alam ng antivirus kung paano dapat gumana ang isang partikular na aplikasyon; alam ng RASP, dahil naka-embed ito rito at nakikita ang lahat ng panloob na tawag at estado.

Available ba ang RASP sa Google Play o App Store?

Oo, ngunit may mga limitasyon. Hindi pinapayagan ng Apple ang runtime modification ng code sa App Store, kaya ang mga bersyon ng iOS ng RASP ay gumagamit ng compile-time instrumentation sa pamamagitan ng Swift Macro. Ang mga bersyon ng Android ng RASP sa pamamagitan ng Gradle plugin ay ganap na compatible sa Google Play. Ang parehong platform ay nangangailangan na ang RASP ay hindi lumalabag sa privacy ng user at hindi nangongolekta ng data nang walang pahintulot.

Maaari bang gamitin ang RASP para sa server Java application?

Oo, ang RASP ay unang lumitaw sa Java stack. Ang mga Java agent sa pamamagitan ng java.lang.instrument ay humaharang ng mga tawag sa antas ng JVM. Mga solusyong OpenSource: OpenRASP (Baidu) at jRASP. Mga komersyal na solusyon: Contrast Security, Hdiv, Prevoty. Para sa microservice architecture, ang RASP ay ipinatutupad sa bawat serbisyo nang hiwalay.

Magkano ang halaga ng RASP solution?

Ang mga komersyal na RASP solution para sa mobile application ay nagkakahalaga mula 3 000 hanggang 15 000 USD bawat taon depende sa bilang ng mga application at antas ng suporta. OpenRASP (Baidu) — libreng open-source na opsyon para sa server application. Ang mga Mobile RASP SDK ay madalas ibinebenta kasama ng mga obfuscator (DexGuard + RASP, Arxan, Promon).

Paano subukan ang proteksyon ng RASP?

Ang metodolohiya ng pagsubok ay kinabibilangan ng: pagtatangkang ikonekta ang Frida sa aplikasyon at suriin ang reaksiyon ng RASP, pagpapatakbo ng aplikasyon sa rooted/jailbroken na device, decompilation ng APK sa pamamagitan ng jadx at pagsusuri na ang RASP code ay hindi naalis. Mga kasangkapan sa pagsubok: Frida, Objection, MobSF (Mobile Security Framework) para sa automation ng mga pagsusuri.

Buod

  • RASP — teknolohiya ng aktibong proteksyon ng aplikasyon na gumagana mula sa loob at sinusuri ang konteksto ng pagpapatupad ng bawat kritikal na tawag sa real-time
  • Arkitektura ng RASP ay binubuo ng layer ng instrumentasyon (pagharang ng tawag), analyzer ng konteksto (stack, argumento, thread) at patakaran ng reaksiyon (block, log, deceive)
  • Mobile RASP ay natutukoy ang Frida, Xposed, debugging, mga emulator at pagbabago ng APK sa pamamagitan ng pagsusuri ng /proc/self/maps at mga system call
  • Compile-time instrumentation ay inirerekomenda para sa mga mobile application — hindi nakakaapekto sa runtime performance at hindi nangangailangan ng network
  • Kombinasyon ng obfuscation (passive na proteksyon) at RASP (aktibo) ay nagbibigay ng multi-layered na proteksyon, kung saan ang bawat antas ay tumatakip sa mga kahinaan ng isa pa
  • Mga limitasyon ay kinabibilangan ng epekto sa pagganap (3–7%), panganib ng maling alarm (learning mode sapilitan) at kahinaan sa kernel-level exploits
  • RASP ay inirerekomenda ng mga pamantayang OWASP Mobile Top 10 at PCI DSS 4.0 para sa mga aplikasyon na nagpoproseso ng mga kumpidensyal at data ng pagbabayad

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din