<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>AttackPointSecurity</title>
    <subtitle>Personal blog — cybersecurity, cloud infrastructure, and engineering.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://attackpointsecurity.com/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://attackpointsecurity.com"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-03-20T00:00:00+00:00</updated>
    <id>https://attackpointsecurity.com/atom.xml</id>
    <entry xml:lang="en">
        <title>Rethinking Logging in the Age of LLMs</title>
        <published>2026-03-20T00:00:00+00:00</published>
        <updated>2026-03-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://attackpointsecurity.com/blog/rethinking-logging-in-the-age-of-llms/"/>
        <id>https://attackpointsecurity.com/blog/rethinking-logging-in-the-age-of-llms/</id>
        
        <content type="html" xml:base="https://attackpointsecurity.com/blog/rethinking-logging-in-the-age-of-llms/">&lt;p&gt;You normally have &lt;code&gt;Error&lt;&#x2F;code&gt;, &lt;code&gt;Warning&lt;&#x2F;code&gt;, &lt;code&gt;Info&lt;&#x2F;code&gt;, and &lt;code&gt;Debug&lt;&#x2F;code&gt; as your levels for logging. It&#x27;s worked well. In dev, you run at &lt;code&gt;Info&lt;&#x2F;code&gt;, and in cases where you really need to dive deeper, you switch to &lt;code&gt;Debug&lt;&#x2F;code&gt; so you can trace what the program is doing. In prod, you might keep it to &lt;code&gt;Warning&lt;&#x2F;code&gt; or &lt;code&gt;Error&lt;&#x2F;code&gt;, only catching core problems and keeping your logging infrastructure from generating and processing lots of unneeded information. This has worked out very well and is a multi-billion dollar industry in itself.&lt;&#x2F;p&gt;
&lt;p&gt;I think this needs to change with the advent of LLMs and the extensive use of coding agents. A large part of getting a good result from an LLM or agent is the context you feed it. Too little and the agent has to guess, usually incorrectly, or it starts hallucinating. Too much context can have the same result; the agent can no longer see the forest for the trees, you might say. Providers like OpenAI, Anthropic, and Google now offer context windows up to 1 million tokens, but you see degradations in model performance once you start approaching those limits.&lt;&#x2F;p&gt;
&lt;p&gt;This is why I think logging has to change. We can&#x27;t just feed in errors or warnings. That&#x27;s too little context for the agent. It&#x27;s missing information that it then needs to go find. What file did the warning come from? What data was being processed right before the error? But if we try to dump &lt;code&gt;Info&lt;&#x2F;code&gt; or &lt;code&gt;Debug&lt;&#x2F;code&gt; logs, we could quickly end up overfilling the context window. I&#x27;ve been thinking about an approach that introduces an &lt;code&gt;LLM&lt;&#x2F;code&gt; logging level, an amalgamation of &lt;code&gt;Error&lt;&#x2F;code&gt;, &lt;code&gt;Warning&lt;&#x2F;code&gt;, and &lt;code&gt;Info&lt;&#x2F;code&gt;, designed to show the full context and &quot;trace&quot; of issues without the noise.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-this-might-look-like&quot;&gt;What This Might Look Like&lt;&#x2F;h2&gt;
&lt;p&gt;Say you have a service that processes user uploads. A file comes in, validation fails, and the request errors out. Here&#x27;s what you&#x27;d typically see at each logging level.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Error only (prod):&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ERROR] 2026-03-20 14:32:01 - FileProcessingService: Upload failed for request abc-123. ValidationError: unsupported file type.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;An agent would have little context around what happened and would need to dig into the codebase to understand.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Debug (what dev might look like):&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[INFO]  2026-03-20 14:32:00 - Server: Incoming POST &#x2F;api&#x2F;upload from 192.168.1.42&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:00 - AuthMiddleware: Token validated for user_id=usr-887&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:00 - AuthMiddleware: Permissions check passed: [&amp;quot;upload:write&amp;quot;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:00 - RequestParser: Content-Type: multipart&#x2F;form-data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:00 - RequestParser: Boundary detected, parsing body&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:00 - RequestParser: File field &amp;quot;document&amp;quot; found, size=4.2MB&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:00 - RequestParser: Additional field &amp;quot;category&amp;quot; = &amp;quot;reports&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[INFO]  2026-03-20 14:32:00 - FileProcessingService: Processing upload for request abc-123&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:00 - FileProcessingService: Temp file written to &#x2F;tmp&#x2F;uploads&#x2F;abc-123.tmp&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:01 - FileValidator: Reading file header bytes&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:01 - FileValidator: Detected MIME type: application&#x2F;x-zip-compressed&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:01 - FileValidator: Checking against allowed types: [pdf, docx, png, jpg]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ERROR] 2026-03-20 14:32:01 - FileProcessingService: Upload failed for request abc-123. ValidationError: unsupported file type.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:01 - FileProcessingService: Cleaning up temp file &#x2F;tmp&#x2F;uploads&#x2F;abc-123.tmp&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[DEBUG] 2026-03-20 14:32:01 - Server: Returning 422 to client&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Now the agent has everything it needs but it&#x27;s buried inside a wall of noise. This would usually only be a snippet of the debug logs as well.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;LLM level:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[LLM] 2026-03-20 14:32:01 - FileProcessingService: Upload failed for request abc-123&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  trigger: ValidationError - unsupported file type&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  file: src&#x2F;services&#x2F;FileProcessingService.ts:142 → validateUpload()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  input: { filename: &amp;quot;data-export.zip&amp;quot;, mime: &amp;quot;application&#x2F;x-zip-compressed&amp;quot;, size: &amp;quot;4.2MB&amp;quot;, category: &amp;quot;reports&amp;quot; }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  context: FileProcessingService, FileValidator [pdf, docx, png, jpg] got zip.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  recent_trace:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    - AuthMiddleware: POST &#x2F;api&#x2F;upload&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    - FileProcessingService: Temp file written,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    - FileValidator: MIME detection returned application&#x2F;x-zip-compressed&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    - FileProcessingService: Upload failed&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    - Server: Responce 422&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The output and format of this is made up, but it shows the overall concept. Being able to deliver a cleaner representation of the issue.&lt;&#x2F;p&gt;
&lt;p&gt;Interested to hear how other people are thinking about this problem.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Using Claude Code as a task planner with git</title>
        <published>2026-02-24T00:00:00+00:00</published>
        <updated>2026-02-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://attackpointsecurity.com/blog/claude-code-as-a-task-planner-with-git/"/>
        <id>https://attackpointsecurity.com/blog/claude-code-as-a-task-planner-with-git/</id>
        
        <content type="html" xml:base="https://attackpointsecurity.com/blog/claude-code-as-a-task-planner-with-git/">&lt;p&gt;I have a problem, I have 3 companies &#x2F; projects I am working on and I need to also organize my personal life.&lt;&#x2F;p&gt;
