Personalized, user-focused recommendations for employee information security.
Clone or download
andrewmwhite Merge pull request #117 from Netflix/skip-linkcheck
Add env var to allow skipping of link check in docs env.
Latest commit 96a1c57 Jun 7, 2018
Permalink
Failed to load latest commit information.
.travis Travis CI: Split JavaScript/Python into separate jobs. Jul 11, 2017
config Use process-specific env vars for log files for consistency. Apr 7, 2017
docs Update Twisted and dependencies. Oct 2, 2017
instance Adding instance/config.py, ignoring venv Feb 18, 2017
stethoscope Allow custom screenlock vuln definitions (LANDESK). Jun 7, 2018
tests Switch to merging practices based on last update time. May 14, 2018
.dockerignore Initial commit for open-source. Feb 17, 2017
.editorconfig Initial commit for open-source. Feb 17, 2017
.gitignore Misc additions/cleanup in gitignore. May 21, 2018
.travis.yml Run tests on Travis via tox. Sep 7, 2017
AUTHORS Initial commit for open-source. Feb 17, 2017
CONTRIBUTING.md Remove unnecessary `tox.sh`. Mar 13, 2018
Dockerfile Remove unnecessary `tox.sh`. Mar 13, 2018
Dockerfile-nginx Initial commit for open-source. Feb 17, 2017
Dockerfile-node Initial commit for open-source. Feb 17, 2017
LICENSE Initial commit for open-source. Feb 17, 2017
MANIFEST.in Add MANIFEST.in to fix missing README.md in Travis tests. May 21, 2018
Makefile Remove unnecessary `tox.sh`. Mar 13, 2018
NOTICE Initial commit for open-source. Feb 17, 2017
OSSMETADATA Fix OSSMETADATA file. Feb 21, 2017
README.md Update README.md Apr 13, 2017
docker-compose.base.yml Update Twisted and dependencies. Oct 2, 2017
docker-compose.yml Don't delete built js on docker-compose up Feb 18, 2017
nginx-docker.conf Initial commit for open-source. Feb 17, 2017
nginx.conf Initial commit for open-source. Feb 17, 2017
requirements.txt Remove `pytest-cov` dependency (unnecessary). May 21, 2018
setup.cfg Remove `pytest-runner` dependency (unused). May 21, 2018
setup.py Remove `pytest-cov` dependency (unnecessary). May 21, 2018
tox.ini Add env var to allow skipping of link check in docs env. Jun 7, 2018

README.md

Stethoscope: User-Focused Security

Giraffe logo

Stethoscope is a web application that collects information from existing device data sources (e.g., JAMF or LANDESK) on a given user’s devices and gives them clear and specific recommendations for securing their systems. An overview is available on the Netflix Tech Blog.

Join the chat at https://gitter.im/Netflix-Stethoscope/Lobby Apache 2.0 NetflixOSS Lifecycle Build Status

Stethoscope screenshot

Quickstart

If you have node (version 6.4+) and npm (included with node) installed already and just want to play around with the front end, run:

make install-develop-ui

What is Stethoscope?

Main Features

  • Retrieves device information from:
    • JAMF
    • LANDESK
    • G Suite (Google) Mobile Management
    • bitFit
  • Evaluates status of various security practices, including:
    • Disk encryption
    • Firewall
    • Screen saver lock/password
    • Operating system up-to-date
    • Operating system auto-update
    • Not jailbroken/rooted
    • Software presence (e.g., for monitoring tools)
  • Merges associated device records
  • Plugin architecture:
    • Easy to add data sources, practices, and other components
    • Examples and base plugins for communicating with Elasticsearch and HTTP REST APIs

Getting Started

Stethoscope consists of two primary pieces: a Python-based back-end and a React-based front-end. Nginx is used to serve static files and route traffic to the back-end.

The easiest way to get up-and-running quickly is through the provided Docker configuration.

Docker

To run with Docker, first install Docker (standard or beta).

We have provided a Docker Compose file, docker-compose.yml, that defines the services that make up Stethoscope. To start these services, run:

docker-compose up

Then connect to the main Nginx web server at http://localhost:5000.

Troubleshooting

If you encounter the following error, you likely need to upgrade docker-compose to version 1.10 or higher.

ERROR: In file './docker-compose.yml' service 'version' doesn't have any configuration options. All top level keys in your docker-compose.yml must map to a dictionary of configuration options.

Next Steps

Our full documentation is available at https://stethoscope.readthedocs.org.

LICENSE

Copyright 2016, 2017 Netflix, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.