오픈한 서비스를 대상으로 보안관제에 대한 차원으로 WAF를 붙였었다. 이때, 발생한 로그들은 모두 Cloudwatch log 그룹으로 흘러들어가도록 했고, datadog forwarder를 통해 datadog으로 다시 흘러가도록 구성을 했었다. 이렇게 모니터링 인프라는 어느정도 완성이 되었지만, 비용에 대한 문제가 슬금슬금 다가오기 시작했다. 기본적으로 datadog이 비싼감이 없지않아 있었지만(Datadog의 과금 정책을 아직도 완전히 이해할 수가 없음...), 그 외에도 AWS 내부에서 외부로 데이터를 전송한다는 것에 대한 부담도 어느정도 존재했다. 그렇게 방법을 찾던 중, cloudwatch의 자체 제공 서비스 중 하나인 'log insights'를 발견하게 되었다. Cloudwatch Log In..
AWS
2023 여름방학 Todo 리스트 중 하나였던 SAA 취득을 했다. SAA를 따야겠다고 생각한것은 올해 초 쯤부터 했지만, 학기와 회사 일을 병행하다보니 그렇게 집중적으로 공부할 시간이 나오지 않았다. 7월초에 여행을 다녀오자마자 바로 공부를 시작했고, 하루 1시간 정도만 SAA 공부에 투자했다. AWS는 만져본지 햇수로는 어느새 1년 반정도를 넘어가기도 했고, 회사 일하는 과정에서 만져본 서비스들(ec2, VPC, cloudwatch, Route53 등등)이 몇가지 있어서 이 경험들이 수월하게 공부하는데 적용되었던것 같다. 시험 정보 관련 총 문항 수는 65문항으로, 모두 다지선다형 객관식으로 이루어져있다. (2개를 선택하는 문항도 존재) 결론부터 이야기하면 덤프에서 5~60% 정도 그대로 출제된다. ..
바로 이전글에서 private 서브넷에 웹 서버 인스턴스를 생성하고 ALB로 연결까지 확인했었다. 이번에는 외부 인터넷단에서 유입되는 유해트래픽을 탐지하고 차단하는 솔루션까지 로드밸런서에 연동하는 작업을 진행한다. WAF Web Application Firewall, 웹 서버 자원에 대해 유입되는 HTTP(S) 트래픽을 분석하고 차단하는 방화벽의 솔루션으로 AWS의 서비스들에 대해 적용할 수 있다. 적용가능한 서비스에는 대표적으로 Cloudfront, API Gateway, Application 로드밸런서가 존재한다. 해당 서비스들의 앞단에 붙는 형식으로 Access Control list를 정의하고, 탐지 Rule을 설정함으로써 내부 자원을 보호한다. ※ WAF는 프리티어 혜택을 받지 못하는 서비스이므..
이전에 pfsense를 통해 간단한 인프라를 구성하고 suricata 패키지로 IDS/IPS 구동까지 진행했었다. pfsense도 충분히 좋은 솔루션이긴 하지만, 실제로 이런 구성의 인프라를 운영하다 보니 몇가지 큰 문제가 있었다. 1. HTTPS를 적용한 경우 suricata가 트래픽을 정상적으로 분석할 수 없음 이 점이 가장 치명적으로 다가왔었는데, 막상 다 구축해두고 Exploit을 날려보니 suricata의 alert에는 해당 내용이 없어서 계속 확인해 보니 HTTP로 들어온 공격은 잡았지만, HTTPS를 타고온 공격은 잡지 못한 것을 확인했다. 관련해서 내용을 찾은 결과, suricata는 ssl inspection을 제공해주지 않는다는 것을 알게되었다. SSL inspection(SSL 가시성..
관련 이전 글 : SSRF와 Cloud Metadata -1 'Capital One'에서의 SSRF Cloud Metadata leak을 간단하게 설명했었다. 이와 유사한 취약한 환경을 구축하고 탈취 시나리오를 간단하게 살펴보자 취약환경 구축 인스턴스를 생성 후 SSRF에 취약한 Application을 올린 후, S3 bucket에 대해 full_access 권한을 갖는 IAM role을 만들고 이 인스턴스에 연결해준다. 민감정보를 담을 S3 bucket을 생성하고 object를 넣어준다. (해당 bucket은 인터넷 open하지 않음) 정말 간단하게 취약환경을 구성해 보았다. 'Capital One'의 Exploit과 동일하게 SSRF로 Metadata를 탈취해 S3 bucket의 object까지 탈취..
SSRF Server Side Request Forgery의 약자로, 직역하면 서버측 요청 위조 서버 측에서 위조된 요청을 발생시켜 직접적인 접근이 제한된 내부 서버의 자원 등에 간접적으로 접근해 데이터 유출 및 오동작을 유발하는 공격이다. 외부로 공개된 서버와 내부망에 존재하는 서비스(DB 등)로 이루어진 구조에서 외부서버가 내부서버로 보내는 요청을 외부 사용자가 임의로 변조하는데, 이때 내부서버는 신뢰할 수 있는 위치에서 전달된 Request로 확인하기 때문에 변조된 Request에 대한 응답값을 반환해준다. 주로 내부 서버에 저장된 이미지와 같은 자원에 접근하거나 외부로 Request를 발생시키는 구간에서 자주 발생하고, 사용자가 제공한 데이터(입력값, 쿠키 등등)을 서버 측에서 별다른 검증 로직없..
온프레미스 환경을 클라우드 환경으로 이관하는 작업을 받아서 하는 중, sendmail을 통해 메일을 보내는 기능도 있다는 것을 확인했다. 메일 전송을 사용자의 계정 패스워드 찾기, 회원가입시 welcome 메일 전송 등에 이용하고 있었다. 이 부분도 그냥 다른 작업과 마찬가지로 ec2에 sendmail 설치 후 설정만 해주면 온프레미스 환경과 동일하게 사용할 수 있을것이라고 생각했었다. ※ EC2의 25번 포트 block AWS에서는 EC2, Lightsail을 비롯한 컴퓨팅 서비스에 대해 아웃바운드 트래픽에 대해 25번 포트의 사용을 제한하고 있다. 25번 포트 이외의 메일 포트인 465나 587을 사용하는 방법도 있지만, 25번 포트를 사용하기 위해서는 아래 AWS 가이드 대로 AWS 측으로 요청을 ..
내부 웹서버에 wordpress 설치까지 진행되어 pfsense - 웹 서버 인프라의 구축은 마무리 되었다. 이제 내부 웹 서버로 들어오는 트래픽을 탐지하고 차단하는 환경까지 구축해본다. 네트워크 트래픽 탐지는 Suricata를 사용해 진행하자 Suricata Snort를 대체하기 위해 생성된 Network Security Monitoring(NSM) 오픈소스 프로그램으로, 대표적으로 layer 7에서의 IPS/IDS 역할을 수행한다 Pfsense는 package manager 서비스 를 통해 suricata 패키지의 설치를 지원한다. web-gui > System > Package Manager에 Available Packages를 통해 suricata를 검색 Install, Confirm으로 설치 설..