본문 바로가기

정보보안/애플리케이션 보안

(22)
[애플리케이션 보안] 데이터베이스 보안 데이터베이스 보안 위협과 통제① 데이터베이스 보안 위협집성(Aggregation) : 낮은 보안 등급의 정보를 조합해 높은 보안 등급의 정보를 알아내는 것. (중요등급: 개별데이터항목 심각한 기밀정보 유출문제 발생 (ex) 매장 개별매출보다 모든 매장 매출 조합시, 매장의 총 매출 정보 계산 가능추론(Inference) : 보안등급이 없는 일반 사용자가 보안으로 분류되지 않은 정보를 정당하게 접근해 기밀 정보를 유추해내는 행위통계정보로부터 발생 -> 개개의 개체에 대한 정보를 통계로부터 추론 못하게 해야함.(ex) (공개정보) 계약직 직원의 평균 연봉과 인원수 -> 계약직 직원 수가 1명이라면 결국 평균=총계. ->추론가능 ② 데이터베이스 보안 통제접근 통제 : 데이터베이스 사용자가 가진 접근 권한의 ..
[애플리케이션 보안] 이메일(E-Mail) 보안 이메일 시스템 구조⓪ 주요 프로토콜메일 전송 프로토콜SMTP(Simple Mail Transfer Protocol) : 메일 클라이언트(MUA)와 메일 서버(MTA) 또는 송수신 메일 서버(MTA) 간에 메일 전송을 위해 사용하는 프로토콜TCP/25평문 통신SMTPS(SMTP over SSL/TLS) : SMTP 통신 구간에 SSL/TLS 보안 적용한 프로토콜TCP/465암호문 통신메일 수신 프로토콜POP3(Post Office Protocol version 3) : 메일 클라이언트(MUA)에서 메일 서버(MTA)로부터 메일을 수신할 수 있도록 해주는 프로토콜TCP/110동작 방식 : 클라이언트가 메일을 서버로부터 가지고온 후(다운로드 후) 서버에서 해당 메일을 삭제. -> 다른곳에서 확인 불가POP3S..
[웹 서버 취약점] 보안서버(Security Server) 구축 ① 개념보안서버 : 인터넷상에서 정보를 암호화하여 송수신하는 기능이 구축된 웹서버독립적인 하드웨어를 따로 설치하는 것이 아니라, 이미 사용하고 있는 웹서버에 SSL/TLS 인증서나 암호화 소프트웨어를 설치하여 암호통신을 지원하는 것을 의미 ② 보안서버 구축의 필요성(기밀성 보장) 정보유출 방지암호 통신을 통한 기밀성 보장(인증) 위조/가짜 사이트 방지SSL/TLS가 진짜 사이트임을 증명하므로 이를 식별해 피싱에 의한 피해를 줄일 수 있음.(신뢰) 기업 신뢰도 향상보안서버를 웹 사이트에 적용함으로써 사용자에게 정보보호의 신뢰성을 보여줄 수 있다. ③ 보안서버 구축의 법적 근거[개인정보보호법] 관련 개인정보보호위원회 고시 [개인정보의 안정성확보 조치 기준]제7조(개인정보의 암호화)개인정보처리자는 비밀번호, ..
[웹 서버 취약점] 웹 로그 분석 ① 개념엑세스 로그와 에러 로그엑세스 로그(access log) : 클라이언트의 요청으로 웹서버가 응답한 내용 저장에러 로그(error log) : 클라이언트의 요청으로 웹서버에 오류가 발생했을 경우 해당 내용 저장웹 로그 분석 목적접속 사용자의 행위/취향 준석보안사고 발생 시 추적할 수 있는 증거자료보안사고 발생 전 예상 징후, 해킹 시도, 해킹 성공 여부 확인다양한 웹공격 패턴파악접속 시간, 접근 파일 정보, 사용자 정보, 요청 방식, 성공 여부 등 확인 ② 웹로그 구조웹 로그 종류NCSA CLF(Common Log Format)Apache/Tomcat 기본 포맷NCSA ELF(Extended Log Formet)NCSA CLF + Referef값 + User-Agent값W3C ELFReferer와 ..
[웹 서버 취약점] 웹 서버 설정파일 주요 지시자 아파치 설정파일(httpd.conf) 기준으로 작성 일반설정ServerRoot "경로": 웹서버가 설치된 최상위 데릭터리 경로 지정. 해당 경로에는 설정파일, 로그파일, 모듈 등이 위치Listen 포트: 클라이언트가 접속할 웹서버의 리스닝(Listening) 포트 지정USER 사용자GROUP 그룹명 : 서비스를 제공하는 서버 프로세스를 실행할 사용자와 그룹 지정 - 설정된 사용자/그룹명 권한으로 프로그램이 실행되므로 Root는 절대 쓰지말고, nobody와 같은 새로운 계정을 만들어 로그인 쉘 설정을 "/sbin/nologin"으로 지정해 로그인 수 없는 계정으로 실행하게 한다.ServerToken 레벨 : HTTP 응답 시 헤더의 Server 필드를 통해 제공할 웹서버, OS, 모듈 등의 정보 레벨 지..
[웹 서버 취약점] 웹 서버 보안대책 웹 서비스 최소 권한 사용자 운영① 개념웹서버 운영 시 위험을 최소화 하기 위해 최소한의 권한을 가진 사용자와 그룹으로 웹서버 프로세스 실행 필요웹서버 프로세스가 root 권한으로 구동될 경우, 시스템 전체의 제어권을 탈취당해 피해 범위가 확산할 가능성이 있으므로 별도의 권한으로 서버 프로세스를 실행해 피해 범위를 최소화한다.② 대응책웹서버 프로세스를 실행할 별도의 사용자 및 그룹을 생성하고 해당 사용자로 시스템에 로그인할 수 없도록 설정한다. (apache) apache 사용자,그룹을 생성하고 해당 사용자의 로그인 쉘 부분을 /sbin/nologin(/bin/false)으로 설정해 시스템에 로그인할 수 없도록 한다.웹서버 설정파일에 서버프로세스의 실행권한을 해당 사용자 및 그룹으로 설정한다.(apach..
[웹 서버 취약점] 기타 웹 서버 취약점 디렉터리 리스팅 취약점(Dirctory Listing)① 개념웹 애플리케이션을 사용하고 있는 서버의 미흡한 설정으로 인해 인덱싱(리스팅) 기능이 확성화가 되어있으면 공격자가 강제 브라우징을 통해 서버의 모든 디렉터리 및 파일 목록을 볼 수 있는 취약점디렉터리 인덱싱 기능 : 활성화 시, 웹서버 구조뿐만 아니라 백업 파일이나, 공개되어서는 안 되는 파일 등이 노출될 수 있음② 공격과정특정 페이지(.php)가 아닌 디렉터리 경로(/home/board/)를 요청한다.HTTP 응답 메시지를 확인하면 상태코드 200 및 파일의 리스트를 확인할 수 있다. 디렉터리 리스팅 취약점이 존재하면, 웹 브라우저상에 해당 디렉터리 내의 디렉터리/파일 정보가 그대로 노출되는 것을 확인할 수 있으며, 해당 디렉터리/파일을 클릭..
[웹 애플리케이션 취약점] 개발 보안 가이드라인 사용자에게 전달된 값(Hidden Form 필드, 파라미터)을 재사용할 경우 신뢰해서는 안된다.1차 인증 -> 2차 인증 -> 최종 처리 시, 파라미터를 재사용하지 말자. 하더라도 최종처리는? 서버에서 수행.최종 통제 메커니즘은 반드시 서버에서 수행되어야 한다.자바스크립트, VB 스크립트 등을 사용해 클라이언트 측에서 입력값을 검증하는 것은 쉽게 우회될 수 있으므로 서버에서 최종 점검하는 것이 반드시 필요하다.1차 검증은 클라이언트, 최종 검증은 서버 측에서 할 수 있도록 개발클라이언트에게 중요 정보(ID/PWD) 를 전달하지 않는다.클라이언트에서 실행되는 컴포넌트에 중요정보 하드코딩은 절대 안된다. 쿠키에 중요 정보를 전달할 경우 암호화해서 사용한다.중요 정보 전송 시 POST 메소드 / SSL(HTT..