Vektren Cyber Security Services application / development security

Application Security - “DevSecOps”

At Vektren, we understand that security is a top priority for any organization. That's why we offer a range of DevSecOp services to help you secure your software development lifecycle (SDLC). Our team of experts has the knowledge and experience to identify and mitigate potential security risks at every stage of the SDLC.

With our DevSecOp services, you can expect:

  • Continuous integration and delivery (CI/CD) pipelines that are secure by design

  • Secure coding practices and training for your development team

  • Regular security testing and vulnerability assessments

  • Threat modeling and risk assessment to identify and prioritize potential security issues

  • Compliance with industry-specific security standards and regulations

Don't let security concerns hold you back from delivering high-quality software. Contact us today to learn more about how our DevSecOp services can help you build and maintain secure software.

What languages and files a developer/author has modified in the last X days?

Identify the specific security training needs can be defined

  • Automating the identification of training plans

  • Identify committer is outside the development team, e.g., Business Analyst

  • Identify a more accurate view of whose writing code

  • Identify the number of “named contributing developers” used for security licensing (e.g. the # of developers you need to be licensed for is anyone who’s committed code in the last 60 days).

Name/Email Git Server Org Repo type # Commits
Peter Github.com Team1 utils .java 37
Peter internal.abc banking core .js 5
Jack internal.abc banking core pom.xml 16
Jack bitbucket.org Shiny main .js 15

Sample Data:


Vektren developed our own code scanner to help DevSecOpps (AppSec) teams identify coding languages and track intellectual property. It also checks for secret scanning and version checking to identify outdated packages with vulnerabilities. With DevSecOpps, you can quickly implement fixes with rich data exports, improve security in the development process, scan for secrets like passwords and API keys, and check the version numbers of software libraries and frameworks in your codebase.

What package managers are used?

Given vulnerabilities like Log4J, knowing where all the package manager files also allow direct searches to be performed during an incident, E.g. Where is Log4J used in our code bases?

We can extend these tests to look for package files not updated in X days, which may indicate unmaintained libraries.

Bonus test: look for package files not updated in X days; this may indicate unmaintained libraries

Often this data is used as a requirement for security tool selection. For example, 90% of our development uses maven and npm; these are mandatory requirements, and a technology fit assessment would focus on these technologies for integration and accuracy of results.

Given vulnerabilities like Log4J, knowing where all the package manager files also allow direct searches to be performed during an incident, E.g. Where is Log4J used in our code bases (Keep in mind this may also be variants like Scala, Clojure, kotlin etc.)

Package Manager Filetype examples:

Package/Docuemnt Type
package.json
pom.xml
requirements.txt
gemfile

 What languages and technologies are used?

This use case came from the head of security architecture, stating developers were not using Docker. Upon looking at the code, many projects were using Docker, at least in development initiatives, for 
Types of files that may be interesting:

  • Circle ci config

  • Package manager files

  • CODE OWNERS 

  • Buildkite

  • Dockerfile

  • Terraform

This may be useful if there are multiple git instances and a migration plan needs to be developed.

Another related organisational use case is that we have a policy or practice where open-source libraries must be scanned every X days for vulnerabilities and releases. Which means:

  • The security team can use the data to know when package files exist and proactively work with teams to get it on the backlog to implement

  • The security team can run security scans themselves and alert on high-risk vulnerabilities 

  • Development managers can understand who’s using what package managers and get their development leads to build out implementation patterns. 

Git server

Git Org

Tech/Lang type

# of Repos

Github.com

Insurance

Java

47

Github.com

Insurance

Maven

13

bitbucket.internal.xyz

Customer

bitbucket-pipelines.yml

6

Ideally, the output could look like:

What sensitive files exist within the development environment?

Some file types probably shouldn’t be in a repo, and if they are monitored for changes and hopefully form part of a migration plan (e.g. moving secrets out of repos

Examples of file types to watch or detect:

  • Anything binary - probably shouldn’t be there (it could be a code smell)

  • .PEM files (is this a key of some sort?)

  • *.p12 (certificate chains and potentially private keys)

  • Id_rsa (checked in RSA keys, maybe SSH)

  • config/environments/production.rb

There are better tools than SQL queries on filenames to detect secrets, but a mechanism to add files to watch with a known security impact would be cool.