Showing posts with label DevOps. Show all posts
Showing posts with label DevOps. Show all posts

Wednesday, July 3, 2019

Mistakes when adopting DevOps for production network automation

If that sounds a lot like “DevOps is coming to a network near you” then you have perfect pitch, because that’s exactly what’s going on inside enterprises around the globe.

We already have plenty of evidence, empirical and anecdotal, to indicate that use of automation and orchestration in production environments is not an anomaly. In fact, it appears to be accelerating as NetOps teams try to catch up to their DevOps counterparts.

The pressure to reach automated parity with app development environments can lead to skipping the strategy and going right for the tactical approach to adopting a more agile, automated means of making changes to the production pipeline.

That’s not a good thing. Production is not development, and the blast radius is significantly larger in production where there are hundreds -- sometimes thousands -- of applications and business processes relying on shared networking services. You can’t fail fast enough to avoid incurring damages when something goes wrong.

So as automation and orchestration become the norm in production environments, NetOps teams should be mindful of which DevOps practices they embrace and which they don’t. Because when bad habits are really hard to break, the best option is simply to avoid forming them in the first place.
To help you out, here are the top three bad habits you should avoid when adopting DevOps for production network automation and orchestration:

 3 Bad Habits NetOps Should Avoid

 1. Skipping the code review
The State of Code Review 2017 from SmartBear, a supplier of software-quality tools for teams, notes that 74% of developers participate in code reviews. That sounds good, until you realize that means the other 26% aren’t. Unsurprisingly, the No. 1 reason cited for not reviewing code at desired levels is workload.
This is how defects and bugs (excuse me, "undocumented features") creep into software. These are logic and security-based mistakes that can lead to crashes, outages, memory leaks, and even breaches. When you’re writing scripts, and integrating multiple services to automate and orchestrate a process, you are writing code. And if you are writing code, it needs to be reviewed by someone other than you.
Remember, this isn’t testing or QA where you can mess up and it doesn’t impact the business’ bottom line. This will be production, and a single mistake can lead to all sorts of problems. Make the time to conduct code reviews. The benefits are well-documented and include:
  • increased quality of code with higher chance of identifying and eliminating security flaws
  • knowledge sharing -- others learn the process along with the code
  • compliance (ISO 9000/9001)
2. Ignoring maintainability
     According to a 2016 survey conducted by Software Improvement Group and O’Reilly, 70% of respondents "believe that maintainability is the most important aspect of code to measure, even as compared to performance or security."
I hate PERL, and I’m not all that fond of Python. So I’m going to use node.js instead. Or maybe I’m just going to craft some incomprehensible command-line magic with sed, awk, and my friend grep to push this change to that router. Problem is, no one else uses node.js and that command line relies on my system-specific configuration.

     That is not maintainable, and using “whatever language/tool/system” you want to build scripts and services to automate networking makes embracing code reviews really, really hard. It won’t go well for you. If no one else can maintain that code, it becomes yours. For life.

     It’s like the goldfish you begged for when you were eight and now you’re stuck with it.
Standardizing on languages, tools, and systems early is important.

3. Ignoring security Rule Zero
     Every AD&D (Dungeons and Dragons) player, at least all the ones I play with, know about Rule Zero: “The Dungeon Master is the final arbiter of all rule decisions.” It supersedes all other rules in the game, hence the reason it is numbered as zero. In security, we also have a rule zero: “Thou shalt never trust user input. Ever.”

     A number of high-profile outages were caused by ignoring this rule because command-line parameters passed to any script are, by default, user input.  Ignoring this rule may trigger one a resume-generating event by accidentally causing an outage of extreme proportions.

Never trust user input explicitly.

     Whether that’s the IP address of a wiring closet switch or a variable passed to inform a firewall script which port to open or close, don’t blindly execute on it. Instead, always validate input and, if necessary, force the human invoker of the script to verify the input. After all, they might not have meant to push that configuration change to every switch.
     As you proceed with efforts to automate IT in 2018, pay close attention to the habits you’re forming. Avoiding these three bad habits will go a long way toward ensuring a successful and productive year.

Sunday, May 19, 2019

Samsung A3 SM-A310F - FRP Cloud Lock

Разблокировка FRP

1. Flash Service Image ( Сервисная прошивка )
- Odin -- Use the AP or PDA in older version
- boot phone into Download Mode ( blue screen - volDown+Home+Pwr ; rel; volUp )


2. Enable USB debugging on Phone0
> Settings > SW info > tap 10x times Build Number >> DevOps mode

3. Power phone off
-- start to Download Mode again

4. Flash Stock ROM
-- Choose correct country + provider
-- https://www.updato.com

5. Enable OEM Unlock
-- Settings > Developer Mode > Enable OEM Unlock (Disable device security)

now you can flash TWRP and root your A3 .. or keep it in Stock and Encrypt it ;)

6. Flash TWRP Recovery image

Android 7.0+ on Samsung with ROOT -- disable encryption

Разблокировка FRP




Thursday, March 7, 2019

Cisco DevNet Express Security 2019, Prague


** Cisco DevNet Express ** Prague - 5-6.3.2018 

  • We created a simple automated workflow, using a different APIs. 
  • We identified the Rouge endpoints where malware has executed in our network using AMP for endpoints. 
  • We used ISE to quarantine these endpoints to contain the known threats. 
  • We used the AMP data to collect intelligence on the SHAs using Threat Grid
  • We developed the IPs and Domain list associated with these SHAs from Threat Grid. 
  • We used Umbrella Investigate to gather intelligence on the Domains/IPs. 
  • We used Umbrella Enforcement to contain the threat and prevent the malware from executing, as it can't call home.
  • We used FirePower FDM APIs to enforce and contain the threat on the NextGen firewalls
  • We used the Python programming language to call different APIs. 
  • We used Python to pull and push data from different security systems - creating one. 
  • We used the Python to parse the JSON, XML, YAML and REST API. 
  • We learn how to gather the Intelligence and use it to quickly contain the threat to protect the rest of the network. 
  • The future of DevOps is needed in Security Business already and coming fast to the networking as well.
By the end of the second day we had a multiple missions created by Cisco to apply the above gathered knowledge. 


For one of the participants it was also very happy day as he gained not only knowledge but also a fully equipped Raspberry Pi 3B+ ! 

It was my first reward gained from a CyberSecOps business :) And a fourth RPi into the collection :D