Tag: DevOps

  • The Code Caveat: When Developer Credentials Become the Hacker’s Pickaxe

    Quiz #19 was:

    One morning, you receive an alert about unusual activity within your cloud environment. Upon investigation, you discover that a malicious actor has gained access to your company’s cloud resources and deployed a cryptocurrency mining script, siphoning off valuable computing power. After tracing the breach, you realize the attacker infiltrated the system using a compromised developer account.

    How could this have happened?

    1. A developer accidentally committed their credentials to a public Git repository, exposing them to anyone with access to the repository.
    2. A developer fell victim to a phishing campaign and entered their credentials into a fake login page, handing them over to the attacker.
    3. A developer using a weak password that is easily guessed
    4. A developer reused the same password for their cloud account and another online service that was breached, leading to credential theft.
    5. A developer stored their credentials in an unencrypted text file on their local machine, which was compromised by malware.

    Correct Answer: All

    78 people answered this question and they were all right. Let’s find out why.

    We’ve all heard the horror stories: cloud breaches, stolen data, and ransom demands. But sometimes, the weakest link in the security chain isn’t a firewall or a complex vulnerability. It’s the beating heart of innovation itself: the developer. Today, we delve into a chilling scenario where a developer’s code becomes the unwitting accomplice in a cloud heist.

    Imagine this: you’re an SRE or DevOps warrior, patrolling the vast digital landscape of your company’s cloud environment. Suddenly, alarms blare, and your blood runs cold. An unauthorized cryptocurrency mining script has burrowed deep into your precious resources, siphoning off processing power like a digital vampire. Tracing the origin, you discover the culprit: a compromised developer account. How did this happen? Let’s explore the suspects:

    1. The Public Git Gaffe (Our Most Likely Culprit):

    Version control is our friend, a digital safety net for our code. But sometimes, in the rush to push and pull, we accidentally commit things we shouldn’t. Imagine a developer, bleary-eyed after a late-night coding session, accidentally pushing their cloud credentials to a public Git repository. Boom! Their secret sauce is now a public recipe for disaster.

    2. The Phishing Phishing Trip:

    Phishing attacks are like the email equivalent of a pickpocket in a crowded marketplace. A developer, lured by a convincing email or message, clicks on a malicious link, landing on a fake login page. Unaware of the trap, they type in their credentials, handing the keys to the kingdom to the attacker.

    3. The Weak Password Woe:

    We all know the password mantra: strong, unique, and never reused. But sometimes, even the best intentions crumble under the pressure of deadlines. A developer, seeking a quick fix, chooses a weak password like “password123” or reuses the same one they use for their social media accounts. This makes them easy prey for brute-force attacks or credential stuffing.

    4. The Domino Effect of Reuse:

    Imagine a developer who, in a moment of convenience, uses the same password for their cloud account and another online service. If that service gets breached, their cloud credentials become collateral damage, granting the attacker access to your entire cloud fortress.

    5. The Unencrypted Textual Trap:

    Text files are handy, but for sensitive information, they’re like leaving your front door unlocked. A developer, unaware of the risks, stores their cloud credentials in a plain text file on their local machine. This makes them vulnerable to malware that can easily harvest the data and hand it to the bad guys.

    So, which scenario is the most likely culprit in our cloud heist? Statistical analysis of past breaches implies it’s the Git gaffe. In fact, a recent study found that 27% of organizations have experienced cloud breaches due to exposed credentials in Git repositories. This isn’t about pointing fingers or blaming the developer. It’s about understanding the vulnerabilities in our workflows and implementing safeguards. Here are some ways to avoid a Git-based credential heist:

    • Secret management tools: Use dedicated tools to securely store and manage cloud credentials, eliminating the need for developers to store them in code.
    • Code reviews and training: Train developers on secure coding practices and conduct thorough code reviews to catch accidental credential exposure before it’s too late.
    • Two-factor authentication: Implement two-factor authentication for all cloud accounts to add an extra layer of security.

    Remember, security is a shared responsibility. By understanding the risks and implementing best practices, we can transform our developers from unwitting accomplices to security champions, ensuring that our cloud environments remain fortresses, not feeding grounds for digital thieves.

    But just because historically this has been the #1 reason does not mean that it will remain so in the future. All other reasons are also very likely. So what can we do to minimize damage when a credential is leaked – becomes the all important question! Can there be a system that identifies all the changes in a cloud environment and identifies who made the change and why?

    Here’s how such a system that tracks all changes in a cloud environment and who makes them can help reduce the impact of breaches:

    1. Faster Breach Detection and Response:

    • Real-time visibility: By providing a comprehensive view of all changes, including configuration changes, code deployments, and user access modifications, such a system can help security teams quickly identify suspicious activity that might indicate a breach. This enables them to initiate investigation and containment measures sooner, limiting the damage caused by the attack.

    2. Root Cause Analysis and Attack Reconstruction:

    • Detailed audit trails: The system’s ability to track who made specific changes, when they were made, and what those changes entailed provides invaluable information for forensic analysis. Security teams can trace the attacker’s actions, understand their methods, and identify the root cause of the breach. This knowledge can be used to prevent similar attacks in the future and strengthen security measures.

    3. Accountability and Deterrence:

    • Enhanced accountability: Knowing that their actions are being logged and can be traced back to them can act as a deterrent for both malicious actors and well-intentioned users who might inadvertently make risky changes. This promotes a culture of security awareness and responsibility within the organization.

    4. Compliance and Auditing:

    • Regulatory compliance: Many industries have strict compliance requirements regarding change tracking and auditing in cloud environments. Having a system that automatically captures and logs all changes can help organizations meet these compliance obligations and demonstrate their commitment to security best practices.

    5. Faster Recovery and Restoration:

    • Precise rollbacks: In case of a breach, the detailed change history can guide recovery efforts. Security teams can quickly identify and revert malicious changes, restoring the system to a known good state. This can significantly reduce downtime and minimize the impact of the attack on business operations.

    6. Continuous Security Improvement:

    • Data-driven insights: By analyzing historical change data, security teams can identify patterns, trends, and common vulnerabilities that might have led to previous breaches. This information can be used to proactively address security weaknesses, implement preventive measures, and continuously improve the overall security posture of the cloud environment.

    In essence, a change tracking and auditing system acts as a vigilant guardian, providing a detailed record of activities within the cloud environment. This enhanced visibility empowers security teams to act swiftly and decisively in the face of breaches, ultimately protecting the integrity and confidentiality of sensitive data and systems.

  • Five Great DevOps Job Opportunities

    Five Great DevOps Job Opportunities

    DevOps.com is now providing a weekly DevOps jobs report through which opportunities for DevOps professionals will be highlighted to better serve our audience.

    Our goal in these challenging economic times is to make it easier for DevOps professionals to advance their careers.

    Of course, the pool of available DevOps talent is still relatively constrained, so when one DevOps professional takes on a new role it tends to create an opportunity for others.

    The five job postings shared this week are selected based on the company looking to hire, the vertical industry segment and, naturally, the pay scale being offered.

    We’re also committed to providing additional insights into the state of the DevOps job market. In the meantime, for your consideration:

    LinkedIn

    Hanwha Vision America
    Santa Clara, California
    Senior DevOps Engineer
    $160,000 to $200,000

    Indeed.com

    Tecton
    Remote
    DevOps Engineer
    $156,000 to $231,000

    CareerBuilder.com

    The Pokémon Company International
    Redmond, Washington
    Senior Technical Program Manager – DevOps
    $151,000 to $189,000

    SimplyHired.com

    JP Morgan Chase
    Jersey City, New Jersey
    Lead Software Engineer – FinOps/DevOps
    $147,200 to $215,000

    Dice.com

    XTIVIA
    Remote
    Senior DevOps Engineer
    $120,000 to $140,000

  • API Management: A Weak Link in the Cloud-Native Chain

    API Management: A Weak Link in the Cloud-Native Chain

    Managing APIs is like navigating unfamiliar terrain during a road trip: There’s an old way and a new way to do it, and the new way is just better in many cases. For API management, the old way of doing things involves practices like writing proprietary scripts, manual transaction monitoring and relying on individual employees to take charge of managing specific APIs – leading to more manual work, slower release processes, slower incident recovery and lower reliability. It’s akin to navigating a highway using a paper map, stopping at gas stations to ask for directions and crossing your fingers that you end up at your intended destination.

    The new way of managing APIs looks like this: Using declarative configurations, automated processes and stateless APIs, teams scale and centralize the tasks of configuring, monitoring and updating APIs. They also deploy API changes several times a day, and they can instantly mitigate incidents in production.

    It’s like navigating with a GPS: A simpler, faster and more flexible approach that gets you where you want to go with much less hassle and risk.

    To prove the point, allow me to walk through the reasons why traditional API management strategies fall short for modern environments, then discuss what it takes to manage APIs better.

    What is API Management?

    Let me begin by defining what I mean by API management.

    I’m referring to all of the practices, processes and tools that businesses use to support the APIs their workloads depend on. API management encompasses API design, development, monitoring, testing and security, as well as making updates to APIs after they are in production.

    These tasks are important, of course, because APIs are everywhere today. They handle 83% of internet requests, according to Akamai, which means that keeping APIs documented, updated and monitored is a critical requirement for virtually any organization that deploys Internet-connected applications.

    Without an efficient and scalable means of managing APIs, it becomes difficult not just to defend against challenges like security risks involving APIs but also to guarantee a positive developer experience. The more time and toil your developers have to invest in API management, the less time they have to do the things they want to do and that matter most to the business – like developing cool apps and bringing them to market.

    The Pitfalls of Traditional API Management

    APIs are not new, and most teams that support them have long had API management practices in place. However, in many cases, those practices were conceived in the era when monolithic application architectures and bare-metal servers or virtual machines dominated the IT landscape. They weren’t designed for today’s cloud-native, software-defined, distributed-everything world.

    As a result, traditional API management falls short in modern environments in several key respects:

    ● Slow change management: When you are continuously pushing out updates to apps and APIs, you need an API management strategy that can handle continuous change. Traditional approaches can’t do this. They are too human-intensive to keep pace with rapid change.
    ● Lack of reliability: If you manage API configurations manually, you face a higher risk of introducing changes that accidentally break something. And if that happens, fixing the issue is slow because you have to reconfigure everything by hand.
    ● Slow recovery speed: When you experience an incident related to an API – such as a latency increase due to a misconfigured API – recovery is slower because it’s difficult to trace the surface-level problem back to its root cause, given the lack of a central source of truth for tracking the API’s status and revisions.
    ● Lack of scalability: Traditional API management uses imperative configurations that are stored in stateful databases, which have to be provisioned for each API you want to deploy. That works if you have just a handful of APIs to manage, but it’s impossible to scale if you need to scale to support dozens or hundreds. It also creates particular challenges if you have geo-distributed teams and infrastructure.
    ● Lack of modularity: Conventional API management architectures are not modular or composable, making it difficult to reuse configuration components between APIs. Instead, engineers are forced to “reinvent the wheel” every time they need to configure a new API or move an existing one from dev/test to production.
    ● Lack of standardization: Traditional APIs typically depend on proprietary technologies. As a result, they’re difficult to integrate with modern stacks that are based on widely used tools like Kubernetes, OpenTelemetry and Git.
    ● Poor collaboration: Documenting APIs and sharing monitoring insights between teams is also challenging when configurations are imperative and there is no single source of truth that all stakeholders can refer to when tracking the status of an API.

    These challenges lead to a nightmare for teams tasked with Day 2 operations, meaning those that support APIs after they are in production. Slow, inefficient and unscalable management processes lead to struggles in detecting and fixing problems with API performance or security, as well as in updating APIs. And again, they hamper the developer experience by forcing developers to devote time and energy to deciphering APIs and versions to use, finding up-to-date documentation, and so on. As a result, developers whose main job is to write software, not manage APIs, become burdened by API management requirements.

    A Better Way to Manage APIs

    The good news is that a better world is possible – at least when it comes to API management. For modern apps and environments, API management should be rooted in the following principles:

    ● Composability: Your API management stack should be composable so that you can pick and choose from different ingress controllers, monitoring and analytics tools, load-testing solutions and so on. You shouldn’t be bound to a rigid, inflexible “stack.”
    ● Statelessness: Stateless API management, which frees APIs from dependency on stored configurations, enables scalability, simple rollbacks and consistency across environments because you can deploy APIs anywhere with minimal provisioning.
    ● Automation: The more you automate the processes involved in API management, the faster you can implement changes and the lower your risk of mistakes and inconsistencies due to manual management.
    ● Immutability: The underlying infrastructure that powers your API management stack should be immutable so you can replicate it easily and quickly – a benefit during processes like troubleshooting following a rollback.
    ● Auditability: You should be able to maintain a timestamped log of every change to your API that documents when changes are made, who made them, why they happened and what the potential implications are.
    ● Open and standards-based: The ability to monitor and manage APIs using open, standardized tools and frameworks – such as OpenTelemetry and kubectl – also leads to consistency and simplifies collaboration between teams. In addition, API contracts should be standardized using specifications like OAS.
    ● Efficient incident response: When you discover a performance problem or failure linked to an API, you should be able to troubleshoot and resolve the issue quickly without having to chase down documentation or find the one person at your company who understands how the API works.

    When you manage APIs according to these principles, you escape the tedium and inefficiency of traditional API management. By extension, you can easily support the many APIs that tie your cloud-native environments together.

    The Role of GitOps

    Going a step further, a declarative, stateless, automated approach to API management also enables GitOps, meaning that you can manage APIs via declarative configurations that you store in Git repositories.

    This practice also leads to greater reliability (thanks to consistent, repeatable and scalable configurations), collaboration (because Git serves as a shared, central source of truth for API configurations and workflows) and efficiency (due to the ability to automate and customize deployments using Git-based triggers and actions).

    Conclusion: API Management at Cloud-Native Speed

    In a world where more than half of existing applications are cloud-native and a majority of new apps will leverage cloud-native principles, traditional API management just doesn’t work for these new platforms. It leads to change management processes that are slow and unreliable – exactly the opposite of what businesses need to thrive in a dynamic, cloud-native world. It also slows down recovery, leading to lower levels of reliability and higher risk for the organization. On top of this, it’s tedious, inefficient and unscalable. So yes, cloud-native API management is currently broken.

    We need a radical new approach to API management with one goal in mind: Automate Day 2 API operations with a modern approach. Modern solutions should be rooted in stateless, declarative configurations, open standards and Git-based automation. They must enable change management with high reliability and instant recovery, so you don’t have to worry about API management becoming the weakest link in your ability to innovate quickly and with minimal risk.

    We envision a new world where managing APIs is no longer a burden that developers and platform teams must bear but instead a process that helps teams innovate as quickly as possible, no matter how complex the API architectures they are working with. We also want to help businesses bring products to market faster, as well as troubleshoot incidents more quickly and with less effort.

    Ultimately, we want to empower organizations to take full advantage of cloud-native technologies and paradigms by adopting a cloud-native approach to API management.

  • Survey Surfaces Raft of Ongoing Agile Development Challenges

    Survey Surfaces Raft of Ongoing Agile Development Challenges

    A survey of 788 software development professionals finds 71% are using agile development methodologies within their software development life cycle (SDLC) but only 44% said it is working very well (11%) or somewhat well (33%) in the enterprise.

    Conducted by Digital.ai, the survey identifies end-to-end visibility and traceability from business initiative through deployment as the top opportunity for improvement (44%), followed by an ability to measure cycle time, wait time and bottlenecks (34%), continuous testing (29%) and identification and measurement of technological risk (28%).

    Nearly half (46%) identified too many systems as a primary reason Agile was not scaling, followed by siloed teams (37%), culture clash (34%), inconsistent adoption (30%) and the inability to measure business value (28%).

    Despite these issues, nearly two-thirds (63%) said they have visibility into their Agile pipeline, with 55% claiming they have complete visibility. However, only 36% said DevOps teams currently work together as one team to accelerate innovation and deployment of high-quality and more reliable software. At the same time, only two-thirds (66%) claimed at least 50% of their applications were delivered on time and “with quality.”

    Joyce Tompsett, general manager of the State of Agile project at Digital.ai, said the survey makes it clear many organizations are still trying to strike the right balance when it comes to developing software. For example, the survey finds the top two reasons organizations adopt Agile (tied at 41%) are to accelerate time to market and prioritize delivery and measure customer/business value. Most software development teams are being evaluated both based on velocity (33%) and the value delivered (29%), the survey finds.

    The survey also identifies customer satisfaction (43%), time to delivery (39%) and competitive advantage (34%) as their top priorities for 2024.

    In general, the survey finds that 33% of respondents reported business leaders and executives are actively leading and participating in company-wide agile transformation. However, more (41%) said there was not enough leadership participation. Well over a third (37%) said business teams simply don’t understand what Agile is or what it can do. More than a quarter (27%) said there is not enough training.

    Not surprisingly, the most widely adopted methodology is Scrum (63%) with the Scaled Agile Framework (SAFe) being the most widely used (26%). Another 22% don’t have a mandated framework, while 12% said they have created their own.

    The debate over what precisely constitutes agile development is, of course, ongoing. Each organization tends to adopt the elements of the framework that make the most sense for them, so the actual state of adoption from one organization to the next will vary widely. The one thing that is certain is the more complex the IT environment, the more challenging it can be to embrace agile development.

    And there continues to be lots of room for improvement. If only two-thirds of organizations are delivering half (50%) of their applications on time with an acceptable level of quality, it means there are more projects that are failing to meet that standard than many software development teams might care to admit.

    As more organizations become more dependent on software, however, tolerance for that level of failure will only continue to decline as businesses and leaders lose patience with application development practices that do not live up to expectations.

  • Five Great DevOps Job Opportunities

    Five Great DevOps Job Opportunities

    DevOps.com is now providing a weekly DevOps jobs report through which opportunities for DevOps professionals will be highlighted to better serve our audience.

    Our goal in these challenging economic times is to make it easier for DevOps professionals to advance their careers.

    Of course, the pool of available DevOps talent is still relatively constrained, so when one DevOps professional takes on a new role it tends to create an opportunity for others.

    The five job postings shared this week are selected based on the company looking to hire, the vertical industry segment and, naturally, the pay scale being offered.

    We’re also committed to providing additional insights into the state of the DevOps job market. In the meantime, for your consideration:

    Dice.com

    Travelers
    Hartford, Connecticut
    DevOps Tech Lead
    $133,500 to $220,300

    Indeed.com

    Lawrence Berkeley National Laboratory
    San Francisco, California
    Identity and Access Management DevOps Engineer
    $126,900 to $214,140

    SimplyHired.com

    Workday
    Pleasanton, California
    Software Development Engineer
    $112,500 to $204,000

    LinkedIn

    IBM
    Denver, Colorado
    DevOps Engineer
    $110,100 to $161,100

    CareerBuilder.com

    Cognizant Technology Solutions
    Oakdale, New Jersey
    DevOps Manager – Technology Modernization
    $95,500 to $212,600