&lt;p&gt;After a suggestion from a colleague, I’ve been experimenting with using &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;docs.anthropic.com&#x2F;en&#x2F;docs&#x2F;claude-code&quot;&gt;Claude Code&lt;&#x2F;a&gt; as an operational task planner across the companies and my personal life. The result is a repo where the file-system is the database and an AI agent is the interface.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-idea&quot;&gt;The idea&lt;&#x2F;h2&gt;
&lt;p&gt;Most project management tools are more than what I need. At the core, I just want organized lists of tasks and what I need to do today.&lt;&#x2F;p&gt;
&lt;p&gt;I have tried many tools, software, etc. but they either kept getting in my way or where too bulky to quickly use. I am in-favor of simplicity, plain markdown files that follow a template in git. Then Claude Code reads, creates, updates, and moves them. Git takes care of the history and storage.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-it-works&quot;&gt;How it works&lt;&#x2F;h2&gt;
&lt;p&gt;Each company is its own git sub-repo. The root repo holds shared templates and agent instructions.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Repo&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── CLAUDE.md                    # Agent operating instructions&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── AGENTS.md                    # Agent role definitions&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── README.md                    # This file&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── templates&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── task.md                  # Canonical task template&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   └── wiki.md                  # Wiki page template&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── AttackPointSecurity&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── legal&#x2F;         + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── finance&#x2F;       + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── engineering&#x2F;   + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── sales-marketing&#x2F; + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   └── wiki&#x2F;                    # Reference material&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── Unit-6&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── legal&#x2F;         + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── finance&#x2F;       + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── engineering&#x2F;   + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── sales-marketing&#x2F; + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   └── wiki&#x2F;                    # Reference material&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── Cynaps&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── legal&#x2F;         + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── finance&#x2F;       + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── engineering&#x2F;   + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── sales-marketing&#x2F; + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   └── wiki&#x2F;                    # Reference material&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;└── Personal&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    ├── tax&#x2F;           + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    ├── appointments&#x2F;  + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    ├── reminders&#x2F;     + _archive&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    └── wiki&#x2F;                    # Reference material&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;tasks-as-files&quot;&gt;Tasks as files&lt;&#x2F;h3&gt;
&lt;p&gt;Tasks are named &lt;code&gt;{NN}-{slug}.md&lt;&#x2F;code&gt;, where the number encodes priority:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Range&lt;&#x2F;th&gt;&lt;th&gt;Meaning&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;00–09&lt;&#x2F;td&gt;&lt;td&gt;Critical&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;10–29&lt;&#x2F;td&gt;&lt;td&gt;High&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;30–59&lt;&#x2F;td&gt;&lt;td&gt;Medium&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;60–89&lt;&#x2F;td&gt;&lt;td&gt;Low&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;90–99&lt;&#x2F;td&gt;&lt;td&gt;Backlog&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;Example: &lt;code&gt;05-review-client-msa.md&lt;&#x2F;code&gt; in &lt;code&gt;AttackPointSecurity&#x2F;legal&#x2F;&lt;&#x2F;code&gt; immediately tells you priority, focus, and purpose. No need to go into a UI and press &#x2F; configure lots of variables.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-i-use-claude-code&quot;&gt;How I use Claude Code&lt;&#x2F;h2&gt;
&lt;p&gt;The &lt;code&gt;CLAUDE.md&lt;&#x2F;code&gt; defines the system rules: naming conventions, status values, and workflows. Once loaded, the agent understands the structure.&lt;&#x2F;p&gt;
&lt;p&gt;I can ask things like:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;“What’s critical across all companies?”&lt;&#x2F;li&gt;
&lt;li&gt;“Create a medium-priority engineering task for Unit-6.”&lt;&#x2F;li&gt;
&lt;li&gt;“Archive the completed MSA review.”&lt;&#x2F;li&gt;
&lt;li&gt;“Summarize what’s in progress for AttackPointSecurity.”&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The agent reads and edits files directly, and every change is tracked in git. Claude-code is great with working in unix directories and plain files. There is something to being trained on all of the unix code out their that makes it really understand how to work with tree biased file structures.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;tradeoffs&quot;&gt;Tradeoffs&lt;&#x2F;h2&gt;
&lt;p&gt;Lots, its not a full PM tool, there’s no kanban board, burndown chart, or Gantt view. If you need those, use a traditional PM tool.&lt;&#x2F;p&gt;
&lt;p&gt;But for a solo founder or small team, this setup is fast, transparent, and fully under your control.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Time to put on your tin foil hats - Guide to security and privacy</title>
        <published>2020-01-03T00:00:00+00:00</published>
        <updated>2020-01-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://attackpointsecurity.com/blog/tin-foil-hats-guide-to-security-and-privacy/"/>
        <id>https://attackpointsecurity.com/blog/tin-foil-hats-guide-to-security-and-privacy/</id>
        
        <content type="html" xml:base="https://attackpointsecurity.com/blog/tin-foil-hats-guide-to-security-and-privacy/">&lt;p&gt;In this set of blog posts I intend to do a deep dive into the current topics of digital security and privacy. This is a subject that is very near and dear to my heart, having spent over ten years pursuing a career in these fields, I hope to share some of things that I have picked up along they way.&lt;&#x2F;p&gt;
