Iphelper - Cyderes/Fishtech golang assessment

Cyderes/Fishtech golang assessment

iphelper: IP enrichment serverless function for AWS lambda

Andrew Burt

Command to run in the cloud from bash:
curl https://ia3xx10f46.execute-api.us-west-2.amazonaws.com/staging/iphelper?ip=1.1.1.1
or just open the URI:
https://ia3xx10f46.execute-api.us-west-2.amazonaws.com/staging/iphelper?ip=1.1.1.1
(replace ip= with whatever IP you like)

All tests run, though one test requires a private API key to be exported to the environment before it will return successfully (tests the 3rd-party API lookup).

The API right now uses the ipdata service to do an ip lookup and I just enriched it with a few arbitrary items from their lookup, though it could as easily been any others, or all of them. The JSON I returned includes the IP address itself, the country name it's from, the time zone offset from GMT/UTC, and a security lookup, which checks whether the IP address is a proxy or not.

I worked on the project Saturday and Sunday, and completed most of the requirements, but not Terraform. The function and API Gateway run successfully on Lambda, reliably deploy, I have a couple of tests running, make the external API call successfully, validate the IP address coming in, set up structs for the incoming and outgoing JSON, and pass the errors through Amazon API Gateway's proxy response container.

Uncompleted: Terraform implementation, and an additional enrichment component. I spent a large part of Sunday working on getting Terraform deployment working, but though I think I had nearly everything correct, I was not able to get it to work (it kept hanging when I went to apply it, and the terraform debug log results indicated a timeout between amazon servers that I wasn't able to diagnose in time). This was my first time using AWS, and my first time using Terraform, so probably due to lack of familiarity with the config syntax. The function and the API Gateway run fine when deployed manually using the AWS command-line tools. Unfortunately, an additional enrichment component (an amazon Dynamodb result caching and lookup) I had started to work on also was left unfinished due to getting stuck on Terraform for so long.

I included the nonfunctional terraform files. There is a 3rd-party API key that needs to be passed in on the terraform pland and apply commands (e.g. terraform apply -var="KEY=PrivacyMatters")

Owner
Andrew David Burt
Software engineer, math/cs student, traveler, trail runner, baker, reader, humanist, skeptic, mountain lover, dancer, dork.
Andrew David Burt
Similar Resources

PHP functions implementation to Golang. This package is for the Go beginners who have developed PHP code before. You can use PHP like functions in your app, module etc. when you add this module to your project.

PHP Functions for Golang - phpfuncs PHP functions implementation to Golang. This package is for the Go beginners who have developed PHP code before. Y

Dec 30, 2022

gosec - Golang Security Checker

 gosec - Golang Security Checker

Inspects source code for security problems by scanning the Go AST.

Jan 2, 2023

shellcode加载器 golang 分离免杀

shellcode加载器 golang 分离免杀

shellcodeloading golang版 shellcode 加载器 效果:实测可免杀360 火绒 原理

Nov 20, 2022

Coraza WAF is a golang modsecurity compatible web application firewall library

Coraza WAF is a golang modsecurity compatible web application firewall library

Coraza Web Application Firewall, this project is a Golang port of ModSecurity with the goal to become the first enterprise-grade Open Source Web Application Firewall, flexible and powerful enough to serve as the baseline for many projects.

Jan 9, 2023

The most complete TigoPesa API Wrapper written in golang with zero external dependencies. Supports Push Pay, C2B and B2C.

tigopesa tigopesa is open source fully compliant tigo pesa client written in golang contents usage example projects links contributors sponsors usage

Jan 9, 2022

golang uuid-shellcode加载器,分离执行,可直接把shellcode写入程序。

golang uuid-shellcode加载器,分离执行,可直接把shellcode写入程序。

Jan 7, 2023

An easy-to-use SHA-1 hash-cracker written in Golang.

An easy-to-use SHA-1 hash-cracker written in Golang.

wrench - An easy-to-use SHA-1 hash-cracker. Wrench is an SHA-1 hash-cracker that relies on wordlists for comparing hashes, and cracking them. Before W

Aug 30, 2021

Shellcode implementation of Reflective DLL Injection by Golang. Convert DLLs to position independent shellcode

Shellcode implementation of Reflective DLL Injection by Golang. Convert DLLs to position independent shellcode

🐸 Frog For Automatic Scan 🐶 Doge For Defense Evasion&Offensive Security Doge-sRDI Shellcode implementation of Reflective DLL Injection by Golang. Co

Dec 8, 2022

This project used to learn golang and try to bypass AV

This project used to learn golang and try to bypass AV

sucksAV This project used to learn golang and try to bypass AV 描述 基于Golang开发的BypassAV,采取的shellcode分离技术,将shellcode注入到图片中,通过加载器进行加载,使用Golang动态加载技术 需要使用第

Nov 19, 2022
Related tags
:key: Idiotproof golang password validation library inspired by Python's passlib

passlib for go Python's passlib is quite an amazing library. I'm not sure there's a password library in existence with more thought put into it, or wi

Dec 30, 2022
An easy-to-use XChaCha20-encryption wrapper for io.ReadWriteCloser (even lossy UDP) using ECDH key exchange algorithm, ED25519 signatures and Blake3+Poly1305 checksums/message-authentication for Go (golang). Also a multiplexer.

Quick start Prepare keys (on both sides): [ -f ~/.ssh/id_ed25519 ] && [ -f ~/.ssh/id_ed25519.pub ] || ssh-keygen -t ed25519 scp ~/.ssh/id_ed25519.pub

Dec 30, 2022
An authorization library that supports access control models like ACL, RBAC, ABAC in Golang
An authorization library that supports access control models like ACL, RBAC, ABAC in Golang

Casbin News: still worry about how to write the correct Casbin policy? Casbin online editor is coming to help! Try it at: https://casbin.org/editor/ C

Jan 6, 2023
A template for creating new Golang + Docker + Canonical Domain + Badges + Renovate + Golangci + Goreleaser + CircleCI + ...
A template for creating new Golang + Docker + Canonical Domain + Badges + Renovate + Golangci + Goreleaser + CircleCI + ...

golang-repo-template ?? golang-repo-template Usage foo@bar:~$ golang-repo-template hello world _

Dec 29, 2022
Build awesome Golang desktop apps and beautiful interfaces with Vue.js, React.js, Framework 7, and more...
Build awesome Golang desktop apps and beautiful interfaces with Vue.js, React.js, Framework 7, and more...

Guark Guark allows you to build beautiful user interfaces using modern web technologies such as Vue.js, React.js..., while your app logic handled and

Jan 1, 2023
A tool to check for vulnerabilities in your Golang dependencies, powered by Sonatype OSS Index
A tool to check for vulnerabilities in your Golang dependencies, powered by Sonatype OSS Index

Nancy nancy is a tool to check for vulnerabilities in your Golang dependencies, powered by Sonatype OSS Index, and as well, works with Nexus IQ Server

Dec 22, 2022
A fully self-contained Nmap like parallel port scanning module in pure Golang that supports SYN-ACK (Silent Scans)

gomap What is gomap? Gomap is a fully self-contained nmap like module for Golang. Unlike other projects which provide nmap C bindings or rely on other

Dec 10, 2022
🌘🦊 DalFox(Finder Of XSS) / Parameter Analysis and XSS Scanning tool based on golang
🌘🦊 DalFox(Finder Of XSS) / Parameter Analysis and XSS Scanning tool based on golang

Finder Of XSS, and Dal(달) is the Korean pronunciation of moon. What is DalFox ?? ?? DalFox is a fast, powerful parameter analysis and XSS scanner, bas

Jan 5, 2023
High-Performance Shortlink ( Short URL ) app creator in Golang. For privacy reasons, you may prefer to host your own short URL app and this is the one to use.
High-Performance Shortlink ( Short URL ) app creator in Golang. For privacy reasons, you may prefer to host your own short URL app and this is the one to use.

About The Project Shortlink App in Golang Multiple Node based Architecture to create and scale at ease Highly performant key-value storage system Cent

Jan 3, 2023