--------------------------------------------------------------------------------
/.security.txt:
--------------------------------------------------------------------------------
1 | # If you would like to report a security issue
2 | # you may report it to me on HackerOne.
3 | Contact: https://hackerone.com/ed
4 | Encryption: https://keybase.pub/edoverflow/pgp_key.asc
5 | Acknowledgements: https://hackerone.com/ed/thanks
6 |
--------------------------------------------------------------------------------
/advisories.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Security Advisories
4 | permalink: /advisories/
5 | ---
6 |
7 | # Security Advisories
8 |
9 | The following advisories have been issued in response to vulnerabilities:
10 |
11 | * responsibly disclosed by external researchers;
12 | * identified as part of a sanctioned code review or penetration test;
13 | * discovered internally by a member of the {{ site.company_name }} Security Team.
14 |
15 | ## Vulnerabilities
16 |
17 | {% include advisory-list.html %}
--------------------------------------------------------------------------------
/404.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
18 |
19 |
20 |
404
21 |
22 |
Page not found :(
23 |
The requested page could not be found.
24 |
25 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | Contributions from the public are welcome.
4 |
5 | ### Using the issue tracker 💡
6 |
7 | The issue tracker is the preferred channel for bug reports and features requests. [](https://github.com/EdOverflow/security-template/issues)
8 |
9 | ### Issues and labels 🏷
10 |
11 | The bug tracker utilizes several labels to help organize and identify issues.
12 |
13 | ### Guidelines for bug reports 🐛
14 |
15 | Use the GitHub issue search — check if the issue has already been reported.
16 |
--------------------------------------------------------------------------------
/hof.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Hall of Fame
4 | permalink: /hof/
5 | ---
6 |
7 | # Hall of Fame
8 |
9 | If you are the first researcher to report a confirmed security vulnerability, we will list your details below (if desired). You must comply with our Security Policy to be considered for our Hall of Fame. We would like to thank the following security researchers for helping us secure our platform.
10 |
11 | * First researcher name — [https://example.com](https://example.com)
12 | * Second researcher name — [https://example.com](https://example.com)
13 | * Third researcher name — [https://example.com](https://example.com)
--------------------------------------------------------------------------------
/_posts/2017-07-22-cve-2017-0914.md :
--------------------------------------------------------------------------------
1 | ---
2 | title: "CVE-2017-0914"
3 | date: 2017-07-22
4 | description: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
5 | ---
6 |
7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
--------------------------------------------------------------------------------
/report.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Report a Security Issue
4 | permalink: /report/
5 | ---
6 |
7 | {% if site.hackerone_url %}
8 |
11 | {% elsif site.bugcrowd_url %}
12 |
15 | {% else %}
16 | # Report a security issue
17 |
18 | ### Our reporting procedure
19 |
20 | To be specified by the {{ site.company_name }} Security Team.
21 |
22 |
23 | {% endif %}
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | # Hello! This is where you manage which Jekyll version is used to run.
4 | # When you want to use a different version, change it below, save the
5 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
6 | #
7 | # bundle exec jekyll serve
8 | #
9 | # This will help ensure the proper Jekyll version is running.
10 | # Happy Jekylling!
11 | gem "jekyll", "~> 4.0.1"
12 |
13 | # This is the default theme for new Jekyll sites. You may change this to anything you like.
14 | gem "minima", "~> 2.5", ">= 2.5.1"
15 |
16 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
17 | # uncomment the line below. To upgrade, run `bundle update github-pages`.
18 | # gem "github-pages", group: :jekyll_plugins
19 |
20 | # If you have any plugins, put them here!
21 | group :jekyll_plugins do
22 | gem "jekyll-feed", "~> 0.15", ">= 0.15.0"
23 | end
24 |
25 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
26 | gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
27 |
28 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 EdOverflow
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | company_name: Example Company
2 | email: security@example.com
3 | description: >-
4 | This is a default description for SecurityTemplate.
5 | baseurl: "" # the subpath of your site, e.g. /blog
6 | url: "" # the base hostname & protocol for your site, e.g. https://example.com
7 | bugcrowd_id: # https://docs.bugcrowd.com/v1.0/docs/embedded-submission-form
8 |
9 | # Bug bounty platforms
10 | # If you have an external report form,
11 | # /report will redirect to that URL.
12 | # hackerone_url: https://hackerone.com/YOUR_PAGE
13 | # bugcrowd_url: https://bugcrowd.com/YOUR_PAGE
14 |
15 | # Build settings
16 | markdown: kramdown
17 | plugins:
18 | - jekyll-feed
19 |
20 | include:
21 | - .well-known
22 |
23 | permalink: /:year/:title/
24 |
25 | defaults:
26 | -
27 | scope:
28 | path: "" # empty string for all files
29 | type: pages
30 | values:
31 | layout: default
32 | -
33 | scope:
34 | path: "" # empty string for all files
35 | type: posts
36 | values:
37 | layout: post
38 | -
39 | scope:
40 | path: ""
41 | type: drafts
42 | values:
43 | layout: post
44 |
--------------------------------------------------------------------------------
/assets/css/styles.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2015 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .demo-ribbon {
18 | width: 100%;
19 | height: 40vh;
20 | background-color: #3d6098;
21 | flex-shrink: 0;
22 | }
23 |
24 | .mdl-navigation__link {
25 | color: #333 !important;
26 | }
27 |
28 | .demo-main {
29 | margin-top: -35vh;
30 | flex-shrink: 0;
31 | }
32 |
33 | .demo-header .mdl-layout__header-row {
34 | padding-left: 40px;
35 | }
36 |
37 | .demo-container {
38 | max-width: 1600px;
39 | width: calc(100% - 16px);
40 | margin: 0 auto;
41 | }
42 |
43 | .demo-content {
44 | border-radius: 2px;
45 | padding: 20px 56px;
46 | margin-bottom: 80px;
47 | }
48 |
49 | .demo-layout.is-small-screen .demo-content {
50 | padding: 40px 28px;
51 | }
52 |
53 | .demo-content h3 {
54 | margin-top: 48px;
55 | }
56 |
57 | .demo-footer {
58 | padding-left: 40px;
59 | }
60 |
61 | .demo-footer .mdl-mini-footer--link-list a {
62 | font-size: 13px;
63 | }
64 |
65 | table {
66 | border-spacing: 5px;
67 | border-collapse: separate;
68 | }
69 |
70 | td {
71 | padding: 5px;
72 | }
73 |
74 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | addressable (2.7.0)
5 | public_suffix (>= 2.0.2, < 5.0)
6 | colorator (1.1.0)
7 | concurrent-ruby (1.1.6)
8 | em-websocket (0.5.1)
9 | eventmachine (>= 0.12.9)
10 | http_parser.rb (~> 0.6.0)
11 | eventmachine (1.2.7)
12 | ffi (1.13.1)
13 | forwardable-extended (2.6.0)
14 | http_parser.rb (0.6.0)
15 | i18n (1.8.5)
16 | concurrent-ruby (~> 1.0)
17 | jekyll (4.0.1)
18 | addressable (~> 2.4)
19 | colorator (~> 1.0)
20 | em-websocket (~> 0.5)
21 | i18n (>= 0.9.5, < 2)
22 | jekyll-sass-converter (~> 2.0)
23 | jekyll-watch (~> 2.0)
24 | kramdown (~> 2.1)
25 | kramdown-parser-gfm (~> 1.0)
26 | liquid (~> 4.0)
27 | mercenary (~> 0.3.3)
28 | pathutil (~> 0.9)
29 | rouge (~> 3.0)
30 | safe_yaml (~> 1.0)
31 | terminal-table (~> 1.8)
32 | jekyll-feed (0.15.0)
33 | jekyll (>= 3.7, < 5.0)
34 | jekyll-sass-converter (2.1.0)
35 | sassc (> 2.0.1, < 3.0)
36 | jekyll-seo-tag (2.6.1)
37 | jekyll (>= 3.3, < 5.0)
38 | jekyll-watch (2.2.1)
39 | listen (~> 3.0)
40 | kramdown (2.3.1)
41 | rexml
42 | kramdown-parser-gfm (1.1.0)
43 | kramdown (~> 2.0)
44 | liquid (4.0.3)
45 | listen (3.2.1)
46 | rb-fsevent (~> 0.10, >= 0.10.3)
47 | rb-inotify (~> 0.9, >= 0.9.10)
48 | mercenary (0.3.6)
49 | minima (2.5.1)
50 | jekyll (>= 3.5, < 5.0)
51 | jekyll-feed (~> 0.9)
52 | jekyll-seo-tag (~> 2.1)
53 | pathutil (0.16.2)
54 | forwardable-extended (~> 2.6)
55 | public_suffix (4.0.5)
56 | rb-fsevent (0.10.4)
57 | rb-inotify (0.10.1)
58 | ffi (~> 1.0)
59 | rexml (3.2.4)
60 | rouge (3.21.0)
61 | safe_yaml (1.0.5)
62 | sassc (2.4.0)
63 | ffi (~> 1.9)
64 | terminal-table (1.8.0)
65 | unicode-display_width (~> 1.1, >= 1.1.1)
66 | unicode-display_width (1.7.0)
67 |
68 | PLATFORMS
69 | ruby
70 |
71 | DEPENDENCIES
72 | jekyll (~> 4.0.0)
73 | jekyll-feed (~> 0.12, >= 0.12.0)
74 | minima (~> 2.5, >= 2.5.1)
75 | tzinfo-data
76 |
77 | BUNDLED WITH
78 | 1.17.3
79 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | # Project
11 |
12 | _SecurityTemplate_ is a static website template for security pages, powered by Jekyll. It's easy to get started. Clone this repo, edit the configuration files and content to your liking, and publish with [GitHub Pages](https://pages.github.com) or on your own server platform.
13 |
14 | You can [set up a local environment](https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/) to test your _SecurityTemplate_ static site, and [push to GitHub](https://help.github.com/articles/using-jekyll-as-a-static-site-generator-with-github-pages/) if desired.
15 |
16 | This project is a rapidly evolving work in progress. We value [contributions](https://github.com/EdOverflow/security-template/blob/master/CONTRIBUTING.md) from the public.
17 |
18 | # Structure
19 |
20 | The template directory structure is as follows:
21 |
22 | ```
23 | .
24 | ├── 404.html # 404 page.
25 | ├── advisories.md # Security advisories list.
26 | ├── assets # Page assets.
27 | │ ├── css
28 | │ │ └── styles.css
29 | │ └── images
30 | │ └── icon.png
31 | ├── _config.yml # Config file with all your variables.
32 | ├── _drafts
33 | ├── Gemfile
34 | ├── Gemfile.lock
35 | ├── hof.md # Hall of fame page.
36 | ├── _includes
37 | │ └── advisory-list.html
38 | ├── index.md # Security policy.
39 | ├── _layouts
40 | │ ├── default.html
41 | │ └── post.html
42 | ├── LICENSE
43 | ├── _posts
44 | │ └── 2017-07-22-cve-2017-0914.md # Example security advisory.
45 | ├── README.md
46 | └── report.md
47 | ```
48 |
49 | 
50 |
51 |
52 | ## `config.yml`
53 |
54 | * `company_name` — replace this with your organization name
55 | * `email` — replace this with your security contact address
56 | * `bugcrowd_id` — replace this with your [Bugcrowd ID](https://docs.bugcrowd.com/v1.0/docs/embedded-submission-form), if applicable
57 | * `hackerone_url` and `bugcrowd_url` — the /report URL will redirect to one of these, if specified.
58 |
59 | ## `index.md`
60 |
61 | The index file is where your security policy lives. To learn more about writing good security policies, please refer to https://support.hackerone.com/hc/en-us/articles/205624665-How-do-we-write-a-good-policy-.
62 |
63 | ## `advisories.md`
64 |
65 | This is where you can list your security advisories. The list is updated every time you add a security advisory to the `_posts` folder.
66 |
67 | ## `report.md`
68 |
69 | This file should contain contact information for security researchers to use when reporting a security vulnerability. If a HackerOne or Bugcrowd URL is specified in `config.yml`, users will be redirected automatically. You can also use an embedded Bugcrowd submission form. Just uncomment the form, and add your Bugcrowd embed token under `bugcrowd_id` in `_config.yml`.
70 |
71 | ## `hof.md`
72 |
73 | This is your security acknowledgements page. List the details of security researchers that reported valid security issues (and wish to be listed publicly).
74 |
75 | ## `.well-known/security.txt`
76 |
77 | `security-template` contains a security.txt template file. _security.txt_ defines a standard to help organizations define the process for security researchers to safely disclose vulnerabilities via a simple text file. For more on this, please refer to https://securitytxt.org/.
78 |
79 | # Contributing
80 |
81 | We welcome contributions from the public.
82 |
83 | ### Using the issue tracker 💡
84 |
85 | The issue tracker is the preferred channel for bug reports and features requests.
86 |
87 | ### Issues and labels 🏷
88 |
89 | The bug tracker utilizes several labels to help organize and identify issues.
90 |
91 | ### Guidelines for bug reports 🐛
92 |
93 | Use the GitHub issue search — check if the issue has already been reported.
94 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | {{ site.company_name }} Security
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | # Policy
6 |
7 | Thank you for helping us keep {{ site.company_name }} users safe! We ask that all researchers:
8 |
9 | * Make every effort to avoid privacy violations, degradation of user experience, disruption to production systems, and destruction of data during security testing;
10 | * Perform research only within the scope set out below;
11 | * Use the identified communication channels to report vulnerability information to us;
12 | * Report vulnerabilities as soon as you discover them;
13 | * Keep information about any vulnerabilities you’ve discovered confidential between yourself and {{ site.company_name }} until we’ve had 90 days to resolve the issue.
14 |
15 | If you follow these guidelines when reporting an issue to us, we commit to:
16 |
17 | * Not pursue or support any legal action related to your research;
18 | * Work with you to understand and resolve the issue quickly (including an initial confirmation of your report within 72 hours of submission).
19 |
20 | ## Scope
21 | ### In-scope
22 |
23 | * [https://example.com](https://example.com)
24 | * [https://example.co](https://example.co)
25 |
26 | ### Out of Scope
27 |
28 | In the interest of the safety of our users, staff, the Internet at large and you as a security researcher, the following test types are excluded from scope:
29 |
30 | * Findings from physical testing such as office access (e.g. open doors, tailgating).
31 | * Findings derived primarily from social engineering (e.g. phishing, vishing).
32 | * Findings from applications or systems not listed in the Scope section.
33 | * Vulnerability reports with video only PoCs.
34 | * Reports that state that software is out of date or vulnerable without a proof of concept.
35 | * Highly speculative reports about theoretical damage. Be concrete.
36 | * Vulnerabilities as reported by automated tools without additional analysis as to how they're an issue.
37 | * Reports from automated web vulnerability scanners (Acunetix, Vega, etc.) that have not been validated.
38 | * Recently disclosed zero-day vulnerabilities. We need time to patch our systems just like everyone else - please give us 30 days before reporting these types of issues.
39 | * Issues in third-party services should be reported to the respective team. Please take a look at the "Third-Party Services" section for more information.
40 |
41 | The following issue types are excluded from scope:
42 |
43 | * Network-level Denial of Service (DoS/DDoS) vulnerabilities.
44 | * Low severity issues that can be detected with tools such as [Hardenize](https://www.hardenize.com/) and [Security Headers](https://securityheaders.io/).
45 | * XSS issues that affect only [outdated browsers](http://outdatedbrowser.com/).
46 | * Content injection issues.
47 | * Cross-site Request Forgery (CSRF) with minimal security implications (Logout CSRF, etc.).
48 | * Missing cookie flags on non-security-sensitive cookies.
49 | * UI and UX bugs (including spelling mistakes).
50 | * [CSV and Excel injection](https://www.contextis.com/blog/comma-separated-vulnerabilities).
51 | * [401 page injection](https://security.stackexchange.com/a/135534).
52 | * Stack traces that disclose information.
53 | * Host header issues without an accompanying proof-of-concept demonstrating vulnerability.
54 | * Open ports without an accompanying proof-of-concept demonstrating vulnerability.
55 | * Banner grabbing issues (figuring out what web server we use, etc.).
56 |
57 | ## Reporting
58 |
59 | If you believe you’ve found a security vulnerability in one of our products or platforms, please send it to us via our [report form]({{ site.baseurl }}/report). Please provide detailed reports with reproducible steps. If a report is not detailed enough to reproduce the issue, it will not be eligible for a bounty.
60 |
61 | ## Rewards
62 |
63 | If you are the first to report an issue, and we make a code or configuration change based on the issue, we will award you:
64 |
65 | | Severity | CVSS | Award |
66 | |:---------|:----------:|:------|
67 | | Critical | 9.0 - 10.0 | $500 |
68 | | High | 7.0 - 8.9 | $100 |
69 | | Medium | 4.0 - 6.9 | $50 |
70 | | Low | 0.1 - 3.9 | $10 |
71 | | None | 0.0 - 0.0 | N/A |
72 |
73 | ## Third-Party Services
74 |
75 | {{ site.company_name }} uses the following third-party services. If you discover an issue in one of these services, please report it to the appropriate security team.
76 |
77 |
78 |
--------------------------------------------------------------------------------