웹 애플리케이션 보안을 배우는 방법?

웹 보안의 중요성 및 학습 방법

웹 보안은 단순한 이론이 아닌, 현실적인 문제입니다. 문제가 발생하기 전에 미리 예방하는 것이 최선입니다.

최근 기술 발전, 특히 웹 서비스와 애플리케이션의 발전은 비즈니스 환경에 혁신적인 변화를 가져왔습니다. 많은 기업들이 온라인으로 업무를 전환하면서 전 세계의 직원들과 파트너들이 실시간으로 협력하고 정보를 공유할 수 있게 되었습니다.

HTML5 웹 앱과 Web 2.0의 등장으로 고객 요구도 변화했습니다. 이제 사람들은 언제 어디서든 필요한 정보에 접근하길 원하며, 기업들은 이러한 요구를 충족시키기 위해 24시간 가동해야 합니다.

글로벌 봉쇄 기간 동안 재택근무와 온라인 쇼핑이 증가하면서, 사이버 범죄자들에게도 새로운 기회가 생겼습니다.

온라인 거래와 원격 근무가 증가하면서 해커들은 신용카드 정보 탈취와 원격 근무자 및 관련 기관을 공격 대상으로 삼았습니다. 이러한 상황은 새로운 위협 요소를 발생시키는 사기꾼들과 악의적인 해커들을 불러들였습니다.

한 보고서에 따르면, 올해 기업의 약 80%가 사이버 공격 증가를 경험했고, 코로나 바이러스로 인해 은행을 대상으로 한 공격은 238%나 증가했습니다. 보고서.

이러한 공격을 막기 위해 웹 애플리케이션 보안이 등장했습니다. 현재 이 분야는 기업의 데이터, 비용, 고객 신뢰를 보호할 수 있는 숙련된 전문가를 필요로 합니다.

이 글에서는 웹 보안의 중요성, 웹 보안 전문가의 역할, 그리고 웹 보안 기술을 배우고 익힐 수 있는 다양한 자료를 살펴볼 것입니다.

그럼 시작해 볼까요?

웹 애플리케이션 보안이란?

웹 보안, 사이버 보안, 또는 웹 애플리케이션 보안은 애플리케이션 코드의 취약점을 악용하는 다양한 위협으로부터 온라인 서비스와 웹사이트를 보호하는 것을 의미합니다.

이러한 공격의 주요 대상에는 phpMyAdmin과 같은 데이터베이스 관리 도구, SaaS 애플리케이션, WordPress와 같은 콘텐츠 관리 시스템(CMS) 등이 있습니다.

웹 보안의 목표는 무단 액세스, 사용, 파괴, 중단 또는 변조를 방지하여 이러한 공격을 막는 것입니다.

그렇다면 왜 공격자들은 웹 애플리케이션을 주요 공격 대상으로 삼을까요?

  • 애플리케이션 소스 코드의 복잡성은 코드 조작뿐만 아니라 취약점 발생 가능성을 높입니다.
  • 애플리케이션은 실행하기 쉬우므로 공격자들이 대규모 공격을 자동화하기 용이합니다.
  • 소스 코드 조작을 통해 민감한 개인 데이터나 금전적 손실 등 심각한 피해를 입힐 수 있습니다.

주요 취약점 유형

XSS (교차 사이트 스크립팅)

XSS 공격은 공격자가 웹 페이지에 클라이언트 측 스크립트를 삽입하여 중요한 데이터에 접근하거나 사용자를 속여 개인정보를 노출시키고 사용자를 사칭하는 것을 의미합니다. 결과적으로 계정 접근, 악성 코드 활성화, 페이지 내용 변조 등이 발생할 수 있습니다.

CSRF (교차 사이트 요청 위조)

CSRF 공격은 권한 인증을 악용하여 사용자의 요청을 위조합니다. 공격자는 사용자를 사칭하여 자금 이체나 비밀번호 변경과 같은 행위를 할 수 있습니다.

DoS (서비스 거부) 및 DDoS (분산 서비스 거부)

공격자는 대량의 공격 트래픽을 보내 대상 서버나 인프라에 과부하를 일으킵니다. 서버가 요청을 처리할 수 없게 되면 속도가 느려지고 결국 합법적인 사용자들의 요청도 처리할 수 없게 됩니다.

SQL 주입 💉

SQL 주입은 공격자가 데이터베이스의 검색 쿼리 실행 방식을 악용하는 공격입니다. 이를 통해 승인되지 않은 데이터에 접근하거나 사용자 권한을 변경하고, 민감한 데이터를 파괴하거나 조작할 수 있습니다.

원격 파일 포함

