본문 바로가기
활동/2025 co-week

시큐어 코딩

by gnoJJ 2025. 7. 7.

시큐어 코딩은 개발을 하는데에 있어, 보안을 염두에 두고 코딩하기 위한 수업이다.


오버플로우

컴퓨터는 숫자를 기억할 때 할당 받은 메모리의, 정해진 bit 크기만큼 기록한다. 그런데 이 bit를 넘겨버리면 뜻밖의 숫자가 등장하고 만다. 자세한건 직접 찾아보며 공부를 하거나, 가볍게 코딩애플 유튜브를 봐도 이해가 될 것이다.

 

unit8 x = 255; x + 1
결과 >>> x = 0

safeMath

정수형의 오버플로우와 언더플로우를 대비하기 위해 활용한다.

언더플로우는 아래 같은 경우다.

unit8 x = 0; x - 1
결과 >>> x = 255

 

어떤 상황에서 SafeMath가 필요할까?

  1. 토큰 전송 로직
    • 예: A가 B에게 토큰을 보내면 A의 잔고는 줄고, B의 잔고는 늘어나야 함.
    • 여기서 A의 잔고에서 B에게 보낼 수량을 뺄 때, A의 잔고보다 큰 값을 빼면 언더플로우 발생.
  2. 총 공급량 계산
    • 신규 발행이 있을 때, 기존 총 공급량에 새로 발행한 수량을 더함.
    • 너무 큰 수를 더하면 오버플로우가 발생해 공급량이 엉뚱한 값으로 바뀜.
  3. 로직 기반 조건 검증
    • 조건 분기 전에 수 계산이 들어가는 경우, 계산이 잘못되면 분기 로직도 오작동할 수 있음.

 

오픈소스와 관련된 위험

프로그램의 오픈소스 비중이 높음

 

Log4j 취약점(Log4Shell)

Log4j : 자바 기반의 로깅 유틸리티로, 프로그램의 동작을 추적하고 디버깅하기 위해 로그 메시지를 기록하는 데 사용됩니다.

공격자가 로그 메시지를 제어할 수 있는 서버에서 로드된 임의의 코드 실행 가능

-> 오픈소스 라이브러리라고 안전한 것은 아니고 최신 버전 사용을 하며, 보안 내용에 관심을 기울여야 한다.


공급망 해킹

-> 타깃을 해킹하는 것이 아닌, 타깃에 영향을 주는 공급자를 먼저 해킹하는 방법

ex) 은행에서 설치하라고 제공하는 보안 프로그램을 다운로드 해야함. 그런데 이 프로그램을 해커가 먼저 해킹해둬서 악성 프로그램을 심어뒀음. 이용자(타깃)은 이것을 다운로드 받음으로써 해킹됨.

 

일례가 있음.

SBOM은 공급망 보안을 위한 도구,
위즈베라 해킹은 공급망을 공격한 사건


 

공격자가 로그 메시지를 제어할 수 있는 서버에서 로드된 임의의 코드 실행 가능

프로그램이 로그를 남기


행정안전부 SW개발보안 가이드

개발보안 가이드가 존재함.


 

클라우드 서비스(SaaS) 보안 인증

SaaS 표준등급 클라우드 보안인증은 중요 데이터를 처리하는 서비스를 대상으로 함.

13개 분야에서 총 79개의 통제 항목을 준수해야 함.

이 인증 기준은 클라우드 서비스의 보안성과 신뢰성을 확보하기 위한 관리적, 기술적 보호 조치 포함

 

소프트웨어 보안과 관련된 통제항목

1.정보보호 정책 수립 및 운영

2. 서비스 연속성 관리

3. 접근통제

4. 암호화 적용

5. 시스템 개발 및 운영 보안

6. 취약점 관리


OWASP TOP 10

OWASP(Open Web Application Security Project)

웹 애플리케이션의 보안 강화를 위해 가장 치명적인 보안 취약점 10가지를 정리함.

웹 개발자, 보안 전문가 및 조직이 보안 위협을 예방하는데 중요한 지침으로 활용

4년 주기로 업데이트됨

 

2021년 by. owasp.org

 

조만간 2025년 TOP 10도 발표될 예정이라고 한다.

 

'활동 > 2025 co-week' 카테고리의 다른 글

LangChain  (0) 2025.07.07
처음 만나는 암호 : 데이터 보안의 기초  (1) 2025.07.03

댓글