Skip to content
View johnandersen777's full-sized avatar
🐢
Rolling Alice... ⏳
🐢
Rolling Alice... ⏳

Organizations

@BBBS @tpm2-software

Block or report johnandersen777

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
johnandersen777/README.md

🤙 Hello Entity of the Internet! 🤘 I'm John. 🎩

⛓️🕳 I've fallen down the open source supply chain security rabbit hole. 🌳🐇

My current focus is around leveraging threat model and architecture information to facilitate automated context aware decentralized gamification / continuous improvement 🚄 of the security lifecycle / posture of open source projects. The aim is to harden train of thought security. 😜

It'd be fun if you joined in on this adventure. 🛤️ I can promise it's going to be a wild ride. 🛼🎢

Rolling-Alice-Architecting-Alice-A-Shell-for-a-Ghost-2024-09-02-nmap-local

# From within TMUX
gh auth refresh -h github.com -s admin:public_key
for pub in $(find ~/.ssh -name \*.pub); do gh ssh-key add --title $(hostname)-$(basename $pub) $pub; done
export GITHUB_USER=$(gh auth status | grep 'Logged in to github.com account ' | awk '{print $7}')
ssh_alice() { ssh -p 2222 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PasswordAuthentication=no -R /tmp/${GITHUB_USER}.sock:$(echo $TMUX | sed -e 's/,.*//g') -R /tmp/${GITHUB_USER}-input.sock:/tmp/${GITHUB_USER}-input.sock ${GITHUB_USER}@alice.chadig.com; }
ssh_alice; sleep 1; ssh_alice

Source: Living Threat Models Are Better Than Dead Threat Models [John L. Whiteman and John S. Andersen (aka John^2)]

The cornerstone of security for every application starts with a threat model. Without it, how does one know what to protect and from whom? Remarkably, most applications do not have threat models, take a look at the open-source community. And, even if a threat model is created, it tends to be neglected as the project matures since any new code checked in by the development team can potentially change the threat landscape. One could say that the existing threat model is as good as dead if such a gap exists.

Our talk is about creating a Living Threat Model (LTM) where the same best practices used in the continuous integration of source code can aptly apply to the model itself. LTMs are machine readable text files that coexist in the Git repository and, like, source code, can be updated, scanned, peer reviewed and approved by the community in a transparent way. Wouldn’t it be nice to see a threat model included in every open-source project?

We need to consider automation too to make this work in the CI/CD pipeline. We use the open-source Data Flow Facilitator for Machine Learning (DFFML) framework to establish a bidirectional data bridge between the LTM and source code. When a new pull request is created, an audit-like scan is initiated to check to see if the LTM needs to be updated. For example, if a scan detects that new cryptography has been added to the code, but the existing LTM doesn’t know about it, then a warning is triggered. Project teams can triage the issue to determine whether it is a false positive or not, just like source code scans.

We have been working on this effort for a few years and feel we are on the right track to make open-source applications more secure in a way that developers can understand.

hole-rabbit-hole

Pinned Loading

  1. intel/cve-bin-tool intel/cve-bin-tool Public

    The CVE Binary Tool helps you determine if your system includes known vulnerabilities. You can scan binaries for over 200 common, vulnerable components (openssl, libpng, libxml2, expat and others),…

    Python 1.3k 468

  2. intel/dffml intel/dffml Public archive

    The easiest way to use Machine Learning. Mix and match underlying ML libraries and data set sources. Generate new datasets or modify existing ones with ease.

    Python 254 138

  3. scitt-community/scitt-api-emulator scitt-community/scitt-api-emulator Public archive

    SCITT API Emulator

    Python 10 7

  4. httptest httptest Public

    HTTP testing inspired by golang's httptest package

    Python 7 4

  5. chadig chadig Public template

    Allowlist: Values and Strategic Plans and Principles

  6. publicdomainrelay/gitatp publicdomainrelay/gitatp Public

    Python