&lt;p&gt;For each topic I will start by explaining what it is &#x2F; how it is used, what are the security and privacy implications of the topic, and I will explain what an individual can do to protect themselves. I will give a range of suggestions for ones &quot;operational security&quot; (opsec) from a casual user to someone who is wearing a tin foil hat. I will try and to point to as many sources as I can and show other resources one can look into. Real world examples and consequences will be used to support the topics as well.&lt;&#x2F;p&gt;
&lt;p&gt;Topics (List will grow with added topics):&lt;&#x2F;p&gt;
&lt;h3 id=&quot;a-short-intro-about-me-and-why-i-do-this&quot;&gt;A short intro about me and why I do this&lt;&#x2F;h3&gt;
&lt;p&gt;The TL:DR is that I find thinking about (and implementing) operational security and privacy fun. I don&#x27;t try and live my life as a digital hermit as I still like to have functioning digital (and real) life. I do however try and understand the different ways that technology can impact me and occasionally pretend I am a person of interest for governments (I am not, I hope...). I don&#x27;t wear a tin foil hat just yet but do try and follow what I preach. It has been a interesting journey so far, where I have not only learned topics in computer science, but also psychology and political science.&lt;&#x2F;p&gt;
&lt;p&gt;I will try to write one entry per ~1 or 2 weeks.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>GoPass, Yubikey, and GPG</title>
        <published>2020-01-02T00:00:00+00:00</published>
        <updated>2020-01-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://attackpointsecurity.com/blog/go-pass-yubikey-and-gpg/"/>
        <id>https://attackpointsecurity.com/blog/go-pass-yubikey-and-gpg/</id>
        
        <content type="html" xml:base="https://attackpointsecurity.com/blog/go-pass-yubikey-and-gpg/">&lt;p&gt;&lt;code&gt;TL:DR - Yubikey is an awesome little tool that streamlines GoPass on-top of all the other great things it does.&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I use GoPass to store my passwords. It&#x27;s a great tool that I would recommend everyone use if you are familiar with cli. Side note, if you are not using any password manager you should stop reading and go set one up, it&#x27;s 2019 there are a plethora of good ones to choose from (pass&#x2F;gopass, lastpass[paid], and KeePassX) alongside many more.&lt;&#x2F;p&gt;
&lt;p&gt;The one downside I always had with GoPass was that I would have to always type my GPG password to unencrypte my passwords every time I needed to use my password. This took time and depending on my coffee consumption several attempts to get it right. To solve this I decided to set my YubiKey up to hold my GPG sub keys and use it as a smartcard to then decrypt my passwords.&lt;&#x2F;p&gt;
&lt;p&gt;The best guide that I have found on setting up my Yubkey with GPG is drduh&#x27;s github guide at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;drduh&#x2F;YubiKey-Guide&quot;&gt;YubiKey-Guide&lt;&#x2F;a&gt;. It is clean, concise and easy to follow.&lt;&#x2F;p&gt;
&lt;p&gt;Once you have your GPG keys and subkeys created and then stored on your Yubkey it is as simple as running GoPass and typing in your Yubikey password.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
