ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 9-2. 소프트웨어 보안 개발 구현
    공부 일기/정보처리기사 실기 2024. 7. 16. 21:17
    728x90

    1-1. 요구사항 분석 https://minjh1126.tistory.com/44

    1-2. 현행시스템 분석 https://minjh1126.tistory.com/45

    1-3. 요구사항 확인 https://minjh1126.tistory.com/46

    2-1. UI 요구사항 확인 https://minjh1126.tistory.com/47

    2-2. UI 설계 https://minjh1126.tistory.com/48

    3-1. 논리 데이터 저장소 확인 https://minjh1126.tistory.com/54

    7-1. 데이터베이스 기본 https://minjh1126.tistory.com/49

    7-2. 응용 SQL 작성하기 https://minjh1126.tistory.com/50

    8-1. 개발환경 구축 https://minjh1126.tistory.com/51

    8-2. 공통 모듈 구현 https://minjh1126.tistory.com/52

    9-1. 소프트웨어 개발 보안 설계 https://minjh1126.tistory.com/53

     

    1. SW 개발 보안 구현

    1. 입력 데이터 검증 및 표현

    • 취약점
      • XSS: 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되면, 사용자가 열람했을 때 웹페이지에 포함된 부적절한 스크립트가 실행됨. 특수 문자나 HTML태그를 사용하지 않도록 하고 자바스크립트로 시작하는 문자열은 모두 문자열로 반환되도록 해 대응 가능.
        • 공격 유형
          • Stored XSS: 방문자들이 악성 스크립트가 포함된 페이지를 읽었을 때 악성 스크립트가 브라우저에서 실행됨.
          • Reflected XSS: 공격용 URL을 생성하고 이메일로 전송해 사용자가 클릭하면 공격 스크립트가 피해자에게 반사되어 민감 정보를 공격자에게 전송.
          • DOM XSS: DOM 기반 취약점이 있는 브라우저를 대상으로 조작된 URL을 이메일을 통해 발송해 피해자가 누르면 공격 피해를 당함.
      • 사이트 간 요청 위조(CSRF): 사용자의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하도록 함. 폼은 POST 방식, 입력 처리 프로그램에서 CSRF 토큰으로 점검, 중요 기능은 재인증하게 해 대응 가능.
      • SQL 삽입(SQL Injection): SQL 구문을 삽입 후 실행시켜 DB로 접근을 통해 정보 탈취, 조작 등. 바인딩 매개변수 방식을 적용해 사전에 변수 타입을 지정, 사용자로부터 입력될 수 있는 값 필터링 등으로 대응 가능.
        • 공격 유형
          • Form SQL injection: HTML form기반 인증에 취약점이 있으면 사용자 인증을 위한 쿼리문의 조건을 임의로 조작.
          • Union SQL injection: 쿼리의 UNION 연산자를 이용해 한 쿼리의 결과를 다른 쿼리의 결과와 결합.
          • Stored Procedure SQL injection: 저장 프로시저를 이용해 공격.
          • Mass SQL injection: 기존 SQL 삽입 공격의 확장된 개념으로 한 번의 공격을 통해 DB정보 획득.
          • Error-Based SQL injection: DB 쿼리의 에러 값을 기반으로 한 단계씩 DB 정보 획득.
          • Blind SQL injection: Error-Based와 달리 오류 메세지가 아닌 쿼리 결과의 TF로 의도하지 않은 SQL문을 실행함으로써 DB를 공격.

     

    2. 시스템 보안 구현

    • 네트워크 보안 솔루션
      • 방화벽: 기업 내외부 트래픽을 모니터링 해 시스템의 접근을 허용하거나 차단.
      • 웹 방화벽: 웹에 특화된 방화벽. SQL 인젝션이나 XSS 웹 공격 탐지 및 차단.
      • 네트워크 접근 제어: 단말기가 내부 네트워크에 접속을 시도할 때 제어 및 통제. 바이러스나 웜 등 방지 가능.
      • 침입 탐지 시스템(IDS): 네트워크의 이벤트를 모니터링하고 비인가 사용자의 자원 접근과 보안정책 위반 행위를 실시간 탐지.
      • 침입 방지 시스템(IPS): 네트워크 공격이나 침입을 실시간으로 차단하고 유해 트래픽을 능동적으로 처리.
      • 무선 침입 방지 시스템(WIPS): 인가되지 않은 무선 단말기의 접속을 탐지 및 차단하고 보안에 취약한 무선 공유기 탐지.
      • 통합 보안 시스템: 방화벽, 침입 방지 시스템, 침입 탐지 시스템, VPN, 안티 바이러스, 이메일 필터링 등 다양한 보안 장비를 하나로 통합.
      • VPN(가상사설망): 마치 전용망을 사용하는 것 같은 효과를 줌.
      • SIEM: 다양한 장비로부터 보안 로그와 이벤트 정보를 수집해 정보 간 연관성을 분석 후 위협 상황 인지, 침해 사고에 빠르게 대응. 빅테이터 기반의 로그 분석을 통해 보안 위협 징후를 빠르게 판단하고 대응.
      • ESM: 방화벽, IDS, VPN등의 여러 보안 시스템에서 발생한 이벤트와 로그를 통합해 관리, 대응. 다른 장비를 통합 관리하는 기능, 네트워크 자원 현황의 보안 모니터링, 이벤트 위주의 단시간 위협 분석, DBMS 기반의 보안 관리 솔루션.

     

    3. SW 개발 보안 테스트와 결함 관리

    • 소프트웨어 개발 보안 테스트 유형
      • 정적 분석: SW를 실행하지 않고 분석. 개발 단계에서 사용. 컴포넌트 간 통합된 취약점 발견이 제한적이고 설계 구조 관점의 취약점은 분석 불가.
      • 동적 분석: SW실행 환경에서 분석. 테스트 단계에서 사용. 소스 코드가 필요 없고 정확도가 향상되며 구조 관점의 보안 약점은 식별 불가.

     

    4. 보안 관련 용어

    • 보안 공격 관련 용어
      • 부 채널 공격: 암호화 알고리즘 실행 시기의 물리적 특성을 측정해 내부 비밀 정보를 부채널에서 획득.
      • 드라이브 바이 다운로드: 불특정 웹 서버와 웹 사이트에 악성 스크립트를 설치하고 사용자 접속 시 동의 없이 의도된 서버로 연결해 감염시킴.
      • 워터링 홀: 특정인 표적 공격으로 잘 방문하는 웹사이트에 악성 코드를 심거나 악성코드를 배포하는 URL로 유인해 감염시킴.
      • 비즈니스 스캠: 기업 이메일 계정을 도용해 대금을 가로챔.
      • 하트 블리드: 암호화 라이브러리의 하트비트라는 확장 모듈에서 클라이언트 요청 메세지를 처리할 때 데이터 길이를 검증하지 않는다는 점을 이용해 메모리에 저장된 64KB 데이터를 제한 없이 탈취 가능.
      • 크라임웨어: 중요한 정보를 탈취하거나 유출을 유도해 금전적인 이익을 목적으로 하는 악성 코드.
      • 토르 네트워크: 네트워크 경로를 알 수 없도록 암호화 기법을 사용해 데이터를 전송하고 익명으로 인터넷을 사용할 수 있는 가상 네트워크.
      • MITM 공격: 네트워크 통신을 조작해 내용 도청 및 조작. 통신 중인 두 사람 사이에 침입해 정보를 탈취.
      • DNS 스푸핑 공격(DNS 캐시 포이즈닝): DNS응답(IP주소)를 조작하거나 DNS 서버의 캐시 정보를 조작해 의도하지 않은 주소로 접속하게 함.
      • 포트 스캐닝: 침입 전 대상 호스트의 어떤 포트가 활성화되어 있는지 확인. 침입 전 취약점 분석.
      • 디렉토리 리스팅: 웹 애플리케이션을 사용하고 있는 서버의 미흡한 설정으로 인덱싱 기능이 활성화되어 있을 경우, 강제 브라우징을 통해 서버 내의 모든 디렉토리 및 파일을 볼 수 있음.
      • 리버스 쉘 공격: 타깃 서버가 클라이언트로 접속해 타깃 서버의 쉘을 획득해 공격.
      • 익스플로잇: 소프트웨어나 하드웨어의 버그나 취약점을 이용해 공격자가 의도한 동작이나 명령을 실행하도록 함.
      • 스턱스넷 공격: 주요 산업 기반 시설의 제어 시스템에 침투해 오작동을 일으킴. 독일의 회사 시스템을 목표로 제작됨.
      • 크리덴셜 스터핑: 사용자 계정을 탈취해 공격. 다른 곳에서 유출된 로그인 정보를 다른 웹사이트 등에 무작위로 대입해 성공하면 정보 유출.
    • 보안 공격 대응 관련 용어
      • 허니팟: 비정상적 접근을 탐지하기 위해 의도적으로 설치한 시스템으로 일부러 허술하게 만듦.
      • OWASP Top 10: 웹 애플리케이션 취약점 중 공격 빈도가 높고 큰 영향을 줄 수 있는 10가지 취약점에 대한 대응 방안 제공.
      • 핑거프린팅: 멀티미디어 콘텐츠의 저작권 정보와 구매한 사용자 정보를 삽입해 불법 배포자의 위치를 추적하는 기술.
      • 워터마킹: 디지털 콘텐트에 저작자 저보를 삽입해 불법 복제 시 워터마크를 추출.
      • 이상금융거래탐지시스템: 전자금융거래에 사용되는 정보들을 종합적으로 분석해 의심 거래를 탐지하고 이상 거래 차단.
      • CC(Common Criteria): 정보기술의 보안 기능과 보증에 대한 평가를 위해 공통적으로 제공되는 국제 평가 기준.
      • 사이버 위협정보 분석공유 시스템: 사이버 위협 정보를 체계적으로 수립해 자동화된 정보 공유가 가능한 침해 예방 대응 시스템.
      • 장착형 인증 모듈: 리눅스 시스템 내의 각종 애플리케이션 인증을 위해 제공되는 인증형 라이브러리.
      • CVE: 공개적으로 알려진 소프트웨어의 보안 취약점을 표준화한 식별자 목록.
      • CWE: 소프트웨어에서 발생하는 공통적 약점을 체계적으로 분류한 목록. 소스 코드 취약점을 정의함.
      • ISMS: 조직의 정보자산을 보호하기 위해 정보보호 관리 절차, 과정을 체계적으로 수립해 지속적으로 관리하고 운영하기 위한 체계.
      • PIMS: 기업이 개인정보보호 활동을 수행하기 위해 필요한 보호조치 등을 구축했는지 점검, 평가해 기업에게 부여하는 인증 제도.
      • PIA: 개인정보를 활용하는 새 시스템이나 중대한 변경 시 미치는 영향에 대해 조사, 예측, 검토해 개선 방안을 도출.
      • TKIP: 임시 키 무결성 프로토콜. 안전하지 않은 WEP 암호화 표준을 대체하기 위한 프로토콜.
    728x90
Designed by Tistory.