공격자는 악성 코드가 포함된 파일을 웹 앱 서버에 주입하여 해당 코드를 실행함으로써 애플리케이션을 손상시키고 데이터를 훔칠 수 있습니다.

기타

기타 공격에는 메모리 손상, 데이터 유출, 클릭재킹, 디렉토리 탐색, 명령 주입, 버퍼 오버플로우 등이 있습니다.

웹 보안이 얼마나 중요한지, 그리고 왜 기업들이 가능한 한 빨리 보안을 강화해야 하는지 이제 이해되셨을 겁니다. 웹 보안 문제는 기업에 심각한 재정적, 평판적 손실을 초래할 수 있습니다.

이 분야에 대한 수요가 증가하면서, 많은 사람들이 웹 보안을 배우고자 합니다. 만약 이 분야에 관심이 있다면, 웹 보안은 훌륭한 직업 선택이자 개인적인 발전에도 큰 도움이 될 것입니다.

웹 보안 전문가의 역할

웹 보안 전문가는 웹 애플리케이션, 네트워크, 그리고 관련 데이터를 보호하는 역할을 합니다. 그들은 네트워크를 모니터링하고 위협에 대응하여 데이터 유출을 방지하는 데 기여합니다.

이 전문가들은 네트워크나 시스템 관리, 프로그래밍 등의 배경 지식을 가지고 있습니다. 호기심, 비판적 사고, 연구에 대한 열정, 그리고 지속적인 학습이 필요한 분야입니다. 그들은 다양한 위협을 개발하고 사용하는 해커보다 더 “파괴적으로 창의적”이어야 합니다.

보안 위협은 언제든지 발생할 수 있으므로, 웹 보안 전문가는 해커가 시스템에 침투하기 위해 사용하는 최신 기술을 항상 숙지해야 합니다. 웹 보안 전문가의 주요 업무는 다음과 같습니다.

  • 웹 애플리케이션, 데이터베이스 및 암호화의 취약점 발견
  • 보안 문제를 해결하여 공격 완화
  • 정기적인 감사를 통해 최상의 보안 사례 준수
  • 악성 공격을 방지하기 위한 엔드포인트 보호 및 탐지 도구 배치
  • 클라우드와 온프레미스 자산에 대한 취약점 관리 시스템 구축
  • 공격 발생 시 사후 처리
  • 다른 IT 부서와 협력하여 재해 복구 계획 수립
  • 팀 리더 및 HR과 협력하여 직원들에게 보안 위협 감지 교육 제공

웹 애플리케이션 보안을 위한 모범 사례

WAF (웹 애플리케이션 방화벽) 사용

WAF는 악성 HTTP 요청으로부터 웹 애플리케이션을 보호하는 데 도움을 줍니다. 이는 공격자와 서버 사이의 장벽 역할을 하며, XSS, CSRF, SQL 주입 등 다양한 위협으로부터 7계층을 보호할 수 있습니다.

DDoS 완화

DDoS 완화는 웹 사이트, 애플리케이션 및 서버 인프라를 보호하기 위해 애플리케이션 DDoS 및 네트워크 계층 공격을 막는 데 사용됩니다.

봇 🤖 필터링

악성 봇 트래픽을 필터링하여 웹사이트를 보호합니다.

DNS 보호

DNS 보호는 중간자 공격 및 DNS 캐시 중독을 통해 DNS 요청이 하이재킹되는 것을 방지합니다.

HTTPS 사용

HTTPS는 서버와 클라이언트 간에 전송되는 모든 데이터, 즉 로그인 정보, 헤더 정보, 쿠키, 요청 데이터 등을 암호화합니다.

웹 애플리케이션 보안을 배우기로 결정하셨다면, 다음 학습 자료를 참고하여 기술을 향상시킬 수 있습니다. 🧑‍💻.

포트스위거

Burp Suite를 개발한 회사에서 제공하는 사이버 보안 교육 플랫폼입니다. 포트스위거에서 무료 온라인 교육을 통해 사이버 보안 경력을 발전시킬 수 있습니다.

인터랙티브 랩을 통해 언제 어디서든 학습하고 진행 상황을 추적할 수 있습니다. 비즈니스 로직 취약점, 정보 노출, 웹 캐시 중독, 보안되지 않은 역직렬화, SQL 주입, XSS, CSRF, XXE 주입 등 다양한 주제를 다룹니다.

포트스위거의 학습 자료는 경험이 풍부한 전문가, 연구팀, 그리고 창립자인 Dafydd Stuttard가 제작했습니다. 그는 “Web Application Hacker’s Handbook”이라는 유명한 책의 저자이기도 합니다.

강의는 텍스트와 비디오 형태로 제공되어 핵심 내용을 쉽게 이해할 수 있습니다. 인터랙티브 랩은 학습 과정을 더욱 흥미롭게 만들고 해킹 기술을 테스트할 수 있는 현실적인 과제를 제공합니다.

에드엑스

에드엑스에서 제공하는 웹 보안 기초 과정은 기본적인 원리를 이해하는 데 좋습니다. 이 과정은 일반적인 공격과 이에 대한 대응 방안을 이론적, 실질적으로 모두 다룹니다.

또한, 최신 웹 애플리케이션을 보호하는 데 널리 사용되는 보안 방법들을 소개합니다. 이 과정에 참여하기 위해 사전 보안 지식이 필수는 아니지만, HTTP, JavaScript, HTML 등에 대한 이해가 있다면 학습에 도움이 될 것입니다.

과정은 주당 4-6시간을 투자하여 5주 동안 진행됩니다. 무료로 수강할 수 있지만, 48.97달러를 지불하면 기관 로고가 있는 확인 인증서를 받을 수 있습니다. 이 인증서는 취업 가능성을 높이는 데 활용될 수 있으며, LinkedIn에 공유하거나 이력서에 추가할 수 있습니다.

스탠포드

스탠포드의 CS 253 웹 보안 과정은 웹 보안 전반을 포괄적으로 다루며, 학생들이 일반적인 웹 공격과 그 방어 방법을 이해하도록 돕는 것을 목표로 합니다. 이 과정은 기본적인 내용뿐 아니라 고급 주제까지 다룹니다.

주요 주제는 다음과 같습니다.

  • 웹 보안 원칙
  • 공격 및 대응 방안
  • 웹 애플리케이션 취약점
  • 브라우저 보안 모델
  • 주입, DoS, TLS 공격
  • 지문 인식, 개인 정보 보호, 동일 출처 정책, 인증, 교차 사이트 스크립팅, JavaScript 보안
  • 심층 방어
  • 새로운 위협
  • 보안 코드 작성 기술, 보안 익스플로잇
  • 진화하는 웹 표준 구현 및 취약한 웹 앱 방어

이 과정을 수강하려면 CS 142 또는 이와 동등한 웹 개발 경험이 필요합니다. 출석이 필수이며, 평가는 다음을 기준으로 이루어집니다.

  • 과제 75%
  • 기말고사 25%

더 나은 준비를 위해 다음 자료를 참고할 수 있습니다. 2019년 기말고사 해답 및 기타 샘플 문제.

초보자를 위한 과정

온라인 학습 플랫폼인 유데미는 다양한 강의를 제공하며, 웹 애플리케이션 보안 강의도 그중 하나입니다. 코딩 경험이 없어도 수강할 수 있으므로 초보자에게 적합합니다.

이 과정에서 다음 내용을 배울 수 있습니다.

  • OWASP (Open Web Application Security Project)에서 정의한 10대 위협 요소 식별
  • 이러한 위협을 완화하는 방법 이해
  • 각 위협이 비즈니스에 미치는 영향
  • 공격자가 이러한 위협을 실행하는 방법

이 강의는 컴퓨터와 인터넷에 대한 지식이 거의 없는 사람도 쉽게 이해할 수 있도록 가장 쉬운 용어로 설명합니다. 또한 심층 방어, 스푸핑, 정보 노출, 변조, 부인, 권한 상승, DoS 등에 대해서도 다룹니다.

숙련된 강사가 웹 보안의 기초를 배우는 데 필요한 모든 것을 가르쳐 줍니다.

코세라

코세라에서는 OWASP ZAP (Zed Attack Proxy)를 사용하는 방법을 배울 수 있습니다. 이 도구는 보안 전문가와 침투 테스터가 취약점을 찾는 데 도움이 됩니다.

  • 취약점 스캔 방법, 스캔 결과 분석 및 보고서 생성 방법 등을 배울 수 있습니다.
  • 웹사이트를 탐색하면서 응답과 요청을 수동으로 스캔하는 브라우저 프록시 설정 방법을 배울 수 있습니다.
  • 웹 애플리케이션과 브라우저 사이에서 발생하는 웹 요청을 보고, 가로채고, 전달하고, 수정하는 방법을 배울 수 있습니다.
  • 사전 목록을 사용하여 웹 서버에서 폴더와 파일을 찾는 방법을 배울 수 있습니다.
  • 사이트를 크롤링하여 URL과 링크를 찾는 방법을 이해할 수 있습니다.

강사는 분할 화면 비디오를 통해 각 주제를 단계별로 설명하며, 클라우드에서 강의가 제공되므로 다운로드하는 데 시간을 낭비할 필요가 없습니다. 코세라는 모든 프로그램에 인증서를 제공합니다.

PentesterLab

PentesterLab에서는 웹 보안의 기초부터 고급 내용까지 다룹니다. 취약점을 수동으로 찾고 악용하는 방법을 가르쳐줍니다. 모든 실습은 다양한 시스템에서 발견되는 일반적인 약점이나 문제점을 다룹니다.

실제 시스템과 취약점을 제공하므로, 에뮬레이션 없이 실시간으로 학습할 수 있습니다. 온라인 실습을 완료하면 인증서를 받을 수 있습니다. 모든 실습은 인증서 획득을 위한 배지로 구분되어 있습니다.

유튜브

유튜브는 지식의 보고입니다. 올바른 방법으로 활용하기만 하면 됩니다!

예를 들어 50만 명이 넘는 구독자를 보유한 “Google Chrome Developers” 채널에서 유용한 정보를 얻을 수 있습니다.

이 튜토리얼에서는 몇 가지 일반적인 공격 벡터와 데이터, 사용자, 평판을 보호하는 방법을 이해할 수 있습니다. 또한, 방어와 공격을 포함한 주제에 대한 간결한 강의와 실습을 제공하는 새로운 과정을 소개합니다.

모질라

MDN 웹 문서는 모질라에서 제공하는 웹 보안 관련 유용한 자료를 제공합니다. 콘텐츠 보안, 연결 보안, 데이터 보안, 정보 누출, 데이터 무결성, 클릭재킹 방지, 사용자 데이터 보안 등 다양한 주제에 대한 정보를 얻을 수 있습니다.

이 자료는 웹사이트와 코드를 데이터 도난 및 공격으로부터 보호하는 데 도움이 됩니다. 사이트 수정, 혼합 콘텐츠 차단, 서명 알고리즘 등과 같은 흥미로운 주제를 배울 수 있습니다.

인빅티

인빅티의 포괄적인 기사는 웹 애플리케이션 보안의 핵심을 설명하는 데 유용합니다. 초보자도 쉽게 이해할 수 있도록 웹 보안 용어와 기술을 잘 설명하고 있습니다.

이 기사에서는 웹 앱 보안의 신화와 기본 사항을 설명하고, 기업이 웹사이트와 애플리케이션 보안을 강화하여 사이버 공격으로부터 보호하는 방법을 제시합니다.

다음 내용을 배울 수 있습니다.

  • 웹 애플리케이션을 보호하는 방법
  • 올바른 취약점 스캐너 선택 방법
  • 무료 웹 취약점 스캐너와 상용 웹 취약점 스캐너의 차이점
  • 취약점 스캐너 테스트 방법 및 사용 시기
  • 웹 서버 및 기타 구성 요소를 보호하기 위한 모범 사례

SANS

SANS의 SEC22 과정을 수강하여 웹 애플리케이션 방어에 대해 배울 수 있습니다. 이 과정은 웹 애플리케이션과 관련된 모든 보안 취약점을 이해하고 웹 자산을 보호하는 데 도움이 됩니다.

이 과정에서는 실제 사례와 함께 아키텍처, 인프라 및 코딩 관련 완화 기술을 소개합니다. 취약점의 특성을 이해하면 취약점이 발생하는 이유와 완화 방법을 파악할 수 있습니다.

웹 애플리케이션 관리, 구현 또는 방어 담당자에게 적합하며, 앱 보안 분석가, 설계자, 개발자, 감사자, 침투 테스터 등이 수강할 수 있습니다.

이 과정에서 다루는 내용은 다음과 같습니다.

  • OWASP Top 10 위협
  • CWE Top 25 소프트웨어 오류 관련 문제
  • 웹 앱의 클라우드 통합
  • 앱 언어 구성
  • 인프라 구성 및 보안 관리
  • 인증 메커니즘
  • HTTP 헤더
  • 비즈니스 로직 결함
  • XSS, CSRF, SQL 주입 등과 같은 코딩 오류

JavaScript 및 HTML과 같은 웹 앱 개념 및 기술에 대한 기본 지식이 있다면 이 과정을 수강하는 것이 좋습니다.

클라우드플레어

클라우드플레어의 기사는 웹 애플리케이션 보안에 대한 설명을 제공합니다.

다음 내용을 설명합니다.

  • 웹 애플리케이션 보안의 의미
  • 일반적인 취약점
  • 웹 보안 취약점을 방지하기 위한 모범 사례

웹 애플리케이션 보안 프로그램을 시작할 때 도움이 될 기본 개념들을 이해하는 데 유용합니다.

결론

사이버 공격이 빠르게 증가하는 시대에 웹 애플리케이션 보안을 배우는 것은 매우 중요합니다.

모두 건투를 빕니다!