[SK shieldus Rookies 19기][애플리케이션 보안] 정보보안의 중요성

Sungwuk·2024년 3월 19일
0
post-thumbnail

IT 업계에서 보안은 왜 중요하냐고 물어보면 원론적인 대답은 "안정적 소프트웨어를 필요로 한다" 이다.

이건 KISA 한국인터넷진흥원에서 발행한 소프트웨어개발보안가이드(2021.12.29) 에서 발행한 내용에 일부다.

과연 이게 전부일까?

사실은 정보보호 취약으로 인해 발생하는 사후처리 비용 대비 취약점 수정 비용이 30배 가량 차이 나기 때문이다. (다 돈 때문이다)


그럼 침해사고는 대부분은 어디서 발생할까? 방화벽? IDS? 웹서버?

침해사고의 75% 가량은 외부의 문제점이 아니라 프로그램 설계의 취약점으로 인해 발생한다.

때문에 애초에 설계만 잘하면 대부분의 보안사고는 피할 수 있는것이다.

실제로 MS XP는 취약점이 많다고 소문난 OS라고 한다. 2000년대 초반 OS인 XP와 SQL server 2000은 취약점 수정을 통하여 각각 취약률을 각각 45%, 91% 낮추는 효과를 보였다.

그럼 어떻게 보안 개발을 해야할까?
위 4 단계는 KISA에서 권장하는 개발 보안 과정이다.

소스코드 분석은 2가지로 분류 된다.

정적분석과 동적분석이다

정적분석:

애플리케이션을 실행하지 않고 소스코드를 분석하여 문제가 있는지 확인한다.

  • SQL Injection
    예)
    안전한 코드: cursor.execute(query, (param1, param2, ...))
    취약한 코드: cursor.execute(f"select ... where id = {name}")

동적분석:

애플리케이션을 실행해서 원하는(계획한) 결과가 제공되는지를 확인 (디버깅, 부하테스트, 모의해킹/침투테스트)

  • 인증 및 인가와 같이 정적분석으로 파악이 힘든 경우 수행

예) 게시판 상세 조회 페이지는 로그인한 사용자만 볼 수 있다. → 로그인 전후에 게시판 상세 조회를 해 보면 쉽게 알 수 있다


마치며

이미 한번 정독하고 작성하는데, 앞으로 작성하는 내용들이 내가 알고 적는건지 받아적는건지 모를정도로 나한테는 좀 어렵다. 그래도 뭐 해야지

profile
https://github.com/John-Jung

0개의 댓글

관련 채용 정보