이번 3주차 스터디는 WAF 설정에 대한 스터디였다.
여태껏 3rd Party WAF만 사용해왔으나, AWS WAF는 룰을 하나하나 설정해줘야해서, 웹 공격에 대한 많은 숙지가 필요하다.
조만간 구축해야 할 수도 있을 것 같은데 약간 난감하지만 그건 차치하고 일단 해보자.
개인적으로 아는 것 뿐만 아니라 예방하는 법을 아는 것이 훨씬 중요하다고 생각하지만 현재는 WAF에 대해 학습하기 위한 것이므로 나중에 생각하자.
공격 방식 중 가장 유명한 SQL Injection이다. 웹서비스 내 에서 입력할 수 있는(검색 등 쿼리 조회가 있을 것 같은) 곳에 SQL을 삽입하여 정보를 획득하는 공격이다.
최종 목적은 정보 조회 or 삽입 or 삭제 등 SQL로 이뤄지는 모든 행위가 될 수 있으며, 가장 간단하게 입력을 함으로써 True로 만들어 쿼리를 실행한다.
▲ 이건 그냥 재밌어서 가져왔다.
XSS는 Cross Site Scripts라는 의미다.
XSS 또한 웹서비스에서 입력할 수 있는 곳에 악성 스크립트 등을 삽입하여, 의도하지 않은 행위가 실행되는 것을 XSS라고 한다.
Reflected XSS는.. 뭐 빈칸에 입력해서 도메인 정보, 쿠키 등을 가지고 공격자에게 전송한다.
** 솔직히 Stored XSS랑 뭔 차인지 모르겠다. 그 자리에서 바로 쿠키잡고 보내는게 아닌, 게시글에 올리는거면 Stored랑 뭔 차이야
XSS 공격의 한 종류로, 게시글에 악성 스크립트를 삽입하여, 다른 사용자가 게시글에 접근하였을 때, 공격자가 심은 스크립트가 실행되게 하는 공격이다.
이번에는 Injection 인데 Command Injection 이다. 서버 명령어를 실행하게끔 해주며, 서버에서 실행되는 만큼 굉장히 강력하다.
Backdoor는 악성 파일을 삽입하여, 해당 파일을 통해 서버에 접근하게 해주는 공격이다.
이것은 공격을 1차 뿐만 아닌 2차 3차로 계속 발전할 수 있게, 접근을 도와주므로 굉장히 강력하다.
서버 측 요청을 변조해 정보 수집 혹은 명령을 수행하도록 한다.
무차별 대입 공격이다.
말 그대로 아무거나 막 때려넣는 공격이다. 일반적으로 계정을 알아내기 위해 사용한다.
VPN같은 것을 통한 IP등을 바꿔 접속하게 하는 방법이다. 악의적인 의도가 있다면 공격이 될 수 있다.
WAF란 Web Aplication Firewall의 약자로 웹서비스를 방어하기위한 '방화 벽'이라고 생각하면 된다.
당연히 모든 서비스에 필수다. 또한 당연히 보안은 모든 우선순위 중에 1순위로 두어야 한다.
▲ 실습은 Web ACLs를 추가하는 것으로 진행한다. getting started 해도 Web ACLs 추가다.
▲ 지역, 이름, WAF를 적용할 리소스를 정한다. 정할 수 있는 리소스는 다음과 같다.
- Load Balancer
- Api Gateway REST API
- AppSync GraphQL API
- Cognito user pool
아마 주로 LB에 적용할 것 같다.
▲ 다음으로 넘어가면 이제 Rule을 정해야한다.
여기서 재미있었던 것은 'managed rule groups'이다.
▲이렇게 타사의 방화벽 룰을 넣을 수 있다!!
▲ AWS에서 기본적으로 제공하는 룰도 존재한다. 물론 AWS '기본'이라는 것은 AWS에서 제공하는 대중적인 룰이라는 의미이며, 무료는 아니다.
https://namu.wiki/w/Tor(%EC%9D%B5%EB%AA%85%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC)