Back End/보안
-
CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (2) - 가상의 브라우저에 대한 CSRF 공격, 서버의 책임과 브라우저의 책임Back End/보안 2023. 4. 23. 21:22
목차 1. CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (1) - CSRF 공격이란 무엇인가 2. CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (2) - 가상의 브라우저에 대한 CSRF 공격, 서버의 책임과 브라우저의 책임 3. CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (3) - CSRF 공격을 직접 시도해보자 (Safari 브라우저) 4. CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (4) - SOP, CORS, Browser, Third-Party Cookie, SameSite) 5. CSRF(Cross-Site Request Forgery)..
-
CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (1) - CSRF 공격이란 무엇인가Back End/보안 2023. 4. 23. 21:07
해당 포스팅 시리즈는 현재 목차 2번까지 작성되었습니다. 목차 1. CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (1) - CSRF 공격이란 무엇인가 2. CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (2) - 가상의 브라우저에 대한 CSRF 공격, 서버의 책임과 브라우저의 책임 3. CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (3) - CSRF 공격을 직접 시도해보자 (Safari 브라우저) 4. CSRF(Cross-Site Request Forgery) 개념부터 재현, 방어까지 (4) - SOP, CORS, Browser, Third-Party Cookie, SameSite) 5. ..
-
[보안] SQL Injection 대표예제와 원리Back End/보안 2023. 2. 13. 21:33
SQL Injection 의 대표예제 중 하나는 Application 에서 직접 짜여진 String 을 치환하여 DB 에 쿼리를 날리는 경우를 노리는 기법이다. 단순히 String 을 치환하여 DB 로 쿼리를 날리는 경우 대충 아래와 같은 Java 코드가 나온다. String sql = "select * from adminTable where login_id = '{loginId}' and password = '{password}'" sql = sql.replace("{loginId}", loginId); sql = sql.replace("{password}", password); sendQuery(sql); 그럼 loginId 과 password 에 1' or '1'='1 라는 값이 전달된다면 쿼리가 ..
-
[보안] Spring 에서 SQL Injection 방어 그리고 원리 (feat. Prepared Statement, JPA, MyBatis)Back End/보안 2023. 2. 13. 21:19
서문 회사 서비스에 AWS WAF 를 전역적으로 설정하면서 소량의 보안지식을 쌓을 수 있었다. 그러다 문득 Spring Application 은 SQL Injection 을 제대로 방어하고 있을까? 라는 궁금증이 생겨났다. Spring 에서 XSS 필터는 따로 적용하는 것을 보았으나 SQLI 필터를 적용한 케이스를 보지 못하여 더욱 궁금하였다. 서칭 결과, Prepared Statement 를 사용하면 SQLI 를 막을 수 있다고 한다. JDBC 에서 Prepared Statement 를 직접 사용해본 적이 있어 JDBC 스펙인 줄 알고, 구현을 해봤자 String 을 치환할 뿐 아닌가? 라는 생각에 도무지 어떻게 SQL Injection 을 막는다는 것인지 이해가 되지 않았다. Prepared Stat..
-
[XSS] HTML Escape Characters 리스트Back End/보안 2022. 12. 19. 18:38
Number Symbol Entity Name Code Description 9 Tab 	 Tab 10 New Line 
 New Line 32 Space Space 33 ! ! Exclamation mark 34 “ " " Quotation mark 35 # # Number sign 36 $ $ Dollar sign 37 % % Percent sign 38 & & & Ampersand 39 ‘ ' Apostrophe 40 ( ( Opening/Left Parenthesis 41 ) ) Closing/Right Parenthesis 42 * * Asterisk 43 + + Plus sign 44 , , Comma 45 – - Hyphen 46 . . Period 47 / / ..
-
[AWS] AWS WAF 오탐 예외처리 (AWS WAF False Positive Mitigation)Back End/보안 2022. 12. 17. 16:50
이전 포스팅 (AWS WAF 적용 시, 주의해야할 Default 설정들) 에 이어 이번엔 Count 로 설정한 규칙들에 대해 예외처리 하는 작업에 대한 포스팅을 하고자 합니다. 예외처리 작업에 앞서 Count 규칙에 대해 왜 예외처리가 필요한지 알아 보겠습니다. Count 로 변경한것도 예외처리인데 또 예외처리를 해야한다고? 왜? WAF 적용 초기에 필자는 이러한 생각을 했었다. 정상적인 트래픽인데도 Block 될 가능성이 있다면 열어주면 되겠군. Count 설정을 하여 최소한으로만 열어주자. 코딩을 하다보면 최소 권한 원칙이라는 단어를 한번쯤은 들어보았을 것이다. 예시로 Java 에서 final 키워드를 일단 다붙여 둔 뒤, 필요할 때만 final 키워드를 제거하는 방식의 코딩기법이 대표적이다. 최소 ..
-
[보안] 웹서버 정보 감추기 - AWS Beanstalk 에서 Server Version Disclosure (Feat. .ebextension & .platform)Back End/보안 2022. 9. 17. 16:28
이 포스팅은 Apache 를 Proxy 로 사용하는 Beanstalk 환경에 대해서만 예시가 있습니다. 하지만 읽어보신다면 개념은 같기 때문에 Nginx 를 사용하는 경우도 동일한 접근법으로 접근하시면 됩니다 :D! * Tomcat 자체에서 발생하는 에러로 인한 서버스택 노출을 가리는 것은 추후에 포스팅하겠습니다. Response 의 Server Header Pen Test 결과, 아래와 같이 Response Header 에 서버 정보가 노출됨을 막아야 한다는 보고가 있었다. 서버정보가 포함되어있으면 해커들이 작업하기가 쉽다고 한다. 보통 Tomcat 의 server.xml 을 변경하는 방법이 널리 알려져있는데, 직접 생성한 EC2 에는 먹힐 수 있으나 AWS Elastic Beanstalk 은 Tomc..
-
[컴퓨터 보안] 네트워크 보안Back End/보안 2020. 11. 24. 17:04
1. 방화벽(Fire Wall) 방화벽은 일반적으로 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크(인터넷) 간의 장벽을 구성한다. 서로 다른 네트워크를 지나는 데이터를 허용하거나 거부하거나 검열, 수정하는 하드웨어 또는 소프트웨어 장치이다. 도메인 확인 : 확인된 도메인 IP로 접속하는지 점검 원격접속 확인 : 보안 접속 절차나 인증확인 등을 이용하여 원격접속 허용 자세한 내용은 아래 링크를 확인 https://ko.wikipedia.org/wiki/%EB%B0%A9%ED%99%94%EB%B2%BD_(%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9) 2. 침입 탐지 시스템(IDS : Intrusion Detection System) 적극적 방어방법 여러곳에 설치 가능하다..