https://queue.acm.org/detail.cfm?id=3648601
구글에선 소프트웨어를 안전하게 개발할수 있는 환경이 어떻게 되어있는지 공유해준 글인데,
여기도 소프트웨어 개발을 해놓고 오랜 기간동안 유지하면서 업데이트도 해야하니깐 시스템이 복잡해질수밖에 없고, 그러다보면 취약점이 생기게 된다.
안전하게 코딩하는 것과, 배포 두가지 관점에서 정리를 할수있는데,
일단 코딩쪽에서 보면 메모리 손상, SQL 인젝션, XSS 등의 보안 취약점이 발생할 수있고, 각 취약점마다 구글에선 어떻게 조심하고 있는지 정리해줬다.
메모리를 위해선 결국 안전한 언어 (c/c++보다는 자바, Go, 또는 Rust)를 쓰는게 좋다는것 ..
코드 인젝션은 일반 문자열보다는 해당 도메인에 한정된 특정한 타입(ex. TrustedSqlString)을 사용하는걸 추천.. 비슷하게 XSS도 안전한 타입을 정의해서 쓰는 방식으로 (ex. safehtml), 10년전엔 지메일같은 어플리케이션마다 매년 수십개의 취약점이 발견 되었으나 요즘은 이 방법으로 한자릿수로 많이 줄었다고 한다.
배포 관점에서는, 엔지니어가 직접 하면 단순 오타같은 실수를 하는 경우가 결국 생기게 되는데, 좀 더 신중했어야 한다고 말하기엔 현실적으론 무리한 기대라는 이야기에 공감이 되었다.
가능한 실수를 안할수 있도록 어떻게 환경이 구성되어있는지 정리를 해줬다.
여러번 읽어볼만 하고 (기억력이 안좋은 편..), 레퍼런스도 나중에 시간나면 봐도 좋을것 같아서 좌표 찍을겸 정리를 해봤다. ☺️