Publication | Open Access
Software Self-Healing Using Collaborative Application Communities
58
Citations
49
References
2006
Year
Software monocultures are often viewed as risky due to their size and uniformity, yet they can also enhance overall security and reliability. The study aims to re‑examine software monocultures through collaborative security by introducing Application Communities—large collections of independent instances of the same application—and demonstrating their feasibility with STEM monitoring and remediation on Apache. An application community monitors for flaws, shares detections, and deploys mitigation; the authors model and prototype this approach, defining key parameters and trade‑offs among community size, overhead, and fault‑detection speed. Experiments with a 15,000‑member AC on Apache show that STEM‑based monitoring and remediation is feasible, achieving fault detection and immunization with only a 6% performance overhead per member.
Software monocultures are usually considered dangerous because their size and uniformity represent the potential for costly and widespread damage. The emerging concept of collaborative security provides the opportunity to re-examine the utility of software monoculture by exploiting the homogeneity and scale that typically define large software monocultures. Monoculture can be leveraged to improve an application’s overall security and reliability. We introduce and explore the concept of Application Communities: collections of large numbers of independent instances of the same application. Members of an application community share the burden of monitoring for flaws and attacks, and notify the rest of the community when such are detected. Appropriate mitigation mechanisms are then deployed against the newly discovered fault. We explore the concept of an application community and determine its feasibility through analytical modeling and a prototype implementation focusing on software faults and vulnerabilities. Specifically, we identify a set of parameters that define application communities and explore the tradeoffs between the minimal size of an application community, the marginal overhead imposed on each member, and the speed with which new faults are detected and isolated. We demonstrate the feasibility of the scheme using Selective Transactional EMulation (STEM) as both the monitoring and remediation mechanism for low-level software faults, and provide some preliminary experimental results using the Apache web server as the protected application. Our experiments show that ACs are practical and feasible for current applications: an AC of 15,000 members can collaboratively monitor Apache for new faults and immunize all members against them with only a 6% performance degradation for each member.
| Year | Citations | |
|---|---|---|
Page 1
Page 1