Internet security
인터넷 보안(-保安, 영어: Internet security)은 인터넷을 통해 권한이 없는 컴퓨터 시스템 접근이나 위험을 막는 것을 말한다. 대부분은 자료의 암호화와 암호를 통해 보호를 받는다. 데이터 암호화는 이해할 수 없는 형태의 데이터를 별도의 번역 장치 없이 번역하는 과정을 말한다. 암호는 특정한 프로그램이나 시스템에 대한 사용자 접근을 제공하는 비밀의 낱말이나 구문을 말한다.
Basic for developers
- SQL Injection
- 요청에 악의적인 SQL을 삽입하여 공격하는 기술
- 간단하지만 아주 강력한 공격
- 요즘은 대부분 라이브러리, 프레임워크 수준에서 막아주지만 항상 조심해야함
- Error based SQL Injection
- 일부러 에러를 발생시켜서 DB에 대한 정보를 알아내는 방법
- 에러 메시지가 노출되지 않도록 조심해야함
- Blind SQL Injection
- 쿼리 결과의 참/거짓 정보를 보고 원하는 정보가 존재하는지 추론하는 공격 방법
- 이를 통해 데이터베이스, 테이블, 컬럼 명을 파악할 수 있음
- Union SQL Injection
- union 명령을 이용하여 정보를 얻는 공격 방법
- XSS
- 웹 페이지에 악성 자바스크립트를 삽입하는 공격
- 필터링을 잘 해야함
- Stored XSS
- 보통 XSS라하면 소개되는 공격 방법
- DB에 자바스크립트 코드를 넣고 불러올 때 실행되도록 하는 공격
- 브라우저에서 스크립트 실행을 막고 저장될 때 필터링을 해야함
- Reflected XSS
- 입력을 그대로 브라우저에 노출시키는 공격 방법
- URL Query에 redirectUrl 등이 있을 때 이곳에 자바스크립트를 넣을 수 있음
- 악의적인 링크를 타인에게 배포할 수 있으므로 막아야함
- DOM Based XSS
- DOM에 악의적인 스크립트를 넣는 방법
- img 태그의 src 등에 넣을 수 있음
- CSRF Attack
- 공격자가 서비스 사용자를 이용하여 요청을 보내는 공격
- Referer Check, CSRF Token, CAPTCHA 를 통해 막는 것이 가능
- Command Injection
- 쉘을 실행시키는 로직을 이용한 공격
- 시스템 권한이 탈취되는 것이나 마찬가지기 때문에 매우 치명적
- 쉘 명령을 실행시키는 시스템 함수를 사용하지 않는 것이 제일 좋고 만약 꼭 사용해야한다면 |, &, ;, >, <와 같은 민감한 문자는 필터링할 것
- File Upload Attack
- WebShell이 가능한 코드가 담긴 파일을 업로드하고 해커가 URL을 통해 접근 가능해지면 Command Injection과 같은 효과를 볼 수 있음
- 확장자와 파일 타입을 검사하여 허락된 타입만 저장하는 것이 좋음
- 해커가 파일을 찾을 수 없도록 업로드 파일의 이름과 확장자를 난수화하여 저장할 것
- 특수 문자가 포함된 경우 업로드를 막는 것이 좋음 (Null byte Injection 방지)
- JavaScript Injection
- 브라우저에서 자바스크립트를 삽입시키는 공격
- 만약 Client-Side에 민감한 데이터를 넣어놨다면 해당 공격을 통해 탈취 가능
- 클라이언트엔 민감한 데이터를 절대 Plain하게 넣으면 안됨
- 데이터 유효성 검사가 필요한 경우 서버에서 처리해야함
- DDoS
- 분산된 시스템을 이용하여 서버에 비정상적으로 많은 트래픽을 보내 마비시키는 공격
- 단순한데 제일 막기 힘든 공격
- Dictionary Attack
- 미리 데이터베이스에 등록해놓은 수많은 문자열을 암호로 대입하는 공격
- 간단한 단어는 비밀번호로 등록하지 못하게 막을 것
- Account Lockout Policy를 도입
- OTP 같은 2-factor 인증을 도입
- Rainbow Table
- 평문을 해시 함수로 만든 문자열을 모두 저장시켜 놓은 표
- 주로 계정 데이터 탈취 후 암호 원문을 알아내기 위해 사용함
- Salt 사용
- Key Stretching
- PBKDF2, Bcrypt 등의 암호화 알고리즘 사용
Categories
- OAuth
- 사이트 간 스크립팅 (Cross-site scripting) (XSS)
- 사이트 간 요청 위조 (Cross-site request forgery) (CSRF; XSRF)
- Metlo - 오픈소스 API 보안 플랫폼