Compare commits

..

1 Commits

Author SHA1 Message Date
Lance Vick f062697572
deterministic OCI container build setup 2023-09-04 21:00:01 -07:00
39 changed files with 1587 additions and 2270 deletions

View File

@ -1,22 +1,118 @@
FROM ruby:3.2.2-alpine AS builder ARG DEBIAN_HASH=b91baba9c2cae5edbe3b0ff50ae8f05157e3ae6f018372dcfc3aba224acb392b
LABEL stage=distrust-co-builder ARG BUILD_ENV=pin
RUN apk update && apk add g++ make git git-lfs
RUN mkdir -p /home FROM debian@sha256:${DEBIAN_HASH} AS build_base
COPY Gemfile /home
COPY Gemfile.lock /home FROM build_base AS build_pin
COPY _vendor /home/_vendor ARG DEBIAN_RELEASE=bookworm
WORKDIR /home ARG REQUIRED_PACKAGES="git ruby ruby-dev ruby-bundler media-types"
ONBUILD RUN \
export date=$(date +"%Y%m%dT000000Z") \
&& export url=http://snapshot.debian.org/archive/debian \
&& export rel=${DEBIAN_RELEASE} \
&& echo "deb [trusted=yes] ${url}/${date} ${rel} main" \
> apt-sources.list \
&& echo "deb [trusted=yes] ${url}-security/${date} ${rel}-security main" \
> apt-sources.list \
&& echo "deb [trusted=yes] ${url}/${date} ${rel}-updates main" \
> apt-sources.list
ONBUILD RUN \
apt-get update \
&& apt-get install \
-y \
--download-only \
dpkg-dev bzip2 ${REQUIRED_PACKAGES} \
&& ( cd /var/cache/apt/archives \
&& find . -type f \( -iname \*.deb \) -exec sha256sum {} \; \
| sed 's/.\///g' \
| LC_ALL=C sort \
) > apt-hashes.list \
&& echo "Pinned APT packages:" \
&& cat apt-hashes.list
ONBUILD RUN \
for deb in /var/cache/apt/archives/*.deb; do \
package=$(dpkg-deb -f $deb Package); \
version=$(dpkg --info ${deb} | grep "^ Version: " | sed 's/^ Version: //g'); \
echo "${package}=${version}" >> apt-pins.list; \
done \
&& mkdir apt-packages \
&& mv /var/cache/apt/archives/*.deb apt-packages \
&& apt-get install -y bzip2 dpkg-dev \
&& dpkg-scanpackages apt-packages | bzip2 > apt-packages/Packages.bz2
FROM build_base AS build_fetch
ONBUILD COPY apt-hashes.list .
ONBUILD COPY apt-sources.list .
ONBUILD COPY apt-pins.list .
ONBUILD RUN \
rm -f /etc/apt/sources.list.d/* \
&& mv apt-sources.list /etc/apt/sources.list \
&& apt update -o Acquire::Check-Valid-Until=false \
&& apt-get install \
--download-only \
--allow-downgrades \
-o Acquire::Check-Valid-Until=false \
-y $(cat apt-pins.list) \
&& cd /var/cache/apt/archives \
&& find . -type f \( -iname \*.deb \) -exec sha256sum {} \; \
| sed 's/.\///g' \
| LC_ALL=C sort \
) > apt-hashes-compare.list \
&& diff apt-hashes.list apt-hashes-compare.list \
&& mkdir apt-packages \
&& mv /var/cache/apt/archives/*.deb apt-packages \
&& dpkg-scanpackages apt-packages | bzip2 > apt-packages/Packages.bz2
FROM build_base AS build_reproduce
ONBUILD COPY apt-hashes.list .
ONBUILD COPY apt-sources.list .
ONBUILD COPY apt-pins.list .
ONBUILD COPY apt-packages .
FROM build_${BUILD_ENV} as build
RUN \
rm -f /etc/apt/sources.list.d/* \
&& echo "deb [trusted=yes] file:///. apt-packages/" > /etc/apt/sources.list \
&& apt update -o Acquire::Check-Valid-Until=false \
&& apt-get install \
--allow-downgrades \
-y $(cat apt-pins.list)
FROM build as build-httpd
ARG BUSYBOX_REPO=https://git.busybox.net/busybox
ARG BUSYBOX_HASH=1a64f6a20aaf6ea4dbba68bbfa8cc1ab7e5c57c4 # 1.36.1
RUN \
git clone https://git.busybox.net/busybox \
&& git -C busybox checkout ${BUSYBOX_HASH} \
&& git -C busybox rev-parse --verify HEAD | grep -q ${BUSYBOX_HASH} || { \
echo 'Error: Git ref/branch collision.'; exit 1; \
}
COPY config/busybox.config busybox/.config
RUN \
echo "building busybox httpd" \
&& cd busybox \
&& make \
&& bash make_single_applets.sh \
&& mv busybox_HTTPD ../httpd
FROM build as build-site
RUN mkdir build
WORKDIR build
COPY . .
RUN bundle install RUN bundle install
COPY . /home
RUN jekyll build RUN jekyll build
FROM debian:bookworm AS mime-types FROM build as build-rootfs
RUN apt-get update && apt-get install -y media-types RUN mkdir -p rootfs/etc \
&& echo "nogroup:*:100:nobody" > rootfs/etc/group \
&& echo "nobody:*:100:100:::" > rootfs/etc/passwd
RUN echo 'types {' > /tmp/mime.types FROM scratch
RUN sed -e '/^$/d' -e 's/$/;/' /etc/mime.types >> /tmp/mime.types COPY --from=build-rootfs --chown=100:100 rootfs /
RUN echo '}' >> /tmp/mime.types COPY --from=build-site build/_site static
COPY --from=build-httpd httpd .
FROM nginx USER 100:100
COPY --from=builder /home/_site /usr/share/nginx/html EXPOSE 8080
COPY --from=mime-types /tmp/mime.types /etc/nginx/mime.types WORKDIR static
ENTRYPOINT ["/httpd"]
CMD ["-f","-v"]

View File

@ -1,22 +1,44 @@
.PHONY: build
build:
# Build Docker image
docker build -t distrust-co .
.PHONY: fullclean
fullclean: clean
docker rmi distrust-co || true
docker image prune -f --filter label=stage=distrust-co-builder || true
.PHONY: clean .PHONY: clean
clean: clean:
rm -r _site || true rm -r _site
_site: build
mkdir -p _site
docker run distrust-co tar c -C /usr/share/nginx/html . | tar x -C _site
.PHONY: serve .PHONY: serve
serve: build serve: build
# Run Docker container with listener for current dir and port mapping docker run --rm -p 8080:8080/tcp -it distrust/website
docker run --rm -p 0.0.0.0:4000:80 -it distrust-co
.PHONY: build
build: out/website.oci.tar
config/apt-packages.list \
config/apt-hashes.list \
config/apt-sources.list \
fetch/apt/Packages.bz2:
buildah build \
-f Dockerfile \
-t distrust/website \
--timestamp 1 \
--format oci \
--arch amd64 \
--output cache/reproduce
cp cache/reproduce/apt-packages/* fetch/apt/
cp cache/reproduce/apt-*.list config
out/website.oci.tar:
buildah build \
-f Dockerfile \
-t distrust/website \
--timestamp 1 \
--format oci \
--arch amd64 \
buildah push \
distrust/website \
oci:cache/oci
tar \
-C cache/oci \
--sort=name \
--mtime='@0' \
--owner=0 \
--group=0 \
--numeric-owner \
-cf $@ \
.

View File

@ -21,22 +21,20 @@
title: Distrust title: Distrust
email: lance@distrust.co email: lance@distrust.co
description: >- # this means to ignore newlines until "baseurl:" description: >- # this means to ignore newlines until "baseurl:"
Understand and mitigate security threats others won't see coming. Trust
Nothing
baseurl: "" # the subpath of your site, e.g. /blog baseurl: "" # the subpath of your site, e.g. /blog
url: "https://distrust.co" # the base hostname & protocol for your site, e.g. http://example.com url: "https://distrust.co" # the base hostname & protocol for your site, e.g. http://example.com
banner: "https://distrust.co/assets/base/distrust-logo.png"
header_pages: header_pages:
- index.md - index.md
- about.md - about.md
- services.md
- tools.md
- contact.md - contact.md
style: dark # dark (default), light or hacker style: dark # dark (default), light or hacker
listen_for_clients_preferred_style: false # false (default) or true listen_for_clients_preferred_style: false # false (default) or true
footer: '2024 Distrust, LLC' footer: '2023 Distrust, LLC'
# Build settings # Build settings
theme: jekyll-theme-console theme: jekyll-theme-console

View File

@ -1,4 +1,3 @@
<footer style="height: 40px"> <footer>
<span><img src="assets/base/distrust-white.svg" width="20px" alt="copyleft"/></span> {{ site.footer }} <span><img src="assets/base/distrust-white.svg" width="12px" alt="copyleft"/></span> {{ site.footer }}
<script type="text/javascript" src="/assets/js/main.js"></script>
</footer> </footer>

View File

@ -6,62 +6,6 @@
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicons/favicon-96x96.png"> <link rel="icon" type="image/png" sizes="96x96" href="/assets/favicons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicons/favicon-16x16.png"> <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicons/favicon-16x16.png">
<title>{{ page.title }}</title> <title>{{ page.title }}</title>
<meta content="{{ site.title }}" property="og:site_name" />
{% if page.noindex %}
<meta name="robots" content="noindex" />
{% endif %} {% if page.title %}
<meta content="{{ page.title }}" property="og:title" />
<meta content="article" property="og:type" />
{% else %}
<meta content="{{ site.banner }}" property="og:image" />
<meta content="{{ site.title }}" property="og:title" />
<meta content="website" property="og:type" />
{% endif %} {% if page.summary %}
<meta content="{{ page.summary }}" property="og:description" />
{% else %}
<meta content="{{ site.description }}" property="og:description" />
{% endif %} {% if page.url %}
<meta content="{{ site.url }}{{ page.url }}" property="og:url" />
{% endif %} {% if page.date %}
<meta
content="{{ page.date | date_to_xmlschema }}"
property="article:published_time"
/>
<meta content="{{ site.url }}/about/" property="article:author" />
{% endif %} {% if page.thumbnail %}
<meta content="{{ site.url }}{{ page.thumbnail }}" property="og:image" />
{% endif %} {% if page.categories %} {% for category in page.categories
limit:1 %}
<meta content="{{ category }}" property="article:section" />
{% endfor %} {% endif %} {% if page.tags %} {% for tag in page.tags %}
<meta content="{{ tag }}" property="article:tag" />
{% endfor %} {% endif %}
<!-- Twitter Cards -->
<meta name="twitter:card" content="summary" />
<!--<meta name="twitter:site" content="@{{ site.share.twitter_username }}" />-->
<!--<meta name="twitter:creator" content="@{{ site.share.twitter_username }}" />-->
{% if page.title %}
<meta name="twitter:title" content="{{ page.title }}" />
{% else %}
<meta name="twitter:title" content="{{ site.title }}" />
{% endif %}
{% if page.url %}
<meta name="twitter:url" content="{{ site.url }}{{ page.url }}" />
{% endif %} {% if page.summary %}
<meta name="twitter:description" content="{{ page.summary }}" />
{% else %}
<meta name="twitter:description" content="{{ site.description }}" />
{% endif %} {% if page.header-img %}
<meta
name="twitter:image:src"
content="{{ site.url }}{{ page.thumbnail }}"
/>
{% endif %}
{% if page.robots %} {% if page.robots %}
<meta name="robots" content="{{page.robots}}" /> <meta name="robots" content="{{page.robots}}" />
@ -70,30 +14,8 @@
<link rel="stylesheet" type="text/css" href="{{ "/assets/main.css" | relative_url }}"> <link rel="stylesheet" type="text/css" href="{{ "/assets/main.css" | relative_url }}">
<link rel="stylesheet" type="text/css" href="{{ "/assets/main-dark.css" | relative_url }}"> <link rel="stylesheet" type="text/css" href="{{ "/assets/main-dark.css" | relative_url }}">
<!-- "Really, there is nothing interesting to see here. It is a static website. --> <!-- "Really, there is nothing interesting to see here. It is a static website. Here is the terraform code that deployed it, and here is the site source repo. If you find anything interesting or want to talk to us, reach out!" -->
<!-- Here is the terraform code that deployed it, and here is the site source repo. --> <!-- https://codeberg.org/distrust/infra -->
<!-- If you find anything interesting or want to talk to us, reach out via our /contact page!" --> <!-- https://codeberg.org/distrust/distrust.co -->
<!-- https://git.distrust.co/public/stack -->
<!-- https://git.distrust.co/public/website -->
<!-- mobile menu content -->
<div class="menu-content" style="display: none">
<div class="inner-menu-content">
<div>
<a href="/index.html">Home</a>
</div>
<div>
<a href="/about.html">About</a>
</div>
<div>
<a href="/services.html">Services</a>
</div>
<div>
<a href="/tools.html">Tools</a>
</div>
<div>
<a href="/contact.html">Contact</a>
</div>
</div>
</div>
</head> </head>

View File

@ -1,32 +1,14 @@
{%- assign page_paths = site.header_pages | default: default_paths -%} {%- assign page_paths = site.header_pages | default: default_paths -%}
<header> <header>
<div class="menu"> <div class="menu">
<div> <a href="/index.html"><img class="menu-logo" src="assets/base/distrust-text-white.svg" height="20px" alt="Distrust broken chain logo with white text"/></a>
<a id="home-link" href="/index.html"> <ul>
<img class="menu-logo" src="assets/base/distrust-text-white.svg"
alt="Distrust broken chain logo with white text" />
</a>
</div>
<div class="right-menu">
<ul class="header-page-links show">
{%- for path in page_paths -%} {%- for path in page_paths -%}
{%- assign my_page = site.pages | where: "path", path | first -%} {%- assign my_page = site.pages | where: "path", path | first -%}
{%- if my_page.title -%} {%- if my_page.title -%}
{%- if my_page.title != 'Home' -%}
<li><a href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a></li> <li><a href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a></li>
{%- endif -%} {%- endif -%}
{%- endif -%}
{%- endfor -%} {%- endfor -%}
<li class="show">
<a href="/contact.html" class="action-button">Free Consultation</a>
</li>
</ul> </ul>
<div id="hamburger-menu" class="hide menu-button-container" for="menu-toggle">
<input id="menu-toggle" type="checkbox" />
<label style="display: inline-block">
<div class='menu-button'></div>
</label>
</div>
</div>
</div> </div>
</header> </header>

View File

@ -1,105 +0,0 @@
<!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: en }}">
{%- include head.html -%}
<body>
<div class="container">
{%- include header.html -%}
<main>
<section>
<h2>About Distrust</h2>
<p>Distrust was founded in order to improve the security, privacy and freedom of individuals and organizations and promote principles of Open Source software worldwide. We specialize in helping organizations reduce risk through a holistic first principles approach rather than simply checking boxes according to often outdated "best practices".
</p>
<p>Close collaboration with our clients allows us to attain a deep understanding of technology stacks which we use to help teams refine threat models and ensure that the mitigating controls being used establish a reasonable level of security accordingly. We do this by offering variety of services which are tailored to fit the client needs, ranging across penetration tests, secure code review, threat modelling, system architecture design, supply chain security, infrastructure hardening, and more. One of our specialties is designing secure systems for management of cryptographic material, especially in the context of blockchains.
</p>
<p>Our clients are varied, many of them from high risk areas such as financial institutions, blockchain companies managing large quantities of cryptocurrency and electrical grid operators to name a few. We proudly continue to support such organizations, and use the knowledge we have attained to aid all our clients in achieving a better security posture.</p>
</section>
<section>
<h2>Approach</h2>
<p>Like most security firms, we often start relationships with full stack audits. We also have enough experience in this industry to admit another firm will find bugs we missed, and vice versa. Our true goal in audits is to understand your threat model and find a path to fundamentally remove entire classes of relevant attack surface.</p>
<p>We tend to start with a consultation where try to help you understand your true attack surface by answering tough questions:</p>
<ul>
<li>Can your Google Authenticator codes be phished?</li>
<li>Can your SMS 2FA solution be SIM Swapped?</li>
<li>Can someone tamper with your Git repos or CI/CD systems?</li>
<li>Would it be profitable for someone to buy a $50,000 0day to compromise an employee devices?</li>
<li>What happens when the FedEx guy leaves a tampered USB C cable on a conference table?</li>
<li>Who reviews the code of your third party dependencies?</li>
<li>What happens when your IT administrator is compromised? Or a production engineer?</li>
<li>Can a change in local political landscape fundamentally halt your business?</li>
<li>Can someone buy a server next to yours and steal your secrets via a side channel attack?</li>
<li>How do you know the offline laptop with the keys to the kingdom has not been tampered with?</li>
<li>Do you have a plan for <i>when</i> your production systems are compromised?</li>
</ul>
<br />
<br />
<a href="/contact.html" class="action-button">Free Consultation</a>
</section>
<hr />
<section>
<h2>Values</h2>
<br />
<h4>Distrust</h4>
<ul>
<li>We will never ask you to give us access to production systems or have any power over your org.</li>
<li>Anyone with access to significant value is at personal risk. We teach distrust to protect people.</li>
<li>We will always provide a way for you to build and verify any binaries we provide.</li>
<li>We are happy to provide you any background research we legally can so you can make your own conclusions.</li>
</ul>
<br />
<h4>Transparency</h4>
<ul>
<li>We regularly open source our research and common advice to get input and corrections from others in our industry.</li>
<li>Prices are always the same. We will sometimes adjust based on demand, but everyone is offered the same rates.</li>
<li>With the exception of fully Open Source projects, which we offer a universal 15% discount on.</li>
</ul>
<br />
<h4>Security</h4>
<ul>
<li>Our internal threat model assumes well funded entities are interested in our clients and our work.</li>
<li>All client work is performed in dedicated local virtual machines under an offline host OS.</li>
<li>All authentication, and password management is done via dedicated pin+touch controlled personal HSMs.</li>
<li>We exclusively use End-To-End cross-verified encrypted chat internally.</li>
</ul>
<br />
<h4>Privacy</h4>
<ul>
<li>Your data and IP are always stored with AES256 encryption unlockable only with our personal HSMs.</li>
<li>Your data and IP are never exposed in plain text except on your systems or systems we physically control.</li>
<li>Everyone on our team has hardware-backed PGP keys to encrypt documents and emails if you prefer.</li>
</ul>
<br />
<h4>Freedom</h4>
<ul>
<li>We feel every customer has a path to not need us anymore, and we will encourage it.</li>
<li>We exclusively use Open Source internally and help make improvements when needed.</li>
<li>All general purpose security tools and research we create is Open Source by default.</li>
<li>We ensure you have a free path to replicate any of our findings yourself.</li>
<li>We will always favor solutions that minimize lock-in with third parties.</li>
</ul>
</section>
</main>
{%- include footer.html -%}
</div>
</body>
</html>

View File

@ -1,119 +0,0 @@
<!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: en }}">
{%- include head.html -%}
<body>
<div class="container">
{%- include header.html -%}
<main>
<h2>What are your biggest security challenges?</h2>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<h3>Contact us to take your security posture to the next level.</h3>
<p>We look forward to learning about your project and helping you bolster your security program.</p>
<h4>Meet The Team</h4>
<p>Lance Vick | <a mailto="lance@distrust.co">lance@distrust.co</a> | <a href="https://keys.openpgp.org/vks/v1/by-fingerprint/6B61ECD76088748C70590D55E90A401336C8AAA9">PGP</a></p>
<p>Ryan Heywood | <a mailto="ryan@distrust.co">ryan@distrust.co</a> | <a href="https://keys.openpgp.org/vks/v1/by-fingerprint/88823A75ECAA786B0FF38B148E401478A3FBEF72">PGP</a></p>
<p>Danny Grove | <a mailto="danny@distrust.co">danny@distrust.co</a> | <a href="https://keys.openpgp.org/vks/v1/by-fingerprint/C92FE5A3FBD58DD3EC5AA26BB10116B8193F2DBD">PGP</a></p>
<p>Anton Livaja | <a mailto="anton@distrust.co">anton@distrust.co</a> | <a href="https://keys.openpgp.org/vks/v1/by-fingerprint/F4BF5C81EC78A5DD341C91EEDC4B7D1F52E0BA4D">PGP</a></p>
<p>Shane Engleman | <a mailto="shane@distrust.co">shane@distrust.co</a> | <a href="https://keys.openpgp.org/vks/v1/by-fingerprint/3D7C8D39E8C4DF771583D3F0A8A091FD346001CA">PGP</a></p>
</div>
<div class="flex-container-inner">
<div class="form-container">
<form onsubmit="return validateForm()" action="/submit-email" method="post">
<div class="form-flex-container">
<div>
<label for="name" class="form-label">Name</label>
<input type="text" id="name" name="name" class="form-input">
</div>
</div>
<label for="email" class="form-label required">Email</label>
<input type="email" id="email" name="email" class="form-input" required>
<label for="company-name" class="form-label">Company Name</label>
<input type="text" id="company-name" name="company-name" class="form-input">
<label for="service" class="form-label required">Service You Are Interested In</label>
<select id="service" name="service" class="form-select" required>
<option value="" disabled selected>Select option</option>
<option value="digital-asset-custody">Digital Asset Custody (threat modelling, design,
tooling,
system architecture, security assessments)</option>
<option value="blockchain-security">Blockchain Security (smart contracts, system
architecture
design)</option>
<option value="software-security-assessment">Software Security Assessment (penetration
tests, code
reviews, threat modelling, system architecture design, infrastructure hardening,
operating
system etc.)</option>
<option value="engineering">Engineering (tooling development, devops engineering)
</option>
</select>
<label for="help" class="form-label required">How can we help?</label>
<textarea id="help" name="help" class="form-textarea" required></textarea>
<label for="hear-about" class="form-label">How did you hear about Distrust?</label>
<select id="hear-about" name="hear-about" class="form-select" onchange="toggleOtherField()">
<option value="" disabled selected>Select option</option>
<option value="referral">Referral</option>
<option value="social-media">Social Media</option>
<option value="audit-report">Audit Report</option>
<option value="other">Other</option>
</select>
<div id="other-field" style="display:none;">
<input type="text" id="other-source" name="other-source" class="form-input" placeholder="Please specify">
</div>
<!-- TODO: add captcha of some sort -->
<button type="submit" class="form-submit-button">Submit</button>
</form>
</div>
</div>
</section>
</main>
<br />
{%- include footer.html -%}
</div>
</body>
<script>
function toggleOtherField() {
var hearAbout = document.getElementById('hear-about').value;
var otherField = document.getElementById('other-field');
if (hearAbout === 'other') {
otherField.style.display = 'block';
document.getElementById('other-source').required = true;
} else {
otherField.style.display = 'none';
document.getElementById('other-source').required = false;
}
}
function validateForm() {
var inquiryType = document.getElementById('inquiry-type');
var services = document.getElementById('services');
var hearAbout = document.getElementById('hear-about');
if (inquiryType.value === "") {
alert("Please select a valid Inquiry Type");
return false;
}
if (services.value === "") {
alert("Please select a valid Service you are interested in");
return false;
}
return true;
}
</script>
</html>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: en }}"> <html lang="{{ page.lang | default: site.lang | default: "en" }}">
{%- include head.html -%} {%- include head.html -%}

View File

@ -1,194 +0,0 @@
<!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: en }}">
{%- include head.html -%}
<body>
<div class="container">
{%- include header.html -%}
<main>
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h2>Understand and mitigate security threats others won't see coming.</h2>
<p>We believe security compromises to your systems and personnel are <b>inevitable</b>. Allow our team of experienced security engineers to help you reduce the likelihood and impact of risks by thinking from first principles.</p>
<br />
<a href="/contact.html" class="action-button">Free Consultation</a>
<br />
</div>
</div>
<div class="flex-container-inner carousel-container">
<div id="carousel"></div>
<br>
<div style="margin-left: 10px; font-size: 14px">
<a style="color: rgb(73, 73, 73)" href="../assets/js/carousel-items.json">Full list of articles</a>
</div>
</div>
</section>
<hr />
<section class="">
<div class="flex-container-inner">
<div class="text-well">
<h2>We specialize in working with high risk clients.</h2>
<p>If you protect valuable assets or data, or provide software to others that do, your adversaries will not play fair. We want to help you protect your team and users, and remove single points of failure in your stack.</p>
</div>
</div>
<br />
<div class="flex-container-inner">
<div class="companies">
<div>
<a href="https://coinbase.com">
<img style="height: 30px" src="assets/base/companies/coinbase-white.svg" />
</a>
</div>
<div>
<a href="https://bitgo.com">
<img src="assets/base/companies/bitgo-logo-white.svg" />
</a>
</div>
<div>
<a href="https://bishopfox.com">
<img style="height: 30px; filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(288deg) brightness(102%) contrast(102%);" src="assets/base/companies/bishop-fox-dark.png" />
</a>
</div>
</div>
<div class="companies">
<div>
<a href="http://www.falconx.io/">
<img style="height: 20px" src="assets/base/companies/falconx-white.svg" />
</a>
</div>
<div>
<a href="http://www.turnkey.io/">
<img style="filter: invert(100)" src="assets/base/companies/turnkey-black.svg" />
</a>
</div>
<div>
<a href="https://exodus.com">
<img src="assets/base/companies/exodus-white.svg" />
</a>
</div>
</div>
<div class="companies">
<div>
<a href="https://siderolabs.com">
<img style="height: 60px" src="assets/base/companies/sidero-labs-white.png" />
</a>
</div>
<div>
<a href="https://zoom.com">
<img style="height: 35px;" src="assets/base/companies/zoom-white.png" />
</a>
</div>
<div>
<a href="https://mystenlabs.com">
<img style="height: 25px" src="assets/base/companies/mysten-labs-white.svg" />
</a>
</div>
</div>
<div class="companies">
<div>
<a href="http://www.ankr.com/">
<img style="height: 75px; filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(288deg) brightness(200%) contrast(102%);" src="assets/base/companies/ankr.png" />
</a>
</div>
<div>
<a href="http://www.hashicorp.io/">
<img style="height: 60px" src="assets/base/companies/hashicorp-white.png" />
</a>
</div>
<div>
<a href="http://www.b1.com/">
<img style="filter: invert(100)" src="assets/base/companies/block-one-dark.svg" />
</a>
</div>
</div>
<div class="companies">
<div>
<a href="http://www.ledn.io/">
<img src="assets/base/companies/ledn-white.svg" />
</a>
</div>
<div>
<a href="https://fitbit.com">
<img src="assets/base/companies/fitbit-white.png" />
</a>
</div>
<div>
<a href="https://dfns.co">
<img src="assets/base/companies/dfns-color.png" />
</a>
</div>
</div>
</div>
</section>
<hr/>
<section class="">
<div class="flex-container-inner" style="align-items: baseline">
<div class="text-well">
<h1>Services</h1>
<p>Distrust offers a wide range of services which are tailored to your organization. Whether you need a complete security assessment, want to create or improve an open source security tool, or want to focus on assessing a specific aspect of your organization or system - we are here to help. Our experienced staff will collaborate closely with you to understand your unique needs and create a tailor made solution that works for you.</p>
<div class="button-container">
<a class="action-button" href="/services.html">Learn more</a>
<a href="/contact.html" class="action-button">Free Consultation</a>
</div>
</div>
</div>
<div class="flex-container-inner">
<div class="">
<br />
<hr />
<br />
</div>
<div class="text-well">
<h3>Security Assessment</h3>
<p>We offer full stack security assessments, covering anything that is in scope for a sophisticated adversary, such as compromising a third party library, bribing a devops engineer, finding a oversight in your code, or otherwise. While we will point out specific flaws we find, we feel we offer the most value in helping you identify where you can make strategic improvements to your architecture to take entire classes of risk off the table.</p>
</div>
<br />
<hr />
<br />
<div class="text-well">
<h3>Security Engineering</h3>
<p>Our team is comprised of security engineers with past lives as full time system administrators and software engineers. We have extensive first hand experience in implementing custom security defenses for high risk organizations. We are happy to get as deep into the weeds planning new defense strategies as you like, from Linux kernel hardening, to supply chain signing, to code quality, library choices, and beyond.</p>
</div>
<br />
<hr />
<br />
<div class="text-well">
<h3>Retained Security Support</h3>
<p>We offer monthly retainer contracts to augment your existing security team with access to our combined experience as needed. You can drop questions to our team in a chat, or include us in security-relevant meetings. Almost anything an in-house security team might do to protect your organization is in scope for us as well, including qualifying candidates, conducting interviews, reviewing code, evaluating third party risks, or being a security voice in the room when you are planning new products.</p>
</div>
<br />
<hr />
<br />
<div class="text-well">
<h3>Research & Development</h3>
<p>Rather than write the same document or tool 10 times and bill each client for it, we focus our unused retainer hours on open sourcing every document and tool we legally can, so we can focus our time with clients on their unique situations. If we are doing public work you would like to see more of, or that -almost- meets your needs, we would love to hear that and figure out a path to see your needs met.</p>
</div>
</div>
<br />
<br />
<a href="/contact.html" class="action-button">Free Consultation</a>
</section>
</main>
{%- include footer.html -%}
</div>
</body>
</html>

View File

@ -1,104 +0,0 @@
<!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: en }}">
{%- include head.html -%}
<body>
<div class="container">
{%- include header.html -%}
<main>
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h2>How can we help you?</h2>
<p>Distrust offers a wide range of services which are tailored to your organization. Whether you need a complete security assessment, want to create or improve an open source security tool, or want to focus on assessing a specific aspect of your organization or system - we are here to help. Our experienced staff will collaborate closely with you to understand your unique needs and create a tailor made solution that works for you.</p>
<br />
<a href="/contact.html" class="action-button">Free Consultation</a>
<br />
</div>
</div>
<div class="flex-container-inner">
</div>
</section>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h3>Security Assessment</h3>
<p>We offer full stack security assessments, covering anything that is in scope for a sophisticated adversary, such as compromising a third party library, bribing a devops engineer, finding an oversight in your code, or otherwise. While we will point out specific flaws we find, we feel we offer the most value in helping you identify where you can make strategic improvements to your architecture to take entire classes of risk off the table.</p>
</div>
</div>
<div class="flex-container-inner">
<ul>
<li>Penetration Testing</li>
<li>Secure Code Review</li>
<li>Cloud Configuration Review</li>
<li>Threat Modeling</li>
</ul>
</div>
</section>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h3>Security Engineering</h3>
<p>Our team is comprised of security engineers with past lives as full time system administrators and software engineers. We have extensive first hand experience in implementing custom security defenses for high risk organizations. We are happy to get as deep into the weeds planning new defense strategies as you like, from Linux kernel hardening, to supply chain signing, to code quality, library choices, and beyond.</p>
</div>
</div>
<div class="flex-container-inner">
<ul>
<li>Secure Code Development</li>
<li>Cryptocurrency Custodial Solutions</li>
<li>Quorum Authentication Design and Implementation</li>
<li>Cryptographic Key Escrow / Signer</li>
<li>Reproducible / Deterministic Builds</li>
<li>Production Engineering Practice</li>
</ul>
</div>
</section>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h3>Retained Security Support</h3>
<p>We offer monthly retainer contracts to augment your existing security team with access to our combined experience as needed. You can drop questions to our team in a chat, or include us in security-relevant meetings. Almost anything an in-house security team might do to protect your organization is in scope for us as well, including qualifying candidates, conducting interviews, reviewing code, evaluating third party risks, or being a security voice in the room when you are planning new products.</p>
</div>
</div>
<div class="flex-container-inner">
<ul>
<li>Security Program Development</li>
<li>General Security Consulting</li>
<li>Assistance With Hiring Security Talent</li>
<li>Business Continuity Planning</li>
<li>Physical Security</li>
</ul>
</div>
</section>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h3>Research</h3>
<p>Rather than write the same document or tool 10 times and bill each client for it, we focus our unused retainer hours on open sourcing every document and tool we legally can, so we can focus our time with clients on their unique needs. If we are doing public work you would like to see more of, or that <i>almost</i> meets your needs, we would love to hear from you and figure out a path to see your needs met.</p>
</div>
</div>
</section>
</main>
{%- include footer.html -%}
</div>
</body>
</html>

View File

@ -1,133 +0,0 @@
<!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: en }}">
{%- include head.html -%}
<body>
<div class="container">
{%- include header.html -%}
<main>
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h2>Tools</h2>
<p>Distrust develops open source tooling to help make the internet a safer place!</p>
<p>Rather than write the same document or tool 10 times and bill each client for it, we focus our unused retainer hours on open sourcing every document and tool we legally can, so we can focus our time with clients on their unique needs. If we are doing public work you would like to see more of, or that <i>almost</i> meets your needs, we would love to hear from you and figure out a path to see your needs met.</p>
</div>
</div>
<div class="flex-container-inner">
</div>
</section>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h3>AirgapOS</h3>
<a href="https://git.distrust.co/public/airgap" target="_blank" rel="noopener noreferrer">https://git.distrust.co/public/airgap</a>
<p>A live buildroot based Linux distribution designed for managing secrets offline.</p>
</div>
</div>
<div class="flex-container-inner">
<ul>
<li>Deterministic binary verification</li>
<li>Small footprint (< 100MB)</li>
<li>Immutable and diskless</li>
<li>Network drivers removed</li>
</ul>
</div>
</section>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h3>Keyfork</h3>
<a href="https://git.distrust.co/public/keyfork" target="_blank" rel="noopener noreferrer">https://git.distrust.co/public/keyfork</a>
<p>An opinionated and modular toolchain for generating and managing a wide range of cryptographic keys offline and on smartcards from a shared bip39 mnemonic phrase..</p>
</div>
</div>
<div class="flex-container-inner">
<ul>
<li>BIP39 style key derivation from OS or hardware entropy</li>
<li>Sharding mechanism allows "M-of-N" recovery</li>
<li>Built deterministically</li>
<li>Intended for use with air-gapped systems</li>
</ul>
</div>
</section>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h3>StageX</h3>
<a href="https://codeberg.org/stagex/stagex" target="_blank" rel="noopener noreferrer">https://codeberg.org/stagex/stagex</a>
<p>Minimalism and security first repository of reproducible and multi-signed OCI images of common open source software toolchains full-source bootstrapped from Stage 0 all the way up.</p>
</div>
</div>
<div class="flex-container-inner">
<ul>
<li>Fully verifiable and deterministic build toolchain</li>
<li>Deterministic packages of commonly used software (rust, go, openssl, curl and many more)</li>
<li>Flexible drop in replacement for existing software</li>
<li>Available on <a href="https://hub.docker.com/u/stagex" target="_blank" rel="noopener noreferrer">dockerhub</a></li>
</ul>
</div>
</section>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h3>EnclaveOS</h3>
<a href="https://git.distrust.co/public/enclaveos" target="_blank" rel="noopener noreferrer">https://git.distrust.co/public/enclaveos</a>
<p>A minimal, immutable, and deterministic Linux unikernel build system targeting various Trusted Execution Environments for use cases that require high security and accountability.</p>
</div>
</div>
<div class="flex-container-inner">
<ul>
<li>Immutable: Root filesystem is a CPIO filesystem extracted to a RamFS at boot</li>
<li>Minimal: < 5MB footprint and nothing is included but a kernel and your target binary by default</li>
<li>Deterministic: multiple people can reproduce the build and verify its integrity</li>
<li>Hardened: No TCP/IP network support, most unnecessary kernel features disabled and follows <a href="https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project" target="_blank" rel="noopener noreferrer">Kernel Self Protection Project</a> recommendations</li>
</ul>
</div>
</section>
<hr />
<section class="flex-container">
<div class="flex-container-inner">
<div class="text-well">
<h3>git-sig</h3>
<a href="https://git.distrust.co/public/git-sig" target="_blank" rel="noopener noreferrer">https://git.distrust.co/public/gitsig</a>
<p>The simple multisig toolchain for git repos.</p>
</div>
</div>
<div class="flex-container-inner">
<ul>
<li>Attach any number of signatures to any given git ref</li>
<li>Verify git history contains a minimum threshold of unique commit signatures</li>
<li>Verify signatures belong to a defined GPG alias group</li>
<li>Verify code changes made since last time minimum valid signatures were present</li>
</ul>
</div>
</section>
</main>
{%- include footer.html -%}
</div>
</body>
</html>

View File

@ -7,9 +7,9 @@
--border: solid 2px rgba(219, 219, 219, 0.9); --border: solid 2px rgba(219, 219, 219, 0.9);
--selection-background: rgba(219, 219, 219, 0.99); --selection-background: rgba(219, 219, 219, 0.99);
--selection-text: #000; --selection-text: #000;
--background-color: #282828; --background-color: #424242;
--text-color: var(--base-color); --text-color: var(--base-color);
--placeholder-color: rgba(0, 0, 0, 0.5); --placeholder-color: var(--base-color);
--link-color: var(--base-color); --link-color: var(--base-color);
--code-color-1: #aaaaaa; --code-color-1: #aaaaaa;
--code-color-2: #ffffcc; --code-color-2: #ffffcc;

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,80 @@
--- ---
title: About title: /about
layout: about layout: home
permalink: /about.html permalink: /about.html
--- ---
## Approach
Like most security firms, we often start relationships with full stack audits. We also have enough experience in this industry to admit another firm will find bugs we missed, and vice versa. Our true goal in audits is to understand your threat model and find a path to fundamentally remove entire classes of relevant attack surface.
We tend to start with a consultation where try to help you understand your true attack surface by answering tough questions:
- Can your Google Authenticator codes be phished?
- Can your SMS 2FA solution be SIM Swapped?
- Can someone tamper with your Git repos or CI/CD systems?
- Would it be profitable for someone to buy a $50,000 0day to compromise employee devices?
- What happens when the FedEx guy leaves a tampered USB C cable on a conference table?
- Who reviews the code of your third party dependencies?
- What happens when your IT administrator is compromised? Or a production engineer?
- Can a change in local political landscape fundamentally halt your business?
- Can someone buy a server next to yours and steal your secrets via a side channel attack?
- How do know the offline laptop with the keys to the kingdom has not been tampered with?
- Do you have a plan for <i>when</i> your production systems are compromised?
---
## Values
### Distrust
- We will never ask you to give us access to production systems or have any power over your org.
- Anyone with access to significant value is at personal risk. We teach distrust to protect people.
- We will always provide a way for you to build and verify any binaries we provide yourself.
- We are happy to provide you any background research we legally can so you can make your own conclusions.
### Transparency
- We regularly open source our research and common advice to get input and corrections from others in our industry.
- Prices are always public. We will sometimes adjust based on demand, but everyone is offered the same rates.
- With the exception of fully Open Source projects, which we offer a universal 15% discount on.
### Security
- Our internal threat model assumes well funded entities are interested in our clients and our work.
- All client work is performed in dedicated local virtual machines under an offline host OS.
- All authentication, and password management is done via dedicated pin+touch controlled personal HSMs.
- We exclusively use End-To-End cross-verified encrypted chat internally.
### Privacy
- Your data and IP are always stored with AES256 encryption unlockable only with our personal HSMs.
- Your data and IP are never exposed in plain text except on your systems or systems we physically control.
- Everyone on our team has hardware-backed PGP keys to encrypt documents and emails if you prefer.
### Freedom
- We feel every customer has a path to not need us anymore, and we will encourage it.
- We exclusively use Open Source internally and help make improvements when needed.
- All general purpose security tools and research we create is Open Source by default.
- We ensure you have a free path to replicate any of our findings yourself.
- We will always favor solutions that minimize lock-in with third parties.
---
## Services
- Reproducible builds
- Build all software multiple times in systems controlled by different teams.
- Ensure hashes match, proving code and binaries were not tampered with.
- We optionally can host and maintain secondary build infrastructure.
- Cryptographic key escrow.
- Quorum managed immutable infrastructure.
- Software Supply Chain Integrity.
- Production Engineering Security.
- Security Hiring.
- Retained security support.
- Hardware Security Modules.
- Physical Security.
- Business Continuity Planning.
- Planning for Black Swan events.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -1,8 +0,0 @@
<svg width="101" height="26" viewBox="0 0 101 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.2316 8.32839C22.2316 22.2181 11.1158 26 11.1158 26C11.1158 26 0 22.2181 0 8.32839V3.32865C0 2.78064 0.426229 2.34088 0.960708 2.30029C2.97684 2.20557 7.76685 1.79964 11.1158 0C14.4715 1.79964 19.2547 2.20557 21.2709 2.30705C21.8054 2.34088 22.2316 2.78064 22.2316 3.32865V8.32839ZM12.523 7.96305C14.1738 8.11866 15.4728 8.6396 15.6081 10.1551C15.7096 11.2646 15.2428 11.9277 14.4986 12.3065C15.7231 12.6042 16.4809 13.3349 16.3185 14.9654C16.1155 16.9815 14.6001 17.516 12.4486 17.6243L12.4554 19.7419H11.1632L11.1699 17.6445C10.8384 17.6378 10.5001 17.631 10.1483 17.6243L10.1348 19.7419L8.86287 19.7351L8.8561 17.604C8.55842 17.604 6.52876 17.6107 6.52876 17.6107L6.54229 16.0682L7.97658 16.0614L7.98335 9.29586H6.34609V7.94952C6.34609 7.94952 8.65314 7.94952 8.93052 7.94275L8.92376 5.83867L10.216 5.8319V7.90892C10.561 7.90216 10.9195 7.90216 11.2578 7.90216H11.2579L11.2511 5.8522L12.5298 5.84543L12.523 7.96305ZM10.4513 16.0792C11.4956 16.1017 13.7757 16.1507 13.7882 14.688C13.8004 13.1977 11.5975 13.2333 10.5185 13.2507C10.3974 13.2527 10.2905 13.2544 10.2024 13.2537L10.2092 16.0749C10.279 16.0755 10.3605 16.0772 10.4513 16.0792ZM10.4439 11.9724C11.3072 11.9939 13.2074 12.0412 13.2199 10.7099C13.226 9.34382 11.363 9.38658 10.4782 9.40688C10.3858 9.409 10.3041 9.41088 10.2363 9.41088L10.243 11.9683C10.3008 11.9688 10.3684 11.9705 10.4439 11.9724Z" fill="white"/>
<path d="M44.3346 17.2318C44.3346 18.3414 44.1181 19.2683 43.6784 20.0193C43.2386 20.7702 42.6568 21.3791 41.9328 21.8324C41.2089 22.2925 40.3835 22.6172 39.4567 22.8202C38.5298 23.0232 37.5826 23.1179 36.6084 23.1179H28.5438V2.87536H36.6084C37.3932 2.87536 38.1915 2.95655 39.0101 3.11892C39.8288 3.28129 40.573 3.55868 41.2428 3.95108C41.9125 4.34348 42.4538 4.87119 42.8733 5.54098C43.2927 6.21077 43.5025 7.05647 43.5025 8.08483C43.5025 9.20791 43.198 10.1416 42.5891 10.8722C41.9802 11.6097 41.1751 12.1374 40.1873 12.4621V12.5163C40.7624 12.611 41.2969 12.7869 41.8043 13.044C42.3117 13.3011 42.7515 13.6326 43.1168 14.0317C43.4889 14.4309 43.7866 14.8977 44.0031 15.4322C44.2264 15.9667 44.3346 16.5688 44.3346 17.2318ZM38.7869 8.74109C38.7869 8.05777 38.523 7.55712 38.0021 7.23914C37.4743 6.92116 36.7031 6.76555 35.6679 6.76555H33.2662V10.9399H35.898C36.8113 10.9399 37.5217 10.7572 38.0291 10.3851C38.5365 10.013 38.7869 9.465 38.7869 8.74109ZM39.4431 16.7786C39.4431 15.9396 39.1319 15.3578 38.4959 15.033C37.8667 14.7083 37.0278 14.5459 35.9792 14.5459H33.2594V19.1803H36.0062C36.3851 19.1803 36.7843 19.1465 37.1902 19.0788C37.6029 19.0112 37.975 18.8962 38.3065 18.7203C38.638 18.5511 38.9086 18.3076 39.1184 17.9896C39.3416 17.6784 39.4431 17.2724 39.4431 16.7786Z" fill="white"/>
<path d="M50.8363 4.33671C50.8363 4.70205 50.7619 5.04033 50.6198 5.35154C50.4777 5.66952 50.2883 5.94014 50.0447 6.16341C49.8079 6.39344 49.517 6.57611 49.1855 6.70465C48.854 6.83996 48.5022 6.90762 48.1436 6.90762C47.3791 6.90762 46.7431 6.65729 46.2289 6.14988C45.7148 5.64246 45.4577 5.04033 45.4577 4.33671C45.4577 3.99167 45.5253 3.66692 45.6606 3.34894C45.7959 3.03096 45.9854 2.76034 46.2357 2.53707C46.486 2.30704 46.7702 2.12437 47.0949 1.9823C47.4197 1.84022 47.7715 1.7658 48.1504 1.7658C48.5157 1.7658 48.8607 1.83346 49.1923 1.96877C49.5238 2.10408 49.8147 2.27998 50.0515 2.51001C50.2883 2.74004 50.4777 3.01066 50.6266 3.32188C50.7686 3.63309 50.8363 3.97137 50.8363 4.33671ZM45.8027 23.1246V8.88316H50.4912V23.1246H45.8027Z" fill="white"/>
<path d="M58.9956 12.3742V17.8272C58.9956 18.497 59.1241 18.9977 59.3812 19.3359C59.6383 19.6742 60.0984 19.8366 60.7682 19.8366C60.9982 19.8366 61.2418 19.8163 61.4989 19.7825C61.7559 19.7419 61.9724 19.6877 62.1416 19.6133L62.1957 23.0435C61.871 23.1585 61.465 23.2599 60.9644 23.3411C60.4705 23.4291 59.9698 23.4697 59.476 23.4697C58.522 23.4697 57.7237 23.3479 57.0742 23.1111C56.4247 22.8743 55.9037 22.5293 55.5181 22.076C55.1257 21.6295 54.8483 21.0882 54.6724 20.4725C54.5033 19.8501 54.4153 19.16 54.4153 18.3955V12.3742H52.1286V8.88316H54.3883V5.13505H58.9956V8.88316H62.3445V12.3742H58.9956Z" fill="white"/>
<path d="M79.3193 23.1517C77.9932 23.4764 76.5522 23.6388 74.9826 23.6388C73.3588 23.6388 71.8704 23.3817 70.5038 22.8675C69.1371 22.3534 67.9667 21.6295 66.9857 20.6958C66.0047 19.7622 65.2334 18.6391 64.6854 17.3333C64.1306 16.0276 63.8532 14.573 63.8532 12.9696C63.8532 11.3458 64.1374 9.8777 64.6989 8.56518C65.2605 7.25266 66.0385 6.12958 67.0331 5.2027C68.0208 4.27582 69.1845 3.56544 70.5241 3.07156C71.8569 2.57767 73.2979 2.32735 74.8405 2.32735C76.4439 2.32735 77.9323 2.57091 79.3058 3.05803C80.6792 3.54515 81.7955 4.19464 82.6547 5.02003L79.5628 8.53812C79.0825 7.98334 78.4533 7.53005 77.6753 7.17824C76.8905 6.82644 76.0042 6.65053 75.0164 6.65053C74.1572 6.65053 73.3656 6.80614 72.6417 7.12412C71.9178 7.43533 71.2886 7.8751 70.7541 8.43664C70.2196 8.99818 69.8069 9.66797 69.5092 10.4392C69.2116 11.2105 69.0627 12.0562 69.0627 12.9696C69.0627 13.9032 69.198 14.7624 69.4619 15.5472C69.7257 16.332 70.1249 17.0018 70.6459 17.5634C71.1668 18.1249 71.8163 18.5647 72.5876 18.8759C73.3588 19.1939 74.2384 19.3495 75.2329 19.3495C75.808 19.3495 76.3492 19.3089 76.8634 19.2209C77.3776 19.133 77.8579 18.9977 78.2909 18.8082V15.121H74.4278V11.1767H82.7832V21.9001C81.8022 22.4075 80.6453 22.827 79.3193 23.1517Z" fill="white"/>
<path d="M100.428 15.9464C100.428 17.1101 100.218 18.1655 99.7986 19.1059C99.3792 20.0531 98.8041 20.8514 98.0802 21.5077C97.3563 22.1639 96.5173 22.6781 95.5634 23.0367C94.6095 23.402 93.5879 23.5779 92.5054 23.5779C91.4364 23.5779 90.4216 23.3953 89.4609 23.0367C88.5002 22.6714 87.6612 22.1639 86.9441 21.5077C86.2269 20.8514 85.6586 20.0463 85.2392 19.1059C84.8197 18.1587 84.61 17.1101 84.61 15.9464C84.61 14.7827 84.8197 13.7341 85.2392 12.8004C85.6586 11.8668 86.2269 11.0752 86.9441 10.4257C87.6612 9.77622 88.5002 9.28234 89.4609 8.93729C90.4216 8.59225 91.4364 8.42311 92.5054 8.42311C93.5946 8.42311 94.6095 8.59225 95.5634 8.93729C96.5173 9.28234 97.3563 9.77622 98.0802 10.4257C98.8041 11.0752 99.3792 11.8668 99.7986 12.8004C100.218 13.7341 100.428 14.7827 100.428 15.9464ZM95.9084 15.9464C95.9084 15.4863 95.834 15.0398 95.6784 14.6001C95.5228 14.1603 95.3063 13.7747 95.0222 13.4431C94.738 13.1116 94.3862 12.841 93.9667 12.6313C93.5473 12.4215 93.0601 12.3201 92.5054 12.3201C91.9506 12.3201 91.4635 12.4283 91.044 12.6313C90.6246 12.841 90.2795 13.1116 90.0021 13.4431C89.7247 13.7747 89.515 14.1603 89.3729 14.6001C89.2309 15.0398 89.1564 15.4863 89.1564 15.9464C89.1564 16.4065 89.2309 16.853 89.3729 17.2927C89.515 17.7325 89.7315 18.1249 90.0157 18.4767C90.2998 18.8285 90.6516 19.1127 91.0711 19.3224C91.4905 19.5321 91.9777 19.6404 92.5324 19.6404C93.0872 19.6404 93.5743 19.5389 93.9938 19.3224C94.4133 19.1127 94.7651 18.8285 95.0492 18.4767C95.3334 18.1249 95.5499 17.7257 95.6919 17.2927C95.8408 16.853 95.9084 16.4065 95.9084 15.9464Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="48" height="41" viewBox="0 0 48 41" fill="none"><path d="M47.4283 0.00878906C47.426 4.06043 45.8173 7.94576 42.9549 10.8125C40.0925 13.6792 36.2102 15.2933 32.1596 15.3006H32.1406V8.75563C33.2885 8.75563 34.4251 8.52948 35.4855 8.09011C36.546 7.65073 37.5096 7.00672 38.3212 6.19485C39.1329 5.38298 39.7767 4.41916 40.216 3.3584C40.6552 2.29765 40.8813 1.16074 40.8813 0.0125912L47.4283 0.00878906Z" fill="black"></path><path d="M11.9922 33.414C15.2072 33.6801 17.9872 32.8343 20.0954 30.3169C21.4768 28.6671 22.1361 26.7446 22.0763 24.5931C22.0041 21.973 20.9362 19.8177 18.941 18.1308C16.9459 16.444 14.5764 15.9926 12.0055 16.1741V9.66434C16.7901 9.14071 22.4326 11.163 25.9288 16.1152C29.4441 21.0845 29.579 27.8898 26.1996 33.0729C24.6873 35.4099 22.5629 37.2869 20.0577 38.4996C17.5526 39.7123 14.7628 40.2141 11.9922 39.9504V33.414Z" fill="black"></path><path d="M40.9258 20.875H47.4015V40.0194H40.9258V20.875Z" fill="black"></path><path d="M6.50328 19.1598H0V0.00878906H6.50328V19.1598Z" fill="black"></path></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1101.64 196.79" style="enable-background:new 0 0 1101.64 196.79;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path class="st0" d="M222.34,54.94c-40.02,0-71.29,30.38-71.29,71.05s30.48,70.79,71.29,70.79c40.81,0,71.82-30.64,71.82-71.05 C294.16,85.58,263.68,54.94,222.34,54.94z M222.61,167.47c-22.79,0-39.49-17.7-39.49-41.47c0-24.04,16.43-41.73,39.22-41.73 c23.06,0,39.75,17.96,39.75,41.73S245.4,167.47,222.61,167.47z M302.9,85.85h19.88v108.3h31.8V57.58H302.9V85.85z M71.02,84.26 c16.7,0,29.95,10.3,34.98,25.62h33.66c-6.1-32.75-33.13-54.94-68.37-54.94C31.27,54.94,0,85.32,0,126s30.48,70.79,71.29,70.79 c34.45,0,62.01-22.19,68.11-55.21H106c-4.77,15.32-18.02,25.89-34.72,25.89c-23.06,0-39.22-17.7-39.22-41.47 C32.07,101.96,47.97,84.26,71.02,84.26z M907.12,112.79l-23.32-3.43c-11.13-1.58-19.08-5.28-19.08-14 c0-9.51,10.34-14.26,24.38-14.26c15.37,0,25.18,6.6,27.3,17.43h30.74c-3.45-27.47-24.65-43.58-57.24-43.58 c-33.66,0-55.92,17.17-55.92,41.47c0,23.24,14.58,36.72,43.99,40.94l23.32,3.43c11.4,1.58,17.76,6.08,17.76,14.53 c0,10.83-11.13,15.32-26.5,15.32c-18.82,0-29.42-7.66-31.01-19.28h-31.27c2.92,26.68,23.85,45.43,62.01,45.43 c34.72,0,57.77-15.85,57.77-43.06C950.05,129.43,933.36,116.75,907.12,112.79z M338.68,1.32c-11.66,0-20.41,8.45-20.41,20.07 s8.74,20.07,20.41,20.07c11.66,0,20.41-8.45,20.41-20.07S350.34,1.32,338.68,1.32z M805.36,104.34c0-29.58-18.02-49.39-56.18-49.39 c-36.04,0-56.18,18.23-60.16,46.23h31.54c1.59-10.83,10.07-19.81,28.09-19.81c16.17,0,24.12,7.13,24.12,15.85 c0,11.36-14.58,14.26-32.6,16.11c-24.38,2.64-54.59,11.09-54.59,42.79c0,24.57,18.29,40.41,47.44,40.41 c22.79,0,37.1-9.51,44.26-24.57c1.06,13.47,11.13,22.19,25.18,22.19h18.55v-28.26h-15.64V104.34z M774.09,138.68 c0,18.23-15.9,31.7-35.25,31.7c-11.93,0-22-5.02-22-15.58c0-13.47,16.17-17.17,31.01-18.75c14.31-1.32,22.26-4.49,26.24-10.57 V138.68z M605.28,54.94c-17.76,0-32.6,7.4-43.2,19.81V0h-31.8v194.15h31.27v-17.96c10.6,12.94,25.71,20.6,43.73,20.6 c38.16,0,67.05-30.11,67.05-70.79S642.91,54.94,605.28,54.94z M600.51,167.47c-22.79,0-39.49-17.7-39.49-41.47 s16.96-41.73,39.75-41.73c23.06,0,39.22,17.7,39.22,41.73C639.99,149.77,623.3,167.47,600.51,167.47z M454.22,54.94 c-20.67,0-34.19,8.45-42.14,20.34v-17.7h-31.54v136.56h31.8v-74.22c0-20.87,13.25-35.66,32.86-35.66c18.29,0,29.68,12.94,29.68,31.7 v78.19h31.8v-80.56C506.69,79.24,488.94,54.94,454.22,54.94z M1101.64,121.51c0-39.09-28.62-66.56-67.05-66.56 c-40.81,0-70.76,30.64-70.76,71.05c0,42.53,32.07,70.79,71.29,70.79c33.13,0,59.1-19.55,65.72-47.28h-33.13 c-4.77,12.15-16.43,19.02-32.07,19.02c-20.41,0-35.78-12.68-39.22-34.87h105.21V121.51z M998.28,110.94 c5.04-19.02,19.35-28.26,35.78-28.26c18.02,0,31.8,10.3,34.98,28.26H998.28z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

View File

@ -1,39 +0,0 @@
<svg width="156" height="32" viewBox="0 0 156 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M31.808 8.93488L18.1809 0V4.99554L26.9228 10.6762L25.8943 13.9304H18.1809V18.0696H25.8943L26.9228 21.3238L18.1809 27.0045V32L31.808 23.0937L29.5796 16.0143L31.808 8.93488Z" fill="url(#paint0_linear_536_8492)"/>
<path d="M6.32502 18.0696H14.0099V13.9304H6.29645L5.29656 10.6762L14.0099 4.99554V0L0.382812 8.93488L2.61114 16.0143L0.382812 23.0937L14.0385 32V27.0045L5.29656 21.3238L6.32502 18.0696Z" fill="url(#paint1_linear_536_8492)"/>
<mask id="mask0_536_8492" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="32" height="32">
<path d="M31.808 8.93488L18.1809 0V4.99554L26.9228 10.6762L25.8943 13.9304H18.1809V18.0696H25.8943L26.9228 21.3238L18.1809 27.0045V32L31.808 23.0937L29.5796 16.0143L31.808 8.93488Z" fill="url(#paint2_linear_536_8492)"/>
<path d="M6.32502 18.0696H14.0099V13.9304H6.29645L5.29656 10.6762L14.0099 4.99554V0L0.382812 8.93488L2.61114 16.0143L0.382812 23.0937L14.0385 32V27.0045L5.29656 21.3238L6.32502 18.0696Z" fill="url(#paint3_linear_536_8492)"/>
</mask>
<g mask="url(#mask0_536_8492)">
<rect x="0.400391" width="31.2" height="32" fill="url(#paint4_linear_536_8492)"/>
</g>
<path d="M58.9207 8.7998V11.5974H46.0281V14.46H56.9826V17.2576H46.0281V20.4022H58.9207V23.1998H42.7207V8.7998H58.9207Z" fill="white"/>
<path d="M60.75 23.1998L68.1572 15.9131L60.9598 8.7998H65.5133L70.5913 13.9396L75.4595 8.7998H79.7192L72.5428 15.9131L79.95 23.1998H75.3546L70.5913 17.9082L65.1566 23.1998H60.75Z" fill="white"/>
<path d="M88.8319 8.7998C94.8332 8.7998 98.4422 11.805 98.4422 15.9998C98.4422 20.1946 94.8332 23.1998 88.8319 23.1998C82.8306 23.1998 79.2422 20.1946 79.2422 15.9998C79.2422 11.805 82.8306 8.7998 88.8319 8.7998ZM88.8319 11.492C85.2229 11.492 82.5625 13.3076 82.5625 15.9998C82.5625 18.692 85.2229 20.5076 88.8319 20.5076C92.4615 20.5076 95.1219 18.692 95.1219 15.9998C95.1219 13.3076 92.4615 11.492 88.8319 11.492Z" fill="white"/>
<path d="M110.404 8.7998C115.211 8.7998 118.107 11.4673 118.107 15.9781C118.107 20.5323 115.232 23.1998 110.446 23.1998H100.707V8.7998H110.404ZM114.707 15.9781C114.707 13.1588 113.028 11.5974 109.984 11.5974H104.002V20.4022H109.984C113.028 20.4022 114.707 18.8191 114.707 15.9781Z" fill="white"/>
<path d="M129.005 23.1998C123.944 23.1998 120.105 20.9026 120.105 16.6698V8.7998H123.417V16.3508C123.417 18.967 126.137 20.1794 129.005 20.1794C131.895 20.1794 134.615 18.9883 134.615 16.3508V8.7998H137.905V16.6698C137.905 20.9026 134.088 23.1998 129.005 23.1998Z" fill="white"/>
<path d="M147.174 23.1998C144.455 23.1998 141.523 22.6989 139.441 21.7598L140.525 19.0885C142.394 19.9442 144.965 20.4868 147.28 20.4868C149.936 20.4868 152.421 19.9233 152.421 18.9215C152.421 18.1911 151.635 17.8781 149.999 17.6276L145.368 17.1268C141.799 16.6468 140.057 15.4155 140.057 13.245C140.057 10.4485 143.01 8.7998 147.344 8.7998C149.957 8.7998 153.547 9.2798 155.395 10.1146L154.312 12.6607C152.485 11.9094 149.383 11.5337 147.195 11.5337C144.943 11.5337 143.456 12.0555 143.456 13.0155C143.456 13.6833 144.2 14.0172 146.112 14.2885L150.615 14.7894C154.057 15.2694 155.841 16.4381 155.841 18.7128C155.841 21.5928 152.06 23.1998 147.174 23.1998Z" fill="white"/>
<defs>
<linearGradient id="paint0_linear_536_8492" x1="27.3996" y1="34.2" x2="18.2716" y2="-3.51423" gradientUnits="userSpaceOnUse">
<stop stop-color="#0B46F9"/>
<stop offset="1" stop-color="#BBFBE0"/>
</linearGradient>
<linearGradient id="paint1_linear_536_8492" x1="27.3996" y1="34.2" x2="18.2716" y2="-3.51423" gradientUnits="userSpaceOnUse">
<stop stop-color="#0B46F9"/>
<stop offset="1" stop-color="#BBFBE0"/>
</linearGradient>
<linearGradient id="paint2_linear_536_8492" x1="27.3996" y1="34.2" x2="18.2716" y2="-3.51423" gradientUnits="userSpaceOnUse">
<stop stop-color="#0B46F9"/>
<stop offset="1" stop-color="#BBFBE0"/>
</linearGradient>
<linearGradient id="paint3_linear_536_8492" x1="27.3996" y1="34.2" x2="18.2716" y2="-3.51423" gradientUnits="userSpaceOnUse">
<stop stop-color="#0B46F9"/>
<stop offset="1" stop-color="#BBFBE0"/>
</linearGradient>
<linearGradient id="paint4_linear_536_8492" x1="2.40039" y1="7.2" x2="18.2004" y2="19" gradientUnits="userSpaceOnUse">
<stop offset="0.119792" stop-color="#8952FF" stop-opacity="0.87"/>
<stop offset="1" stop-color="#DABDFF" stop-opacity="0"/>
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -1,9 +0,0 @@
<svg width="165" height="20" viewBox="0 0 165 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M159.636 12.3314L157.311 15.6364L160.101 19.605H164.788L159.636 12.3314ZM160.101 0.377441L157.316 4.35498L159.636 7.65274L164.788 0.377441H160.101ZM151.193 0.377441H146.479L153.331 10.1265L146.696 19.605H151.411L157.933 10.1283L151.193 0.377441Z" fill="white"/>
<path d="M0 8.34838V19.6954H4.00358V12.407C4.00358 12.2055 4.07207 12.0401 4.21087 11.9108C4.34784 11.7815 4.50959 11.7166 4.6941 11.7166H10.2989C10.8867 11.7166 11.3204 11.4048 11.5962 10.7791L12.4521 8.34838H0ZM0 0.369629V3.84827H13.9431C14.5309 3.84827 14.9646 3.55355 15.2402 2.96394L16.2351 0.369629H0Z" fill="white"/>
<path d="M30.5936 1.75048C30.1524 0.829912 29.4716 0.369629 28.551 0.369629H25.4031L17.4512 19.6954H21.6201L27.6399 4.28961L33.5493 19.6954H37.8838L30.5936 1.75048Z" fill="white"/>
<path d="M49.8314 16.1616V1.75048C49.8314 1.36251 49.6982 1.03738 49.4319 0.769076C49.1656 0.50296 48.8385 0.369629 48.4525 0.369629H45.8296V19.6954H58.0877C58.6392 19.6954 59.0635 19.4025 59.3582 18.8131L60.4062 16.1616H49.8314Z" fill="white"/>
<path d="M81.3681 14.6704C81.0923 14.6704 80.8165 14.7637 80.5408 14.948C79.3444 15.8496 77.9996 16.3003 76.5086 16.3003C74.7055 16.3003 73.2048 15.6973 72.0085 14.4915C70.8121 13.2855 70.215 11.8098 70.215 10.0599C70.215 8.25702 70.8083 6.75631 71.9952 5.55997C73.182 4.36363 74.6503 3.76455 76.3982 3.76455C77.9273 3.76455 79.3063 4.24378 80.5408 5.20042C80.8165 5.38493 81.0923 5.47619 81.3681 5.47619C81.6457 5.47619 81.912 5.39458 82.1688 5.22901L84.4054 3.68277C83.523 2.61575 82.3722 1.75037 80.9553 1.08663C79.5364 0.424711 78.0188 0.09375 76.3982 0.09375C74.5039 0.09375 72.7731 0.531266 71.2077 1.40411C69.6444 2.27915 68.4005 3.46583 67.4819 4.96654C66.5614 6.46725 66.1011 8.16376 66.1011 10.0599C66.1011 11.8459 66.5384 13.493 67.4114 15.0032C68.2865 16.5114 69.4959 17.721 71.0424 18.6341C72.5886 19.545 74.3745 19.9997 76.3982 19.9997C77.9273 19.9997 79.3938 19.6782 80.8032 19.0334C82.2105 18.3886 83.3841 17.5252 84.3238 16.4372L82.1688 14.9194C81.912 14.754 81.6457 14.6704 81.3681 14.6704Z" fill="white"/>
<path d="M137.74 0.368896H133.986V14.2539C132.052 11.4511 127.68 5.0548 125.611 2.02607C124.906 0.994206 123.738 0.375999 122.488 0.373085L120.567 0.368896V19.6947H124.351V6.77499L131.751 17.9912C132.453 19.0546 133.642 19.6947 134.916 19.6947H137.74V0.368896Z" fill="white"/>
<path d="M92.1178 4.85057C91.2253 6.36056 90.7788 8.02538 90.7788 9.84685C90.7788 11.7995 91.2526 13.5262 92.2016 15.0253C93.1485 16.5262 94.3999 17.6992 95.9554 18.5443C97.023 19.1254 98.1468 19.5079 99.3308 19.6901V15.9324C98.3126 15.6646 97.4164 15.1307 96.6458 14.3349C95.4764 13.131 94.8917 11.6337 94.8917 9.84685C94.8917 8.04542 95.4764 6.54453 96.6458 5.34783C97.4164 4.55731 98.3126 4.02908 99.3308 3.76133V0C98.0501 0.187611 96.8662 0.59744 95.7771 1.23313C94.2307 2.13658 93.0119 3.34239 92.1178 4.85057ZM109.83 4.68481C108.892 3.19485 107.644 2.02183 106.09 1.16574C105.023 0.579227 103.888 0.193076 102.688 0.00910789V3.75951C103.733 4.02726 104.637 4.56095 105.4 5.36058C106.549 6.56639 107.125 8.06363 107.125 9.84685C107.125 11.6337 106.549 13.131 105.4 14.3349C104.637 15.1346 103.733 15.6701 102.688 15.9378V19.6955C103.972 19.5061 105.158 19.0963 106.241 18.4642C107.786 17.5626 109.006 16.3568 109.899 14.8468C110.791 13.3386 111.238 11.672 111.238 9.84685C111.238 7.89788 110.768 6.17659 109.83 4.68481Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,8 +0,0 @@
<svg width="205" height="58" viewBox="0 0 205 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M87.5298 6.19434V43.3754H105.154V49.6355H80.3522V13.596L87.5298 6.19434Z" fill="white"/>
<path d="M122.553 50.4937C113.356 50.4937 107.13 43.6814 107.13 33.6821C107.13 23.6827 113.658 17.0505 122.553 17.0505C133.056 17.0505 137.326 25.3933 137.384 34.4143C137.384 34.7204 137.384 35.2126 137.326 35.7648H113.716C114.25 41.3467 117.691 44.7858 122.553 44.7858C126.052 44.7858 129.017 43.3753 130.085 40.2423H136.909C135.127 46.6825 129.847 50.4877 122.553 50.4877V50.4937ZM130.619 30.7351C130.201 26.1916 127.654 22.5724 122.553 22.5724C117.453 22.5724 114.424 25.8255 113.774 30.7351H130.619Z" fill="white"/>
<path d="M165.259 23.6167H165.317V5.82076H172.315V49.6355H165.195V44.1736H165.137C164.07 46.9346 160.745 50.4337 155.407 50.4337C147.04 50.4337 141.167 43.7475 141.167 33.6821C141.167 23.6167 146.982 17.1166 155.407 17.1166C160.745 17.1166 164.186 20.6757 165.253 23.6227L165.259 23.6167ZM156.834 44.7258C162.886 44.7258 165.729 39.4501 165.729 33.6821C165.729 27.9142 162.764 22.8245 156.834 22.8245C150.904 22.8245 147.997 27.5481 147.997 33.6821C147.997 39.8162 151.02 44.7258 156.834 44.7258Z" fill="white"/>
<path d="M184.773 17.9088V23.4907C186.374 19.8715 189.223 17.0505 193.97 17.0505C201.919 17.0505 205 22.5123 205 29.8108V49.6294H198.176V31.2813C198.176 26.3716 196.575 23.1846 192.304 23.1846C188.034 23.1846 184.889 26.9898 184.889 34.9065V49.6354H178.007V17.9088H184.773Z" fill="white"/>
<path d="M41.7729 44.6052L30.1691 56.7257H0V12.8015L12.2596 0V44.6052H41.7729Z" fill="white"/>
<path d="M13.7738 12.8354L25.3776 0.703345H55.5467V44.6214L43.2871 57.4291V12.8354H13.7738Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,15 +0,0 @@
<svg width="258" height="32" viewBox="0 0 258 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22.1471 15.9873C14.9314 15.9873 7.71574 30 0.5 30V16.0125C8.00136 16.0125 15.2169 2 22.1471 2V15.9873Z" fill="#FEFEFE"/>
<path d="M43.8201 15.9873C36.6043 15.9873 29.3886 30 22.1729 30V16.0125C29.6741 16.0125 36.8899 2 43.8201 2V15.9873Z" fill="#FEFEFE"/>
<path d="M60.4996 21.9231C60.4996 26.3838 56.7687 29.9999 52.1663 29.9999C47.564 29.9999 43.833 26.3838 43.833 21.9231C43.833 17.4623 47.564 13.8459 52.1663 13.8459C56.7687 13.8459 60.4996 17.4623 60.4996 21.9231Z" fill="#FEFEFE"/>
<path d="M74.5 0.731934H79.8027L86.904 18.0016H87.1843L94.2857 0.731934H99.5883V24.565H95.4303V8.19139H95.2084L88.5976 24.4951H85.4908L78.8799 8.15648H78.658V24.565H74.5V0.731934Z" fill="#FEFEFE"/>
<path d="M105.761 31.268C105.185 31.268 104.652 31.2215 104.161 31.1284C103.678 31.043 103.293 30.9422 103.005 30.8258L103.986 27.5441C104.601 27.7225 105.15 27.8079 105.633 27.8001C106.116 27.7924 106.54 27.6411 106.906 27.3463C107.28 27.0592 107.595 26.5782 107.852 25.9033L108.214 24.9374L101.708 6.69019H106.194L110.328 20.1894H110.515L114.661 6.69019H119.158L111.975 26.7295C111.64 27.676 111.196 28.4867 110.644 29.1617C110.091 29.8444 109.413 30.3642 108.611 30.7211C107.817 31.0857 106.867 31.268 105.761 31.268Z" fill="#FEFEFE"/>
<path d="M135.277 11.4149L131.422 11.8338C131.313 11.4459 131.122 11.0813 130.85 10.7399C130.585 10.3986 130.227 10.1232 129.775 9.9137C129.324 9.70423 128.771 9.5995 128.117 9.5995C127.237 9.5995 126.497 9.78957 125.898 10.1697C125.306 10.5499 125.014 11.0425 125.022 11.6477C125.014 12.1674 125.205 12.5903 125.594 12.9161C125.991 13.242 126.645 13.5096 127.556 13.7191L130.616 14.3708C132.314 14.7354 133.575 15.3134 134.401 16.1047C135.234 16.896 135.654 17.9318 135.662 19.2118C135.654 20.3368 135.323 21.3298 134.669 22.191C134.023 23.0444 133.124 23.7116 131.971 24.1926C130.819 24.6736 129.495 24.9141 128 24.9141C125.804 24.9141 124.037 24.4564 122.697 23.5409C121.358 22.6177 120.56 21.3337 120.303 19.689L124.426 19.2933C124.613 20.1002 125.01 20.7092 125.617 21.1204C126.225 21.5315 127.015 21.7371 127.988 21.7371C128.993 21.7371 129.799 21.5315 130.406 21.1204C131.021 20.7092 131.329 20.201 131.329 19.5959C131.329 19.0838 131.13 18.661 130.733 18.3274C130.344 17.9938 129.736 17.7378 128.911 17.5594L125.851 16.9193C124.13 16.5624 122.857 15.9612 122.032 15.1155C121.206 14.2621 120.797 13.1838 120.805 11.8804C120.797 10.7787 121.097 9.82449 121.705 9.01764C122.32 8.20303 123.172 7.57462 124.263 7.13241C125.36 6.68244 126.626 6.45745 128.058 6.45745C130.161 6.45745 131.815 6.90354 133.022 7.79573C134.237 8.68792 134.989 9.89431 135.277 11.4149Z" fill="#FEFEFE"/>
<path d="M147.12 6.69019V9.94862H136.807V6.69019H147.12ZM139.353 2.40769H143.581V19.1886C143.581 19.7549 143.667 20.1894 143.838 20.4919C144.017 20.7868 144.251 20.9885 144.539 21.0971C144.827 21.2057 145.146 21.26 145.497 21.26C145.761 21.26 146.003 21.2406 146.221 21.2018C146.447 21.163 146.618 21.1281 146.735 21.0971L147.447 24.3904C147.221 24.468 146.898 24.5533 146.478 24.6464C146.065 24.7395 145.559 24.7938 144.959 24.8094C143.9 24.8404 142.947 24.6813 142.098 24.3322C141.249 23.9754 140.576 23.4245 140.077 22.6797C139.587 21.935 139.345 21.004 139.353 19.8868V2.40769Z" fill="#FEFEFE"/>
<path d="M157.419 24.9141C155.62 24.9141 154.067 24.5417 152.759 23.7969C151.459 23.0444 150.458 21.9815 149.757 20.6083C149.056 19.2274 148.706 17.602 148.706 15.7323C148.706 13.8936 149.056 12.2799 149.757 10.8912C150.466 9.49476 151.455 8.40862 152.724 7.63281C153.993 6.84924 155.484 6.45745 157.197 6.45745C158.303 6.45745 159.346 6.63589 160.327 6.99276C161.316 7.34188 162.188 7.88495 162.944 8.62197C163.707 9.359 164.306 10.2977 164.742 11.4382C165.179 12.5709 165.397 13.9208 165.397 15.4879V16.7797H150.692V13.9402H161.344C161.336 13.1333 161.161 12.4157 160.818 11.7873C160.475 11.1511 159.997 10.6507 159.381 10.2861C158.774 9.92146 158.065 9.73915 157.256 9.73915C156.391 9.73915 155.632 9.94862 154.978 10.3676C154.324 10.7787 153.814 11.3218 153.448 11.9968C153.09 12.664 152.907 13.3971 152.899 14.1962V16.6749C152.899 17.7145 153.09 18.6067 153.471 19.3515C153.853 20.0885 154.386 20.6549 155.072 21.0505C155.757 21.4384 156.559 21.6324 157.478 21.6324C158.093 21.6324 158.649 21.5471 159.148 21.3764C159.646 21.1979 160.078 20.938 160.444 20.5967C160.81 20.2553 161.087 19.8325 161.274 19.3282L165.221 19.7704C164.972 20.81 164.497 21.7177 163.796 22.4935C163.103 23.2616 162.216 23.859 161.133 24.2857C160.051 24.7046 158.813 24.9141 157.419 24.9141Z" fill="#FEFEFE"/>
<path d="M172.215 14.0915V24.565H167.987V6.69019H172.028V9.72751H172.238C172.651 8.72671 173.309 7.9315 174.212 7.34188C175.123 6.75226 176.248 6.45745 177.588 6.45745C178.826 6.45745 179.904 6.72123 180.823 7.24878C181.75 7.77633 182.466 8.54051 182.972 9.54131C183.486 10.5421 183.739 11.7563 183.731 13.1838V24.565H179.503V13.8354C179.503 12.6407 179.192 11.7058 178.569 11.0309C177.954 10.3559 177.101 10.0184 176.011 10.0184C175.271 10.0184 174.613 10.1814 174.037 10.5072C173.469 10.8253 173.021 11.2869 172.694 11.892C172.375 12.4972 172.215 13.2303 172.215 14.0915Z" fill="#FEFEFE"/>
<path d="M191.818 24.565V0.731934H194.002V22.6099H205.402V24.565H191.818Z" fill="#FEFEFE"/>
<path d="M213.911 24.9723C212.828 24.9723 211.839 24.7628 210.944 24.3439C210.049 23.9172 209.336 23.3043 208.807 22.5052C208.277 21.6983 208.012 20.7208 208.012 19.5726C208.012 18.6882 208.18 17.9434 208.515 17.3383C208.849 16.7331 209.324 16.2366 209.94 15.8487C210.555 15.4608 211.283 15.1543 212.124 14.9293C212.965 14.7044 213.891 14.5298 214.904 14.4057C215.908 14.2815 216.757 14.1729 217.45 14.0798C218.15 13.9867 218.684 13.8393 219.05 13.6376C219.416 13.4359 219.599 13.1101 219.599 12.6601V12.2411C219.599 11.0231 219.233 10.065 218.501 9.36676C217.777 8.66076 216.733 8.30777 215.371 8.30777C214.078 8.30777 213.023 8.59094 212.205 9.15728C211.396 9.72363 210.827 10.3908 210.5 11.1589L208.526 10.449C208.931 9.47149 209.492 8.6918 210.208 8.10994C210.925 7.52032 211.727 7.0975 212.614 6.84148C213.502 6.5777 214.401 6.44581 215.312 6.44581C215.998 6.44581 216.71 6.53503 217.45 6.71347C218.197 6.8919 218.89 7.20223 219.529 7.64445C220.167 8.0789 220.685 8.68792 221.082 9.47149C221.479 10.2473 221.678 11.2326 221.678 12.4273V24.565H219.599V21.7371H219.47C219.221 22.2647 218.851 22.7767 218.361 23.2732C217.87 23.7698 217.255 24.1771 216.515 24.4951C215.776 24.8132 214.907 24.9723 213.911 24.9723ZM214.191 23.0754C215.297 23.0754 216.254 22.831 217.064 22.3423C217.874 21.8535 218.497 21.2057 218.933 20.3988C219.377 19.5842 219.599 18.6882 219.599 17.7106V15.1272C219.443 15.2746 219.182 15.4065 218.816 15.5228C218.458 15.6392 218.041 15.744 217.567 15.8371C217.099 15.9224 216.632 15.9961 216.165 16.0582C215.698 16.1202 215.277 16.1745 214.904 16.2211C213.891 16.3452 213.027 16.5392 212.311 16.8029C211.594 17.0667 211.045 17.4314 210.664 17.8968C210.282 18.3546 210.091 18.9442 210.091 19.6657C210.091 20.7518 210.481 21.5936 211.259 22.191C212.038 22.7806 213.015 23.0754 214.191 23.0754Z" fill="#FEFEFE"/>
<path d="M226.654 24.565V0.731934H228.744V10.0999H228.931C229.165 9.56459 229.5 9.01376 229.936 8.44741C230.38 7.88107 230.96 7.40782 231.676 7.02767C232.4 6.63977 233.311 6.44581 234.409 6.44581C235.881 6.44581 237.173 6.83372 238.287 7.60953C239.4 8.37759 240.268 9.45597 240.891 10.8447C241.514 12.2256 241.826 13.8354 241.826 15.6741C241.826 17.5206 241.514 19.1381 240.891 20.5269C240.276 21.9156 239.412 22.9978 238.298 23.7736C237.193 24.5495 235.908 24.9374 234.444 24.9374C233.354 24.9374 232.443 24.7434 231.711 24.3555C230.987 23.9676 230.403 23.4905 229.959 22.9241C229.515 22.35 229.173 21.7914 228.931 21.2484H228.674V24.565H226.654ZM228.709 15.6392C228.709 17.0822 228.923 18.3623 229.352 19.4795C229.788 20.5889 230.411 21.4617 231.22 22.0979C232.038 22.7263 233.027 23.0405 234.187 23.0405C235.379 23.0405 236.387 22.7147 237.212 22.063C238.038 21.4035 238.664 20.5152 239.093 19.398C239.521 18.2809 239.735 17.0279 239.735 15.6392C239.735 14.266 239.521 13.0286 239.093 11.9269C238.672 10.8253 238.049 9.95249 237.224 9.30857C236.399 8.65688 235.386 8.33104 234.187 8.33104C233.019 8.33104 232.026 8.64525 231.209 9.27366C230.399 9.89431 229.78 10.7555 229.352 11.8571C228.923 12.951 228.709 14.2117 228.709 15.6392Z" fill="#FEFEFE"/>
<path d="M257.46 10.6119L255.556 11.1473C255.369 10.6119 255.104 10.1271 254.761 9.6926C254.419 9.25814 253.971 8.9129 253.418 8.65688C252.873 8.40087 252.196 8.27286 251.386 8.27286C250.171 8.27286 249.175 8.55991 248.396 9.13401C247.617 9.70811 247.228 10.449 247.228 11.3567C247.228 12.1248 247.493 12.7493 248.022 13.2303C248.559 13.7036 249.385 14.0798 250.498 14.3591L253.208 15.0224C254.711 15.3871 255.836 15.9651 256.584 16.7564C257.339 17.5477 257.716 18.5408 257.716 19.7355C257.716 20.7441 257.436 21.6401 256.876 22.4237C256.315 23.2073 255.532 23.8241 254.528 24.274C253.531 24.7163 252.375 24.9374 251.059 24.9374C249.307 24.9374 247.863 24.5456 246.726 23.762C245.589 22.9707 244.861 21.8302 244.542 20.3407L246.539 19.8519C246.796 20.9148 247.298 21.7177 248.046 22.2608C248.801 22.8039 249.794 23.0754 251.024 23.0754C252.402 23.0754 253.504 22.769 254.329 22.1561C255.155 21.5354 255.567 20.7596 255.567 19.8286C255.567 19.1071 255.326 18.502 254.843 18.0132C254.36 17.5167 253.629 17.1521 252.647 16.9193L249.716 16.2211C248.158 15.8487 247.006 15.2591 246.259 14.4522C245.511 13.6454 245.137 12.6446 245.137 11.4498C245.137 10.4645 245.406 9.5995 245.943 8.85472C246.48 8.10218 247.22 7.51256 248.162 7.08586C249.105 6.65916 250.179 6.44581 251.386 6.44581C253.029 6.44581 254.341 6.8182 255.322 7.56298C256.311 8.30001 257.023 9.31633 257.46 10.6119Z" fill="#FEFEFE"/>
</svg>

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

View File

@ -1 +0,0 @@
<svg width="146" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M91.377 0H95.08v24.697H91.378V0ZM30.973 21.34V8.375h3.94V5.007h-4.261c.25-.312.451-.661.594-1.035.268-.678.41-1.545.396-2.711V0h-3.567v1.303a4.746 4.746 0 0 1-.438 2.148c-.465.953-1.458 2.006-3.616 2.512l-.23.055v2.357h3.444v13.849c.002.655.264 1.282.728 1.746a2.493 2.493 0 0 0 1.751.728h5.256v-3.36h-3.997Zm30.4-13.062c1.438-2.047 3.348-3.245 5.66-3.245h1.846v3.58h-2.253c-1.578 0-2.846.512-3.744 1.591-.897 1.08-1.434 2.763-1.434 5.16v9.335H57.67V5.033h3.702v3.245Zm80.586-3.245h3.613l.428.014-.157.395-9.433 24.384-.23-.088.028.011.198.077a3.563 3.563 0 0 1-3.2 2.174h-4.182v-3.324h4.053l1.696-4.278-7.394-18.97-.156-.395h4.162l.071.198 5.202 14.488L141.89 5.23l.069-.198Zm-91.793 0h3.737v19.671H50.35v-2.426c-1.403 1.948-3.466 2.87-5.993 2.87-2.572 0-4.33-.752-5.408-2.06-1.078-1.308-1.474-3.134-1.474-5.21V5.032h3.74v13.206c0 1.099.346 1.978.952 2.58.607.603 1.497.96 2.634.96 1.835 0 3.159-.606 4.037-1.602.878-.995 1.328-2.412 1.328-4.078V5.033Zm67.602-.443c-2.796 0-5.101 1.028-6.702 2.846s-2.475 4.387-2.475 7.447c0 3.061.905 5.648 2.532 7.448 1.627 1.8 3.964 2.81 6.756 2.81 2.222 0 4.13-.636 5.622-1.808 1.492-1.172 2.549-2.861 3.1-4.94l.099-.373h-3.851l-.071.197c-.848 2.33-2.594 3.604-4.899 3.604-1.657 0-2.933-.62-3.841-1.66-.858-.988-1.397-2.359-1.595-3.981h14.284l.03-.263c.032-.342.045-.686.038-1.03 0-3.056-.836-5.631-2.396-7.445s-3.835-2.852-6.631-2.852Zm-5.194 8.189c.264-1.383.811-2.583 1.621-3.436a4.753 4.753 0 0 1 3.567-1.467 4.634 4.634 0 0 1 3.409 1.374c.812.828 1.387 2.023 1.672 3.529h-10.269ZM81.126 4.59c-2.527 0-4.59.921-5.993 2.87V5.033H71.58v19.665h3.738V13.633c0-1.666.45-3.083 1.327-4.08.878-.999 2.202-1.601 4.037-1.601 1.138 0 2.028.357 2.634.96.606.603.953 1.482.953 2.58v13.209h3.74V11.856c0-2.075-.397-3.9-1.475-5.209-1.078-1.308-2.836-2.057-5.408-2.057Zm28.581.494-9.817 9.793 9.81 9.788-4.954-.01-7.166-7.15a3.712 3.712 0 0 1 0-5.254l7.184-7.167h4.943Z" fill="#050A0B"/><g clip-path="url('#clip0_1151_3277')" fill="#050A0B"><path d="m8.023 11.354 6.518 14.253H0l6.518-14.253a.828.828 0 0 1 1.505 0ZM7.27 9.145a4.576 4.576 0 0 0 4.579-4.572A4.576 4.576 0 0 0 7.269 0a4.576 4.576 0 0 0-4.578 4.573A4.576 4.576 0 0 0 7.27 9.145Z"/></g><defs><clipPath id="clip0_1151_3277"><path fill="#fff" d="M0 0h14.54v25.607H0z"/></clipPath></defs></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,122 +0,0 @@
[
{
"link": "https://www.wired.com/story/the-untold-story-of-solarwinds-the-boldest-supply-chain-hack-ever/",
"description": "SolarWind: The Untold Story of the Boldest Supply-Chain Hack Ever"
},
{
"link": "https://www.theverge.com/2018/4/24/17275982/myetherwallet-hack-bgp-dns-hijacking-stolen-ethereum",
"description": "Hackers emptied Ethereum wallets by breaking the basic infrastructure of the internet"
},
{
"link": "https://milksad.info/",
"description": "A practical explanation of how weak entropy can ruin your day - and your savings."
},
{
"link": "https://thehackerblog.com/zero-days-without-incident-compromising-angular-via-expired-npm-publisher-email-domains-7kZplW4x/",
"description": "Compromising Angular via Expired npm Publisher Email Domains"
},
{
"link": "https://blog.ryotak.net/post/homebrew-security-incident-en/",
"description": "Remote code execution in Homebrew by compromising the official Cask repository"
},
{
"link": "https://gizmodo.com/u-s-federal-investigators-are-reportedly-looking-into-1846707144link4",
"description": "U.S. Federal Investigators Are Reportedly Looking Into Codecov Security Breach, Undetected for Months"
},
{
"link": "https://www.bleepingcomputer.com/news/security/big-sabotage-famous-npm-package-deletes-files-to-protest-ukraine-war/",
"description": "BIG sabotage: Famous npm package deletes files to protest Ukraine war"
},
{
"link": "https://certitude.consulting/blog/en/invisible-backdoor/",
"description": "The Invisible JavaScript Backdoor"
},
{
"link": "https://thehackernews.com/2022/06/multiple-backdoored-python-libraries.html?m=1",
"description": "Multiple Backdoored Python Libraries Caught Stealing AWS Secrets and Keys"
},
{
"link": "https://www.wired.com/story/3cx-supply-chain-attack-times-two/",
"description": "The Huge 3CX Breach Was Actually 2 Linked Supply Chain Attacks"
},
{
"link": "https://www.zdnet.com/article/iota-cryptocurrency-shuts-down-entire-network-after-wallet-hack/",
"description": "IOTA cryptocurrency shuts down entire network after wallet hack "
},
{
"link": "https://arstechnica.com/information-technology/2021/02/supply-chain-attack-that-fooled-apple-and-microsoft-is-attracting-copycats/",
"description": "New type of supply-chain attack hit Apple, Microsoft and 33 other companies"
},
{
"link": "https://www.bankinfosecurity.com/crypto-exchange-klayswap-loses-19m-after-bgp-hijack-a-18518",
"description": "Crypto Exchange KLAYswap Loses $1.9M After BGP Hijack"
},
{
"link": "https://www.businessinsider.com/kidnapped-crypto-exec-released-after-paying-1-million-bitcoin-ransom-2017-12",
"description": "A kidnapped crypto executive was reportedly released after paying a $1 million bitcoin ransom"
},
{
"link": "https://www.independent.co.uk/tech/bitcoin-robbery-torture-cryptocurrency-netherlands-a8807986.html",
"description": "Bitcoin trader brutally tortured with drill in cryptocurrency robbery"
},
{
"link": "https://www.vice.com/en/article/ne4pvg/police-in-ottawa-canada-charged-a-teen-with-armed-bitcoin-robbery-are-hunting-two-suspects",
"description": "Three Armed Men Attempted to Rob a Bitcoin Exchange In Canada"
},
{
"link": "https://www.birminghammail.co.uk/news/midlands-news/watch-masked-raiders-hold-up-16599570",
"description": "Watch - Masked raiders hold up Bitcoin Exchange store in Sparkhill in front of dozens of witnesses"
},
{
"link": "https://www.nzherald.co.nz/nz/crypto-heist-raiders-steal-safe-containing-4m-in-cryptocurrency-from-westmere-home/PI3L5LMS6PCSVABJDYSW5O4YGA/",
"description": "Crypto heist: Raiders steal safe containing $4m in cryptocurrency from Westmere home"
},
{
"link": "https://www.computerworld.com/article/2538534/data-center-robbery-leads-to-new-thinking-on-security.html",
"description": "Data center robbery leads to new thinking on security"
},
{
"link": "https://www.thirdsector.co.uk/plan-uk-alerts-supporters-theft-computer-servers-its-offices/management/article/1375208",
"description": "Plan UK alerts supporters to theft of computer servers from its offices"
},
{
"link": "https://www.pcmag.com/news/vudu-resets-passwords-after-user-data-stolen-in-burglary",
"description": "Vudu Resets Passwords After User Data Stolen in Burglary"
},
{
"link": "https://finance.yahoo.com/news/hackers-scored-data-center-logins-020028440.html",
"description": "Hackers Scored Data Center Logins for Some of the World's Biggest Companies"
},
{
"link": "https://www.cbsnews.com/news/nsa-broke-into-yahoo-and-google-data-centers-around-world-report-says/",
"description": "NSA broke into Yahoo and Google data centers around world, report says"
},
{
"link": "https://www.vice.com/en/article/3kxy4k/high-tech-japanese-hotel-service-robots-easily-hackable",
"description": "High-Tech Japanese Hotel Finds Out Its Service Robots Are Easily Hackable"
},
{
"link": "https://www.washingtonpost.com/news/innovations/wp/2017/07/21/how-a-fish-tank-helped-hack-a-casino/",
"description": "How a fish tank helped hack a casino"
},
{
"link": "https://www.wsj.com/articles/fraudsters-use-ai-to-mimic-ceos-voice-in-unusual-cybercrime-case-11567157402",
"description": "Fraudsters Used AI to Mimic CEO's Voice in Unusual Cybercrime Case"
},
{
"link": "https://www.forbes.com/sites/iainmartin/2023/08/21/blockchain-capitals-bart-stephens-lost-63-million-in-sim-swap-crypto-hack/?sh=6cc4576bf74c",
"description": "Blockchain Capital's Bart Stephens Lost $6.3 Million In SIM-Swap Crypto Hack"
},
{
"link": "https://www.wsj.com/articles/he-thought-his-phone-was-secure-then-he-lost-24-million-to-hackers-11573221600",
"description": "He Thought His Phone Was Secure; Then He Lost $24 Million to Hackers"
},
{
"link": "https://arstechnica.com/information-technology/2018/02/tesla-cloud-resources-are-hacked-to-run-cryptocurrency-mining-malware/",
"description": "Tesla cloud resources are hacked to run cryptocurrency-mining malware"
},
{
"link": "https://www.wired.com/story/sea-turtle-dns-hijacking/",
"description": "Cyberspies Hijacked the Internet Domains of Entire Countries"
}
]

View File

@ -1,65 +0,0 @@
const collapsibleButton = document.querySelector("#hamburger-menu");
const menuContent = document.querySelector(".menu-content");
collapsibleButton.addEventListener("click", function () {
menuContent.classList.toggle("active");
if (menuContent.style.display === "block") {
menuContent.style.display = "none";
} else {
menuContent.style.display = "block";
}
});
document.addEventListener('DOMContentLoaded', function () {
fetch('../assets/js/carousel-items.json')
.then(response => response.json())
.then(data => {
createCarouselItems(data);
initializeCarousel();
})
.catch(error => console.error('Error loading JSON:', error));
});
function createCarouselItems(items) {
const carousel = document.querySelector('#carousel');
items.forEach(item => {
const itemDiv = document.createElement('div');
itemDiv.className = 'carousel-item'
const link = document.createElement('a');
link.className = 'carousel-link';
link.href = item.link;
link.target = '_blank';
link.rel = 'noopener noreferrer';
const linkText = document.createTextNode(item.description);
link.appendChild(linkText);
itemDiv.appendChild(link);
carousel.appendChild(itemDiv);
});
}
function initializeCarousel() {
const carousel = document.querySelector('#carousel');
const items = Array.from(carousel.children);
const totalItems = items.length;
const middleIndex = Math.floor(totalItems / 2);
let currentIndex = -middleIndex;
function cycleItems() {
currentIndex = (currentIndex - 1 + totalItems) % totalItems;
updateCarouselItems();
}
function updateCarouselItems() {
items.forEach((item, index) => {
let positionIndex = (currentIndex + index + totalItems) % totalItems;
let offset = positionIndex - middleIndex;
item.style.transform = `translateY(${offset * 100}%)`;
item.classList.toggle('active', positionIndex === middleIndex);
item.style.visibility = 'visible';
});
}
updateCarouselItems();
setInterval(cycleItems, 7000);
}

View File

@ -1,190 +0,0 @@
anton@distrust.co
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGI/PwIBEACfbDXsSIoZzZP8jrk7h2D98bUW2lRYxxpRqjLfvr5M1z3VNHCC
HaHXIPhqTdu6BXWKJJxcdkvp4z5u6aykcAjcRi0MpcTX5tU9RnSvA1HIdDmLukIy
JFEPHxoCeeFBSgmtWYczn3eSmsAQBKCLFsEmVyjpivGlphFAfzcDqtKLhaQVjVU8
YTPty7JIoiYSvCXTHCdYenfQmbpldFuT/60xsc9PJP6wMGdszDc16XIPZUKBfRtf
qPQZPN37SHczuqCrrOr+8+4q1ZcxBRAZxcPpfPk7WG1UDfTZFLvEdNCIaG0+FDkQ
8yvrS/GC9UgO3uRieZ8K4Cd0iMR96nvizqQFHvB/Wn1VwGlptYnlbEcVXttV7v1F
PBtojkEALKXNUxupesnu4YgY09pJAqdhLB89Yk+7SBZWY7C8Ero79f6+ClkHWzM5
WJHOubKf91syeyqjlqdaxlHhVWH3gqpvFy42seXlmwPSRaKNuaHSwXizPmHinnSs
2uFaRdKevJ4MuhjIxXQlMRFzC74X8CIW5IJ4vK+zcslBFCpe1CuwDQoesY2Wblv+
E40YgtUDuDKO1keintjtxD1z5/8SUFLNQhUPx0v08P+p6C3AaVL5s2OtH7KJiDaP
SuT+V66FaKYLBmi0+ogIuStEJ8abtoRoWj9TWEMhrtnPv+5Qocr32cPgSQARAQAB
tB5BbnRvbiBMaXZhamEgPGFudG9uQGxpdmFqYS5tZT6JAlQEEwEKAD4WIQT0v1yB
7Hil3TQcke7cS30fUuC6TQUCYj8/AgIbAQUJA8JnAAULCQgHAgYVCgkICwIEFgID
AQIeAQIXgAAKCRDcS30fUuC6TRDOD/9DTjXjXvQJEBP0O0DCNEYSOxEeecZNslNo
5z9G7skCjzKU4Ytl7X1w/xE+LtpqrluDXzomLcoHPa5KN3kaiSwnzYXe4FWwv2Xd
1TmPyDzJJ8A/DGGOjYndVSpYKO2kKuxT/S2xg4KrfXr/oc8mIR0rqs3a/46GMqHR
sz4D5Gm62XfK/x+WIHbHi+CQsHAzwfBKUzReeqROLicJya/QKOaMDMtQpoMcTHPs
hLj1uKwl6ThGKM8cEzQvFxv1PknCOcqDdIMTrNHIsgY7VWs/bohGCZ7nf3lJ9aMY
17vZ0RrslJz+wCLUSxgEFqcJwsauHqEttTGAy+Uqi8Iunr9WP+unXsvmjNEWCkpr
OSP6wAb9KaLHc0dL22vRuOtAeLGE4vRrm+++uTuehz2tYHGKP3+AjHXeNTg5ejRe
34KPzl/LbxTDRyqx9n/XdLQLVvOxwo8ecm+bDsFqQ7of16C9/v7FJBGtcLVpQzVe
MD7d/6ABL73MtdGpJNC63fwPZnuNrEIrRKuOmpOq4YZsHmqqzgeuQAochd5PLt+N
Nti+FZ94/WiN5EKzjQO2HsmbXXJslY8lvsz5WHA5K68DMdb6ae0fBzRB4Jdg1+7y
F2LXE5k9rPDC0G0lyCEtZJWDhk4QbR5tEw/EQ0dH73843K2c4YoZjmw59DVMe8LO
rlrlm0qr7IkDSQQTAQoBMwIbAQULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAIZAVMU
gAAAAAAQADpwcm9vZkBhcmlhZG5lLmlkaHR0cHM6Ly90d2l0dGVyLmNvbS9hbnRv
bmxpdmFqYS9zdGF0dXMvMTc2MDczMzM2OTIzNzk1MDUyNzUUgAAAAAAQABxwcm9v
ZkBhcmlhZG5lLmlkZG5zOmFudG9ubGl2YWphLmNvbT90eXBlPVRYVDcUgAAAAAAQ
AB5wcm9vZkBhcmlhZG5lLmlkaHR0cHM6Ly9tYXN0b2Rvbi5vbmxpbmUvQGFudG9u
LxSAAAAAABAAFnByb29mQGFyaWFkbmUuaWRkbnM6bGl2YWphLm1lP3R5cGU9VFhU
FiEE9L9cgex4pd00HJHu3Et9H1Lguk0FAmYEi+AFCQeHs94ACgkQ3Et9H1Lguk3S
DBAAlvb+co0gPU0qJXOZld3UBY8stUK1VYeayWTHJ9977lnZzJ+gKUalbhsKvj5K
i7w6l2Xe+4VJzjpmc1I0pAR9anoKwscR/bdseXuXQJJ6x7E3Xn3ZZNyfk1M8jVns
KeTQ17quVy9m8qYJ3057sQ/oxXACYAD1D+mjhS5FrFU6XfBcEvaRYT26TEAwYadZ
I/KNFZfnEs0ZGDgiw14lrTCkMZuEyWNm0/2qVIC3FCSNTm51NRMmD3YbM4VgAc+l
nk9f9bRurGA2rUZJ/BNvGvalhD1rwxWg71XeXvnbk7+UqCkdtNfRtmVAvdpJ+EzW
VbRSX2CgJHff+E4yv5cCI1sB6GD9ODDTucPTY+uMuZOXM2k9k6lSt2wDp2FJ6bpo
IRoUl1D4pSNQEsGA1znL+CZLC9IEih+EXxfALzV2sy+laaTkMJCmXJQOke5egDhk
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
fbv5KWxmjZSWuLgbNQWxS4RKyNwed3VV4w==
=azKT
-----END PGP PUBLIC KEY BLOCK-----

1199
config/busybox.config Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,21 @@
--- ---
title: Contact title: /contact
layout: contact layout: home
permalink: /contact.html permalink: /contact.html
--- ---
## Team
- Lance Vick \<[lance@distrust.co](mailto:lance@distrust.co)\> [6B61 ECD7 6088 748C 7059 0D55 E90A 4013 36C8 AAA9](https://keys.openpgp.org/vks/v1/by-fingerprint/6B61ECD76088748C70590D55E90A401336C8AAA9)
- Ryan Heywood \<[ryan@distrust.co](mailto:ryan@distrust.co)\> [8882 3A75 ECAA 786B 0FF3 8B14 8E40 1478 A3FB EF72](https://keys.openpgp.org/vks/v1/by-fingerprint/88823A75ECAA786B0FF38B148E401478A3FBEF72)
- Anton Livaja \<[anton@distrust.co](mailto:anton@distrust.co)\> [F4BF 5C81 EC78 A5DD 341C 91EE DC4B 7D1F 52E0 BA4D](https://keys.openpgp.org/vks/v1/by-fingerprint/F4BF5C81EC78A5DD341C91EEDC4B7D1F52E0BA4D)
- Shane Engelman \<[shane@distrust.co](mailto:shane@distrust.co)\> [3D7C 8D39 E8C4 DF77 1583 D3F0 A8A0 91FD 3460 01CA](https://keys.openpgp.org/vks/v1/by-fingerprint/3D7C8D39E8C4DF771583D3F0A8A091FD346001CA)
## Sales
- [sales@distrust.co](mailto:sales@distrust.co)
## General
- [team@distrust.co](mailto:team@distrust.co)

View File

@ -1,5 +1,9 @@
--- ---
title: Home title: /home
layout: landing layout: home
permalink: /index.html permalink: /index.html
--- ---
We are a group of pentesters, software engineers, and security architects that believe security compromises to your systems and personnel are *inevitable*.
We specialize in helping you understand and mitigate the hard security problems most won't see coming.

View File

@ -1,5 +0,0 @@
---
title: Services
layout: services
permalink: /services.html
---

View File

@ -1,5 +0,0 @@
---
title: Tools
layout: tools
permalink: /tools.html
---