學資安需要會寫程式嗎?
最近才看到PTT有人問了類似的問題,
大致上的內容就是詢問說想走資安,但不會寫程式可以嗎之類。
資安需不需要會寫程式,相信應該是許多人的疑惑,
這個問題沒有辦法三言兩語簡單的回答,
不僅僅題目過於模糊,牽扯的事情也太過廣泛,
資安有許多的領域(光是我這系列主題就可以看出了吧XD),
每個領域都會有不同的需求,
而不同的公司、單位、職位都會有所差異。
就算說不會程式也可以走資安,
那如果我跟你說了,在資安領域裡面會寫程式的,多數發展比較好,
你覺得這樣算不算是可以不用會寫程式?
所謂的會寫程式又是甚麼呢?
我學過JS、Java、PHP、Python、C、Shell Script等等
但有好幾個都只會很簡單的用法,要寫好一個程式也是要邊Google邊寫,
這樣對你來說算是會寫嗎?
這個問題答案可以簡單也可以複雜,
但我覺得很難得到一個負責任的好答案。
所以我先來個不負責任的微答案XD
偏稽核管理層面的,通常不太需要寫程式;
偏技術相關職務的,有的需要,
可能是看看程式碼,或是寫寫Poc/Exploit
但就算需要,也不太可能要像是軟體開發那樣熟悉。
然後我們回到面試的部分~
其實還是有一些公司的資安職缺,會有程式的面試,
我自己有遇到幾個(算少數),客觀來說應該都是偏簡單的,
但因為我平常真的沒寫程式,所以面試不是很順利QQ
大部分遇到都是算選擇題或是像問答題,
像是看程式碼,選擇一個程式跑完會顯示的答案(基礎程式概念),
或是者看一段程式碼,看哪裡有漏洞,是甚麼樣的漏洞(偏資安),
也有遇到刷題的,難度大概也就leetcode Easy的程度。
只有一間有遇到比較硬的程式相關問題,
但那個職務比較特別,本來就是進去會跟資安與開發有相關的。
總之~大家如果有機會,還是可以準備一些基礎的程式設計相關知識。
照慣例,每篇文章都會附上第一篇的文章,讓大家了解一下這系列文章說明
https://ithelp.ithome.com.tw/articles/10264252
printf("hello\n") | (printf("goodbye\n") || printf("world\n"));
int a = 1; int b = 2; int c = 3;
switch (a) {
case 3:
System.out.println(b);
break;
default:
System.out.println(c);
}
String a="cat";
String b="cat";
System.out.println(a==b);
c="cat";
System.out.println(a==c);
System.out.println(a.equals(c));
System.out.println(c==b);
name = "Prejith"
age = 26
print ("Your name & age are ", name + age)
a = 3
s = a + 10
a = "New"
q = a / 10
#include <stdio.h>
#include <string.h>
int main(void)
{
char buff[15];
int pass = 0;
printf("\n Enter the password : \n");
gets(buff);
if(strcmp(buff, "thegeekstuff"))
{
printf ("\n Wrong Password \n");
}
else
{
printf ("\n Correct Password \n");
pass = 1;
}
if(pass)
{
/* Now Give root or admin rights to user*/
printf ("\n Root privileges given to the user \n");
}
return 0;
}
來源:
https://www.thegeekstuff.com/2013/06/buffer-overflow/
<?php
echo "Hello, " . $_GET['name'];
?>
$la = $_GET['lang'];
if(isset($la))
{
include("langs/$la");
}
else
{
include("en.php");
}
$db = new mysqli('localhost', 'root', 'passwd', 'base');
$result = $db->query('SELECT * FROM users WHERE user="'.$_GET['user'].'" AND pass= "'.$_GET['password'].'"');
來源:
https://support.detectify.com/support/solutions/articles/48001048942-sql-injection
<?php
header("Set-Cookie: count=" . $_GET["count"] . ";");
header("Set-Cookie: secret=" . $secret . "; HttpOnly");
echo "Hello Guest~";
?>
(A)for (var i=0; i < 10; i++) console.log(i);
(B)for i in range(10): print(i)
(C)for i in range(9): log(i)
(D)for i in [0-10]: print(i)
(E)for i am printing 0-9
最後一題是來自於freeCodeCamp.org這個Youtube頻道
他的社群部分常常會有這種很有趣的小問題喔!
https://www.youtube.com/c/Freecodecamp/community
如果是偏資安一點的,
可以多研究看看像是code裡面有甚麼問題,邏輯漏洞或是WEB漏洞,
如果是不是資安的話,
就是刷題吧XD 各種排序法、演算法呀,
還有Linked List,之間面試遇到,我直接空白QQ
若有要補充也都歡迎留言