Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Intro to Git for Security Professionals - WWHF WW 2021

Intro to Git for Security Professionals - WWHF WW 2021

This workshop is to provide an overview and introduction to the version control system Git. Git has grown tremendously in popularity over the past 15 years since it was released, helped along especially due to code hosting services including GitHub.com, GitLab.com, and Bitbucket.org. These sites are where open-source projects most commonly live. Any time that you hear about a new open-source security tool being released, it is mostly likely to be found on one of these sites.

This workshop will help provide an introduction to security professionals that may have no background in software development, that would like to start using their favorite open-source tool, or even more, to find ways to contribute back.

No development experience is required, and participants will finish the workshop with the tools needed to make their first contribution the same day if they choose to.

C416a04a16b233e65afd993815c167dd?s=128

Ian Lee

June 18, 2021
Tweet

Transcript

  1. LLNL-PRES-698283 This work was performed under the auspices of the

    U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-AC52-07NA27344. Lawrence Livermore National Security, LLC Intro to Git for Security Professionals Wild West Hackin’ Fest Way West 2021-06-18 Ian Lee @IanLee1521
  2. LLNL-PRES-698283 2 Can’t I just have the version in the

    name? https://www.datamation.com/news/tech-comics-version-control-1.html
  3. LLNL-PRES-698283 3 Code Hosting Platforms

  4. LLNL-PRES-698283 4 Common Version Control Tools

  5. LLNL-PRES-698283 5 Fear of Git If that doesn't fix it,

    git.txt contains the phone number of a friend of mine who understands git. Just wait through a few minutes of 'It's really pretty simple, just think of branches as...' and eventually you'll learn the commands that will fix everything. https://xkcd.com/1597/
  6. LLNL-PRES-698283 6 Staged vs not staged vs untracked https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository

  7. LLNL-PRES-698283 7 DEMO Working on a Git repo https://git-school.github.io/visualizing-git/ Working

    with Remotes
  8. LLNL-PRES-698283 8 Git Flow: Maintenance Branches https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

  9. LLNL-PRES-698283 9 Working with remotes

  10. LLNL-PRES-698283 10 DEMO Working on a Git repo with a

    remote https://git-school.github.io/visualizing-git/#free-remote Working with Remotes
  11. LLNL-PRES-698283 11 DEMO Working on a Git repo with a

    remote that has upstream changes https://git-school.github.io/visualizing-git/#upstream- changes Working with Upstream Changes
  12. LLNL-PRES-698283 12 Let’s Git To It!

  13. LLNL-PRES-698283 13 ▪ There are many choices out there… ▪

    Don’t let wizards decry your preferences, just find something that works for you! ▪ For me: — VS Code (https://code.visualstudio.com/) • Remote Development Toolkit (https://code.visualstudio.com/docs/remote/remote-overview) — Windows 10 • WSL 2 (https://docs.microsoft.com/en-us/windows/wsl/install-win10) — macOS / Linux • Homebrew (https://brew.sh/) — Also… • ZSH + Oh My Zsh (https://ohmyz.sh/) • Docker (https://www.docker.com/) Kickstarting Your Development
  14. LLNL-PRES-698283 14 ▪ Windows 10 + WSL 2 (Ubuntu 20.04)

    + Docker + VS Code ▪ Spin up a new docker container — docker run -it python /bin/bash ▪ Connect to it with VS Code + Remote Development ▪ Proof* that there is no Tom-foolery happening that you don’t see! Setup
  15. LLNL-PRES-698283 15 Kickstarting a Project ▪ python3 -m pip install

    poetry ▪ poetry new --name awesome ▪ Pull up the docs: — https://python-poetry.org/docs/ awesome-project/ ├── README.rst ├── awesome │ └── __init__.py ├── pyproject.toml └── tests ├── __init__.py └── test_awesome.py
  16. LLNL-PRES-698283 16 Minor updates ▪ Make it a git repo

    (`git init`) ▪ Update “authors” — “Ian Lee <IanLee1521@gmail.com>" ▪ Add some dependencies — poetry add requests — poetry add –D black flake8 — poetry update ▪ https://python- poetry.org/docs/pyproject/
  17. LLNL-PRES-698283 17 What Now? ▪ Add a basic command line

    tool ▪ Let’s add a new Python module ▪ Run `poetry install` to update the environment
  18. LLNL-PRES-698283 18 Let’s Git Out There

  19. LLNL-PRES-698283 19 Click Here https://docs.docker.com/get-started/overview/

  20. LLNL-PRES-698283 20

  21. LLNL-PRES-698283 21

  22. LLNL-PRES-698283 22 Committing Your Changes In The UI

  23. LLNL-PRES-698283 23 ▪ https://github.com/activecm/rita ▪ Reading the documentation, found a

    bug in the docs (https://github.com/activecm/rita/blob/master/docs/Docker%20Usage.md#running- rita-with-docker-compose) Workflow Demo: ACM RITA
  24. LLNL-PRES-698283 24 ▪ https://github.com/activecm/rita — Documentation updates? ▪ https://github.com/gentilkiwi/mimikatz —

    Add LICENSE file? ▪ https://github.com/rapid7/metasploit-framework — Add a new exploit? — Fix a bug in an existing exploit? ▪ https://github.com/byt3bl33d3r/CrackMapExec — Maybe consider adding some CI testing ? Contribute to Security Tools
  25. LLNL-PRES-698283 25 ▪ https://github.com/adhdproject/awesome-active-defense ▪ https://github.com/juliocesarfort/public-pentesting-reports ▪ https://github.com/sbilly/awesome-security ▪ https://github.com/onlurking/awesome-infosec

    ▪ https://github.com/joe-shenouda/awesome-cyber-skills ▪ https://github.com/fabacab/awesome-cybersecurity-blueteam ▪ https://github.com/meirwah/awesome-incident-response Contribute to ”Awesome” Lists
  26. LLNL-PRES-698283 26 ▪ https://pages.github.com/ ▪ Easy way to start a

    website ▪ Uses Jekyll (https://jekyllrb.com/) ▪ All on top of Git, Hosted by GitHub ▪ Example: — https://github.com/ianlee1521/ianlee1521.github.io — Becomes https://ianlee1521.com Build your own website with GitHub Pages
  27. LLNL-PRES-698283 27 ▪ Start every code / documentation / note

    project with `git init <my-project>` ▪ Even if you NEVER intend to share it with anyone, anywhere, ever! ▪ You don’t have to be a “1337 haxor dev ninja” to make a meaningful impact. Anything!
  28. Leave things better than you found them. $ cat git.txt

    Ian Lee – @IanLee1521 Disclaimer This document was prepared as an account of work sponsored by an agency of the United States government. Neither the United States government nor Lawrence Livermore National Security, LLC, nor any of their employees makes any warranty, expressed or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States government or Lawrence Livermore National Security, LLC. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States government or Lawrence Livermore National Security, LLC, and shall not be used for advertising or product endorsement purposes.
  29. LLNL-PRES-698283 29 ▪ Computer Engineer — 2010 – 2015: Primarily

    Software Development • Python, Web, (some) System Administration — 2016 – Present: Cyber Security • 2016 – Present: Cyber Assessment Coordinator – Red team on super computers • 2018 – Present: Alternate Organization ISSO ▪ @IanLee1521 — twitter.com/IanLee1521 — github.com/IanLee1521 — speakerdeck.com/IanLee1521 — Discord: IanLee1521 ▪ “Leave things better than you find them” Who Am I ?
  30. LLNL-PRES-698283 30 ▪ Git Tutorials — https://try.github.io/ — http://learngitbranching.js.org/ —

    https://www.atlassian.com/git/ ▪ Commandline help — $ man git — $ git –help ▪ My Git Configuration: https://gist.github.com/IanLee1521/77b5dd14d203c27cb5856ae7b93c0cde ▪ WWHF October 2020 Workshop — https://speakerdeck.com/ianlee1521/intro-to-git-for-security-professionals — https://www.youtube.com/watch?v=D8uMsXJWuRI ▪ WW Hackin Cast January 2021 — https://speakerdeck.com/ianlee1521/releasing-your-first-python-open-source-project-to-the-masses — https://www.youtube.com/watch?v=Czupb5lzPZI Getting Help
  31. LLNL-PRES-698283 31 Good Commit Messages Merge branch 'asdfasjkfdlas/alkdjf' into sdkjfls-final

    https://xkcd.com/1296/
  32. LLNL-PRES-698283 32 What is version control? http://smutch.github.io/VersionControlTutorial/

  33. LLNL-PRES-698283 33 ▪ See also Marcello's awesome Pretty Little Python

    Secrets BHIS Webcasts last year — Part 1: Installing Python Tools/ Libraries the Right Way • https://www.youtube.com/watch?v=ieyRV9zQd2U — Part 2: Python Development & Packaging as Beautiful as a Poem • https://www.youtube.com/watch?v=tNlurLxcf68 See also
  34. LLNL-PRES-698283 34 Git Flow: Main Branches https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

  35. LLNL-PRES-698283 35 Git Flow: Feature Branches https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

  36. LLNL-PRES-698283 36 Git Flow: Release Branches https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

  37. LLNL-PRES-698283 37 Git Flow https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow